2019独角兽企业重金招聘Python工程师标准>>>

总结一些常用的adb 命令

引言

  • Android开发中我们有时候需要借助一些命令帮助更好的高效率定位解决问题,本文就来介绍一些可能有些隐藏的而却非常好用的命令,可以帮我们快速找到问题。

基础命令

  • 像一些比较常用的命令比如,cd rm cp 就不介绍了,下面介绍几个不太常用,了解之后大大提高开发效率的几个命令。

  • cat

    • 该命名常用语查看文件,现在我往data/local/tmp push了一个config.xml文件,可以用cat 命令对其进行查看。

        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 命令

  • adb install [-l] [-r] [-s] file

    • [-l] 锁定该程序,安装
    • [-r] 重新安装该程序,保存数据
    • [-s] 安装到sdcard
  • adb uninstall [-k] package_name

    • [-K] 不清楚数据,卸载
  • pm clear package_name

    -清除指定包名的数据

  • pm install

    • 对应adb install
  • pm uninstall

    • 对应adb install
  • adb shell dumpsys

    • adb shelll dumpsys activity top

        - 用于查看当前运行应用的的信息C:\Users\isaac>adb shell dumpsys activity topTASK com.aliyun.homeshell id=1ACTIVITY com.aliyun.homeshell/.Launcher 296c7d6c pid=1867Local Activity 22a2410f State:mResumed=true mStopped=false mFinished=falsemLoadersStarted=truemChangingConfigurations=falsemCurrentConfig={1.0 ?mcc?mnc zh_CN ?layoutDir sw360dp w360dp h615dp 480dpi nrml long port finger -keyb/v/h -nav/hs.6colorMap={header_color=-16731727, dark_mode=0, hw_highlighted_text=1711321521, hw_color_primary_disabled=-16731727, header_widget_color_pressed=-2500135, hw_color_primary=-16731727, hw_color_primary_dark=-16739694, header_text_color_unchecked=-2130706434, dyncolor_mode=1, hw_dialog_ok_button_text_disable=1711321521, header_divider=-13648194, header_text_color=-2, header_widget_color_normal=-2, header_widget_color_disable=-2}}FragmentManager misc state:mActivity=com.aliyun.homeshell.Launcher@22a2410fmContainer=android.app.Activity$1@30c7b48cmCurState=5 mStateSaved=false mDestroyed=falseViewRoot:略//可以看到当前应用的基本信息已经出来了,下面还包括整个View的层级
      
  • adb shell dumpsys package <package_name>

    • 可以查看指定包名应用的详细信息(相当于应用的AndroidManifest.xml中的内容)

        C:\Users\isaac>adb shell dumpsys package com.android.settingsActivity 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$WifiSettingsActivityandroid.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     HeapTotal    Dirty    Clean    Dirty     Size    Alloc     Free------   ------   ------   ------   ------   ------   ------Native Heap        0        0        0        0    12288     6287     6000Dalvik Heap     3775     3072        0        0    20323    19251     1072Dalvik Other      357      252        0        0Stack      156      156        0        0Ashmem        8        0        0        0Other 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        0Other mmap       27        4        0        0EGL mtrack    10880    10880        0        0GL mtrack    12620    12620        0        0Unknown     4088     4000        0        0TOTAL    36495    31644     1308        0    32611    25538     7072ObjectsViews:      103         ViewRootImpl:        1AppContexts:        3           Activities:        1Assets:        4        AssetManagers:        4Local Binders:       21        Proxy Binders:       23Parcel memory:        3         Parcel count:       14Death Recipients:        2      OpenSSL Sockets:        0SQLMEMORY_USED:        0PAGECACHE_OVERFLOW:        0          MALLOC_SIZE:        0
      
  • adb shell dumpsys dbinfo <package_name>

    • 可以查看指定包名应用的数据库存储信息(包括存储的sql语句)
  • adb shell dumpsys activity services <package_name>

    • 查看该应用起了哪些服务
  • adb pull

    • 将设备中的文件放到到本地

    • eg:adb pull /sdcard/tmp.txt D:\

    命令简单,不在多说,只是在操作的时候可能遇到文件权限问题,用chmod改一下权限即可。

  • adb forward [(远程端)协议:端口号] [(设备端)协议:端口号]

    • 设备的端口转发

        adb forward tcp:23946 tcp:23946adb 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.settingsI/ActivityManager(  848): START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000cmp=com.android.settings/.Settings bnds=[828,1302][1026,1542]} from uid 10024 on display 0
      

    这个命令大家都不陌生,也是重中之重,有的同学或许会好奇,为何不用AS查看日志了,但是有时候AS不能满足我们,比如我们想开多个日志窗口,这时候我们可以打开多个cmd窗口利用这个命令查看日志信息即可。用的最多的就是-s参数,可以直接查看对应的tag日志信息,可以利用findstr进行信息过滤:

    • 也可以进入 adb shell 时 通过grep 进行过滤
  • 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

    • 查看当前进程的内存加载情况,查看当前进程的内存映射信息,比如加载了哪些so文件,dex文件等:
  • cat /proc/[pid]/status

    • 查看当前进程的状态信息
  • cat /proc/[pid]/net/tcp/tcp6/udp/udp6

    • 获取当前应用使用到的端口号信息

