Android studio 打包及优化
2017-06-08 本文已影响81人
我是你森哥哥
- Android studio 打包
- Android Studio 引用第三方库(Jar)
- Gradle多渠道打包
- 美团多渠道打包
- 修改release包的输出文件名
- 在同一设备上同时安装多个不同功能点的app
1. Android studio 打包
- 1.打出一个签名的apk
- 2.选择签名文件
- 3.创建一个新的签名文件
- 4.完成签名文件配置
- 5.选择APK的版本和存储路径
2. Android Studio 引用第三方库(Jar)
1.PNG 2.PNG 3.PNG 4.PNG 5.PNG 6.PNG 7.PNG 8.PNG3. Gradle多渠道打包
Paste_Image.png Paste_Image.png- productFlavors 另一种简便写法
productFlavors {
百度{}
华为{}
应用宝{}
360{}
productFlavors.all { flavor ->
flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
}
}
- 使用命令行打包
在Terminal中使用命令gradlew assembleRelease自动打出所有的渠道包
gradlew assembleDebug //所有平台的debug包
gradlew assemblewandoujiaRelease //只打wandoujia的Release包
- 关于gradle打包的大神博客:
:http://www.cnblogs.com/0616--ataozhijia/p/4203997.html
:http://blog.csdn.net/xiao_ziqiang/article/details/53967133
4. 美团多渠道打包
Paste_Image.png Paste_Image.png Paste_Image.png关于美团多渠道打包:http://blog.csdn.net/wlwenming/article/details/51699457
使用新版美团多渠道打包的正确姿势 :http://blog.csdn.net/wangliblog/article/details/59547685
5. 修改release包的输出文件名
buildTypes {
release {
minifyEnabled true //代码瘦身
// shrinkResources true //资源文件瘦身
// proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' //代码混淆
//添加我们的签名文件配置
signingConfig signingConfigs.release
applicationVariants.all { variant ->
variant.outputs.each { output ->
def outFile = output.outputFile
if (outFile != null && outFile.name.endsWith(".apk")) {
// + '_' + variant.productFlavors[0].name defaultConfig.applicationId
def fileName = 'xingchou_v' + defaultConfig.versionName + '.apk'
output.outputFile = new File(outFile.parent, fileName);
}
}
}
}
debug {
signingConfig signingConfigs.release
applicationVariants.all { variant ->
variant.outputs.each { output ->
def outFile = output.outputFile
if (outFile != null && outFile.name.endsWith(".apk")) {
// + '_' + variant.productFlavors[0].name
def fileName = 'xingchou_v' + defaultConfig.versionName + '.apk'
output.outputFile = new File(outFile.parent, fileName);
}
}
}
}
}
6. 在同一设备上同时安装多个不同功能点的app
//多渠道的支持
productFlavors{
okhttp{
//给defaultConfig.applicationId添加后缀(不会影响程序中获取的包名)
applicationIdSuffix"okhttp"
resValue "string", "app_name", "okhttp_app"
}
jpush{
applicationIdSuffix"jpush"
resValue "string", "app_name", "jpush_app"
}