Android應(yīng)用模塊基本配置元素
/**
* 構(gòu)建配置中的第一行
* 將Gradle的Android插件應(yīng)用到這個(gè)構(gòu)建中
* 并使Android塊可用來(lái)指定Android特定的構(gòu)建選項(xiàng)。
*/
apply plugin: 'com.android.application'
/**
* 這是你配置所有Android特有塊的地方
* 構(gòu)建選項(xiàng)
*/
android {
/**
* compileSdkVersion指定Gradle應(yīng)該使用的Android API級(jí)別
* 編譯你的應(yīng)用程序。這意味著你的應(yīng)用程序可以使用包含的API特性
*/
compileSdkVersion 28
/**
* buildToolsVersion指定SDK構(gòu)建工具的命令行版本的工具個(gè)編譯器
* Gradle使用他們來(lái)構(gòu)建你的應(yīng)用程序
* 您需要使用SDK管理器來(lái)下載構(gòu)建工具
* 此屬性是可選的,因?yàn)椴寮J(rèn)使用推薦的構(gòu)建工具版本
*/
buildToolsVersion "29.0.0"
/**
* defaultConfig塊封裝了所有構(gòu)建變體的默認(rèn)設(shè)置和條目
* 并且可以覆蓋main/AndroidManifest中的一些屬性
* 從構(gòu)建系統(tǒng)動(dòng)態(tài)地生成xml
* 您可以配置產(chǎn)品口味來(lái)覆蓋應(yīng)用程序不同版本的這些值。
*/
defaultConfig {
/**
* applicationId惟一地標(biāo)識(shí)要發(fā)布的包
* 但是,您的源代碼仍然應(yīng)該引用主/AndroidManifest.xml文件中的package屬性定義的包名。
*/
applicationId 'com.example.myapp'
// 定義你的app所能運(yùn)行的最低級(jí)別API
minSdkVersion 15
// 指定測(cè)試應(yīng)用的API級(jí)別
targetSdkVersion 28
// 指定你的應(yīng)用APP的版本號(hào)
versionCode 1
// 指定你的應(yīng)用的版本名字
versionName "1.0"
}
/**
* 你可以在buildTypes塊中配置多個(gè)構(gòu)建類(lèi)型,默認(rèn)情況下,
* 系統(tǒng)定義了兩個(gè)構(gòu)建類(lèi)型,debug和release
* 在默認(rèn)的情況下,debug的構(gòu)建類(lèi)型中是沒(méi)有顯示配置的
* 但是他包含調(diào)試工具,使用默認(rèn)的debug-key進(jìn)行簽名
* build type應(yīng)用了Proguard設(shè)置,默認(rèn)情況下沒(méi)有簽名
*/
buildTypes {
/**
* 默認(rèn)情況下,Android Studio使用minifyEnabled配置發(fā)布構(gòu)建類(lèi)型來(lái)啟用代碼壓縮,
* 并指定Proguard設(shè)置文件。
*/
release {
minifyEnabled true // 為版本構(gòu)建類(lèi)型啟用代碼資源壓縮,其實(shí)就是是否使用混淆
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
/**
* 在productFlavors塊中可以配置多個(gè)產(chǎn)品風(fēng)味
* 這允許你創(chuàng)建不同版本的應(yīng)用程序
* 用他們來(lái)覆蓋defalutConfig塊中的屬性設(shè)置
* 產(chǎn)品風(fēng)味是可選的,系統(tǒng)默認(rèn)不創(chuàng)建他們
*
* 這個(gè)示例創(chuàng)建了free和paid兩個(gè)productFlavors
* 每一個(gè)productFlavors都有他們自己特有的一個(gè)application ID
* 所以他們可以同時(shí)存在于Google Play Store或者一個(gè)Android設(shè)備中
*
* 如果你聲明一個(gè)productFlavors,那么你就必須要聲明口味維度(flavorDimension)
* 并為每一個(gè)productFlavors分配一個(gè)flavorDimensions
*/
flavorDimensions "tier"
productFlavors {
free {
dimension "tier"
applicationId 'com.example.myapp.free'
}
paid {
dimension "tier"
applicationId 'com.example.myapp.paid'
}
}
/**
* 在splits塊中,你可以配置不同的apk構(gòu)建
* 每個(gè)只包含支持的屏幕密度或代碼和資源ABI
* 您還需要配置您的構(gòu)建,以保證每一個(gè)APK都有一個(gè)自己不同的versionCode
*/
splits {
// 基于屏幕密度來(lái)構(gòu)建多個(gè)apk
density {
// 啟用或禁用構(gòu)建多個(gè)apk
enable false
// 當(dāng)構(gòu)建多個(gè)apk的時(shí)候排除這些配置
exclude "ldpi", "tvdpi", "xxxhdpi", "400dpi", "560dpi"
}
}
}
/**
* 指定模塊所需的依賴項(xiàng)
*/
dependencies {
implementation project(":lib")
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation fileTree(dir: 'libs', include: ['*.jar'])
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。