Android除錯常用命令集合

2021-06-20 20:07:52 字數 3496 閱讀 4699

android在開發者模式下,我們能夠使用adb執行andorid裝置上system/bin/目錄下的幾乎所有命令。這些命令有的和linux的原始命令功能一樣,有些是android獨有的,有些是平台新增的。但他們無一例外,功能都相當強大。熟練使用這些命令,可以有效的減少程式除錯的工作量。

adbadb devices  列出當前連線到pc的android裝置

adb -s

當連線到當前pc的android裝置大於1個時,可以使用此命令給特定的android裝置傳送指令

adb root 給adb賦予root許可權

adb remount 重新掛載檔案系統

adb kill-server      結束adb服務

adbstart-server    選擇服務是否啟動adb服務

adb install從pc安裝軟體到android裝置

adb uninstall

adb shell ps | grepphone 查詢phone程序的pid

adb shell kill pid 殺掉phone程序

adb reboot    重啟android裝置

adb rebootbootloader    重啟進入fastboot模式

adb rebootrecovery     重啟進入recovery模式

adb logcat

android日誌系統為日誌訊息保持了多個迴圈緩衝區,而且不是所有的訊息都被傳送到預設緩衝區,要想檢視這些附加的緩衝區,可以使用-b 選項,以下是可以指定的緩衝區:

radio — 檢視包含在無線/**相關的緩衝區訊息

events — 檢視事件相關的訊息

main — 檢視主緩衝區(預設緩衝區)

常用的列印方法有:

-v time 列印時間

-c 清理緩衝,在列印log之前可以先執行一次清理,可以減少無效log。

-s log_tag 列印指定的log_tag 對應的log

-f 檔名 將日誌輸出到檔案

adb bugreport    獲取bugreport log

#cat /proc/kmsg  或者dmesg  檢視核心log資訊

cpu/thread檢視

檢視當前應用有多少個執行緒在跑,每個執行緒cpu使用情況如何。如果程式寫的有問題,開啟了一些執行緒在後台跑卻從未釋放,可能給程式帶來嚴重的影響。一般在分析一些cpu使用高的問題時很好用。

#top -t

amam指令可以傳送廣播,可以啟動activity,可以啟動服務,同時還能在特定的視窗關閉他們。因此對於ui除錯和模組交叉除錯十分有用,一是對於一些不設定launcher的動作的activity,沒有辦法通過選單啟動,這時可以使用am指令,二是對於一些需要引數才能執行的activity,直接執行可能出錯或者無法呼叫其功能,需要am來啟動。三是在一些launcher和螢幕鎖視窗,沒有辦法直接呼叫其他程式,但其他程式又會在特定條件下在這些視窗啟動,為了測試他們互動運**況,需要am指令。四對於一些在特定某些廣播下執行的服務,活動,廣播接收器來說,除錯難度很大,使用am可以輕鬆解決。五對於一些視窗呼叫出錯的程式,也可以通過am指令來驗證是傳送出錯還是接收出錯。

#am start -ncom.android.music/com.android.music.musicbrowseractivity  啟動某activity

#am start -aandroid.intent.action.call -d tel:10086  撥號

#am start -aandroid.intent.action.view -d   開啟網頁

#am broadcast -aandroid.intent.action.boot_completed  傳送廣播

#am startservicecom.android.music/.mediaplaybackservice  啟動服務

pm使用pm命令可以列出手機上安裝的apk與對應的軟體包,由於使用命令刪除apk時,需要知道包名,通過這條命令加上grep或者find就能找到需要的軟體的包名

#pm list packages -f

找出對應包的安裝目錄路徑,兩條指令結合,可以知道要拷貝給別人的軟體位於手機什麼地方

#pm pathcom.android.music

可以列出使用的許可權

#pm listpermission-groups

#pm list permissions

sqlite3

#sqlite3data/data/com.android.settings/databases/profileprovider.db

sqlite version3.6.22

enter".help" for instructions    檢視幫助

enter sql statementsterminated with a ";"

sqlite>

常用命令

sqlite>.tables  檢視資料庫中所有表

sqlite>.modeline  一行乙個值輸出檢視結果

sqlite>select *from profiles;  檢視表中所有欄位及值

sqlite>.quit  或者 sqlite>.exit  退出sqlite命令列

記憶體檢視

使用場景:跟蹤程序記憶體使用情況,看是否存在記憶體**不了的問題,如果程式存在記憶體洩露問題,通過記憶體動態占用情況可以看出一些端倪。

檢視系統dalvik給每乙個程序分配的可用記憶體情況:

#getprop  獲得當前裝置的屬性

[dalvik.vm.heapgrowthlimit]:[192m] :程序最大可分配到192m 如果哪個程序超過這個值就會發生oom問題。

[dalvik.vm.heapsize]:[256m] :單個虛擬機器可分配的最大記憶體=256m

dumpsys

meminfo 顯示記憶體資訊

cpuinfo 顯示cpu資訊

account 顯示accounts資訊

activity 顯示所有的activities的資訊

window 顯示鍵盤,視窗和它們的關係

wifi 顯示wifi資訊

查應用程序占用記憶體分布:

#dumpsys meminfo

#procrank

#procrank |busyboxgrep -e "phone|mms|contacts"  檢視指定程序的記憶體占用情況

每隔10秒輸出一次music程序記憶體占用情況(指令碼)

#!/bin/bash

while true;do

adb shell procrank |grep com.android.music

sleep 10

done

#df檢視分割槽使用情況

# busybox du -h -d 1system/  檢視system目錄下子目錄占用情況

#mount 檢視分割槽掛載資訊

ps:還有乙個強大的busybox工具,就不列了,命令太多了,不一一列出了,在使用過程中不知道怎麼使用的,千萬別忘記「help」

…....待續

Linux 常用命令集合

1.常用命令 ls 顯示當前目錄下的檔案和資料夾 ltr 按時間順序顯示檔案和資料夾的詳細資訊,不帶引數的時候 只顯示資料夾和檔案。vi 開啟檔案的內容 tar cvf file.tar file 壓縮成tar包 tar xvf file.tar file 解壓縮tar包,後面的file可以不用寫,...

Linux常用命令集合

下文中的一些linux命令是我在工作中用到收集而來的,較為碎片化,然後,不定時更新 檢視軟體是否安裝。列出所有安裝的dockerrpm qa grep docker軟體是否安裝rpm q grep docker列出軟體包安裝的檔案rpm ql docker檢視軟體所有安裝包的檔案儲存位置rpm qa...

Linux 常用命令集合

這裡記錄下linux小白常用的命令吧 1.目錄 檔案等操作 rm rf 刪除某目錄 mv 原始檔 目標檔案 類似於搬家或者重新命名 cd 返回上一級目錄 ssh 從12號登陸18號 ssh txz 11.11.11.18或者ssh txz node18 在 etc hosts裡有對應關係 scp 檔...