adb命令 --- 深入 Android 内部

adb命令 --- 深入 Android 内部

本篇只说一个命令

就是这个

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 展示给我们的页面的信息


adb命令 --- 深入 Android 内部


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

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

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

adb命令 --- 深入 Android 内部



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

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

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

比如执行命令

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

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

比如执行


adb shell dumpsys activity top > currentActivity.txt

adb命令 --- 深入 Android 内部


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

currentActivity.txt

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


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

命令为

adb shell dumpsys package 应用包名

还是以「瑞幸」为例吧

包名是:com.lucky.luckyclient

执行

adb shell dumpsys package com.lucky.luckyclient

adb命令 --- 深入 Android 内部


把他输出到文件,看看

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

adb命令 --- 深入 Android 内部


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

adb命令 --- 深入 Android 内部


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

那么,可以使用

adb shell dumpsys meminfo 进程名

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

adb shell dumpsys meminfo com.lucky.luckyclient

结果如图

adb命令 --- 深入 Android 内部


总结

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

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

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


分享到:


相關文章: