Android Studio 相關功能介紹文件夾組織視圖php
Gradle 相關文件結構java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
. ├── gradle │ └── wrapper //所使用的 Gradle 包裝器配置 ├── .gradle //所使用 Gradle 版本 │ └── 2.8 ├── AsInDepth.iml ├── app //app module │ ├── app.iml │ ├── build │ ├── build.gradle //app module 的 build.gradle │ ├── libs │ ├── proguard-rules.pro │ └── src ├── build.gradle //項目 build.gradle,一般配置項目全局配置,如 repositories 和 dependencies ├── gradle.properties //項目屬性文件,一般能夠放置一些常量 ├── gradlew //Gradle 包裝器可執行文件 ├── gradlew.bat //Gradle 包裝器可執行文件(Windows) ├── lib //lib module │ ├── build │ ├── build.gradle //lib module 的 build.gradle │ ├── lib.iml │ ├── libs │ ├── proguard-rules.pro │ └── src ├── local.properties //項目的本地屬性,一般是 sdk 所在位置 └── settings.gradle //項目整體設置,一般是配置項目中全部的 module |
Invalidate Cacheandroid
Multiple Language Editorgit
Gradle 相關功能介紹Gradle Viewgithub
命令行編程
1 | ./gradlew build |
Windows 下應該是 gradlew.bat build,下面均以 Mac 爲例,再也不贅述
1 | ./gradlew --help |
1 | ./gradlew build --info |
1 | ./gradlew -p app build |
Sync緩存
Build Variant服務器
Build Type閉包
Product Flavorapp
Build Variant = Build Type x Product Flavor
1 2 3 4 |
payDebug payRelease freeDebug freeRelease |
配置實例
Gradle 使用的倉庫
1 2 3 4 5 6 7 8 9 |
allprojects { repositories { jcenter() mavenCentral() maven { url 'file:///Users/myusername/repo/' } } } |
使用 jni 預編譯 .so 庫
1 2 3 4 5 6 7 8 9 10 11 |
. ├── AndroidManifest.xml ├── java │ └── io │ └── kvh ├── jniLibs │ ├── armeabi │ │ └── libweibosdkcore.so │ └── armeabi-v7a │ └── libweibosdkcore.so └── res |
1 2 3 4 5 6 7 8 |
├── build.gradle ├── libs │ ├── armeabi │ │ └── libweibosdkcore.so │ └── armeabi-v7a │ └── libweibosdkcore.so ├── proguard-rules.pro └── src |
1 2 3 4 5 6 |
android { sourceSets { main { jniLibs.srcDirs = ['libs'] } } |
升級 gradle 插件
1 2 3 4 5 6 7 8 |
buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.0.0-alpha5'//這裏 } } |
1 | distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.zip |
遇到的坑
下載依賴庫失敗,報 peer not found
1 2 3 |
jcenter { url "http://jcenter.bintray.com/" } |
下載不到特定的版本
1 | rm -rf ~/.gradle/caches/ |
注意這個操做可能會致使全部的遠程庫都須要從新下載,要三思後行。
庫重複衝突
1 2 |
UNEXPECTED TOP-LEVEL EXCEPTION multiple dex files define Landroid/support/annotation/AniRes |
1 2 3 |
compile ('com.bugtags.library:bugtags-lib:latest.integration') { exclude group: 'com.android.support', module: 'support-v4' } |
後續引言