转载于:https://my.oschina.net/caipeng/blog/983709

总结一些常用Android adb 命令相关推荐

  1. Android调试时常用的adb命令

    Android调试时常用的adb命令 1.adb shell am am是Activity Manager的缩写,使用此命令可以从控制台启动Activity.Service,打开或关闭进程,发送广播等 ...

  2. Android之在window下面开发常用的adb命令(不断更新)

    window下面开发常用的adb命令 1.查看设备 adb devices 2.安装APK adb install -r 安卓apk的路径 3.查看日志E等级以上 adb logcat  *:E; 4 ...

  3. Android adb命令,linux中各种命令

    常用的ADB命令 1. 显示系统中全部Android平台: android list targets 2. 显示系统中全部AVD(模拟器): android list avd 3. 创建AVD(模拟器 ...

  4. android 系统(6)---Android ADB 命令大全

    原文链接:https://github.com/mzlogin/awesome-adb ADB,即 Android Debug Bridge,它是 Android 开发/测试人员不可替代的强大工具,也 ...

  5. android adb 命令汇总

    一. adb 常用命令 adb version --查看adb版本 adb devices–用来查看当前连接的设备,已连接的设备会显示出来 adb connect ip地址–用来连接设备 adb di ...

  6. 开发中常用到adb命令

    1.调试常用的adb命令 1.1 开启adb服务 adb start-server 1.2 关闭adb服务 adb stop-server 1.3 列出所有的设备 adb devices   (如果有 ...

  7. Android ADB命令?这一次我再也不死记了!

    Android ADB命令?这一次我再也不死记了! 2017-02-24 16:34 快,点击蓝色"字体"关注这个公众号,一起涨姿势 2017全球开发者论坛新春第一站[杭州站] [ ...

  8. Android adb 命令启动Activity

    Android adb 命令启动Activity 1.不带参数启动Activity adb shell am start -n com.app.test/.MainActivity adb shell ...

  9. 利用Android adb命令来测试手机App的耗电量

    使用Android adb命令实现wifi方式连接手机 因为要通过adb命令来监控手机的耗电量,所以建议通过wifi的方式来连接手机,而不是用usb线来连接手机设备.usb方式连接手机会自动给手机充电 ...

最新文章

  1. QT学习:获取本机网络信息
  2. Linux 终端(TTY)
  3. linux 进程 读写锁,linux 下实现高性能读写锁(read/write lock)
  4. 数据结构-链表4-企业链表
  5. 一个持续6年的针对多国政府机构的网络间谍活动 — “美人鱼行动”
  6. Stateflow变量范围
  7. android ble 发送指令,Android – 如何通过蓝牙低能耗(BLE)链接发送数据?
  8. 小心调用Replicator, While 和 CAG子活动
  9. linux下回收站在哪个文件夹,linux回收站在哪里
  10. ftp下载,6步掌握ftp下载软件的使用方法
  11. Elasticsearch 技术分享
  12. 【SSL】2021-08-19 1100.神秘数列
  13. java curator_关于Curator学习过程问题
  14. 动态规划 leetcode-714 最佳买卖股票时机含手续费
  15. 揭秘广告软文的五种写法
  16. 汉字转换为拼音的JavaScript库
  17. 项目经理不懂带人就自己累到死
  18. Lind.DDD.Domain领域模型介绍
  19. 大数据治理平台架构技术方案(ppt)
  20. RealPlayer 安装

热门文章

  1. java Ext安装_eclipse中ext插件安装方法
  2. java订单超时取消设计_quartz框架和关闭超时订单
  3. CAR-T治疗的临床前药理学模型
  4. Keil uvision 5 MDK 安装教程
  5. 各种语言速度之比,实验验证Cgojuliajavapythonoctave
  6. 网络游戏中用到哪些计算机技术,美术设计中计算机技术的应用论文
  7. epon matlab仿真,一种新型的EPON保护结构
  8. python爬虫bilibili_Python爬虫 bilibili视频弹幕提取过程详解
  9. NumPy (6)-结构化数据类型数组
  10. 机器学习模型可解释性的6种Python工具包,总有一款适合你!