adb安装及使用mac版

一、什么是adb

adb(Android Debug Bridge) 意为android调试桥,作用:远程访问Android设备(连接PC和Android)

ADB是一个C/S架构的应用程序,由三部分组成:

adb client, 运行在PC上(为DDMS,即IDE工作)

adb daemon(守护进程), 运行于Emulator(为与Emulator中的VM交互工作);

adb server(服务进程), 运行在PC(任务管理器上有),管理着adb client和adb daemon的通信。

adb连接逻辑:

二、安装及使用

Android platform-tools下载(参考):http://tools.android-studio.org/index.php/sdk

配置环境变量:

打开终端Terminal,进入根目录(cd ~/);

在终端中输入vim ~/.bash_profile ,打开 .bash_profile文件。按 i 进入输入模式,在文件内容的末尾加入以下内容:

export PATH=${PATH}:/Users/xxx/Library/Android/sdk/platform-tools

export PATH=${PATH}:/Users/xxx/Library/Android/sdk/tools

这里面的xxx根据自己实际的用户名称进行修改

点击 esc ,输入 :wq  回车(保存并退出文本);

添加完成后输入:source ~/.bash_profile 更新配置的环境变量;

验证:输入adb version ,输出Android Debug Bridge version,配置成功;

三、adb常用命令

1、包安装:adb install 

adb install .apk路径 / adb -r install .apk路径 / adb uninstall 包名

2、文件传输:adb pull/push

   拉:adb pull <设备里的文件路径> [电脑上的目录]

   推:adb push 电脑上文件 /sdcard

3、WiFi连接:adb connect/disconnect

   adb tcpip 5555

   adb connect xx.xx.xx.xx:5555

   adb disconnect xx.xx.xx.xx:5555

4、日志打印:adb logcat

   抓崩溃:adb logcat | grep AndroidRuntime   

5、activity管理:adb shell am (activity manager)

    启动APP:adb shell am start -W -n 包名/启动Activity

    关闭APP:adb shell am force-stop 包名

6、包管理:adb shell pm(package manager)

    清理环境:adb shell pm clear 包名

    三方包名:adb shell pm list packages -3 

7、截图录屏:adb shell screencap /  adb shell screenrecord

   截图:adb shell screencap -p /sdcard/test.png 

   录屏:adb shell screenrecord /sdcard/test.mp4

8、系统信息:adb shell dumpsys

   1)活动:adb shell dumpsys activity

   查看页面活动:adb shell dumpsys activity activities | grep mResumedActivity

   2)电池:adb shell dumpsys battery

   模拟低电量:adb shell dumpsys battery set level 1

         复位:adb shell dumpsys battery reset

   3)内存:adb shell dumpsys meminfo

   查看app内存使用:adb shell dumpsys meminfo 包名  

   4)CPU: adb shell dumpsys cpuinfo 

   查看appCPU使用:adb shell dumpsys cpuinfo 包名  

   5) FPS:adb shell dumpsys gfxinfo

   查看app流畅度:adb shell dumpsys gfxinfo 包名

9、adb shell wm

   1)分辨率:adb shell wm size

    模拟分辨率:adb shell wm size 480x1024

           复位:adb shell wm size reset

   2)密度:adb shell wm density

    模拟密度:adb shell wm density 800

           复位:adb shell wm size reset

 10、adb shell input 

   1)adb shell input keyevent

    按home键:adb shell input keyevent 3 

   2)adb shell input text

    输入12345文本:adb shell input text 12345

   3)adb shell input tap 

    点击位置(20,1000):adb shell input tap 20 1000

   4)adb shell input swipe

    从(10,20)滑动到(100,200):adb shell input swipe 10 20 100 200

others:

查看设备:adb devices 查看所有连接到电脑上的Android设备

安装软件:adb install app包名  (adb install -r app包名    |   -r:覆盖安装)

查看包信息:adb shell dumpsys package XXX      查看某个包的具体信息(前提是需要知道包名是什么)     

查看当前正在运行的Activity:adb logcat | grep ActivityManager       adb logcat | grep Displayed                   

查看包名的方式:

adb shell pm list packages -3 -- 只输出第三方的包 

adb shell pm list packages -e "daliketang"  --  设置过滤条件,只输出启用的包

卸载软件:adb uninstall app包名(在安装软件的时候,可能会出现安装失败的情况,如果在之前没有删除干净,或安装的时候会提示与安装签名不同等失败提示,此时使用uninstall命令可以完全清除之前没有卸载干净的app)

