
1说明
2使用adb命令获取指定应用的包名和Activity名称
3使用adb命令启动/关闭APP
4使用adb命令把手机中的apk导到电脑上
5查看apk中的AndroidManifestxml文件
6使用adb命令进行数据备份
7查看数据
8结语
查看其它APP数据的前提是该APP默认开启数据备份,也就是allowBackup属性。
想问一下大家在平时的开发中对应用的安全性有很在意么?有可能大家会想到加密、混淆、apk加固,但还有一些其他细节的东西需要大家去了解。今天就介绍一下android:allowBackup属性。这个属性在开发的过程中通常是默认开启的,Google起初是为了防止数据丢失,留下了这个功能,但是这个属性也容易造成一些隐私数据的泄露。如果你想关闭可以把它设置为false。那么这个属性在哪里设置呢,就在AndroidManifestxml文件中的application标签中。
要备份APP的数据,首先我们要知道这个APP的包名才可以进行备份。
在手机或模拟器上面运行APP,然后输入命令: adb shell dumpsys activity top #
这时会输出很多东西,你可以用查找功能Ctrl+F,找到TASK,下图红框中就是要找的包名
命令: adb logcat| findstr START
然后在手机或模拟器上点击你想要获取的应用,这时就会在cmd中出现相应的包名和类名了。
启动APP的命令: adb shell am start -W -n package/activity
命令窗口通过adb shell 进入android 的Linux命令界面,输入am help看到如下信息:
它会展示出在不同场景下(比如start-activity、start-service等)不同参数代表的意义一些参数的意义,情况太多了这里就不细说了。
回到正题,后面的package和activity就是上面获取包名第二种方法中提到的cmp,比如我们要启动谷歌地图: adb shell am start -W -n comgoogleandroidappsmaps/comgoogleandroidmapsMapsActivity
在这里我们再做一个延伸, 用命令做APP的冷启动和热启动 *** 作,然后记录启动的时间
我们看到上图中有三个数字ThisTime、TotalTime和WaitTime,这三个数字就是本次启动APP所花费的时间。
热启动时退出退出APP的命令: adb shell input keyevent 3 ,这就相当于按了手机的home键,然后我们再执行启动APP的命令,这样就完成了热启动。
我们看到热启动花费的时间比冷启动少了很多,一套冷、热启动的流程我们就走完了。接下来就看我们怎么去优化了,让它们变的更少。所以我们在平时做启动优化的时候可以把自己的APP和一些优秀的APP做一下对比看看还差多少。
上面已经说过了一种退出APP的方法了,接下来这个命令是相当于杀掉当前的APP进程。
命令: adb shell am force-stop package
这时候再使用启动命令,就相当于冷启动了。
有的时候我们在手机上查看和 *** 作apk不是特别方便,而且通过文件管理找apk也很难找。接下来就介绍怎么用adb命令把手机中的apk导到电脑上。
通过包名获取apk在手机中的存储路径,命令 adb shell pm path package
导出apk文件,到当前目录下
命令: adb pull 路径
这一步就要看一下apk中有哪些东西了,主要还是看一下AndroidManifestxml文件当中的allowBackup设置。
我平常用的方法就是吧apk文件的后缀该成zip,然后就可以看到里面的东西了。下面的是谷歌地图的apk的构成。
下面来看一下AndroidManifestxml文件,会看到都是乱码,但是关键的信息还是可以获取的,我们目前想要的就是下图红框中的allowBackup属性,像谷歌的APP肯定是把它设置成false的,所以我们没办法备份它的信息的。
那么我们怎么看一个应用的allowBackup属性设置成true还是false呢,我的观察和实践出来的方法是看allowBackup后面有没有小方框,有就代表设置了true。如果有哪位大神知道好的可靠的方法还请留言告知。
下面是其他apk中的AndroidManifestxml文件,后面带了个小方框。
在了解到APP可以备份之后,我们就可以开始做坏事了,哈哈。
备份的命令: adb backup -nosystem -all -noapk -noshared -f dataab package
[-system | -nosystem] 是否备份系统
[-apk | -noapk] 是否备份apk安装文件
[-shared | -noshared] 是否备份手机存储空间
-f ab 存档格式一定要是ab
package:包名
在运行命令之后,手机或模拟器会出现一个页面要求你输入备份密码,这个密码你可以随便输入,但你要记住,在后面查看ab文件的时候会用到。
输入密码,点击备份我的数据之后就开始备份了,备份完成之后会有提示,这时就是生产一个ab文件了。
ab文件大家很少接触,这里使用abe工具(链接: >
提取码:uns4 )解析ab文件 ,也是通过命令,把abejar和刚才生成的ab文件放到同一个文件夹中,然后运行命令: java -jar abejar unpack xxxab xxxrar
(如果不想使用命令可以看看这篇文章 >
adb shell
su (需要获取系统管理员权限,也就是说手机必须root过才能执行下一步的命令)
ls -l /data/app
如图。至于版本号,图标这些东西在命令行是看不到的,都在应用内部打包了。
adb shell "dumpsys window | grep mCurrentFocus"
adb命令获取比较简单直接(对于获取单个页面比较方便)
打开android studio 连接手机,打开您想查看的App,之后在android studio中点击
Tools > Layout Inspector (用Layout Inspector功能)
————————————————
参考链接: >
adb可以得到package信息(非root手机也可以)。
只不过需要调用其他命令,然后自己再根据packagename过滤得到对应的应用信息。
wanliaixie是把过滤部分封装到了adb里面。
查询设备
adb devices
查询手机中的用户
adb shell pm list users
查看设备上的应用包名:
adb shell pm list packages
adb shell pm list packages 打印设备/模拟器上的所有软件包
adb shell pm list packages -f 输出包和包相关联的文件
adb shell pm list packages -d 只输出禁用的包。由于本机禁用没有,输出为空。
adb shell pm list packages -e 只输出启用的包。
adb shell pm list packages -s 只输出系统的包。
adb shell pm list packages -3 只输出第三方的包。
adb shell pm list packages -i 只输出包和安装信息(安装来源)。
adb shell pm list packages -u 只输出包和未安装包信息(安装来源)
adb shell pm list packages -u -3 -e 组合使用
查询带有test的包名
adb shell pm list packages | findstr test
查询安装包路径
adb shell pm path [PackageName]
查询包对应的启动activity
adb shell pm query-activities -a androidintentactionMAIN -c androidintentcategoryLAUNCHER [PackageName]
启动应用
adb shell am start -n "[PackageName]/[ActivityName]" -a androidintentactionMAIN -c androidintentcategoryLAUNCHER
如:adb shell am start -n "comexampletest/comexampletestMainActivity" -a androidintentactionMAIN -c androidintentcategoryLAUNCHER
卸载应用
adb shell pm uninstall -k --user 0 [PackageName] -k 表示保存数据 --user 指定用户 id,Android 系统支持多个用户,默认用户只有一个,id=0
如 adb shell pm uninstall comexampletest 对所有用户卸载comexampletest且不保存数据
停用应用
adb shell pm disable [PackageName]
启用应用
adb shell pm enable [PackageName]
清除应用数据
adb shell pm clear [PackageName]
设置应用安装位置
adb shell pm set-install-location
--[0/auto]:默认为自动
--[1/internal]:默认为安装在手机内部
--[2/external]:默认安装在外部存储
获取应用安装位置
adb shell pm get-install-location
查询 *** 作过程中输出的日志
adb logcat > d:\logtxt
以上就是关于使用adb查看别人家APP的数据全部的内容,包括:使用adb查看别人家APP的数据、linux怎么用命令看android手机上已安装应用的名字,包名,版本,图标。比如adb什么的。、adb笔记3:Android获取App当前页面的Activity名称等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)