Android(安卓)studio3.x 多渠道打包apk
16lz
2021-12-04
1、修改AndroidManifest.xml
application 节点中添加渠道配置。
2、修改module下build.gradle
gradle 添加 flavorDimensions 属性,用来控制多个版本的代码和资源,缺失会报错。
android { ... defaultConfig { ... flavorDimensions "versionCode" //版本规格,写死 } ... productFlavors { yingyongbao {} xiaomi {} } productFlavors.all { flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name] } ...}
3、自定义打包APK名称
buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' // 自定义打包输出配置 applicationVariants.all { variant -> variant.outputs.all { output -> outputFileName = "gank_${defaultConfig.versionName}_${variant.productFlavors[0].name}.apk" } } } }
4、配置签名
android { ... //签名 signingConfigs { release { storeFile file('E:\\testkey.jks') //签名文件 storePassword "test" keyAlias "testkey" keyPassword "test" //签名密码 } debug { storeFile file('E:\\testkey.jks') storePassword 'test' keyAlias = 'testkey' keyPassword 'test' } } ...}
5、获取渠道号信息
//获取渠道号 private static String getChannel(Context context) { try { PackageManager pm = context.getPackageManager(); ApplicationInfo appInfo = pm.getApplicationInfo(context.getPackageName(), PackageManager.GET_META_DATA); return appInfo.metaData.getString("UMENG_CHANNEL"); } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); } return ""; }
更多相关文章
- NPM 和webpack 的基础使用
- Android(安卓)命令行编译、打包生成apk文件
- AIR Native Extension的使用(Android)一 : 打包ane
- Ionic 运行报错No resource identifier found for attribute 'ap
- 使用sencha cmd创建android应用
- Gradle多渠道打包
- android:制作system.img(yaffs2)镜像
- Android(安卓)编程下通过 zipalign 对 APK 文件进行优化
- 安卓9.0 http请求数据失败解决办法