android studio + gradle的组合用起来非常方便,很多第三方开源项目也早都迁移到了studio,为此今天就来介绍下查看、编译并导入第三方开源项目的方法。
sublime + terminal编译并查看源码
首先来给大家介绍一种简便并且个人最喜欢的一种办法。很多时候我们在github上看到一个不错的开源项目,一般有两种需求,阅读源码和查看运行效果,如果是单纯的查看源码我更喜欢用一些轻量级编辑器,如vim,sublime等,vim不是很熟练,所以个人一种都习惯用sublime来查看并阅读源码(实际开发还是android studio、eclipse等ide更有效率);至于查看运行效果首先得需要apk,对于一些开源项目已提供apk下载,那就好办,直接安装到手机即可。 而对于一些没有提供apk下载的,则需要自己手动编译打包。
1、切换到9gag项目的根目录,执行 ./gradlew -v 来查看下项目所用的gradle版本
如果你是第一次执行会去下载gradle,这个过程如果不翻墙非常慢,建议翻墙
紧接着下载成功会看到如下信息:
1
2
3
4
5
6
7
8
9
10
11
12
|
------------------------------------------------------------ gradle 2.2 . 1 ------------------------------------------------------------ build time: 2014 - 11 - 24 09 : 45 : 35 utc build number: none revision: 6fcb59c06f43a4e6b1bcb401f7686a8601a1fb4a groovy: 2.3 . 6 ant: apache ant(tm) version 1.9 . 3 compiled on december 23 2013 jvm: 1.7 .0_60 (oracle corporation 24.60 -b09) os: mac os x 10.9 . 5 x86_64 |
2、接着执行 ./gradlew clean
执行这个命令会去下载gradle的一些依赖,下载成功并编译通过时会看到如下信息:
1
2
3
4
|
:app:clean up-to-date :extras:shimmerandroid:clean up-to-date build successful |
3、最后执行 ./gradlew build
这个命令会直接编译并生成相应的apk文件,如果看到如下字样就代表build成功了
1
2
3
|
build successful total time: 31.456 secs |
紧接着在 9gag/app/build/outputs/apk 目录下会看到类似于app-debug-unaligned.apk, app-release-unsigned.apk等,看名字应该能理解意思,unaligned代表没有进行zip优化的,unsigned代表没有签名的。然后就可以直接安装apk查看运行效果了。
以上是我个人习惯的一种阅读第三方源码的习惯,关于上面提到的一些gradle命令大家应该还不理解,后面会一一进行说明的。
导入android studio
但是如果你还是想导入android studio的话,下面就来简单介绍下导入studio的方法以及一些注意事项。
1、选择file->import project, 选择本地9gag项目的目录
2、第一次依然会下载gradle,其实自己在命令行已经下载过了,但是这次依然还要下载一次(依然要翻墙),可能是个bug
3、导入之后你需要注意以下几个地方 每个module下的 build.gradle 下的buildtoolsversion,即9gag/app/build.gradle 和 9gag/extras/shimmerandroid/build.gradle , 可以打开 sdk manager 查看本地你安装的 sdk build-tools, 如下图,如果相应版本没有安装请先下载。
项目根目录下的 build.gradle 下gradle插件的版本,如 9gag/build.gradle 的内容:
classpath ‘com.android.tools.build:gradle:1.0.0'
android studio 1.0必须指定gradle插件1.0的版本
gradle wrapper的版本,在 9gag/gradle/wrapper/gralde-wrapper.properties 文件里有如下内容:
1
2
3
4
5
6
|
#thu dec 18 16 : 02 : 24 cst 2014 distributionbase=gradle_user_home distributionpath=wrapper/dists zipstorebase=gradle_user_home zipstorepath=wrapper/dists distributionurl=https\: //services.gradle.org/distributions/gradle-2.2.1-all.zip |
上述内容制定了gradle的版本使用2.2.1,在studio中如果你手动改了gradle插件的版本会有提示要不要更新gradle wrapper的版本。
如果以上几个地方确定版本是ok的,那么导入android studio应该没有问题,有些老的项目可能gradle版本比较老,仍然在使用一些老的语法,如果编译还通不过参考android studio系列教程四–gradle基础更改成最新的语法。
gradle常用命令
上面大家接触了一些命令如 ./gradlew -v ./gradlew clean ./gradlew build, 这里注意是./gradlew, ./代表当前目录,gradlew代表 gradle wrapper,意思是gradle的一层包装,大家可以理解为在这个项目本地就封装了gradle,即gradle wrapper, 在9gag/gradle/wrapper/gralde-wrapper.properties文件中声明了它指向的目录和版本。只要下载成功即可用grdlew wrapper的命令代替全局的gradle命令。
理解了gradle wrapper的概念,下面一些常用命令也就容易理解了。
./gradlew -v 版本号
./gradlew clean 清除9gag/app目录下的build文件夹
./gradlew build 检查依赖并编译打包
这里注意的是 ./gradlew build 命令把debug、release环境的包都打出来,如果正式发布只需要打release的包,该怎么办呢,下面介绍一个很有用的命令 **assemble
./gradlew assembledebug 编译并打debug包
./gradlew assemblerelease 编译并打release的包
除此之外,assemble还可以和productflavors结合使用,具体在下一篇多渠道打包进一步解释。
./gradlew installrelease release模式打包并安装
./gradlew uninstallrelease 卸载release模式包
下一篇来介绍用gradle进行方便的多渠道打包,以及项目中完整的gradle配置。有问题或建议欢迎大家直接博客留言。