開始吧:産品-》移動統計-》進入新版-》建立新應用-》擷取到appkey
一、在項目的build.gradle中添加
buildscript {
repositories {
google()
jcenter()
maven { url 'https://dl.bintray.com/umsdk/release' }
}
dependencies {
classpath 'com.android.tools.build:gradle:3.4.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
google()
jcenter()
maven { url 'https://dl.bintray.com/umsdk/release' }
}
}
二、現在在module裡添加依賴
// 下面各SDK根據宿主App是否使用相關業務按需引入。
// OAID目前為目前國内市場主流的Android Q裝置辨別,可根據需要選擇。
// 友盟統計SDK
implementation 'com.umeng.umsdk:common:9.1.0' // (必選)
implementation 'com.umeng.umsdk:game:9.1.0+G' // 遊戲統計SDK依賴(可選)
implementation 'com.umeng.umsdk:asms:1.1.3' // asms包依賴(必選)
implementation 'com.umeng.umsdk:crash:0.0.4' // native crash包依賴(必選)
implementation 'com.umeng.umsdk:oaid_lenovo:1.0.0' // (可選)
implementation 'com.umeng.umsdk:oaid_mi:1.0.0' // (可選)
implementation 'com.umeng.umsdk:oaid_oppo:1.0.4' // (可選)
implementation 'com.umeng.umsdk:oaid_vivo:1.0.0.1' // (可選)
三、清單檔案中的權限
<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_PHONE_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
四、清單檔案中的權限
<meta-data
android:name="UMENG_APPKEY"
android:value="你申請的友盟appkey" />
<!--value的值填寫管道名稱,例如yingyongbao。這裡設定動态管道名稱變量-->
<meta-data
android:name="UMENG_CHANNEL"
android:value="${UMENG_CHANNEL_VALUE}" />
五、初始化,在application的oncreate()方法裡添加
//第一種 UMConfigure.init(this, "5f31f196b4b0*********", "ysj", UMConfigure.DEVICE_TYPE_PHONE, "");
/**
* 注意:如果您已經在AndroidManifest.xml中配置過appkey和channel值,可以調用此版本初始化函數。
*/
//第二種
UMConfigure.init(Context context, int deviceType, String pushSecret);
六、混淆配置
-keep class com.umeng.** {*;}
-keep class com.uc.** {*;}
-keepclassmembers class * {
public <init> (org.json.JSONObject);
}
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
-keep class com.zui.** {*;}
-keep class com.miui.** {*;}
-keep class com.heytap.** {*;}
-keep class a.** {*;}
-keep class com.vivo.** {*;}
七、配置管道(與defaultConfig、signingConfigs、并列關系)
記得配置簽名資訊signingConfigs
/配置管道/
flavorDimensions "default"
productFlavors{
loveeat {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "loveeat"]
}
yingyongbao {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "yingyongbao"]
}
wandoujia {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "wandoujia"]
}
huawei {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "huawei"]
}
xiaomi {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "xiaomi"]
}
c360 {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "c360 "]
}
}
/*自定義打包apk名稱*/
android.applicationVariants.all { variant ->
variant.outputs.all { output ->
variant.productFlavors.each { flavor ->
def project = "acf"
def separator = "_"
def buildType = variant.variantData.variantConfiguration.buildType.name
def versionName = variant.versionName
def versionCode = variant.versionCode
def date = new Date()
def formattedDate = date.format('yyyyMMdd')
def apkName = project + separator + "v" + versionName + separator + versionCode + separator + buildType + separator + flavor.name + ".apk"
if (buildType == "release") {
apkName = project + separator + "v" + versionName + separator + versionCode + separator + buildType + separator + flavor.name + separator + formattedDate + ".apk"
}
output.outputFileName = apkName
}
}
}
八、 執行打包指令
隻需在Android Studio的指令行Terminal下輸入以下指令即可:
gradlew.bat assembleRelease