本篇只說一個命令
就是這個
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 還有點興趣,不妨繼續關注後續文章~,麼麼噠!
閱讀更多 黑鍵手記 的文章