Android 友盟多渠道打包和统计
一:多渠道打包
第一步:登入友盟官网,点击产品,点击移动统计,点击进入新版,点击添加新应用
然后提交并获取AppKey
第二步:添加maven以来配置,在工程build.gradle配置脚本中buildscript和allprojects段中添加【友盟+】sdk 新maven仓库地址
buildscript { repositories { google() jcenter() // maven { url "http://maven.aliyun.com/nexus/content/repositories/releases" } maven { url 'https://dl.bintray.com/umsdk/release' } } dependencies { classpath 'com.android.tools.build:gradle:3.0.0' } } allprojects { repositories { google() jcenter() maven { url "http://maven.aliyun.com/nexus/content/repositories/releases" } maven { url 'https://dl.bintray.com/umsdk/release' } } } task clean(type: Delete) { delete rootProject.buildDir }
第三步:在工程App 对应build.gradle配置脚本dependencies段中添加基础组件库和统计SDK库依赖(在Android Studio 3.1及以上版本开发环境下,指定引用最新版本依赖写法”latest.integration”可能导致下载库超时,此时需要指定具体版本号。)
implementation 'com.umeng.sdk:analytics:latest.integration' implementation 'com.umeng.umsdk:common:latest.integration'
第四步:在AndroidManifest.xml里添加权限
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" />
第五步:添加混淆设置
# 友盟 -keep class com.umeng.** {*;} -keepclassmembers class * { public <init> (org.json.JSONObject); } -keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String); }
第六步:在AndroidManifest.xml里添加UMENG_APPKEY和UMENG_CHANNEL
<!-- 友盟多渠道打包 --> <meta-data android:name="UMENG_APPKEY" android:value="5dba79744ca357149c000a2e" /> <meta-data android:name="UMENG_CHANNEL" android:value="${UMENG_CHANNEL_VALUE}" />
第七步:在工程App 对应build.gradle里配置多渠道
productFlavors { ALi {} Baidu {} QiHoo360 {} Samsung {} HuaWei {} OPPO {} VIVO {} MI {} MeiZu {} Lenovo {} Tencent {} //遍历productFlavors productFlavors.all { //动态设置UMENG_CHANNEL_VALUE对应的值 flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name] } }
第八步:Make Project时出现All flavors must now belong to a named flavor dimension的错误
在stackoverflow上找到答案,必须至少有一个flavorDimensions添加到你的build.gradle文件里
https://stackoverflow.com/questions/54607967/how-do-i-resolve-this-productflavours-error
在build.gradle文件里的defaultConfig下添加
android { defaultConfig { .......... flavorDimensions "default" } }
第九步:打包 (打包时Flavors要出现你配置的渠道)
第十步:看结果
二:友盟统计
第一步:在前面的maven配置和引入依赖的环境下,我们在application.onCreate函数进行基础统计的初始化
@Override public void onCreate() { super.onCreate(); // SophixManager.getInstance().queryAndLoadNewPatch(); UMConfigure.init(HotFixApplication.this, Constant.deviceType, Constant.pushSecret); UMConfigure.setLogEnabled(true); }
第二步:添加代码(最好在所有activit的基类里添加)
@Override public void onResume() { super.onResume(); MobclickAgent.onResume(this); } @Override public void onPause() { super.onPause(); MobclickAgent.onPause(this); }
第三步:操作下app,然后友盟平台查看结果