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 還有點興趣,不妨繼續關注後續文章~,麼麼噠!


分享到:


相關文章: