Android應(yīng)用程序的構(gòu)建過程
- 所有的資源文件打包編譯滋恬,在R文件中應(yīng)用;
- 將所有的java代碼打包編譯恢氯,通過dex工具編譯成dalvik字節(jié)碼;
- 將所有的文件打包成apk文件勋拟;
- 對apk進行debug或者release簽名
BuildConfig配置文件
Gradle中涉及到的相同的配置。例如不同的module的都要配置compileSdkVersion挂滓、buildToolsVersion等變量值,我們把這些公共的配置項稱為共享變量杂彭。為了方便統(tǒng)一管理吓揪,在項目根目錄的build.gradle中直接引入配置的build_config.gradle配置文件亲怠。
1.在config.gradle中配置統(tǒng)一變量(在根目錄下New -> File -> config.gradle)
//基礎(chǔ)配置
ext{
android = [
compileSdkVersion:25,
buildToolsVersion:26.0.0,
applicationId:com.example.demo,
minSdkVersion:19,
targetSdkVersion:25
...
]
}
//統(tǒng)一版本號控制配置柠辞,方便查看和修改
version = [
androidSupportSdkVersion:"27.1.1.",
retrofitVersion:"2.2.0",
rx2javaVersion : "2.1.12"
...
]
//使用version中定義的變量統(tǒng)一規(guī)范依賴的版本號
dependencies = [
//support
"appcompat-v7" : "com.android.support:appcompat-v7:${version.androidSupportSdkVersion}",
//Retrofit
"retrofit":"com.squareup.retrofit2:${version.retorfitVerson}",
//Rx2Java
"rx2java":"io.reactivex.rxjava2:rxjava:${version.rx2javaVersion}"
...
]
}
2.在build.gradle(Project:demo)中引入自定義的config.gradle
apply from:"config.gradle"
3.在build.gralde(Module:app)中使用共享變量
android{
compileSdkVersion rootProject.ext.android["compileSkdVersion"]
targetSkdVersion rootProject.ext.android["targetSdkVersion"]
}
dependencies{
compile fileTree(include:['*.jar'],dir:'libs')
compile rootProject.ext.dependencies.appcompat-v7
compile rootProject.ext.dependencies.retrofit
compile rootProject.ext.dependencies.rx2java
}