前言
工作随笔,方便记起
1.集成友盟移动统计SDK
2.AndroidManifest文件中引入友盟的APPKEY(记得添加相应权限)
<!-- 友盟APPKEY -->
<meta-data
android:name="UMENG_APPKEY"
android:value="00000000000000000000000" />
3.AndroidManifest文件中设置渠道号
<!-- 渠道号 -->
<meta-data
android:name="UMENG_CHANNEL"
android:value="${UMENG_CHANNEL_VALUE}" />
4.在工程Module的build.gradle文件中
apply plugin: 'com.android.application'
android {
compileSdkVersion COMPILE_SDK_VERSION
buildToolsVersion BUILD_TOOLS_VERSION
defaultConfig {
applicationId "com.sir.app.test"
minSdkVersion MIN_SDK_VERSION
targetSdkVersion TARGET_SDK_VERSION
versionCode 0
versionName "1.0.0"
}
//添加签名文件配置(将signingConfigs{}放到了buildType{}的后面,导致编译的时候无法找到)
signingConfigs {
debug {
try {
storeFile file("D:\\test.jks")
storePassword STORE_PASSWORD
keyAlias KEY_ALIAS
keyPassword KEY_PASSWORD
} catch (ex) {
throw new InvalidUserDataException("You should define KEYSTORE_PASSWORD and KEY_PASSWORD in gradle.properties.")
}
}
release {
try {
v2SigningEnabled false
storeFile file("D:\\test.jks")
storePassword STORE_PASSWORD
keyAlias KEY_ALIAS
keyPassword KEY_PASSWORD
} catch (ex) {
throw new InvalidUserDataException("You should define KEYSTORE_PASSWORD and KEY_PASSWORD in gradle.properties.")
}
}
}
buildTypes {
release {
minifyEnabled false
signingConfig signingConfigs.release
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
//指定release APK名称
applicationVariants.all { variant ->
variant.outputs.all {
// 输出apk名称为 test_1.0_vivo.apk
def fileName = "test_${defaultConfig.versionName}_${variant.productFlavors[0].name}.apk"
outputFileName = fileName
}
}
}
debug {
minifyEnabled false
signingConfig signingConfigs.debug
}
}
//指定渠道
productFlavors {
vivo {}
oppo {}
huawei {}
xiaomi {}
chuizi {}
wandoujia {}
yingyongbao {}
}
//通过脚本获取所有渠道
//在Terminal控制台输入gradlew assembleRelease开始打包
//包生成在build-->outputs-->apk文件夹
productFlavors.all {
//遍历替换所有渠道
flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
}
//Terminal窗口输入
//打包wandoujia渠道的release版本,执行如下命令
// gradlew assembleWandoujiaRelease
//打包wandoujia渠道的debug版本,执行如下命令
// gradlew assembleWandoujiaDebug
// 只打wandoujia渠道版会生成wandoujia渠道的Release和Debug版本
// gradlew assembleWandoujia
//打全部Release版本
// gradlew assembleRelease
}
5.执行打包相关命令
2.jpg6.APK生成位置
1.jpg7.初始化友盟SDK
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
//获取渠道号
String channelName = AnalyticsConfig.getChannel(this);
/**
* 初始化common库
* 参数1:上下文,必须的参数,不能为空
* 参数2:友盟 app key
* 参数3:友盟 channel 渠道号
* 参数4:设备类型,必须参数,传参数为UMConfigure.DEVICE_TYPE_PHONE则表示手机;
* 传参数为UMConfigure.DEVICE_TYPE_BOX则表示盒子;默认为手机
* 参数5:Push推送业务的secret,需要集成Push功能时必须传入Push的secret,否则传空
*/
UMConfigure.init(this,"000000000000000",channelName,UMConfigure.DEVICE_TYPE_PHONE,"");
}
}
8.使用友盟移动统计
即启动数据的统计(包括新增用户、活跃用户、启动次数、使用时长等基本数据)
需要在BaseActivity的onResume方法中调用 MobclickAgent.onResume(Context),
onPause方法中调用 MobclickAgent.onPause(Context),如下:
@Override
protected void onResume() {
super.onResume();
//Session启动、App使用时长等基础数据统计
MobclickAgent.onResume(this);
}
@Override
protected void onPause() {
super.onPause();
MobclickAgent.onPause(this);
}
网友评论