配置Gradlejava
android { signingConfigs { release { keyAlias '***' keyPassword '***' storeFile file('../key/***.jks') storePassword '***' } dev { keyAlias '***' keyPassword '***' storeFile file('../key/***.jks') storePassword '***' } } compileSdkVersion 23 buildToolsVersion "23.0.2" defaultConfig { applicationId "com.***.***" minSdkVersion 15 targetSdkVersion 22 versionCode 1 versionName "1.0.1" } buildTypes { release { //日誌 buildConfigField "boolean", "LOG_DEBUG", "true" //混淆 minifyEnabled true //Zipalign優化 zipAlignEnabled true //移除無用的resource文件 shrinkResources true //簽名 signingConfig signingConfigs.release //的混淆文件 proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } debug { buildConfigField "boolean", "LOG_DEBUG", "true" minifyEnabled false zipAlignEnabled false shrinkResources false signingConfig signingConfigs.dev proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } productFlavors { dev { applicationId "com.***.***.test" versionName "1.0.2" } product { applicationId "com.***.cmat" versionName "1.0.2" } } }
目錄結構node
--app ----src ------dev --------java ----------Config.java --------res --------AndroidManifest.xml ------main --------java ----------Config.java(打包時刪除) --------res --------AndroidManifest.xml ------product --------java ----------Config.java --------res --------AndroidManifest.xml ----build.gradle --key
打包注意android
1)打包時刪除main目錄下的Config.java文件 2)AndroidManifest.xml文件中的要替換的配置須要設置tools:node="replace"屬性
Android Studio打包app
1)種:Build Variants 中選擇相應的Flavor,運行Run 'app'ide
2)種:Gradle下的assembleRelease或其餘gradle
參考優化
Manifest Merger文件設置:http://tools.android.com/tech-docs/new-build-system/user-guide/manifest-merger#TOC-tools:node-markers