android多渠道打包&&几个打包小技巧
来源:互联网 发布:搞笑网络段子精选 编辑:程序博客网 时间:2024/04/19 19:05
android多渠道打包
多渠道的意义
- 更详细的统计app被下载的途径
- 查看app在每个渠道的表现
- 有利于app的推广
使用友盟实现多渠道打包
多渠道打包的原理
- 为每个渠道的apk指定一个唯一的标识符
- android中通常在Manifest.xml中为其指定
- 也可以在代码中指定,但一般不用
使用友盟步骤
- 上友盟官网注册并创建新应用,获得Appkey
- 下载SDK并集成,推荐使用studio集成
- Manifest.xml中配置渠道号和Appkey
- 在moudle的build.gradle中编写多渠道脚本
1.集成友盟SDK
在build.gradle中添加依赖:
dependencies { compile 'com.umeng.analytics:analytics:latest.integration'}
2.Manifest.xml中配置渠道号和Appkey,以及相关权限
<manifest……><uses-sdk android:minSdkVersion="4"></uses-sdk><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/><uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /><uses-permission android:name="android.permission.INTERNET"/><uses-permission android:name="android.permission.READ_PHONE_STATE"/><application ……> …… <activity ……/> <!--友盟AppKey--> <meta-data android:name="UMENG_APPKEY" android:value="YOUR_APP_KEY" /> <!--渠道号--> <!--此处使用占位符,然后在build.gradle中动态的替换它--> <meta-data android:name="UMENG_CHANNEL" android:value="${UMENG_CHANNEL_VALUE}" /> </application> </manifest>
3.在moudle的build.gradle中编写多渠道脚本
apply plugin: 'com.android.application'android { compileSdkVersion 23 buildToolsVersion "23.0.3" defaultConfig { applicationId "com.shaw.testapp" minSdkVersion 9 targetSdkVersion 23 versionCode 100 versionName "1.0.0" multiDexEnabled true//突破应用方法数65535的限制 manifestPlaceholders = [UMENG_CHANNEL_VALUE:"umeng"]//设置默认的渠道名 } //添加我们的签名文件配置 signingConfigs{ //为我们的release包添加签名文件配置 myConfigs { storeFile file("key.jks")// storePassword "shaw666" keyAlias "shaw" keyPassword "shaw666" } } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' //添加我们的签名文件配置 signingConfig signingConfigs.myConfigs } } //多渠道的支持 productFlavors{ xiaomi{} wandoujia{} } //遍历渠道,将每个渠道的name替换到UMENG_CHANNEL_VALUE中 productFlavors.all{ flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name] }}dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:23.2.1' //添加友盟统计库依赖 compile 'com.umeng.analytics:analytics:latest.integration'}
4.使用命令行打包
在Terminal中使用命令gradlew assembleRelease自动打出所有的渠道包
gradlew assembleDebug //所有平台的debug包
gradlew assemblewandoujiaRelease //只打wandoujia的Release包
关于打包的其他技巧
1.修改release包的输出文件名
buildTypes { release { …… applicationVariants.all{ variant -> variant.outputs.each{ output -> def outFile = output.outputFile if (outFile != null && outFile.name.endsWith(".apk")){ def fileName = defaultConfig.applicationId + '_v' + defaultConfig.versionName + '_' + variant.productFlavors[0].name + '.apk' output.outputFile = new File(outFile.parent, fileName); } } } } }
效果如下:
2.在每个渠道中的资源的变动
//多渠道的支持 productFlavors{ xiaomi{ resValue "string", "app_name", "xiaomi_app" } wandoujia{ resValue "string", "app_name", "wandoujia_app" } }
先定义,再在代码使用,最后在打包时,将之前定义的value替换掉。(需要将之前定义的value删除,否则会报错)
3.在同一设备上同时安装多个不同功能点的app
//多渠道的支持 productFlavors{ okhttp{ //给defaultConfig.applicationId添加后缀(不会影响程序中获取的包名) applicationIdSuffix"okhttp" resValue "string", "app_name", "okhttp_app" } jpush{ applicationIdSuffix"jpush" resValue "string", "app_name", "jpush_app" } }
效果如下:
0 0
- android多渠道打包&&几个打包小技巧
- Android多渠道打包(一):基础多渠道打包
- Android多渠道打包(四):360多渠道打包
- Android多渠道打包(五):360多渠道打包+
- android 多渠道自动打包
- android apk多渠道打包
- Android多渠道打包APK
- android 多渠道打包
- Android 多渠道自动打包
- android应用多渠道打包
- Android Ant 多渠道打包
- Android多渠道Ant打包
- android多渠道打包
- Android多渠道打包工具
- android ant 多渠道打包
- Android studio 多渠道打包
- Android Studio多渠道打包
- Android studio 多渠道打包
- fitsSystemWindows实践
- 应用8255A控制LED小灯开闭(附代码注释)
- 共享经济向共产经济转变
- 【CSS基础 】动画animation
- GPU虚拟化的评价标准与实现策略
- android多渠道打包&&几个打包小技巧
- 如何在软件开发过程中合理的设计函数来解决实际问题
- 使用SecureCRT软件在客户端与服务器之间进行文件传输(不能传输文件夹)
- 消除文法左递归-编译原理
- Zookeeper概念 & 数据结构
- 对极几何原理
- 关于Const及强制转换
- Mybatis学习总结
- 23种设计模式总结