Table of Contents
之前大半年由于项目进度在时间上卡的比较紧,依然使用Eclipse做开发不去切
换。随着项目上线后,同时项目中多数开源依赖库以gradle方式提供更新,趁着
空出来的一段时间,我也开始将之前的eclipse+adt+ant转到as+gradle上面来。
转到新构建工具与IDE后的一些好处
- 原来androidsupportlibrary与buildtool两者版本是必须关联在一起的(之前
直接从sdk copy一份,并没有深究) - 编译渠道包变得更加简单,使用placeHolder对AndroidManifest的定制化更
强(之前是用sed来替换的) - 能够直接使用github上面的代码,管理三方library变得十分简单,同时发布
自己的library也变得简单。能让你更加接近android前沿
gradle 与 android gradle plugin的关系
其实gradle与android是不耦合的,android studio 中用到的各种’buildType’
‘productFlavor’都是在android dsl plugin中定义的。
Google介绍gradle的主页 介绍了 android dsl plugin的具体语法, 网上看到的
各种magic key, 可能因为版本的问题,其实都可以在这里查到。其实还有很多
feature点,都能在这个页面上找到(Manifest Merger等)
Gradle DSL Reference中有一个概念值得提一下,BaseExtension有三个子类,分
别使用到 Application Library和Test Module中。
IDE工具eclipse 与 androidstudio 组织工程上的概念差别
In Real | Eclipse | AndroidStudio |
---|---|---|
workspace | workspace | project |
project | project | module |
实际转换与使用中遇到的问题
IDE keybinding
由于之前用的是 eclipse + emacs+的方案,第一次上手确实非常的不适应。不
停的打开 keymap 进行想要定制的修改。不过emacs-plus也提供了as的插件,不
过目前还不是很全面。记得修改好适合自己的config后,重命名一下。后续升级
androidstudio能够直接导入使用。
如何run java module
新增一个Application启动设置
https://github.com/libgdx/libgdx/wiki/Gradle-and-Intellij-IDEA#running-your-project
Jenkins 的相应调整
这个比较简单,原先ant编译,还需要把ant放入path中。现在只要有jdk,用
gradlew(wrapper)就能搞定,只是第一次运行,需要下载一遍。
jenkins调用实际的./gradlew assembleRelease时,最好能够在中间放一层
shell script,更灵活点吧。
更加严格的编译检查
增加如下配置
lintOptions {
abortOnError false
}
Manifest merge新规则
HOWTO use gradle build release apk
./gradlew assembleRelease
HOWTO public and import Android project
Add compile denpendence , 然后./gradlew sync一下就OK啦
HOWTO build and run standard Java Project in AndroidStudio
这个要绕一下,project层面只能新建android的,但是module可以建个java
library,然后配置一下启动config
Develop Annotation Processor
这点还不知道, 目前要修改ap子工程,得启动一下eclipse