使用Eclipse的ADT插件生成Gradle相关的文件
360新闻代码的目录结构是遵循的Eclipse ADT插件的要求,主工程依赖一个名为ui的Library工程。如下
将这个项目转到AndroidStudio 使用Gradle的话,需要以下的步骤:
A. 生成Gradle相关文件
一路下一步,把两个项目都选中
执行完这一步之后会在这两个项目的根目录的各自生成一个build.gradle文件。出此之外,在这两个项目的上一级目录下,会生成其他Gradle的相关文件,如下
到此时就已经可以使用Gradle的命令行来打包了。
注:如果没有Library项目,会在项目的根目录下直接生成这些文件。
如果你像我一样觉得Eclipse太low,想赶赶时髦使用AndroidStudio。需要看接下来的步骤
导入AndroidStudio
笔者当前AndroidStudio的最新版本是1.1.0,默认的Gradle的Android插件的版本也是1.1.0(两个版本号一致纯属巧合)但是,前边用Eclipse生成的的gradle相关文件支持的版本却很老,打开build.gradle文件可以看出
生成的gradle脚本只支持0.12.+ ,这是如果直接导入到AndroidStudio,AndroidStudio就会开始抱怨你的脚本太老,哥已经不支持了。
所以在导入之前,需要做一些修改,把生成的脚本手动改成AndroidStudio支持的版本。
怎么改呢,我使用的方法是 使用AndroidStudio随便新建一个工程,比如工程的名字叫Tmp,在这个工程下就会生成最新的脚本文件和相关文件。
其中这三个可以直接覆盖
setting.gradle 新老版本没有变化,所以我们需要修改的只有一个build.gradle文件(注意两个子项目文件夹中的gradle.build文件不需要修改)
新版build.gradle文件
Eclipse生成的文件
简单对比一下,只需要
A 将mavenCentral() 改为jcenter()
B 版本号由0.12.+ 改为1.1.0
到此为止,我们已经可以将项目完美导入AndroidStudio了。
导入的过程如下:
A
打开AndroidStudio,如果有正在打开的项目,关闭它。就会弹出这一个对话框,我们选择Open an existing Android Studio project
B
找到对应的目录,选中最外层的build.gradle文件
点击OK会弹出如下对话框
我们当然选择推荐的,选择OK
然后就是导入的过程,最终导入成功的界面如下:
然后运行一下,可能会出现这样的一个编译错误
按照提示把高亮部分的代码添加到build.gradle就好了。现在可以享受AndroidStudio和Gradle了。
到这里,你能享受到的出了一个更加高级一点的IDE,其实与在Eclipse中开发的体验区别还不是特别巨大。因为你还没有进行更高级的Gradle脚本配置。接下来我将展示让AndroidStudio和Gradle配合做如下两件事:
- 直接在AndroidStudio中运行签名之后的release包 (就这一条甩出Eclipse两条街)
- 命令行打渠道包
实现以上两个功能,只需要修改主Module也就是360new下边的build.gradle文件
要实现直接运行Release包,需要添加
配置完之后,点击这个同步按钮
让AndroidStudio知道你修改了脚本文件,然后打开Build Varient面板就会看到,已经可以选择运行Release包。
选中之后,点击运行签名混淆过的Release包就跑在你的机器里了。
接下来配置渠道
第一步:修改主Manifest文件,以友盟为例,添加
<meta-data android:name=”UMENG_CHANNEL” android:value=”${channel}”/>
其中的channel 是自己定义的,外边用$符和大括号修饰,是必须的(同shell变量引用)
第二步:
在主Module下的build.gradle文件中添加
直接阅读就可以看明白,这里定义了三个zhushou wandoujia play 三个渠道号(注意渠道号不要以数字开头),然后点一下同步按钮,在打开Build Varient面板,你看到了什么?
惊呆了有没有!AndroidStudio可以直接运行任何一个渠道,而且你可以选择运行Debug包还是Release包!简直不能赞更多!
另外说一下,看到zhushou{}这里的大括号了吗,里边还可以对特定的渠道单独定制包名,版本号!太强大了! 由于这种需求不是很多,所以这里就不演示了,需要的话,随便谷歌一下就能找到答案。
命令号的话,在终端中运行
gradlew assembleRelease (win)
gradle assembleRelease (unix)
就OK了。
到此为止,关于使用AndroidStudio和Gradle的说明就介绍完了。