前言
工作隨筆,方便記起
1.集成友盟移動統(tǒng)計SDK
2.AndroidManifest文件中引入友盟的APPKEY(記得添加相應(yīng)權(quán)限)
<!-- 友盟APPKEY -->
<meta-data
android:name="UMENG_APPKEY"
android:value="00000000000000000000000" />
3.AndroidManifest文件中設(shè)置渠道號
<!-- 渠道號 -->
<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{}的后面,導(dǎo)致編譯的時候無法找到)
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版本,執(zhí)行如下命令
// gradlew assembleWandoujiaRelease
//打包wandoujia渠道的debug版本,執(zhí)行如下命令
// gradlew assembleWandoujiaDebug
// 只打wandoujia渠道版會生成wandoujia渠道的Release和Debug版本
// gradlew assembleWandoujia
//打全部Release版本
// gradlew assembleRelease
}
5.執(zhí)行打包相關(guān)命令

2.jpg
6.APK生成位置

1.jpg
7.初始化友盟SDK
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
//獲取渠道號
String channelName = AnalyticsConfig.getChannel(this);
/**
* 初始化common庫
* 參數(shù)1:上下文,必須的參數(shù),不能為空
* 參數(shù)2:友盟 app key
* 參數(shù)3:友盟 channel 渠道號
* 參數(shù)4:設(shè)備類型,必須參數(shù),傳參數(shù)為UMConfigure.DEVICE_TYPE_PHONE則表示手機(jī);
* 傳參數(shù)為UMConfigure.DEVICE_TYPE_BOX則表示盒子;默認(rèn)為手機(jī)
* 參數(shù)5:Push推送業(yè)務(wù)的secret,需要集成Push功能時必須傳入Push的secret,否則傳空
*/
UMConfigure.init(this,"000000000000000",channelName,UMConfigure.DEVICE_TYPE_PHONE,"");
}
}
8.使用友盟移動統(tǒng)計
即啟動數(shù)據(jù)的統(tǒng)計(包括新增用戶、活躍用戶、啟動次數(shù)、使用時長等基本數(shù)據(jù))
需要在BaseActivity的onResume方法中調(diào)用 MobclickAgent.onResume(Context),
onPause方法中調(diào)用 MobclickAgent.onPause(Context),如下:
@Override
protected void onResume() {
super.onResume();
//Session啟動、App使用時長等基礎(chǔ)數(shù)據(jù)統(tǒng)計
MobclickAgent.onResume(this);
}
@Override
protected void onPause() {
super.onPause();
MobclickAgent.onPause(this);
}