起源
前段时间鸿洋推送的一篇《推荐3个有用的开源项目》文章中,推荐了一篇github上的ADB 用法大全 ,非常的全面,正如大全中提到的: "ADB,即 Android Debug Bridge,它是 Android 开发/测试人员不可替代的强大工具,也是 Android 设备玩家的好玩具."相信做安卓开发的肯定都会用到.它的功能是非常强大的.但是强大一般也意味着复杂.我除了少数经常使用到的命令外,其他的都不甚了解.使用上也不是非常的方便,比如安装一个apk文件到手机,我一般是先打开这个apk所在的目录,右键Git Bash Here,然后键入:adb install -r ./apkFile.apk
,虽然很有逼格,但是有没有更方便一点的实现方式呢?鸿洋的文章中也说道了一个现有的ADB整合插件adb-idea,这个插件我一直都有在用,特别是调试的时候.非常方便,举个栗子:假如想在启动流程的代码中添加添加一个断点,(比如App启动的第一个Activity的onCreate()中),以前只能打了断点之后点击Debug 'app'按钮,重新走一遍编译流程才能进入断点.可是有时候是什么代码都没有改的.这一个编译流程完全没有必要.但是有了这个插件以后.只需要打好断点.Ctrl+Alt+Shift+A,选择ADB Restart App With Debugger,就可以跳过编译流程,直接启动进入断点了,非常的方便.鸿洋的文章中也提到希望有人能结合这2个优秀的项目做一个较为完备的提示插件.最近项目也比较轻松,私活也接不到,闲的时候都在鼓捣一些开发的辅助工具.正好我在插件這方面有一点点的经验,站在巨人的肩膀上这种事我是喜欢干的.
我fork adb-idea 这个项目参照 ADB 用法大全 ,经过断断续续的开发,在原有的功能上做了一些画蛇添足的扩展,做出来一看感觉和"提示插件"搭不上太大的关系,算是辅助插件吧.不尽完美,好歹还有点作用,现在推荐给大家,对使用姿势做一个简单的说明.
特性和使用
原插件功能
Uninstall App
Kill App
Start App
Restart App
Clear App Data
-
Clear App Data and Restart
这里的APP都是当前打开的项目.使用姿势参照项目主页:https://github.com/pbreault/adb-idea
扩展功能
应用管理
- 查看应用列表
- 所有应用
- 系统应用
- 第三方应用
- 包名包含某字符串的应用
- 卸载应用
- 清除应用数据与缓存
- 查看前台 Activity
- 查看正在运行的 Services
- 查看应用详细信息
- 查看应用安装路径
- 强制停止应用
- 使用 Monkey 进行压力测试,这个建议直接在命令行中使用,可以查看到实时输出信息,我的插件还不能.
以上功能都整合到:Application management中
主要是看输出信息,不记得命令也没关系,包名也不用输了,点一点OK.输出的信息选中后Ctrl+C可以复制,右键可以清屏.除了Foreground Activity和Monkey Test外,都需要选中目标APP.
与应用交互
- 启动应用/ 调起 Activity
-
调起 Service
-
发送广播
发送广播在我的8.1的真机上提示安全问题,不能正常发送,6.0好像是可以的.
以上功能都整合到:Application Interacting中.
查看设备信息
型号
电池状况
屏幕分辨率
屏幕密度
显示屏参数
android_id
IMEI
Android 系统版本
IP 地址
Mac 地址
CPU 信息
内存信息
-
更多硬件与系统属性
以上功能都整合到:Device information中:
在8.1上部分信息获取失败,提示权限拒绝.同样是Ctrl+C复制,右键清屏.
实用功能
-
安装 APK
选中apk文件,点击ok安装到手机,支持多选,支持覆盖安装.
-
输入文本
首先在手机上让目标EditText获取焦点,让后ok就能推过去了,遗憾的是不支持汉字,空格会被去掉.需要注意的是在部分输入法状态下,并不会直接输入,还需要点一下.
-
屏幕截图
选择要保存到的文件夹:
点击OK,会自动打开保存到的文件夹,还方便吧?感觉超实用的.
-
录制屏幕
-
点击start开始录制,Windows和Linux都是自动开始的,但是macOS不能自动开始录制,需要把已经放到剪贴板的命令粘贴到命令行中回车开始.昨天整整研究一天也没有发现macOS能从Runtime或者ProcessBuilder启动命令行然后执行一个命令的方法,如果你知道的话请告诉我,谢谢.按Ctrl+C停止录制.
-
录制完成后点击Pull to local->选择保存路径,拉取到本地,视频默认保存在手机的/sdcard/中,勾选delete会删除sdcard中的视频:
-
拉取完成后会自动打开保存目录:
-
下载
现在向adb-idea的原作者发起了pull-request,但是我的代码写得这么烂,人家不一定收啊.暂时不打算自己发布到jetbrains的插件仓库,所以现在从仓库下载到的是原版,你可以下载我的版本,然后手动安装.
- 下载
最新发布的插件包
> File >Preferences(Settings) > Plugins > Install plugin from disk...
安装完成后,重启AS,点击Tools>ADB Idea就可以看到菜单了,要是觉得每次点击不方便的话,也可以设置相应功能的快捷键.
默认的快捷Popup快捷键是Ctrl+Alt+Shift+A,打开后就可以按数字键选择命令了.
致谢
- 感谢 ADB Usage Complete / ADB 用法大全 仓库贡献者的收集整理
- 感谢 pbreault/adb-idea 的优秀开源插件
- 感谢鸿洋大神的试用测试和修改建议.开发之初因为偷懒和自己也一直都在Windows平台开发,就没有太多的关注其他平台,导致1.6版本的部分功能在其他平台上失效.周末抽时间搭建虚拟机进行了Linux(Ubuntu 18.10)和macOS(10.13)的测试适配.因为这2个平台了解都不深入,要是这2个平台的用户在使用中遇到什么问题,请联系我.
广告
最近都在做一些安卓开发的辅助工具,顺便打个广告哈.
- 一个继承你自己的接口和父类生成mvp模版代码的插件 : MvpAutoCodePlus
- 一个类似Postman的支持自定义加密传输的后台API接口调试工具. api-debugger
- 一个可以对kotlin代码排序的小插件. KotlinCodeSorter
- 一个可以预览项目中图片的超实用插件,我添加了.webp格式的支持 IconViewer
都在我的专栏里面:https://blog.csdn.net/column/details/27729.html
仓库地址:https://github.com/longforus/adb-idea 欢迎大家试用,star,issue.你的star是我的动力.谢谢.