赞
踩
参考:
Android Debug Bridge:https://developer.android.com/studio/command-line/adb.html
adb shell 命令详解 : http://blog.163.com/hero_213/blog/static/3989121420115915014721/
文档:adb简介 - https://wiki.cyanogenmod.org/w/Doc:_adb_intro/zh-cn
######################################################################################3
之前就已经知道了adb,但是并没有了解过。这一次趁着开发android系统,需要测试CPU的占用率,好好看看adb的用法。发现确实能够提升开发的幸福感。
当前使用系统:Ubuntu 14.04.5 LTS
adb存放在android-sdk开发包的platform-tools文件夹内
我的android-sdk开发包路径:
/opt/android-sdk-linux/platform-tools
在该目录下可以直接运行adb,或者将该路径添加到PATH环境变量中:
sudo gedit /etc/profile
在profile文件最末添加(另起一行):
export PATH=/opt/android-sdk-linux/platform-tools:$PATH
注意:使用你自己的路径source /etc/profile
即可在任意路径下使用adb
##################################################################################
adb的用法很多,能够实现很复杂的功能。我还没有深入了解adb,所以仅在这里记录一些觉得会有效提升开发效率的用法
1.从pc发送 文件/目录 到手机;
2.从手机上传 文件/目录到pc;
3.远程安装apk;
4.远程卸载apk;
5.实时监控apk的CPU占用率;
6.实时监控apk的内存使用率;
7.在多个手机/模拟器(Emulator)情况下如何对某一个设备进行操作
################################################################################3#
如何启用调试?
如果想要在手机上启用USB调试,那么你的手机必须设置开发者选项(Developer options)中的USB调试(USB debugging)选项
自从Android 4.2开始,开发者选项(Developer options)默认是不可见的,所以你在系统设置中是找不到的。如果想要打开,可以进入设置(Settings)-> 关于手机(About phone),连续点击版本号(Build number)7下。
我的开发手机是小米5,所以点击设置 -> 关于手机中的MIUI版本选项:
点击7次过后会提示你已经打开开发者模式。小米手机的开发者选项在设置 -> (系统和设备)更多设置中:
进入开发者选项,打开开启开发者选项和USB调试选项即可:
这样,adb就可以对你的手机进行操作了
自从Android 4.2.2开始,当你对手机设置完USB调试后,使用usb线连接到开发电脑,手机上会弹出一个对话框:
询问你是否接受使用这台计算机进行调试。点击确定即可
查询设备/模拟器实例
使用devices命令可以查看已连接的设备/模拟器
打开一个Terminal:Ctrl+Alt+T
输入adb devices,将会列出所有已连接的手机/模拟器
输出格式是
序列号(serialNumber) 状态(devices)
以下是几种即可出现的情况
上图表明没有任何设备和电脑连接
上图表明出现了一个设备,但是设备状态是unauthorized,其实就是允许USB调试中的最后一步未完成,在手机上点击确定即可。
如果这个对话框已经消失,有两种解决方法:
1)重新连接USB线和手机;
2)在开发者选项中重新开启USB调试
使用上面其中一个方法,对话框就会重新出现,点击确定即可。
上图表明,有一个设备已经连接上了电脑,可以开始adb调试了
开始/结束adb服务器
开始adb服务器
adb start-server
表明已经开启
有时候,adb服务器对命令并不响应,那么你可以需要重新启动adb服务器
关闭adb服务器
adb kill-server
表明adb服务器并未开启
#######################################################################
ADB语法(Syntax)
可以在脚本或者命令行中使用adb命令,通用命令格式为:
adb [-d|-e|-s <serialNumber>] <command>
adb <command>
在下面的命令介绍中,默认仅有一个设备被连接在电脑上,最后在给出多个设备情况下的方法
###################################################################################3
远程操作Android系统
手机和pc连接成功后,我们可以打开一个远程终端,直接操作Android系统
使用shell命令即可:
adb shell
常用的linux操作命令同样可以在Android系统上实现,比如ls,pwd,cd,mv,cp等
也可以在本地操作Android系统,格式为:
adb shell [shellCommand]
更多有用的信息:
ADB Shell Commands:https://developer.android.com/studio/command-line/shell.html
退出远程终端有两种方式:
1)快捷键:Ctrl+D
2)命令exit
####################################################################################
1.从pc发送 文件/目录 到手机
使用push命令即可,格式为:
adb push <local> <remote>
<remote>表示手机路径
note:我们在手机上看到的文件路径一般为:/mnt/sdcard/或者/storage/emulated/0/(目前还不了解这两个的关系,不过这两个都是指向同一个地方)
发送文件:
adb push all.png /mnt/sdcard/
更改名字:
adb push all.png /mnt/sdcard/1.png
adb push hello/ /mnt/sdcard/
同时修改文件夹名:
adb push hello/ /mnt/sdcar/hi
仅复制文件夹内的文件到指定目录:
adb push hello/* /mnt/sdcard/aaa/
使用pull命令,格式如下:
adb pull <remote> <local>
3.远程安装apk
使用install命令,格式为:
adb install <path-to-apk>
其中<path-to-apk>表示一个本地apk的路径
例如:
adb install HelloWorld.apk
如果你的手机上已经存在,那么会提示你该apk已经安装在手机上
安装成功也会出现提示
4.远程卸载apk
卸载apk需要手机已经root,我的目前还没有,所以没有尝试过
有两个不错的链接:
android cmd adb命令安装和删除apk应用:http://blog.csdn.net/xpsharp/article/details/7289910
adb uninstall卸载apk文件说明:http://blog.csdn.net/flydream0/article/details/7452136
5.实时监控apk的CPU占用率
6.实时监控apk的内存使用率
这两个功能还没有透彻的理解,给出链接供参考:
windows下使用adb工具查看android程序cpu和内存消耗情况:http://blog.csdn.net/grafx/article/details/22533035?utm_source=tuicool&utm_medium=referral
Android使用adb查看当前设备运行进程CPU内存等资源的使用情况:http://blog.csdn.net/meteorluoyidong/article/details/49632797
查看android程序的CPU和内存消耗情况:http://www.360doc.com/content/14/1008/15/16319846_415269900.shtml
7.在多个手机/模拟器(Emulator)情况下如何对某一个设备进行操作
上面的操作都是基于单个模拟器/手机的情况,有时候可能会有多个模拟器/手机,这时,我们在进行adb调试,就必须指定某个设备
使用参数-s即可,格式如下:
adb -s <serialNumber> <command>
所以如果有多个设备,那么每次执行命令时均加入-s <serialNumber>即可指定设备
##################################################3
上面讨论了一些adb的简单使用,这些功能也都已经在Android Studio实现,所以还是得好好搞懂AS
现在adb不仅可以通过USB进行调试,它还支持Wi-Fi调试:
Wireless usage:https://developer.android.com/studio/command-line/adb.html#wireless
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。