本文暂不开放全文转载许可,谢谢!
作为命令行的爱好者,我想写这个主题已经有好一段时间了。除了显得很酷之外,命令行的使用能够提高我们的开发效率,因为相比通过鼠标点击一系列的菜单选项,使用键盘输入几个字符并点击 TAB 健显然会快很多。 本文的目的是跟大家分享在我的 Android 开发实践中对命令行的运用。 iTerm2由于我们将会在命令行中进行后续的工作,因此如果能够安装一个比系统默认命令行更好的工具那显然是不错的,那么请下载 iTerm2吧! iTerm2 将命令行带入了现代化时代,提供了很多你一直想要的特性。其中包含了窗口拆分,自定义配色方案,剪贴板历史,细粒度的热键控制,以及一系列你将会逐渐发现的方便的偏好设置。 oh-my-zsh当你启动命令行应用时,它会运行一个名为 Bash 的 Shell 应用。Bash 是至今为止最流行的存在于绝大多数基于 Unix 的操作系统中的 Shell 应用。然而实际上也存在 Bash 的替代者,它们使得命令行使用起来更快,而且对开发者更友好。 默认情况下,oh-my-zsh 自带了 git 插件,它提供了很多 aliases以及很多有用的函数。 命令行自动提示zsh-autosuggestions类似于 Fish,为 zsh 提供了快速的自动提示功能,它基于之前的输入历史,在你输入时自动提示命令。 反向智能搜索你可以通过 Control+R 快捷键实现在命令历史中进行反向智能搜索,从你输入命令开始,zsh 会根据之前输入的命令进行自动补全。然后你可以通过 Enter 键来执行对应的命令,或者通过箭头左键或者右键来编辑命令,或者持续按住 Control+R 快捷键来选择其他的历史命令。 dryrun当你在 Github 上面看到一个非常酷的函数库时,你将会如何在你的手机上面测试它呢?
或者你可以使用 dryrun: dryrun REMOTE_GIT_URL
离线构建
以最快速度执行 ./gradlew assembleDevelopDebug --offline
以最快速度执行单元测试的命令如下所示: ./gradlew test --offline
在 Android Studio 中,我们可以通过如下选项来配置 gradle 以离线模式运行: Settings -> Build, Execution, Deployment -> Build tools -> Gradle
alfi作为 Android 开发者,你应该在使用 Android Studio + Gralde 模式进行开发。使用 Android Studio 的一个非常好的特性是它提供的依赖管理,能够自动从指定仓库下载依赖库的 artifacts,并使得你的工程可以使用这个 artifacts。通常情况下,你只需要在工程的 build.gradle 文件中添加一行代码即可包含指定的依赖库,非常简单,不是吗? 那么你知道要添加的依赖库对应的是哪一行代码吗?为了实现快速的查找如何配置这一行代码,我开发了一个名为 alfi 的工具,使用方法很简单:
例如我们输入 理解 gradle tasks 的缩写如果在命令行中执行
使用缩写,我们可以像下面这样执行命令: ./gradlew :App:iDD
可以看到我们得到了一个更简短的命令。 Android Rocket LauncherAndroid Rocket Launcher是一个 gradle 插件,用于给 Android Modules 中所有 variants 的增加安装和启动 APK 的 tasks,因此,无需再运行
在你的项目中引入这个功能,只需要在 apply plugin: 'android-rocket-launcher'
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.cesarferreira:android-rocket-launcher:0.2.3'
}
}
即使你是从命令行启动应用,你依然可以将当前进程和调试器绑定,在调试模式不需要重启应用。 将单元测试结果直接输出到控制台中一个巧妙的能在控制台中看到 Android 单元测试输出的结果日志的方法是在 android {
...
testOptions.unitTests.all {
testLogging {
events 'passed', 'skipped', 'failed', 'standardOut', 'standardError'
outputs.upToDateWhen { false }
showStandardStreams = true
}
}
}
配置后运行单元测试就可以看到如下结果:
方便的 logcats在应用开发中我们经常需要打印出我们应用的日志信息,遗憾的是,由于应用重新部署安装到手机上时,应用的进程 ID 会发生改变,因此想要获取到正确的日志信息变得比较困难。Pidcat这个工具通过过滤应用的包名而不是应用的进程 ID 解决了这个问题。我们只需要提供应用的包名就可以在控制台中只获取到这个应用的日志信息: pidcat github.cesarferreira.helloworld
简而言之最后,我们将上面介绍的内容概括为以下几个关键点:
我的新书 《Android 高级进阶》 开始正式发售了,欢迎选购!
欢迎关注我的微信公众号 ASCE1885,专注与原创或者分享 Android,iOS,ReactNative,Web 前端移动开发领域高质量文章,主要包括业界最新动态,前沿技术趋势,开源函数库与工具等。 |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|