Android-adb-常用命令

一.介绍

adb全称为Android Debug Bridge调试桥, 使PC电脑通过USB或网络/WIFI连接Android手机!
1.PC电脑端的adb程序是adb.exe(Windows系统), 位于Android SDK\platform-tools\adb.exe
2.Android手机端adb程序是adbd

3.adb可直接操作android手机:
    电脑和手机之间传输文件
    安装和卸载手机apk
    进入手机shell(Linux命令行)     
    启动app组件(Activity/Service等等)
    输出日志log
    ......
    
4.Android用户分类(id小,权限高)
    root用户   uid 0         gid 0 
    system用户 uid 1000      gid 1000
    shell用户  uid 2000      gid 2000
    app用户    uid 大于10000 gid 大于10000
    
Android像素密度  比值  图标实例  屏幕实例
xxxhdpi=640      4     192*192   3840*2160
xxhdpi=480       3     144*144   1920*1080
xhdpi=320        2     96*96     1280*720
hdpi=240         1.5   72*72     480*800
mdpi=160(基准)   1     48*48     480*320
ldpi=120         0.75  36*36     320*240

二.adb命令

0.通过网络/wifi连接手机(必须在同一局域网) 
    adb connect 手机ip

1.查看已连接的Android设备列表及状态
    adb devices
    
2.查看已连接的Android设备状态     
    adb get-state

    设备状态有3钟
    device:设备正常连接
    offline:连接出现异常,设备无响应
    unknown:没有连接设备

3.启动adb服务 adb kill-server
  结束adb服务 adb start-server

4.安装与卸载应用
    adb install -r apk路径 (-r覆盖安装,-s安装在sdcard)
    adb uninstall -k app包名 (-k保留数据和缓存)

5.手机与电脑互传文件
    adb push 电脑文件 手机路径
    adb pull 手机文件 电脑路径 (不设置电脑路径,默认是输入命令的当前目录)

6.重启
    adb reboot 重启
    adb reboot recovery 重启到恢复模式
    adb reboot bootloader 重启到引导模式
    
7.查看应用日志 adb logcat
  查看通信日志 adb logcat -b radio (常用于查看详细的通话状态)
  
8.用PC端口通过socket远程连接Android进程
adb forward tcp:PC端口 jdwp:Android进程
例如:adb forward tcp:8000 jdwp:472

三.adb shell命令(输入adb shell进入Linux命令环境,以下命令省略adb shell)

命令后加 -h 可以查看帮助信息

1.pm命令(Package Manager,源码:Pm.java)

查看安装的应用包名
    pm list package    列出所有应用包名
    pm list package xx 列出指定应用包名(过滤关键字)
    pm list package -s 列出系统应用包名
    pm list package -3 列出第三方应用
    pm list package -f 列出APK安装路径
    pm list package -i 列出应用安装来源
    pm list instrumentation 列出含有单元测试的应用
    
查看apk安装路径
    pm path app包名
        
权限保护级别:
    normal            - 表示权限是低风险的,不会对系统,用户或其他应用程序造成危害
    dangerous         - 表示权限是高风险的,系统将可能要求用户输入相关信息,才会授予此权限
    signature         - 表示只有当应用程序所用数字签名与声明权限的应用程序所用数字签名相同时,才会授予此权限
    signatureOrSystem - 需要签名或者系统级应用(放置在/system/app目录下)才能赋予权限
    system            - 系统级应用(/system/app目录下)才能赋予权限

查看权限信息  
    pm list permissions
        -g 按组进行列出权限
        -f 打印所有信息
        -s 简短的摘要
        -d 只有危险的权限列表
        -u 有权限的用户看到列表/用户自定义权限
    pm list permission-groups 打印所有已知的权限组
    
    pm grant  <Packagename> <permission>  授予应用权限许可,Android 6.0以上系统
    pm revoke <Packagename> <permission>  撤销应用权限许可,Android 6.0以上系统
    
查看信息dump    
    pm dump app包名      查看指定包的系统状态
    pm dump activity名   查看指定activity的信息
    pm dump meminfo      查看当前内存使用信息
    pm dump procstats    查看系统内存使用与一段时间内存汇总
    pm dump usagestats   查看服务使用状态信息
    pm dump batterystats 查看电池使用状态信息
    
安装与卸载应用
    pm install  app包名 (-r覆盖安装, -s安装在sdcard, -d允许降级安装)   
    pm uninstall app包名 (-k保留/data/data/app包名 或/sdcard/Android/data/app包名)

禁用与启用应用或组件
    pm disable app包名 或组件
    pm enable app包名 或组件
    
清除应用数据
    pm clear app包名
        
应用默认安装目录 
    pm set-install-location 2   设置应用安装位置 0(auto) 1(手机内部存储) 2(sdcard)
    pm get-install-location     查看应用默认安装目录
    
