一 adb常用指令
1. 檢視裝置
adb devices //目前連接配接的裝置, 連接配接到計算機的android裝置或者模拟器将會顯示處理
2. 安裝軟體 解除安裝軟體
adb install xxx.apk //安裝軟體
adb install -r xxx.apk //重新安裝該軟體
adb uninstall apk包名.apk //解除安裝apk軟體
3. 登入裝置shell
adb shell //進入手機的超級終端Terminal
adb shell <command指令> //直接shell運作裝置指令, 相當于執行遠端指令
4. 從PC上發送檔案到手機
adb push <本地路徑> <遠端路徑>
adb push D:\xxx.apk system/app/
//A[system/app/]為手機路徑,B[D:\xxx.apk]為電腦路徑,,把檔案從電腦複制到手機上
5. 從手機上下載下傳檔案到PC
adb pull <遠端路徑> <本地路徑>
adb pull system/app/xxx.apk D:\
//A[system/app/xxx.apk]為手機路徑,B[D:\]為電腦路徑,,把檔案從手機中複制到電腦上
6. 其他
adb remount //重新挂載檔案系統
adb reboot //重新開機手機
adb reboot recovery //重新開機到Recovery界面
adb reboot bootloader //重新開機到bootloader界面
二 log使用
android.util.Log常用的方法有以下5個:Log.v() Log.d() Log.i() Log.w() 以及 Log.e() 。
根據首字母對應VERBOSE,DEBUG,INFO, WARN,ERROR。
1、Log.v 的調試為黑色,任何消息都會輸出
2、Log.d 的輸出為藍色,僅輸出debug調試資訊
3、Log.i 的輸出為綠色,一般提示性消息information,無v和d的資訊,會顯示i、w和e的資訊
4、Log.w 的意思為橙色,warning資訊,需要我們注意優化Android代碼,會輸出e的資訊。
5、Log.e 為紅色錯誤資訊,分析檢視棧資訊。
三 adb logcat過濾
1. 隻顯示需要的輸出,白名單
最友善的當然是通過管道使用 grep 過濾了,這樣可以使用 grep 強大的正規表達式比對。簡單的比對一行當中的某個字元串,例如 MyApp:
adb logcat | grep MyApp
adb logcat | grep -i myapp #忽略大小寫。
2 儲存log
使用-d參數,可以在讀完所有log後傳回,而不會一直等待,在自動化較有用。例如:
adb logcat -d -s xxx > xxx.log //得到filter為xxx的日志,存入xxx.log,然後傳回。
3 其他
adb logcat -s TAG名稱 //顯示某一TAG的日志資訊:
adb logcat -v time -s videocamera //列印出 log 資訊中時間,以及包含關鍵字 "videocamera" 的所有 log
四 系統調用指令
1.檢視程序的memInfo
adb shell dumpsys meminfo 程序名 //在該指令的後面要加上程序的名字,以确定是哪個程序。
adb shell dumpsys meminfo com.android.mms将得到com.android.mms程序使用的記憶體資訊:
Applications Memory Usage (kB):
Uptime: 495867 Realtime: 3319185
** MEMINFO in pid 2362 [com.android.mms] **
Shared Private Heap Heap Heap
Pss Dirty Dirty Size Alloc Free
------ ------ ------ ------ ------ ------
Native 0 0 0 3072 2939 117
Dalvik 6594 11816 6236 15047 14308 739
Cursor 0 0 0
Ashmem 0 0 0
Other dev 4 32 0
.so mmap 879 1240 500
.jar mmap 0 0 0
.apk mmap 141 0 0
.ttf mmap 119 0 0
.dex mmap 1185 0 0
Other mmap 127 20 124
Unknown 1840 344 1836
TOTAL 10889 13452 8696 18119 17247 856
Objects
Views: 44 ViewRootImpl: 1
AppContexts: 3 Activities: 1
Assets: 4 AssetManagers: 4
Local Binders: 24 Proxy Binders: 38
Death Recipients: 0
OpenSSL Sockets: 0
SQL
MEMORY_USED: 0
PAGECACHE_OVERFLOW: 0 MALLOC_SIZE: 0
2.adb shell top
top指令是Linux下常用的性能分析工具,可實時顯示系統中各個程序的資源使用情況,有點像Windows的任務管
理器。
3.adb shell cat /proc/meminfo
隻能得出系統整個記憶體的大概使用情況
可以用來檢視剩餘的空間,通常系統的剩餘空間量為:MemFree + Cached
N:\>adb shell cat /proc/meminfo
MemTotal: 908816 kB
MemFree: 347540 kB
Buffers: 17440 kB
Cached: 148340 kB
SwapCached: 0 kB
Active: 243316 kB
Inactive: 128280 kB
如上剩餘空間為 347540 kB + 148340 kB
4.adb shell procrank
檢視所有程序的記憶體使用情況,哪些app/程序占用記憶體過多。
一般以PSS欄為參考,關注PSS值較大的程序。
N:\>adb shell procrank
PID Vss Rss Pss Uss cmdline
383 72900K 61928K 30386K 27472K system_server
643 62996K 57472K 26467K 24092K com.android.phone
699 89816K 49876K 19985K 18116K com.android.launcher
503 49708K 44444K 14833K 12904K com.android.systemui
789 42392K 42184K 13735K 11648K android.process.acore
583 41864K 41568K 12369K 10584K com.android.settings
2362 51204K 40140K 11098K 9540K com.android.mms
1118 38668K 38452K 10775K 9484K com.aspire.mmservice
802 37892K 37656K 10604K 9384K com.android.contacts
1391 33760K 33560K 7168K 6004K cn.emagsoftware.gamehall:b
1343 32480K 32256K 6277K 5200K cn.wps.moffice_eng
550 32908K 32684K 5649K 4300K android.process.media
1152 31628K 31412K 5018K 3992K cmccwm.mobilemusic
五、adb啟動 應用程式 (1)檢視app包名: 進入android作業系統 adb shell 在[email protected]:/ # 後邊,輸入 cd data/data 然後輸入ls 這樣就能看見android系統上安裝的安裝包 包名: 例如: cn.com.conversant.swiftsync.android com.android.backupconfirm com.android.browser com.android.calculator2 com.android.calendar com.android.camera ... (2)adb啟動 應用程式 adb shell am start -n cn.com.conversant.swiftsync.android/ cn.c om.conversant.swiftsync.android.main.SplashActivity 備注:adb shell am start -n 包名/ Activity類的類名 包名和Activity類的類名一定要輸入正确,可以用re-sign工具(在最後的彈出資訊框會顯示出包名和Activity類名)。 六、adb停止 應用程式 adb shell am force-stop cn.com.conversant.swiftsync.android 備注: cn.com.conversant.swiftsync.android為包名。