android友盟多渠道打包,超详细的那种!
来源:互联网 发布:linux tomcat线程挂起 编辑:程序博客网 时间:2024/05/22 17:25
app要上线,需要进行多渠道打包,关于多渠道打包的概念以及理由,我会简单的讲一下我的个人理解。打包的过程中可能会遇到的一些问题,可能看到我这篇文章的开发者也许也会遇到这样的问题吧。所以我这里就单纯的讲解如何使用友盟进行多渠道打包了。
什么是多渠道?为什么要多渠道打包?
多渠道就是你项目完成后,需要发布到各个不同的平台,你需要批量生成不同名称的apk文件,同时方便后台检测你的app从哪个平台下载安装的,有利于分析app的安装情况,通过这些分析会让你的app的运营之路越来越好。理解了以上两个问题后,接下来就是如何利用友盟来进行apk的多渠道打包了
一、获取友盟的SDK
首先,访问友盟的官网,http://www.umeng.com/(百度第一条就可以看到),进行用户注册什么的。注册完成后,进入个人中心,点击U-App。
接下来就会进入到下面的页面,然后点击立即使用,旁边有demo和SDK文档,觉得我将的不够详细的小伙伴可以参考一下demo和SDK,那里讲的也许比我好。
点击添加新应用,填好相关信息后,提交后获取一个appkey。填写的信息并不是很重要,跟你的app并无多大关系,描述得差不多就可以了,重要的是提交申请得到的appkey,那才是至关重要的。
嗯,到这里关于友盟的注册也差不多了,开发者们可以到友盟的开发者中心去查看相关的sdk文档,接下来就是将在android studio中的配置了(不要问我Eclipse怎么搞,我不用eclipse的)
二、android studio中配置友盟。
第一步,在gradle中添加友盟的依赖
dependencies { compile 'com.umeng.analytics:analytics:latest.integration'}
第二步、在androidManifest添加两条meta以及一些权限。
<application android:allowBackup="true" android:icon="@drawable/shell_sf" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/Theme.AppCompat.Light.NoActionBar"> <meta-data android:name="UMENG_APPKEY" android:value="58d3084f07fe6541cc001ab0"></meta-data> <meta-data android:name="UMENT_CHANNEL" android:value="${UMENG_CHANNEL_VALUE}"></meta-data>
以上两条meta的name属性照着写就可以了,appkey写的是刚刚我们从友盟获取的appkey。第二条meta的value值也可以照着写。
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission> <uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>
<uses-permission android:name="android.permission.INTERNET" />
好了,关于在AndroidManifest中的配置,就这些了。接下来就是配置app的gradle文件。
第三步、配置app的gradle文件
1.在defaultConfig块下添加两行代码,如下所示
defaultConfig {//ChumFuchiu applicationId "com.ustb.shellbox.shelllife" minSdkVersion 14 targetSdkVersion 23 versionCode 1 versionName "1.0" multiDexEnabled true manifestPlaceholders=[UMENG_CHANNAL:"umeng"] }
2.在跟defaultConfig下添加如下代码块。有人可能会问这个是什么,这个就是你打包apk的签名文件,都是你自己设定的。怎么生成这个签名文件呢?Build->Generate signed APK。在弹出来的对话框中自己设置一下一下就好了。
signingConfigs{ release{ storeFile file("*******.jks") storePassword "******" keyAlias "xxxxxx" keyPassword "******" } }
3.在buildTypes中的release中添加如下代码。
buildTypes { release { //不显示Log buildConfigField "boolean","LOG_DEBUG","false" //不启用混淆代码的功能,这里可以设置为true,为了防止反编译的,其实也没有多大用,加壳加固得用第三方,想去了解的自行去了结就好了 minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' //以下被注释掉的代码本来是用来移除无用的资源文件的,用于减小apk的体积倒是一个不错的办法,但是有这一句话,多渠道打包就会包找不到制定资源文件 //的错误,这个也是我后来发现的,一直找不出来,怕小伙伴们遇到这个坑,所以还是贴出来填坑。// shrinkResources true multiDexEnabled true signingConfig signingConfigs.release } }
4.创建一个productFlavors代码块,与buildTypes同级。这里其实还有另一种写法,但是代码我就不贴了,这样我觉得反倒觉得简洁明了。这里值得注意的是像91、360这样以数字开头的,前面要加上下划线,不然可能会GG。
productFlavors{ wandoujia { manifestPlaceholders = [UMENG_CHANNEL_VALUE: "wandoujia"] } _91{ manifestPlaceholders = [UMENG_CHANNEL_VALUE: "_91"] } _360{ manifestPlaceholders = [UMENG_CHANNEL_VALUE: "_360"] } google{ manifestPlaceholders = [UMENG_CHANNEL_VALUE: "google"] } kuan{ manifestPlaceholders = [UMENG_CHANNEL_VALUE: "kuan"] } }
5.最后就是添加下面这一行代码块了,这代码块的作用是生成apk的名字,他会按照注解中的信息生成相对应的apk名称,有能力的开发者可以自己再加上时间日期或者别的东西什么的,不会的照着抄就ok了。
applicationVariants.all { variant -> variant.outputs.each { output -> def outputFile = output.outputFile if (variant.buildType.name.equals('release')) { //生成apk名字的格式:Channel1.0_****.apk //可自定义自己想要生成的格式 def fileName = "Channel${defaultConfig.versionName} _${variant.productFlavors[0].name}.apk" output.outputFile = new File(outputFile.parent, fileName) } } }
6.以上操作结束之后,可以同步一下看看有没有什么错误,有错误就及时修改。
第四步、打包批量生成apk。
利用Build->Generate signed APK生成批量的apk就好了,签名文件之前已经生成过了,直接拿来用就可以了。接下来就是图形界面操作,点击next-finish完成就可以了。不过在finish的那一步,会有一个炫着V1-V2的选项,看你自己个人需求,如果不适配7.0以上的话,V2是不用勾选的,单纯勾选V1就可以了。
- android友盟多渠道打包,超详细的那种!
- Android多渠道打包(二):友盟多渠道打包
- Android多渠道打包汇总(五)—— 友盟的多渠道打包方式
- Android studio 多渠道打包(超简洁版)
- Android studio 多渠道打包(超简洁版)
- Android studio 多渠道打包(超简洁版)
- Android studio 多渠道打包(超简洁版)
- Android studio 多渠道打包(超简洁版)
- Android studio 多渠道打包(超简洁版)
- Android studio 多渠道打包(超简洁版)
- android的多渠道打包
- 通过友盟实现Android的多渠道打包
- 【Android 进阶】友盟的多渠道打包方式
- Android 基于友盟统计的多渠道打包APK
- android studio-友盟多渠道打包方式
- android studio 使用友盟多渠道打包
- Android Studio 友盟多渠道打包
- Android 友盟多渠道快速打包
- Linux 命令格式
- 求连通分量(DFS)
- PHP-CPP 安装
- BIM特点及格式文件说明
- STM and MVCC considerations
- android友盟多渠道打包,超详细的那种!
- jQuery布局插件UI Layout简介及使用方法
- ROS常用命令
- C++避免分配多个小内存
- mapper配置文件中非空判断的重要性
- C++ Tips
- 输入父集,求出所有子集.
- 使用蚁群算法(ACO)、遗传算法(GA)、霍普菲尔德网络(Hopfield)解决旅行商问题(TSP)
- 探索并发编程(五)------Java多线程开发技巧