Channel/Android/gmgame/AndroidManifest.xml
New file @@ -0,0 +1,20 @@ <?xml version="1.0" encoding="utf-8"?> <!-- GENERATED BY UNITY. REMOVE THIS COMMENT TO PREVENT OVERWRITING WHEN EXPORTING AGAIN--> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.unity3d.player" xmlns:tools="http://schemas.android.com/tools"> <application> <activity android:name="com.secondworld.sdk.SplashActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="com.secondworld.sdk.GameActivity" android:theme="@style/UnityThemeSelector"> <meta-data android:name="unityplayer.UnityActivity" android:value="true" /> </activity> </application> </manifest> Channel/Android/gmgame/LauncherManifest.xml
New file @@ -0,0 +1,16 @@ <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.unity3d.player" xmlns:tools="http://schemas.android.com/tools" android:installLocation="preferExternal"> <supports-screens android:smallScreens="true" android:normalScreens="true" android:largeScreens="true" android:xlargeScreens="true" android:anyDensity="true"/> <application android:label="@string/app_name" android:icon="@mipmap/app_icon"/> </manifest> Channel/Android/gmgame/baseProjectTemplate.gradle
New file @@ -0,0 +1,13 @@ plugins { // If you are changing the Android Gradle Plugin version, make sure it is compatible with the Gradle version preinstalled with Unity // See which Gradle version is preinstalled with Unity here https://docs.unity3d.com/Manual/android-gradle-overview.html // See official Gradle and Android Gradle Plugin compatibility table here https://developer.android.com/studio/releases/gradle-plugin#updating-gradle // To specify a custom Gradle version in Unity, go do "Preferences > External Tools", uncheck "Gradle Installed with Unity (recommended)" and specify a path to a custom Gradle version id 'com.android.application' version '7.1.2' apply false id 'com.android.library' version '7.1.2' apply false **BUILD_SCRIPT_DEPS** } task clean(type: Delete) { delete rootProject.buildDir } Channel/Android/gmgame/debug/libs/library-debug-gmgame.aarBinary files differ
Channel/Android/gmgame/deps.gradle
New file @@ -0,0 +1,4 @@ //此脚本为渠道的第三方远程依赖库配置,会复制到unity中用于构建 dependencies { } Channel/Android/gmgame/google-services.json
Channel/Android/gmgame/gradleTemplate.properties
New file @@ -0,0 +1,7 @@ org.gradle.jvmargs=-Xmx**JVM_HEAP_SIZE**M org.gradle.parallel=true android.useAndroidX=false ## Automatically convert third-party libraries to use AndroidX android.enableJetifier=false unityStreamingAssets=.unity3d **ADDITIONAL_PROPERTIES** Channel/Android/gmgame/launcherTemplate.gradle
New file @@ -0,0 +1,64 @@ apply plugin: 'com.android.application' dependencies { implementation project(':unityLibrary') } android { ndkPath "**NDKPATH**" compileSdkVersion 30 buildToolsVersion '30.0.0' compileOptions { sourceCompatibility JavaVersion.VERSION_11 targetCompatibility JavaVersion.VERSION_11 } packagingOptions {exclude 'META-INF/rxjava.properties'} defaultConfig { minSdkVersion 21 targetSdkVersion 28 applicationId '**APPLICATIONID**' ndk { abiFilters **ABIFILTERS** } versionCode **VERSIONCODE** versionName '**VERSIONNAME**' } aaptOptions { noCompress = ['.unity3d', '.ress', '.resource', '.obb'] + unityStreamingAssets.tokenize(', ') ignoreAssetsPattern = "!.svn:!.git:!.ds_store:!*.scc:!CVS:!thumbs.db:!picasa.ini:!*~" }**SIGN** lintOptions { abortOnError false checkReleaseBuilds false } buildTypes { debug { minifyEnabled **MINIFY_DEBUG** proguardFiles getDefaultProguardFile('proguard-android.txt')**SIGNCONFIG** jniDebuggable true } release { minifyEnabled **MINIFY_RELEASE** proguardFiles getDefaultProguardFile('proguard-android.txt')**SIGNCONFIG** } }**PACKAGING_OPTIONS****PLAY_ASSET_PACKS****SPLITS** **BUILT_APK_LOCATION** bundle { language { enableSplit = false } density { enableSplit = false } abi { enableSplit = true } } }**SPLITS_VERSION_CODE****LAUNCHER_SOURCE_BUILD_SETUP** Channel/Android/gmgame/mainTemplate.gradle
New file @@ -0,0 +1,44 @@ apply plugin: 'com.android.library' **APPLY_PLUGINS** dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) **DEPS**} android { ndkPath "**NDKPATH**" compileSdkVersion 30 buildToolsVersion '30.0.0' compileOptions { sourceCompatibility JavaVersion.VERSION_11 targetCompatibility JavaVersion.VERSION_11 } packagingOptions {exclude 'META-INF/rxjava.properties'} defaultConfig { minSdkVersion 21 targetSdkVersion 28 ndk { abiFilters **ABIFILTERS** } versionCode **VERSIONCODE** versionName '**VERSIONNAME**' consumerProguardFiles 'proguard-unity.txt'**USER_PROGUARD** } lintOptions { abortOnError false checkReleaseBuilds false } aaptOptions { noCompress = **BUILTIN_NOCOMPRESS** + unityStreamingAssets.tokenize(', ') ignoreAssetsPattern = "!.svn:!.git:!.ds_store:!*.scc:!CVS:!thumbs.db:!picasa.ini:!*~" }**PACKAGING_OPTIONS** } **IL_CPP_BUILD_SETUP** **SOURCE_BUILD_SETUP** **EXTERNAL_SOURCES** Channel/Android/gmgame/release/libs/library-release-gmgame.aarBinary files differ
Channel/Android/gmgame/settingsTemplate.gradle
New file @@ -0,0 +1,25 @@ pluginManagement { repositories { **ARTIFACTORYREPOSITORY** maven { url "https://jitpack.io" } gradlePluginPortal() google() mavenCentral() } } include ':launcher', ':unityLibrary' **INCLUDES** dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS) repositories { **ARTIFACTORYREPOSITORY** maven { url "https://jitpack.io" } google() mavenCentral() flatDir { dirs "${project(':unityLibrary').projectDir}/libs" } } } SdkProject/channel/gmgame/AndroidManifest.xml
New file @@ -0,0 +1,52 @@ <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" package="com.secondworld.sdk"> <uses-permission android:name="android.permission.GET_TASKS" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" /> <application android:name=".BtGameApp" android:allowBackup="true" android:usesCleartextTraffic="true" android:label="@string/app_name" tools:replace="android:name"> <meta-data android:name="unityplayer.ForwardNativeEventsToDalvik" android:value="true" /> <meta-data android:name="channelID" android:value="quicksdk_channel"/> <activity android:name="com.secondworld.sdk.SplashActivity" android:label="@string/app_name" android:screenOrientation="sensorLandscape"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity> <provider android:name="android.support.v4.content.FileProvider" android:authorities="quicksdk_packName.Provider" android:exported="false" android:grantUriPermissions="true"> <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/filepaths" /> </provider> </application> </manifest> SdkProject/channel/gmgame/build.gradle
New file @@ -0,0 +1,4 @@ //当前脚本为渠道的差异化配置 dependencies { // implementation project(path: ':quick') } SdkProject/channel/gmgame/config.properties
New file @@ -0,0 +1 @@ PLUGINS=quick SdkProject/channel/gmgame/deps.gradle
New file @@ -0,0 +1 @@ //此脚本为渠道的第三方远程依赖库配置,会复制到unity中用于构建 SdkProject/channel/gmgame/java/com/secondworld/sdk/BtGameApp.java
New file @@ -0,0 +1,21 @@ package com.secondworld.sdk; public class BtGameApp extends QuickApp { @Override public void onCreate() { super.onCreate(); } @Override protected PlatformDiff getPlatform() { return new BtGamePlatform(); } @Override protected Class<? extends GameActivityProxy> getMainProxy() { return BtGameMain.class; } } SdkProject/channel/gmgame/java/com/secondworld/sdk/BtGameMain.java
New file @@ -0,0 +1,104 @@ package com.secondworld.sdk; import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; import android.content.Intent; import android.support.annotation.NonNull; import android.view.KeyEvent; import com.quicksdk.QuickSDK; import com.quicksdk.Sdk; import com.secondworld.sdk.utils.LogUtil; public class BtGameMain extends GameActivityProxy { @Override public void onCreate(Activity activity) { super.onCreate(activity); // LogUtil.i("SdkManager", "BtGameMain onCreate"); // QuickSdkMgr.I.requestPermissions(activity); //QuickSdkMgr.I.init(activity); com.quicksdk.Sdk.getInstance().onCreate(activity); LogUtil.d("BtGameMain", "启动的是 BtGameMain!"); PlatformDiff.I.OnCreate(GameAppProxy.app.getApplicationContext()); } @Override public void onStart() { super.onStart(); com.quicksdk.Sdk.getInstance().onStart(activity); } @Override public void onRestart() { super.onRestart(); com.quicksdk.Sdk.getInstance().onRestart(activity); } @Override public void onPause() { super.onPause(); com.quicksdk.Sdk.getInstance().onPause(activity); } @Override public void onResume() { super.onResume(); com.quicksdk.Sdk.getInstance().onResume(activity); } @Override public void onStop() { super.onStop(); com.quicksdk.Sdk.getInstance().onStop(activity); } @Override public void onDestroy() { super.onDestroy(); com.quicksdk.Sdk.getInstance().onDestroy(activity); } @Override public void onNewIntent(Intent intent) { super.onNewIntent(intent); com.quicksdk.Sdk.getInstance().onNewIntent(intent); } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); QuickSdkMgr.I.onActivityResult(activity, requestCode); com.quicksdk.Sdk.getInstance().onActivityResult(activity, requestCode, resultCode, data); } @Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); QuickSdkMgr.I.onRequestPermissionsResult(activity, requestCode, grantResults, permissions); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { if (QuickSDK.getInstance().isShowExitDialog()) { Sdk.getInstance().exit(activity); } else { // 游戏调用自身的退出对话框,点击确定后,调用quick的exit接口 new AlertDialog.Builder(activity).setTitle("退出").setMessage("是否退出游戏?").setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface arg0, int arg1) { Sdk.getInstance().exit(activity); } }).setNegativeButton("取消", null).show(); } return true; } return super.onKeyDown(keyCode, event); } } SdkProject/channel/gmgame/java/com/secondworld/sdk/BtGamePlatform.java
New file @@ -0,0 +1,67 @@ package com.secondworld.sdk; import android.Manifest; import android.content.Context; public class BtGamePlatform extends PlatformDiff { @Override public String platformName() { return "hygame"; } @Override public String platformProductCode() { return "77059910968783818403901306027155"; } @Override public String platformProductKey() { return "96186295"; } @Override public void CreateRoleEvent(String roleID) { } //mount单位为分 @Override public void PayEvent(String title, String goodsID, double mount) { } @Override public void PrePayEvent(String title, String goodsID, double mount) { } @Override public void OnCreate(Context var0) { } @Override public String[] platformPermission() { return new String[] { Manifest.permission.WRITE_EXTERNAL_STORAGE}; //return new String[] { Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_PHONE_STATE}; //return new String[] {}; } @Override public void LoginSuccess() { } @Override public void StartRequestPermission() { } } SdkProject/gradle.properties
@@ -18,4 +18,4 @@ ## Automatically convert third-party libraries to use AndroidX android.enableJetifier=false #当前构建的渠道名称 CHANNEL_NAME=btmdb CHANNEL_NAME=gmgame