一、简介
友盟+是阿里系的一员,友盟+ 在很多方面都遥遥领先,友盟统计、运营等,现在介绍的是友盟下的统计和多渠道打包,打包方式总共是两种,但万变不离其宗,主要介绍简单版本吧!
二、使用
1、注册
这里不做赘述,按步就班的注册帐号,实名认证。
2、申请appkey
实名认证之后,创建自己的应用,在后台即可看见该应用的appkey(项目中用到)
3、下载sdk
实名认证之后,将android对应版本的sdk集成到应用中,eclipse中导入,android studio 使用compile的方法集成到工程中
dependencies {
compile'com.umeng.analytics:analytics:latest.integration'
}
有时无法正常集成,那可能需要添加如下代码 :
allprojects {
repositories {
mavenCentral()
}
}
4、添加权限(谁能告诉我Manifest文件中添加的权限复制至此居然无响应!)
<uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permissionandroid:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permissionandroid:name="android.permission.INTERNET"/>
<uses-permissionandroid:name="android.permission.READ_PHONE_STATE"/>
5、meta添加在<application></appliction>之间
<meta-dataandroid:value="YOUR_APP_KEY(填写申请的appkey)"android:name="UMENG_APPKEY"/>
<meta-dataandroid:value="Channel ID(多渠道打包关键处)"android:name="UMENG_CHANNEL"/>
6、统计
分别在首页(闪屏页或者app主页)的Activity的onResume以及onPause添加如下统计代码,fragment中暂未涉及:
public void onResume(){
super.onResume();
MobclickAgent.onResume(this);}
public void onPause(){
super.onPause();
MobclickAgent.onPause(this);
}
在友盟统计文档中提到这一点:
确保在所有的Activity中都调用 MobclickAgent.onResume() 和MobclickAgent.onPause()方法,这两个调用将不会阻塞应用程序的主线程,也不会影响应用程序的性能。
所以最好每个activity中确保添加上以上的代码。统计基本完成。
7、多渠道打包
在application节点添加的mata中有一个UMENG_CHANNEL,其值value是渠道的名称,当我们打包时若想要一次性产生多个渠道包,可使用${UMENG_CHANNEL_VALUE}来代替具体值,在module下的gradle文件中添加以下代码:
productFlavors {
wandoujia {}
baidu {}
c360 {}
uc {}
productFlavors.all { flavor ->
flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
}}
这表示需要打四个渠道包时,需要添加以下两段代码:
signingConfigs{
debug{}
release{
storeFile file('密钥名.jks')
storePassword '密码'
keyAlias '密钥别名'
keyPassword '密码'
}}
上面表示打包使用到的签名文件相关内容配置,下面表示签名配置用到上面代码的配置
buildTypes {
release {
minifyEnabled false//不开启混淆
proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro'
signingConfig signingConfigs.release
}}
批量打包
gradlew assembleRelease
8、混淆的注意事项
若开启混淆,则应该正确配置proguard-rules.pro文件
不然会打包失败,并报错:
Execution failed for task ':app:transformClassesAndResourcesWithProguardForRelease'.