浅谈Android多渠道打包
2017-01-09 10:46
323 查看
多渠道简介
渠道是国内Android平台特有的名词,由于google play无法使用,因此出现了众多的市场。所以我们可以理解为一个渠道即代表一个应用市场。所以当我们研发的app应用需要提供多种下载途径,就会用到多渠道。例如:官网下载,豌豆荚下载,应用宝下载等。通过多渠道,可以更详尽的统计app被下载的途径,可以查看app在每个渠道上的表现,可以更有利于我们的app推广。多渠道打包的实现
在多渠道打包中,本人习惯用友盟来进行统计等业务需求。那么下面让我来详细的讲解一下使用友盟的步骤:1.下载sdk并集成。
2.在manifest.xml中配置渠道号和Appkey。
3.在应用module中的build.gradle中编写多渠道脚本。(大家如果有需求的话,可以去学习一个这个脚本,本文中只对需求需要的脚本语言进行编写)
首先让我们去友盟官网获取唯一的appkay
然后在你项目中app下的build.gradle中dependencies中添加以下代码进行sdk集成:
compile 'com.umeng.analytics:analytics:latest.integration'
下面我们需要对manifest.xml进行编写了:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.liuzhuang.myipctext"> //切记要添加权限 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.INTERNET" /> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> //value为之前得到的唯一appkey <meta-data android:value="5850a2829f06fd5b05001ba3" android:name="UMENG_APPKEY"/> //value为Channel ID(渠道号),此时让我们用占位符来代替 <meta-data android:value="${UMENG_CHANNEL_VALUE}" android:name="UMENG_CHANNEL"/> </application> </manifest>
下面进行最重要也是最复杂的一步,就是在build.gradle中编写主要的脚本了:
android { compileSdkVersion 24 buildToolsVersion "25.0.0" defaultConfig { applicationId "com.example.liuzhuang.myipctext" minSdkVersion 18 targetSdkVersion 24 versionCode 1 versionName "1.0" multiDexEnabled true //突破应用方法数65535的一个限制 manifestPlaceholders = [UMENG_CHANNEL_VALUE:"umeng"]//添加渠道,默认是友盟渠道 } productFlavors{ //可以直接如注释掉的一样写,但是为了方便,我定义了productFlavors.all来循环,只需要在productFlavors中写:渠道名{}就可以了。 xiaomi{ // manifestPlaceholders=[UMENG_CHANNEL_VALUE: "xiaomi"] } wandoujia{ // manifestPlaceholders=[UMENG_CHANNEL_VALUE: "wandoujia"] } } productFlavors.all{ flavor -> flavor.manifestPlaceholders=[UMENG_CHANNEL_VALUE: name] } //添加签名文件位置 signingConfigs { debug {} //这里是签名的信息,这里就不多介绍了 release { storeFile file("appkey.jks") storePassword "123456" keyAlias "nihao" keyPassword "123456" } } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' //指定去执行signingConfigs的release signingConfig signingConfigs.release //指定我们release包的输出文件名就是我们的渠道名字 applicationVariants.all{ variant -> variant.outputs.each{ output -> def outFile=output.outputFile if (outFile!=null&&outFile.name.endsWith(".apk")){ def fileName="${variant.productFlavors[0].name}"+".apk" output.outputFile = new File(outFile.parent, fileName); } } } } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) 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:24.2.1' compile 'com.umeng.analytics:analytics:latest.integration' testCompile 'junit:junit:4.12' }
到此时,基本我们的准备工作已经完成,下面就是检验成果的时候了,要实现多渠道打包的最后一步,我们还需要控制台,下面是一些打包的语句:
./gradlew assembleRelease //去自动的打出所有渠道的包 ./gradlew assemblewandoujiaRelease //打单独指定的包
这是最基础的打包方式,如果你使用的是studio,那么它已经为你提供了一个快捷的方法
在Gradle中Tasks下的build中找到相应的语句,然后直接点击运行就可以了。是不是简单了不少呢。
总结
到这里,我们的多渠道打包就已经有完成了。当然了,多渠道打包并不仅仅这一种第三方,还有百度多渠道打包等,只是本人习惯用友盟而已,如果猿友们有别的第三方需求不明白,可以给我留言。最后谢谢审阅。希望我们共同进步。相关文章推荐
- 浅谈android多渠道打包和隐藏签名文件
- Android多渠道打包工具
- 自制的android多渠道应用打包工具--RyApkTool(1)
- Android中利用ant进行多渠道循环批量打包(一)
- Android_Ant_多渠道打包/一键自动编译
- Android App自动化之使用Ant编译项目多渠道打包
- 脚本ANT自动打包Android应用(方便多渠道发布)
- Android 自动编译、打包生成apk文件 4 - 多渠道批量打包
- Android中利用ant进行多渠道循环批量打包(二)
- Android中利用ant进行多渠道循环批量打包(一)
- Android apk多渠道自动打包 - 不提供工具,只提供源码
- 自制的android多渠道应用打包工具--RyApkTool(2)
- Android多渠道Ant打包详细
- Android_Ant_多渠道打包/一键自动编译 ——Mac lion 10.8.2下
- Android中利用ant进行多渠道循环批量打包(二)
- [转]Android学习系列(31)--App自动化之使用Ant编译项目多渠道打包
- android 多渠道打包
- android 多渠道打包
- android Ant 批量多渠道打包!
- Android中利用ant进行多渠道循环批量打包