像一些比較經常使用的命令好比,cd rm cp 就不介紹了,下面介紹幾個不太經常使用,瞭解以後大大提升開發效率的幾個命令。android
catsql
該命名經常使用語查看文件,如今我往data/local/tmp push了一個config.xml文件,能夠用cat 命令對其進行查看。shell
shell@6753_doov_legend:$ cat config.xml <?xml version="1.0" encoding="UTF-8"?> <nqtestdata> <country>CN</country> <mcnc>604123</mcnc> <!--<lat>39.213123<lat> <lon>116.123123<lon> <networkcountry>123123</networkcountry> <networkmcnc>123123</networkmcnc>--> <debug>true</debug> <writeLog>true</writeLog> <serverType>VRF</serverType> </nqtestdata> shell@6753_doov_legend:$
該命令還能夠結合grep命令進行過濾,好比我如今用grep 命令過濾上述文件中的debug 項數據庫
shell@6753_doov_legend:$ cat config.xml |grep debug <debug>true</debug> shell@6753_doov_legend:$
adb install [-l] [-r] [-s] fileapp
adb uninstall [-k] package_nametcp
pm clear package_nameide
-清除指定包名的數據測試
pm installui
pm uninstall.net
adb shell dumpsys
adb shelll dumpsys activity top
- 用於查看當前運行應用的的信息 C:\Users\isaac>adb shell dumpsys activity top TASK com.aliyun.homeshell id=1 ACTIVITY com.aliyun.homeshell/.Launcher 296c7d6c pid=1867 Local Activity 22a2410f State: mResumed=true mStopped=false mFinished=false mLoadersStarted=true mChangingConfigurations=false mCurrentConfig={1.0 ?mcc?mnc zh_CN ?layoutDir sw360dp w360dp h615dp 480dpi nrml long port finger -keyb/v/h -nav/h s.6colorMap={header_color=-16731727, dark_mode=0, hw_highlighted_text=1711321521, hw_color_primary_disabled=-16731727, h eader_widget_color_pressed=-2500135, hw_color_primary=-16731727, hw_color_primary_dark=-16739694, header_text_color_unch ecked=-2130706434, dyncolor_mode=1, hw_dialog_ok_button_text_disable=1711321521, header_divider=-13648194, header_text_c olor=-2, header_widget_color_normal=-2, header_widget_color_disable=-2}} FragmentManager misc state: mActivity=com.aliyun.homeshell.Launcher@22a2410f mContainer=android.app.Activity$1@30c7b48c mCurState=5 mStateSaved=false mDestroyed=false ViewRoot:略 //能夠看到當前應用的基本信息已經出來了,下面還包括整個View的層級
adb shell dumpsys package <package_name>
能夠查看指定包名應用的詳細信息(至關於應用的AndroidManifest.xml中的內容)
C:\Users\isaac>adb shell dumpsys package com.android.settings Activity Resolver Table: Full MIME Types: ... Base MIME Types: ... Schemes: printjob: ... package: ... Non-Data Actions: android.net.wifi.PICK_WIFI_NETWORK: 2ef8f99e com.android.settings/.Settings$WifiSettingsActivity android.settings.SHOW_REGULATORY_INFO: a449c7f com.android.settings/.RegulatoryInfoDisplayActivity ...
簡單的列出幾個
adb shell dumpsys meminfo <package_name/pid>
能夠查看指定進程名或者是進程id的內存信息
** MEMINFO in pid 20677 [com.android.settings] ** Pss Private Private Swapped Heap Heap Heap Total Dirty Clean Dirty Size Alloc Free ------ ------ ------ ------ ------ ------ ------ Native Heap 0 0 0 0 12288 6287 6000 Dalvik Heap 3775 3072 0 0 20323 19251 1072 Dalvik Other 357 252 0 0 Stack 156 156 0 0 Ashmem 8 0 0 0 Other dev 6 0 4 0 .so mmap 718 120 0 0 .apk mmap 399 0 240 0 .ttf mmap 117 0 0 0 .dex mmap 1482 0 1052 0 .oat mmap 930 0 12 0 .art mmap 932 540 0 0 Other mmap 27 4 0 0 EGL mtrack 10880 10880 0 0 GL mtrack 12620 12620 0 0 Unknown 4088 4000 0 0 TOTAL 36495 31644 1308 0 32611 25538 7072 Objects Views: 103 ViewRootImpl: 1 AppContexts: 3 Activities: 1 Assets: 4 AssetManagers: 4 Local Binders: 21 Proxy Binders: 23 Parcel memory: 3 Parcel count: 14 Death Recipients: 2 OpenSSL Sockets: 0 SQL MEMORY_USED: 0 PAGECACHE_OVERFLOW: 0 MALLOC_SIZE: 0
adb shell dumpsys dbinfo <package_name>
adb shell dumpsys activity services <package_name>
adb pull
將設備中的文件放到到本地
eg:adb pull /sdcard/tmp.txt D:\
命令簡單,不在多說,只是在操做的時候可能遇到文件權限問題,用chmod改一下權限便可。
adb forward [(遠程端)協議:端口號] [(設備端)協議:端口號]
設備的端口轉發
adb forward tcp:23946 tcp:23946 adb forward tcp:8700 jwdp:1786
這個命令對於咱們在調試的時候很是有用,特別在IDA調試中。
adb jdwp
查看設備中能夠被調試的應用的進程號
adb jdwp
這個命令或許用途不是不少,可是對於調試的時候仍是有點用途。能夠忽略這個命令。
adb logcat |findstr pname/pid/keyword
查看當前日誌信息
adb logcat -s tag |findstr <package_name> adb logcat -s ActivityManager | findstr com.android.settings I/ActivityManager( 848): START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.android.settings/.Settings bnds=[828,1302][1026,1542]} from uid 10024 on display 0
這個命令你們都不陌生,也是重中之重,有的同窗或許會好奇,爲什麼不用AS查看日誌了,可是有時候AS不能知足咱們,好比咱們想開多個日誌窗口,這時候咱們能夠打開多個cmd窗口利用這個命令查看日誌信息便可。用的最多的就是-s參數,能夠直接查看對應的tag日誌信息,能夠利用findstr進行信息過濾:
am start -n [包(package)名]/[包名].[活動(activity)名稱]
啓動一個應用
am start -n com.android.browser/com.android.browser.BrowserActivity
注意:能夠以debug方式啓動應用:am start –D –n …. 特別在咱們反編譯調試應用的時候,可能須要以debug方式啓動應用
am startservice -n [包(package)名]/[包名].[服務(service)名]
啓動一個服務
am startservice -n com.android.traffic/com.android.traffic.maniservice
和上面命令相似,啓動服務
am broadcast -a [廣播動做]
發送一個廣播
am broadcast -a android.NET.conn.CONNECTIVITY_CHANGE
和上面的命令相似,發送一個廣播,有時候咱們定義了一個廣播,可能須要測試,就能夠藉助這個功能模擬發送一個廣播。
netcfg
查看設備的ip地址
有時候想查看設備的ip地址,去設置頁面太費勁了,能夠直接用這個命令便可
aapt dump xmltree [apk包] [須要查看的資源文件xml]
查看apk中的信息以及編輯apk程序包
aapt dump xmltree demo.apk AndroidManifest.xml
dexdump [dex文件路徑]
能夠查看一個dex文件的相信信息
dexdump D:\classes.dex
cat /proc/[pid]/maps
cat /proc/[pid]/status
cat /proc/[pid]/net/tcp/tcp6/udp/udp6