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' } |
后续引言