浅谈Android多渠道打包
来源:互联网 发布:js怎么定义数组 编辑:程序博客网 时间:2024/06/02 14:55
注:如转载,请标明出处!
多渠道简介
渠道是国内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'
<?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中找到相应的语句,然后直接点击运行就可以了。是不是简单了不少呢。
总结
到这里,我们的多渠道打包就已经有完成了。当然了,多渠道打包并不仅仅这一种第三方,还有百度多渠道打包等,只是本人习惯用友盟而已,如果猿友们有别的第三方需求不明白,可以给我留言。最后谢谢审阅。希望我们共同进步。
1 0
- 浅谈Android多渠道打包
- 浅谈下Android的多渠道打包
- 浅谈Android下的多渠道打包(补丁版)
- Android多渠道打包(一):基础多渠道打包
- Android多渠道打包(四):360多渠道打包
- Android多渠道打包(五):360多渠道打包+
- android 多渠道自动打包
- android apk多渠道打包
- Android多渠道打包APK
- android 多渠道打包
- Android 多渠道自动打包
- android应用多渠道打包
- Android Ant 多渠道打包
- Android多渠道Ant打包
- android多渠道打包
- Android多渠道打包工具
- android ant 多渠道打包
- Android studio 多渠道打包
- wps文档中添加并排的表格
- Python发送邮件
- (HDU 5744)Keep On Movin <回文数,思维水题> 2016 Multi-University Training Contest 2
- 简单的字符乱码处理
- arcgis for ios 去掉定位的闪烁光圈
- 浅谈Android多渠道打包
- 分享一个完整的Mybatis分页解决方案
- 常用socket函数
- webview适配不同大小的网页
- Java8新特性 - Optional类
- windows 服务器80端口被占用
- JavaScript学习(三)之引用类型
- 十分钟搞清字符集和字符编码
- 转载!!!relloc()函数解析