系统功能与支持库(support-xx.jar)
    pm list features  打印系统所有功能/硬件相关信息
    pm list libraries 打印当前设备所支持的所有库存

2.am命令(源码:Am.java)

启动应用组件
    am start -n packageName/组件Name
    [-a <ACTION>] 
    [-d <DATA_URI>] 
    [-t <MIME_TYPE>]
    [-e|--es <EXTRA_KEY> <EXTRA_STRING_VALUE> ...]
启动相机
    adb shell am start -n com.android.camera/.Camera
打开网页
    adb shell am start -a android.intent.action.VIEW -d http://lioil.win
拨打电话
    adb shell am start -a android.intent.action.CALL -d tel:10086
发送短信
    adb shell am start -a android.intent.action.SENDTO -d sms:10086 --es sms_body cxye#
    
启动单元测试instrumentation
    am instrument

监控crash与ANR
    am monitor

结束应用
    am force-stop 包名
    
启动服务
    am startservice 服务名

发送广播
    am broadcast -a 广播action

3.input(输入事件,源码:Input.java)

发送文本内容(不能发送中文,先将键盘设为英文)
    input text helloworld
    
发送按键事件
    input keyevent KEYCODE_HOME 模拟按下Home键
    input keyevent KEYCODE_BACK 模拟按下返回键
    input keyevent KEYCODE_MENU 模拟按下菜单键
    input keyevent KEYCODE_A    模拟按下字母A/a
    
发送屏幕触摸事件
    input tap 200 200 点击屏幕上坐标为(200,200)的位置

发送滑动事件
    input swipe 600 200 0 200 从右往左滑动
    
Android版本不低于4.4, 可以模拟长按事件(在极小范围内长时间滑动,就是长按)
    adb shell input swipe 200 200 201 201 2000      

4.截屏和录屏

截屏
    adb shell screencap -p /sdcard/scr.png  截屏保存至sdcard目录
    adb pull /sdcard/scr.png                提取到PC端的当前目录
    
录屏
    adb shell screenrecord /sdcard/rec.mp4  录制视频保存至sdcard目录(ctrl+c结束)
    adb pull /sdcard/rec.mp4                提取到PC端的当前目录
    
    默认录制的视频太大,可以修改视频尺寸和比特率
    screenrecord --size 400x800 --bit-rate 0.5M

5.其它命令

查看当前UI界面信息(UI hierchary)
    uiautomator dump
    不加[file]选项时,默认存放在sdcard
            
查看Android设备分辨率 
    wm size
    
查看Android设备参数
    getprop ro.build.version.sdk  获取系统sdk版本
    getprop | grep version        获取系统版本参数
    
查看CPU信息
    cat /proc/cpuinfo

查看系统信息(CPU/内存/battery/activity等四大组件)        
    dumpsys cpuinfo
    dumpsys meminfo
    dumpsys battery
    dumpsys diskstats
    dumpsys package
    dumpsys window      
    dumpsys activity | findstr Run  筛选出当前运行的Activity列表
    dumpsys activity activities
    dumpsys activity services
    dumpsys activity broadcasts
    dumpsys activity providers
    dumpsys activity recents (TaskRecord)
    dumpsys activity lastanr
    dumpsys activity processes
    dumpsys activity intents (PendingIntentRecord)
    dumpsys activity permissions (UriPermission)
    dumpsys activity starter
    dumpsys activity settings
    
压力测试
    monkey -v -p 包名 点击数     
    adb shell monkey -p com.android.settings 5000 > D:\monkey.log  
    在PC端执行monkey命令,将信息保存至D:\monkey.log      

输入法(源码:Ime.java)
    ime list -s  列出输入法
    ime set xxx  选择输入法

四.综合应用

屏幕解锁(删除锁屏文件)
    rm /data/system/*.key
    rm /data/system/locksettings.*
    
修改开机动画
    替换 /system/media/bootanimation.zip
    三星系统 需替换 /system/bin/samsungani
    
修改手机字体  
    替换 /system/fonts/xxx.ttf
    
卸载系统应用(需要root权限)
    1.获取apk安装路径
        pm path app包名
    2.移除apk
        rm apk安装路径;
    3)删除残留文件 
        pm uninstall app包名
        rm -r /data/data/app包名

备份应用和数据
    apk安装目录  /data/apk/xxx.apk
    应用数据目录 /data/data/app包名
    文件复制 cp -f -p -P -r

简书: http://www.jianshu.com/p/7c279e77aec7
CSDN博客: http://blog.csdn.net/qq_32115439/article/details/72814275
GitHub博客:http://lioil.win/2017/05/30/adb.html
Coding博客:http://c.lioil.win/2017/05/30/adb.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,902评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,037评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,978评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,867评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,763评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,104评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,565评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,236评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,379评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,313评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,363评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,034评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,637评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,719评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,952评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,371评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,948评论 2 341

推荐阅读更多精彩内容