Skip to content

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);
}

版权所有© 2021-2030 上海丞诺网络科技有限公司