Android 提高开发效率的工具

题外话

工欲善其事,必先利其器。有良好的工具,开发事半功倍。本篇介绍我经常使用的一些开发工具,还有其他各式各样的工具可以参考最后的相关参考,有其他好的工具,欢迎留言补充下哈😄
注:本文快捷键是 Mac 的。

后续更新/勘误(2017.09.04)请点击查看

AS 工具

Android Studio 插件一般两种安装方法,

  1. 直接在仓库里面搜索插件,直接安装。
  2. 对于一些小众插件,还没上传到仓库的,可以直接下载到本地,通过
    [Install plugins from disk…] 从硬盘安装。

GsonFormat

  • 说明
    直接把后台返回的 JSON 复制进去,就能自动生成对应的 Bean。支持多层级,支持单个数据类型修改。
  • 快捷键
    option + s

JsonToKotlinClass

  • 说明
    kotlin 版本的 GsonFormat,JSON 复制进去,直接生成对应的 Bean。
  • 快捷键
    option + k

Android ButterKnife Zelezny

  • 说明
    我们经常用 ButterKnife 代替 findViewById。配合 ButterKnife,布局写好,用这个插件,一键就能把所有对象,监听都生成好。
  • 快捷键
    选中资源文件( 比如 R.layout.activity_settings ) -> command + N -> Generate Butterknife Injections

Android-Resource-Usage-Count

  • 说明
    统计资源使用次数,乍看一下没有什么用,其实用处还不小。
  1. 轻松的识别出使用次数为 0 的资源,可以快速的手动删除它们。
  2. 与其他小伙伴合作开发项目,有时候遇到一个 string ,我们要修改他,但是不知道其他人的模块是否有用到,之前的方式是要全局去搜索,现在只要看到使用次数为 1 的,就可以断定只有自己的模块使用到,你就可以随便修改了。

WIFIADB 无线调试

  • 说明
    如果你厌倦了 USB 调试,觉得手机经常插在电脑上不好,而且公司的网速上行速度够快的话,完全可以用 wifi 调试。

LayoutFormatter

  • 说明
    xml 代码格式化
  • 快捷键
    command + option + F

Codota

  • 说明
    这个是用来搜索代码的。有时候一些 API 不知道怎么用,这个时候如果有案例就好了,使用这个插件,可以轻松的找到示例代码。Codota 有对应的 chrome 插件,当然直接浏览器打开他的网址直接搜,也是没有问题的。
  • 快捷键
    option + k

Lifecycle Sorter

  • 说明
    使用频率较小,这个工具是用来,让 Activity 或者 Fragment 按照声明周期的顺序进行排列的。
  • 快捷键
    command + option + K

CodeGlance

  • 说明
    使用频率较小,安装了这个插件,就是在右侧有一个代码预览的侧边栏,有什么用呢?也没什么用,就是让你能对代码位置有个大致的把握,还有就是比较炫😂

辅助 APP

Android 开发助手

Trinea 大神开发的工具,集成了许多系统开发者选项,有了这个 APP ,就不用在多层的系统层级里面找这些功能了。一键打开。

android-TopActivity

这个 APP 是用来显示当前 Activity 的。非常有用。有时候我们熟悉一个项目,不知道这个界面对应的是哪个 Activity,很可能这时候就有从入口开始,一步步跟代码,看他怎么跳转的。有了这个 APP 就非常方便,他会在左上角开启一个悬浮框,在里面显示当前应用的包名 和当前界面对应的 Activity

Chrome 相关

Vysor

chrome 插件。把手机屏幕投影到电脑里面,而且通过点击电脑的屏幕,可以把对应指令传给手机,实现对手机的控制。
使用场景:

  1. 手机截图视频控制。
  2. 远程控制手机。

Stetho

