Appearance
Android接入配置
WARNING
在接入SDK之前, 建议先请仔细阅读:接入流程
添加依赖和基础配置
1、添加依赖jar包
将 UGSDKDemo/ug-sdk/libs下面所有jar/aar包放到游戏接入工程中的libs目录下;如果是用androidstudio,请在build.gradle文件中,增加这里所有jar/aar包的依赖。
gradle
implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar'])同时,在游戏工程的build.gradle中,添加如下依赖库:
基础依赖库
gradle
// Google登录
implementation "androidx.credentials:credentials:1.5.0"
implementation "androidx.credentials:credentials-play-services-auth:1.5.0"
implementation "com.google.android.libraries.identity.googleid:googleid:1.1.1"
// google ad id
implementation 'com.google.android.gms:play-services-ads-identifier:18.0.1'
// Google支付
implementation 'com.android.billingclient:billing:7.0.0'
implementation 'com.android.installreferrer:installreferrer:2.2'
// Facebook登录
implementation 'com.facebook.android:facebook-login:14.1.1'
// LINE登录
implementation 'com.linecorp.linesdk:linesdk:5.8.0'Appsflyer(可选,确定使用Appsflyer时必加)
gradle
//implementation file('libs/ug-analytics-appsflyer.jar') //这里直接将ug-analytics-appsflyer.jar放到libs下即可
implementation 'com.appsflyer:af-android-sdk:6.9.4'
implementation 'com.appsflyer:purchase-connector:1.0.0'Adjust(可选,确定使用Adjust时必加)
gradle
//implementation file('libs/ug-analytics-adjust.jar') //这里直接将ug-analytics-adjust.jar放到libs下即可
implementation 'com.adjust.sdk:adjust-android:4.31.0'
implementation 'com.google.android.gms:play-services-ads-identifier:18.0.1'Firebase(可选,确定使用Firebase时必加)
gradle
//implementation file('libs/ug-firebase.jar') //这里直接将ug-firebase.jar放到libs下即可
implementation 'com.google.firebase:firebase-analytics:21.3.0'
implementation 'com.google.firebase:firebase-crashlytics:18.4.3'
implementation 'com.google.firebase:firebase-crashlytics-ndk:18.4.3'Admob广告(可选,确定使用Admob时必加)
gradle
//implementation file('libs/ug-ad-admob.jar') //这里直接将ug-ad-admob.jar放到libs下即可
implementation 'com.google.android.gms:play-services-ads:24.7.0'
implementation 'androidx.appcompat:appcompat:1.3.0'
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
implementation "androidx.lifecycle:lifecycle-extensions:2.2.0"
implementation "androidx.lifecycle:lifecycle-runtime:2.2.0"
annotationProcessor "androidx.lifecycle:lifecycle-compiler:2.2.0"2、详细日志
如果要开启SDK中的详细日志,可以将以下这段复制并黏贴到游戏出包工程的AndroidManifest.xml中application节点内:
xml
<meta-data android:name="ulog.enable" android:value="true" />
<meta-data android:name="ulog.level" android:value="debug" />
<meta-data android:name="ulog.local" android:value="true" />3、配置混淆规则
如果SDK库经过了混淆, 那么游戏工程中,请在混淆配置文件中加入如下规则,忽略SDK中的api:
txt
-keep class com.ug.sdk.** { *; }
-keep class com.appsflyer.** { *; }
-keep class kotlin.jvm.internal.Intrinsics{ *; }
-keep class kotlin.collections.**{ *; }
-keep class com.facebook.** { *; }
-keep public class com.android.installreferrer.**{ *; }
-keep public class com.adjust.sdk.**{ *; }
-keep class com.google.android.gms.common.ConnectionResult {
int SUCCESS;
}实现Application
方案一(直接使用UGApplication)
如果游戏层没有自己的Application,那么游戏需要将AndroidManifest.xml中的application指定为 com.ug.sdk.app.UGApplication。
xml
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:name="com.ug.sdk.app.UGApplication"
android:usesCleartextTraffic="true"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen">
</application>方案二(继承UGApplication)
如果游戏有自己的Application, 则可以直接继承com.ug.sdk.app.UGApplication类, 比如:
java
public class GameApplication extends UGApplication{
public void onCreate(){
super.onCreate();
}
public void attachBaseContext(Context base){
super.attachBaseContext(base);
}
public void onConfigurationChanged(Configuration config){
super.onConfigurationChanged(config);
}
public void onTerminate(){
super.onTerminate();
}
}方案三(调用内部函数)
如果游戏的Application已经继承了其他Application, 无法再继承UGApplication, 那么可以在游戏的Application中,直接调用UGSDK的com.ug.sdk.app.ApplicationHolder接口:
java
public class GameOtherApplication extends Application {
public void onCreate(){
super.onCreate();
ApplicationHolder.onCreate(this);
}
public void attachBaseContext(Context base){
super.attachBaseContext(base);
ApplicationHolder.onAttachBaseContext(this, base);
}
public void onTerminate(){
super.onTerminate();
ApplicationHolder.onTerminate(this);
}
public void onConfigurationChanged(Configuration configuration) {
super.onConfigurationChanged(configuration);
ApplicationHolder.onConfigurationChanged(configuration);
}
}生命周期函数
游戏需要在主Activity的生命周期函数中, 调用UGSDK的生命周期函数:
java
@Override
protected void onResume() {
super.onResume();
UGPlatform.getInstance().onResume(this);
}
@Override
protected void onPause() {
super.onPause();
UGPlatform.getInstance().onPause(this);
}
@Override
protected void onDestroy() {
super.onDestroy();
UGPlatform.getInstance().onDestroy(this);
}