Android中的常用命令彙總
工欲善其事必先利其器,在Android開發過程中,為了開發除錯,查詢問題的需要,必須掌握一些常用的命令的用法,這裡總結了一些在Android開發中經常會用到的命令,一共15個。
1、ps
列出所有的程序
這個命令是Android除錯和問題查詢的時候經常會用到的一個命令,在不帶引數的情況下會輸出所有的程序,
ps -t
則會輸出所有的執行緒。
2、printenv 顯示環境變數,例:
printenv HOSTNAME
printenv BOOTCLASSPATH
3、 setprop 設定系統屬性,和環境變數不是一個概念,例:
setprop ctl.stop zygote
setprop ctl.start zygote
setprop persist.sys.usb.config adb
上面三條命令的作用分別是:停止zygote服務,啟動zygote服務,開啟adb除錯。
4、 getprop 獲取系統屬性,不帶引數顯示所有屬性,例:
getprop sys.usb.config
5、 watchprops 監聽系統屬性的改變當系統屬性發生改變時輸出改變的系統屬性。
6、 start 啟動服務,它的作用相當於:
setprop ctl.start <service>
7、 stop 停止服務
帶引數時,它的作用相當於
setprop ctl.stop <service>
不帶引數的作用相當於:
setprop ctl.stop zygote
setprop ctl.stop surfaceflinger
8、 dmesg 輸出核心的除錯資訊,作用和cat /proc/kmsg一樣
9、 sync 同步命令,將快取中的資料寫入到儲存裝置。
對於塊裝置,預設在掛載的時候都會開啟寫快取
如當對U盤進行寫操作後,如果不呼叫該命令,就會造成一些快取中的記憶體沒有寫入到U盤中,造成檔案損壞的情況。
10、procrank 輸出程序的記憶體佔用情況,其中的 Uss(Unique Set Size)可用於定位程序是否有記憶體洩漏。
11 kill
kill命令不僅僅可以幹掉一個程序,還可以發訊號給程序,如:
kill -3 <pid>
會 傳送SIGQUIT給程序,在Android平臺會在/data/anr/traces.txt中輸出java堆疊和native堆疊資訊,這對於查Java的死鎖問題特別有用,但是在使用的時候請注意執行以下兩條命令:
touch /data/anr/traces.txt
chmod 666 /data/anr/traces.txt
因為/data/anr是system許可權的,如果在執行kill之前不執行上面這兩條命令,如果kill的是一個普通使用者程序,那麼就會因許可權問題而無法輸出堆疊資訊到traces.txt了。
再如:
kill -9 <pid>
傳送SIGKILL給程序,用於強制結束程序,包括僵死的程序。
12、debuggerd 用於輸出程序的native堆疊
用法: debuggerd -b <pid>
13、 dumpsys 用於除錯service
在使用的時候,往往用
dumpsys -l
檢視所有的系統服務,再通過類似:
dumpsys cpuinfo
來獲取service的除錯資訊,該命令實現上最終呼叫的就是service的dump函式。
13、 netcfg 檢視或者設定當前網路連線狀態,不帶引數的情況輸出所有的已知網路連線狀態,也可以用來設定動態ip,或者關閉開啟網路連線,如:
獲取動態ip:
netcfg eth0 dhcp
關閉eth0:
netcfg eth0 down
開啟eth0:
netcfg eth0 up
14、 screencap 截圖
例,儲存當前螢幕為png圖片到/mnt/sdcard/screen.png:
screencap -p /mnt/sdcard/screen.png
顯示幫助資訊:
screencap -h
15、strace 用於跟蹤系統呼叫,這是一個強大的除錯命令,這裡只作下簡單介紹,更詳細的可以參考:http://blog.chinaunix.net/uid-26285146-id-3944345.html
示例:
strace -f -p <pid>
-p
指定要跟蹤的程序pid
-f
跟蹤子程序
這裡只介紹了Android中獨有的或者經常用到但是容易忽視的命令,一些大家都知道的,像am,pm,logcat這些命令這裡沒有講到,另外,還有很多的linux命令這裡也沒有介紹到,因為已經超出了本篇文章的範圍了。
---------------------
作者:i2cbus
來源:CSDN
原文:https://blog.csdn.net/i2cbus/article/details/43198165
版權宣告:本文為博主原創文章,轉載請附上博文連結!