像一些比较经常使用的命令好比,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