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配置。有問題或建議歡迎大家直接博客留言。