Channel/Android/tqxbqy/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/tqxbqy/debug/libs/library-debug-tqxbqy.aarBinary files differ
Channel/Android/tqxbqy/deps.gradle
New file @@ -0,0 +1,4 @@ //此脚本为渠道的第三方远程依赖库配置,会复制到unity中用于构建 dependencies { } Channel/Android/tqxbqy/release/libs/library-release-tqxbqy.aarBinary files differ
SdkProject/build.gradle
@@ -6,7 +6,7 @@ maven { url 'https://jitpack.io' } } dependencies { classpath "com.android.tools.build:gradle:4.1.1" classpath "com.android.tools.build:gradle:7.3.0" // NOTE: Do not place your application dependencies here; they belong // in the individual module deps.gradle files } SdkProject/channel/tqxbqy/AndroidManifest.xml
New file @@ -0,0 +1,50 @@ <?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"> <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/tqxbqy/build.gradle
New file @@ -0,0 +1,4 @@ //当前脚本为渠道的差异化配置 dependencies { // implementation project(path: ':quick') } SdkProject/channel/tqxbqy/config.properties
New file @@ -0,0 +1 @@ PLUGINS=quick SdkProject/channel/tqxbqy/deps.gradle
New file @@ -0,0 +1 @@ //此脚本为渠道的第三方远程依赖库配置,会复制到unity中用于构建 SdkProject/channel/tqxbqy/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/tqxbqy/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/tqxbqy/java/com/secondworld/sdk/BtGamePlatform.java
New file @@ -0,0 +1,66 @@ 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 "42726078771331573814376577516900"; } @Override public String platformProductKey() { return "28288976"; } @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, 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=mlgtgame_quick CHANNEL_NAME=tqxbqy SdkProject/gradle/wrapper/gradle-wrapper.properties
@@ -3,4 +3,4 @@ distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-all.zip distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.2-all.zip SdkProject/library/build.gradle
@@ -1,6 +1,7 @@ plugins { id 'com.android.library' } def rootPath = rootProject.getRootDir().getAbsolutePath() def channelPath = "${rootPath}/channel/${CHANNEL_NAME}" @@ -32,21 +33,20 @@ def channelJavaFiles = getAllFiles(new ArrayList<File>(), "${channelPath}/java") android { compileSdkVersion 28 buildToolsVersion "28.0.3" compileSdkVersion 30 buildToolsVersion "30.0.0" defaultConfig { minSdkVersion 21 //noinspection ExpiredTargetSdkVersion targetSdkVersion 28 targetSdkVersion 30 versionCode 1 multiDexEnabled true versionCode 6 versionName "6.0" versionName "1.0" // testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" consumerProguardFiles "consumer-rules.pro" multiDexEnabled true } flavorDimensions "version" productFlavors { @@ -62,9 +62,10 @@ } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 sourceCompatibility JavaVersion.VERSION_11 targetCompatibility JavaVersion.VERSION_11 } packagingOptions {exclude 'META-INF/rxjava.properties'} lintOptions { checkReleaseBuilds false abortOnError false @@ -183,8 +184,8 @@ } dependencies { implementation 'com.android.support:support-annotations:28.0.0' testImplementation 'junit:junit:4.13.2' // implementation 'com.android.support:support-annotations:28.0.0' // testImplementation 'junit:junit:4.13.2' //noinspection GradleCompatible // implementation 'com.android.support:appcompat-v7:28.0.0' SdkProject/library/libs/alipay.aarBinary files differ
SdkProject/library/libs/humesdk-1.0.0.aarBinary files differ
SdkProject/library/libs/smsdk.aarBinary files differ
SdkProject/library/libs/unionapylibrary.aarBinary files differ
SdkProject/library/libs/unity-classes.jarBinary files differ
SdkProject/library/libs/wxlibrary.aarBinary files differ
SdkProject/library/src/main/java/com/secondworld/sdk/UnityPlayerActivity.java
@@ -1,4 +1,3 @@ // GENERATED BY UNITY. REMOVE THIS COMMENT TO PREVENT OVERWRITING WHEN EXPORTING AGAIN package com.secondworld.sdk; import android.app.Activity; @@ -12,8 +11,10 @@ import android.view.Window; import android.view.WindowManager; import android.os.Process; import com.unity3d.player.IUnityPlayerLifecycleEvents; import com.unity3d.player.UnityPlayer; public class UnityPlayerActivity extends Activity implements IUnityPlayerLifecycleEvents { @@ -50,9 +51,8 @@ moveTaskToBack(true); } // When Unity player quited kill process // Callback before Unity player process is killed @Override public void onUnityPlayerQuitted() { Process.killProcess(Process.myPid()); } @Override protected void onNewIntent(Intent intent) @@ -79,27 +79,27 @@ @Override protected void onStop() { super.onStop(); mUnityPlayer.pause(); mUnityPlayer.onStop(); } @Override protected void onStart() { super.onStart(); mUnityPlayer.resume(); mUnityPlayer.onStart(); } // Pause Unity @Override protected void onPause() { super.onPause(); mUnityPlayer.pause(); mUnityPlayer.onPause(); } // Resume Unity @Override protected void onResume() { super.onResume(); mUnityPlayer.resume(); mUnityPlayer.onResume(); } // Low Memory Unity @@ -143,8 +143,8 @@ } // Pass any events not handled by (unfocused) views straight to UnityPlayer @Override public boolean onKeyUp(int keyCode, KeyEvent event) { return mUnityPlayer.injectEvent(event); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { return mUnityPlayer.injectEvent(event); } @Override public boolean onTouchEvent(MotionEvent event) { return mUnityPlayer.injectEvent(event); } /*API12*/ public boolean onGenericMotionEvent(MotionEvent event) { return mUnityPlayer.injectEvent(event); } @Override public boolean onKeyUp(int keyCode, KeyEvent event) { return mUnityPlayer.onKeyUp(keyCode, event); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { return mUnityPlayer.onKeyDown(keyCode, event); } @Override public boolean onTouchEvent(MotionEvent event) { return mUnityPlayer.onTouchEvent(event); } @Override public boolean onGenericMotionEvent(MotionEvent event) { return mUnityPlayer.onGenericMotionEvent(event); } } SdkProject/library/src/main/java/com/secondworld/sdk/utils/StaticDefine.java
@@ -6,7 +6,7 @@ public interface StaticDefine { String UnityGameObjectName = "SDKUtility"; String UnityHandleFuncName = "HandleSdkMessage"; String UnityGameObjectName = "ynmbxxjUtil"; String UnityHandleFuncName = "HandleMsgWithSDK"; } SdkProject/plugins/quick/java/com/secondworld/sdk/SplashActivity.java
@@ -1,21 +1,21 @@ package com.secondworld.sdk; import android.content.Intent; import android.graphics.Color; import com.quicksdk.QuickSdkSplashActivity; public class SplashActivity extends QuickSdkSplashActivity { @Override public int getBackgroundColor() { return Color.WHITE; } @Override public void onSplashStop() { Intent intent = new Intent(this, GameActivity.class); startActivity(intent); this.finish(); } } package com.secondworld.sdk; import android.content.Intent; import android.graphics.Color; import com.quicksdk.QuickSdkSplashActivity; public class SplashActivity extends QuickSdkSplashActivity { @Override public int getBackgroundColor() { return Color.WHITE; } @Override public void onSplashStop() { //闪屏结束后,跳转到游戏界面 Intent intent = new Intent(this, GameActivity.class); startActivity(intent); this.finish(); } } SdkProject/plugins/quick/res/drawable/qk_game_loading.xml
@@ -1,30 +1,30 @@ <?xml version="1.0" encoding="utf-8"?> <animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="false" > <item android:drawable="@drawable/qk_game_load01" android:duration="50"/> <item android:drawable="@drawable/qk_game_load02" android:duration="50"/> <item android:drawable="@drawable/qk_game_load03" android:duration="50"/> <item android:drawable="@drawable/qk_game_load04" android:duration="50"/> <item android:drawable="@drawable/qk_game_load05" android:duration="50"/> <item android:drawable="@drawable/qk_game_load06" android:duration="50"/> <item android:drawable="@drawable/qk_game_load07" android:duration="50"/> <item android:drawable="@drawable/qk_game_load08" android:duration="50"/> <?xml version="1.0" encoding="utf-8"?> <animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="false" > <item android:drawable="@drawable/qk_game_load01" android:duration="50"/> <item android:drawable="@drawable/qk_game_load02" android:duration="50"/> <item android:drawable="@drawable/qk_game_load03" android:duration="50"/> <item android:drawable="@drawable/qk_game_load04" android:duration="50"/> <item android:drawable="@drawable/qk_game_load05" android:duration="50"/> <item android:drawable="@drawable/qk_game_load06" android:duration="50"/> <item android:drawable="@drawable/qk_game_load07" android:duration="50"/> <item android:drawable="@drawable/qk_game_load08" android:duration="50"/> </animation-list> SdkProject/plugins/quick/res/layout/qk_game_view_loading.xml
@@ -1,14 +1,14 @@ <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" > <ImageView android:id="@+id/qk_img_loading" android:layout_width="wrap_content" android:layout_height="wrap_content" android:scaleType="center" android:src="@drawable/qk_game_loading" /> <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" > <ImageView android:id="@+id/qk_img_loading" android:layout_width="wrap_content" android:layout_height="wrap_content" android:scaleType="center" android:src="@drawable/qk_game_loading" /> </LinearLayout> SdkProject/plugins/quick/res/values/qk_game_style.xml
@@ -1,15 +1,15 @@ <?xml version="1.0" encoding="utf-8"?> <resources> <!-- 自定义loading dialog --> <style name="qk_game_style_loading" parent="android:style/Theme.Dialog"> <item name="android:windowFrame">@null</item> <item name="android:windowNoTitle">true</item> <item name="android:windowBackground">@drawable/qk_game_loadbg</item> <item name="android:windowIsFloating">true</item> <item name="android:windowContentOverlay">@null</item> </style> <?xml version="1.0" encoding="utf-8"?> <resources> <!-- 自定义loading dialog --> <style name="qk_game_style_loading" parent="android:style/Theme.Dialog"> <item name="android:windowFrame">@null</item> <item name="android:windowNoTitle">true</item> <item name="android:windowBackground">@drawable/qk_game_loadbg</item> <item name="android:windowIsFloating">true</item> <item name="android:windowContentOverlay">@null</item> </style> </resources> SdkProject/plugins/quick/res/values/strings.xml
New file @@ -0,0 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">QuickSDK</string> <string name="action_settings">Settings</string> </resources>