Android studio 打包及优化

    1. Android studio 打包
    1. Android Studio 引用第三方库(Jar)
    1. Gradle多渠道打包
    1. 美团多渠道打包
    1. 修改release包的输出文件名
    1. 在同一设备上同时安装多个不同功能点的app

1. Android studio 打包

  • 1.打出一个签名的apk
Android studio 打包及优化_第1张图片
TMj7Dc5.png
  • 2.选择签名文件
Android studio 打包及优化_第2张图片
5g0oQqD.png
  • 3.创建一个新的签名文件
Android studio 打包及优化_第3张图片
FKznbLt.png
  • 4.完成签名文件配置
Android studio 打包及优化_第4张图片
AwcshG5.png
  • 5.选择APK的版本和存储路径
Android studio 打包及优化_第5张图片
dYvKB68.png

2. Android Studio 引用第三方库(Jar)

Android studio 打包及优化_第6张图片
1.PNG
Android studio 打包及优化_第7张图片
2.PNG
Android studio 打包及优化_第8张图片
3.PNG
Android studio 打包及优化_第9张图片
4.PNG
Android studio 打包及优化_第10张图片
5.PNG
Android studio 打包及优化_第11张图片
6.PNG
Android studio 打包及优化_第12张图片
7.PNG
Android studio 打包及优化_第13张图片
8.PNG

3. Gradle多渠道打包

Android studio 打包及优化_第14张图片
Paste_Image.png
Android studio 打包及优化_第15张图片
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. 美团多渠道打包

Android studio 打包及优化_第16张图片
Paste_Image.png
Android studio 打包及优化_第17张图片
Paste_Image.png
Android studio 打包及优化_第18张图片
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"
        }
    

你可能感兴趣的:(Android studio 打包及优化)