facebook 开发,用来查看 APP 数据库,网络状态,本地的 SharedPreference。设备不需要 root,但是需要能科学上网。
使用步骤:

  1. 在 builde.gradle 引入该包。
    1
    2
    3
    compile 'com.facebook.stetho:stetho:1.5.0'
    compile 'com.facebook.stetho:stetho-okhttp3:1.5.0'
    compile 'com.facebook.stetho:stetho-js-rhino:1.5.0'
  2. 在 Apprication 的 onCreate() 进行初始化。
    Stetho.initializeWithDefaults(this);
  3. 在 chrome 的地址输入栏里面输入,
    chrome://inspect

效果如下图所示:

其他

直接弹到某个界面

  • 说明
    调试的时候,有时候写的界面是在层层点击里面的,这时候要么把他设置成默认启动界面,要么就要就层层去点,才能看到这个界面。
  • 用法
  1. AndroidManifest.xml 声明该 Activity 是可以被外部启动的。
    android:exported="true"
    注意:正式环境,记得去掉该声明,不然该界面可能会被外部随便启动
  2. Terminal cd 到当前目录,之后输入(按照包名/类名的形式)
    1
    $ adb shell am start -n com.green.tomato.datusi/com.green.tomato.datusi.activity.RegisterLastExActivity

一键运行开源项目

在 github 的开源项目,以前要运行的话,是先 clone 到本地,之后要么用 Android Studio 导入跑起来,要么用 gradle 命令行打包编译。

如果 gradle 版本不一致,要么修改为本地有的版本,要么重新下载新的 gradle。

我只是要看的开源项目的显示效果,有没有办法可以一键就能看,这些步骤都集合在一起。

是有的,使用 dryrun 可以满足你的要求。

使用的时候只需要,一个命令行,( dryrun + github 地址 )

$ dryrun https://github.com/cesarferreira/android-helloworld

从下面的运行结果,我们可以看出,执行这个命令行,本质就是 clone 项目到本地临时文件,之后判断 gradle 是否下载,没有下载的话,就下载。之后编译 app,并安装到设备上。

特别注意

如果你之前没有安装过 dryrun 还需要安装。

$ gem install dryrun

在 mac 上,正常情况下安装的时候是有如下两个问题的:

1
2
3
ERROR:  While executing gem ... (Gem::RemoteFetcher::FetchError)
Errno::ECONNRESET: Connection reset by peer - SSL_connect (https://api.rubygems.org/quick/Marshal.4.8/xxx.gemspec.rz)

这个问题是因为,需要使用科学上网,不能科学上网的话,要使用国内镜像。

1
2
ERROR:  While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory.

这个问题是因为,权限不足,解决办法是重新用 brew 安装一个新的 ruby。

这两个解决方法,这个帖子说得挺详细的,大家可以看看。

apkpure

这个是用来下载 Apk 的。在哪里能下载纯正的 Android APP,当然是官方的 Google Play,但是因为 Google 已经退出中国了,国内的各大 ROM 厂商都把 Google Play 去除了,假设你费力的安装上了,但是还需要科学上网….

通过这个网站,在里面直接搜索你想要的 APP (可以把 Google Play 对应该 APP 的地址复制进去搜索),就能下载下来了。比国内各大应用商店的可靠。

抓包/模拟弱网工具

Mac 下最好的抓包工具是 charles,Windows 下则是 Fiddler
下面以 charles 为例。配置说明参照下面这两篇文章即可,文章1文章2

注意:charles 为收费软件,免费使用 30 天。到时怎么办,可以戳这里,对应的脚本

下图为模拟弱网的设置,选择最小的 56 kbps Modem 的即可。

后台接口调试工具

insomnia 或者 postman 都可以,这些工具除了客户端版本,还有 chrome 版本供我们选择。

更新/勘误

更新

2017.09.04

一键运行开源项目

勘误

暂无

相关参考

[1]安卓开发中必备的那些神器APP
[2]Android Studio插件整理
[3]使用CHROME来调试你的ANDROID APP
[4]Android 常用抓包工具介绍之Charles
[5]Charles 从入门到精通
[6]教你一招最屌的阅读开源项目的姿势
[7]Mac OS X 下使用 Ruby Gem 的两个坑

坚持原创技术分享,您的支持将鼓励我继续创作!