最近学习了多渠道打包,此博客用以记录学习的内容 多渠道打包,渠道可以理解为应用市场,多渠道打包就是生成支持各种应用市场的apk文件,因为安卓的应用市场很多,所以这个知识也是很重要的 ·············································· 开始,我们使用友盟的多渠道打包sdk 首先把步骤列出
那么第一步 百度搜索友盟,注册账号 找到U-APP应用统计,点击进入 进入后,点击立即使用
进入后,左下角会有一个添加新应用
打开android stuido新建一个安卓项目 刚好今天新建了一个broadcastreceiver demo就将就着用吧 然后点击添加新应用 下面是我填写好后的信息
点击提交,获取appkey
这个时候完成了我们的第一步 获取到了我们的应用对应的appkey
接下来添加友盟的统计库 android studio可以直接使用代码添加,eclipse的可以去友盟官网看一下导入方法,都是很简单的 在app的build的配置文件中dependencies下添加
compile 'com.umeng.analytics:analytics:latest.integration'如果添加失败了 就在PRoject的build中添加
allprojects { repositories { mavenCentral() }}这是添加maven库,默认的只有jcenter库,有的时候可能会有一些奇怪的原因导致你在jcenter库中没有下载下来,
首先添加权限 添加在applica标签的外面
<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"/>接下来添加友盟对应的meta-data
<meta-data android:value="YOUR_APP_KEY" android:name="UMENG_APPKEY"/><meta-data android:value="Channel ID" android:name="UMENG_CHANNEL"/>添加在application标签的里面 对齐进行修改
<meta-data android:name="YOUR_APP_KEY" android:value="58b3959875ca351577000840"/> <meta-data android:name="UMENG_CHANNEL" android:value="${UMENG_CHANNEL_NAME}"/>因为我们添加的是多渠道打包,所以需要动态的配置,所以这里使用占位符$,这样方便在后续的操作中进行修改
首先生成签名文件,需要debug包的也可以配置debug配置 点击build,在点击红色圈选中的选项
点击creat new
接下来大家自己生成俩个,一个的buildtype选择debug一个选择release就行了 然后得到了俩个jks文件
接下来把签名文件配置到我们的APP项目中 点击
将debug和release都配置好 进入APP的build中 会发现帮我们默认生成了很多东西 比如 ··· signingConfigs { debug { keyAlias ‘china’ keyPassWord ‘123456’ storeFile file(‘D:/work/debug.jks’) storePassword ‘123456’ } release { keyAlias ‘china’ keyPassword ‘123456’ storeFile file(‘D:/work/release.jks’) storePassword ‘123456’ } } ···
接下来继续对app的build进行修改 修改如下,新添加的代码行我都标上了注释
apply plugin: 'com.android.application'android { compileSdkVersion 25 buildToolsVersion "25.0.1" defaultConfig { applicationId "com.anlaiye.swt.broadcastreceiver" minSdkVersion 14 targetSdkVersion 25 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" multiDexEnabled true //突破应用方法数为65535的限制 manifestPlaceholders = [UMENG_CHANNEL_NAME: "UMENG"] //为meta_data添加placeholder } //导入jks文件后会自动生成 signingConfigs { debug { keyAlias 'china' keyPassword '123456' storeFile file('D:/work/debug.jks') storePassword '123456' } release { keyAlias 'china' keyPassword '123456' storeFile file('D:/work/release.jks') storePassword '123456' } } //这里添加release,和debug的指向 buildTypes { release { minifyEnabled false //这里是代码混淆,展示不需要,默认false就行 signingConfig signingConfigs.release //添加release签名 proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } debug { minifyEnabled false signingConfig signingConfigs.debug //添加debug签名 proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } productFlavors { //在这里添加你所有需要打包的渠道 xiaomi {} //xiaomi渠道 meizu {} //魅族 //遍历上面填写的渠道修改为对应的name productFlavors.all { flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name] } } //对生成的apk进行一些简单的配置 applicationVariants.all { variant -> variant.outputs.each { output -> def outputFile = output.outputFile def buildType if (variant.buildType.name.equals('release')) { buildType = "release" } else if (variant.buildType.name.equals('debug')) { buildType = "debug" } if (outputFile != null && outputFile.name.endsWith('.apk')) { // 输出apk名称为我们自己配置的名字+.apk //def fileName = "Anlaiye-v${defaultConfig.versionName}-${getDate()}-${variant.productFlavors[0].name}-${buildType}.apk" def fileName = "Sunwentao-v${defaultConfig.versionName}-${variant.productFlavors[0].name}-${buildType}.apk" output.outputFile = new File(outputFile.parent + buildType, fileName) } } }}dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) compile 'com.android.support:appcompat-v7:25.0.1' testCompile 'junit:junit:4.12' compile 'com.umeng.analytics:analytics:latest.integration'}mac打包命令 ./dradlew assembleRelease windows下打包命令 gradlew assembleRelease
输入后开始打包
打包成功 在project视图下 找到build目录下面有个release 可以看到生成了xiaomi和魅族的release包 同时生成的名字也是我们自定义设置的名字 到这里基本上就都已经结束了 同时这里要说一个坑 就是signingConfigs 要放到buildtype上面,不然会报错 ,很奇怪的东西 同时360渠道的渠道包是需要下载360加固助手进行加固才能上到应用市场的 好了 祝大家打包愉快
新闻热点
疑难解答