1. 程式人生 > >Android中的常用命令彙總

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 
版權宣告:本文為博主原創文章,轉載請附上博文連結!