adb命令 --- 深入 Android 内部

汽车 阅读:- 来源: 2020-03-30 06:26:31

本篇只说一个命令

就是这个

adb shell dumpsys

亲,不要急着输入这个命令

这个命令是:

查看当前手机系统中所有运行的应用的 「四大组件」信息。

通过这个命令,可以让你在不需要其他「反编译工具」的帮助下,看到Android 包的信息。

先不要着急输入这个命令,如果你手快输入了,那么就会有一大堆信息跑出来了,而且还得让你等一会儿才能跑完, ‍‍‍这样根本没法看嘛!

当然,基于此,我们可以依次查看手机系统中所有运行的单个组件的信息

adb shell dumpsys activity : 查看ActivityManagerService的所有信息
adb shell dumpsys activity activities : 查看activity组件的信息
adb shell dumpsys activity services : 查看service 组件的信息
adb shell dumpsys activity provides : 查看contentprovider 组件的信息
adb shell dumpsys activity broadcasts : 查看broadcast receiver 组件的信息

除了四大组件,其他的也可以:

adb shell dumpsys activity intents : 查看 intents 信息
adb shell dumpsys activity processes : 查看进程信息

不过,我们常用的命令还是下面这个:

adb shell dumpsys activity top

他只展示正在使用的应用的 activity 信息

比如,我打开了 「瑞幸」app,输入这个命令,他会展示「瑞幸」app 展示给我们的页面的信息



很长,我就只截取了一部分,红色框是输入的命令,而蓝色框对我们有点用

这个蓝色框 展示的是当前页面的 activity的名称和进程名

下面这个蓝色框 则是当前这个activity 的页面布局啦,而信息多则很大部分是因为布局多。



有没有发现一个问题,就是再 terminal 内查看这些输出很累·

累就对了,大多数人看了都累,哈哈~

其实我们可以把这些信息输出,直接看输出的内容就行啦。

比如执行命令

adb shell dumpsys activity top > 保存的文件名.后缀

这样,我们就可以直接看这个保存下来的文件即可。

比如执行


adb shell dumpsys activity top > currentActivity.txt


看,通过 ls 查看到的文件下方多了个

currentActivity.txt

的文件,打开它就可以好好看看了。


再有,这个命令还可以根据包名来查看对应包名的 “包信息”

命令为

adb shell dumpsys package 应用包名

还是以「瑞幸」为例吧

包名是:com.lucky.luckyclient

执行

adb shell dumpsys package com.lucky.luckyclient


把他输出到文件,看看

adb shell dumpsys package com.lucky.luckyclient > lucky_package.txt


这样一看,会发现,这个命令就如同 Android的清单文件一样,列出了 「瑞幸」Android app 的四大组件和权限等信息。


如果你还想查看 某一app 所占用的内存容量

那么,可以使用

adb shell dumpsys meminfo 进程名

来查询,而一般 进程名 都是 应用的包名,所以,如果我们查询目前你的Android 手机上 「瑞幸」所占用的内容容量,可以这样

adb shell dumpsys meminfo com.lucky.luckyclient

结果如图


总结

建议都敲一遍,输出的信息可以先不看,就单是体验输入命令后输出的快感就很爽了,有木有。

如果你照着上面的命令敲了一大堆,你会发现你的 terminal 越来越乱了。

好了,如果对深入 反编译Android 还有点兴趣,不妨继续关注后续文章~,么么哒!

推荐阅读:叶紫网

分享至:
0 收藏