将电脑本地文件上传到android手机(adb push <local> <remote>)

adb push /Users/bytedance/Downloads/qingbei_xiaomi_v1.6.2_d59019f.apk /sdcard

将手机上文件上传电脑(adb pull <remote> <local>)

adb pull /sdcard/qingbei_xiaomi_v1.6.2_d59019f.apk ~/Downloads

查看日志:adb logcat > ~/Downloads/20200324.log (“>”是重定向的意思,将查到的日志进行输出;“>”后面的为输出的绝对路径)log日志 

抓日志的前提条件:发现了一个crash/anr

日志级别:

i:infor信息

d:debug调试信息

w:waring警告信息

e:error报错信息

抓取日志的关注点:

crash:崩溃(日志中搜索crash或exception)

anr:application not response:应用无响(日志中搜索anr)

adb logcat *:e> ~/Downloads/2020.log (*:e:抓取e级别以上的所有信息)

小技巧:测试之前可以提前将手机开发者选项打开,找到“日志记录器缓冲区大小”,每个日志缓冲区选择“16M”;(其目的是在测试的过程中,如果出现了不可复现的crash,可以通过抓取日志的方式,获取到app之前记录的缓存日志)

monkey测试:也叫稳定性测试(稳定性测试、压力测试、随机测试三种不同的叫法)

monkey:像猴子一样乱点

目的:测试软件的稳定性,健壮性,压力

monkey命令:adb shell monkey -p com.edu.android.daliketang -v -v -v -s 16 200000 > ~/Downloads/monkeytest.log

-v:显示运行时候的日志信息级别(-v -v -v显示全部日志信息)

-s:种子数,随机事件数(两次命令的执行轨迹一样)

查看日志中是否存在异常情况,如搜索crash、anr等关键字  (正常结束的Monkey测试,日志的末尾处有finished关键字)

停止monkey的方式:

adb shell(登录设备)

top|grep "monkey" (实时查询monkey的进程号)

kill -9 11673(-9:强制杀死进程;11673为查询出来的进程号)

查看内存使用状况:adb shell dumpsys meminfo com.edu.android.daliketang

adb kill-server:关闭adb

adb start-server:打开adb

四、adb使用过程中常遇问题

mac下无法识别安卓设备:list of devices attached

出现原因:

开发者选项中没有开启usb调试;

可能是Mac没有将厂商的设备id识别,需手工输入;

解决方法:

打开终端,输入system_profiler SPUSBDataType命令,查询连接usb设备信息;

找到设备供应商id,Vendor ID,并记录下来;

终端输入:vim ~/.android/adb_usb.ini,把ID写入后,保存退出;

重启adb服务,adb kill-server;

打开adb,adb start-server;

终端输入adb devices,可以看到你的设备了;

当我们按照日志级别去查询日志时,会出现zsh:no matches found:*:E

出现原因:

zsh不兼容问题导致;

解决方法:

在终端输入:vim ~/.zshrc;

在~/.zshrc中加入:setopt no_nomatch,保存并退出;

在终端输入:source .zshrc命令,更新配置文件;

参考文档:

https://www.jianshu.com/p/5697889bd08b

https://www.cnblogs.com/bamanzi/p/zsh-simple-guide.html

https://www.jianshu.com/p/4d3d23856991

https://www.jianshu.com/p/d85e95f28338

https://www.jianshu.com/p/6769bfc3e2da

https://www.jianshu.com/writer#/notebooks/41473905/notes/57949214

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

推荐阅读更多精彩内容

  • Android Monkey 压力测试 介绍 什么是Monkey Monkey测试,就像一只猴子,在电脑面前,乱敲...
    木七七姑娘阅读 2,459评论 1 7
  • 一、什么是adb 1、adb全程为Android debug bridge(安卓调试桥),作用:远程访问Andro...
    Jackie_277a阅读 1,615评论 0 1
  • 一、什么是Monkey 顾名思义,Monkey就是猴子, Monkey测试,就像一只猴子, 在电脑面前,乱敲键盘...
    心无旁骛_阅读 1,098评论 0 2
  • 在平时的工作中,会经常用到adb命令,在这里稍微整理了一下。 一.概要 1.什么是adb? adb全称为Andro...
    坚固的浮沙阅读 783评论 0 3
  • * 人总爱跟别人比较,看看有谁比自己好,又有谁比不上自己。 而其实,为你的烦恼和忧伤垫底的,从来不是别人的不幸和痛...
    枯荷听雨hx阅读 166评论 0 5