ソースを参照

shqy开发:demo开发

#Suyghur 3 年 前
コミット
b82f4e7931

+ 28 - 0
demo/build.gradle

@@ -66,4 +66,32 @@ android {
 
 dependencies {
 
+    api(name: 'library_core-release', ext: 'aar')
+
+    //mmkv
+    implementation 'com.tencent:mmkv-static:1.2.10'
+
+    //日志采集框架
+    implementation 'io.github.suyghur.dolin:zap:1.0.0'
+
+    implementation 'androidx.core:core-ktx:1.6.0'
+    implementation 'androidx.fragment:fragment-ktx:1.3.5'
+    implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
+    implementation 'com.google.android.material:material:1.4.0'
+    implementation 'com.android.installreferrer:installreferrer:2.2'
+
+    //google
+    implementation 'com.google.android.play:core:1.10.0'
+    implementation 'com.google.android.gms:play-services-auth:19.0.0'
+    //4.0.0的billing库消耗商品会回调两次,后续在排查,先用3.0.3
+    implementation "com.android.billingclient:billing-ktx:3.0.3"
+    implementation 'com.google.firebase:firebase-analytics-ktx:19.0.0'
+    implementation 'com.google.firebase:firebase-crashlytics-ktx:18.1.0'
+
+    //facebook
+    implementation 'com.facebook.android:facebook-login:9.0.0'
+    implementation 'com.facebook.android:facebook-android-sdk:8.2.0'
+
+    //adjust
+    implementation 'com.adjust.sdk:adjust-android:4.28.2'
 }

BIN
demo/libs/library_core-release.aar


+ 185 - 1
demo/src/main/java/com/yyxx/eyuangame/demo/DemoActivity.java

@@ -1,19 +1,203 @@
 package com.yyxx.eyuangame.demo;
 
 import android.app.Activity;
+import android.content.Intent;
 import android.os.Bundle;
+import android.view.KeyEvent;
+import android.view.View;
+import android.widget.Button;
+import android.widget.LinearLayout;
+import android.widget.ScrollView;
 
 import androidx.annotation.Nullable;
 
+import java.util.ArrayList;
+import java.util.List;
+
+import cn.yyxx.eyuangame.base.EYuanGame;
+import cn.yyxx.eyuangame.base.entity.SdkChargeInfo;
+import cn.yyxx.eyuangame.base.entity.SdkEvent;
+import cn.yyxx.eyuangame.base.entity.SdkRoleInfo;
+import cn.yyxx.eyuangame.base.internal.ICallback;
+
 /**
  * @author #Suyghur.
  * Created on 2021/07/12
  */
-public class DemoActivity extends Activity {
+public class DemoActivity extends Activity implements View.OnClickListener {
+
+    private List<Item> events = new ArrayList<Item>() {
+        {
+            add(new Item(0, "00 用户登录"));
+            add(new Item(1, "01 用户登出"));
+            add(new Item(2, "02 角色创建"));
+            add(new Item(3, "03 角色登录"));
+            add(new Item(4, "04 角色升级"));
+            add(new Item(5, "05 定额充值"));
+            add(new Item(6, "06 第三方充值"));
+            add(new Item(7, "07 07 模拟Facebook标准事件打点(玩家首次完成新手引导)"));
+            add(new Item(8, "08 08 模拟Facebook自定义事件打点(玩家首次完成结缘)"));
+        }
+    };
+
+    private String roleId = "";
+    private long roleCTime = 0;
 
     @Override
     protected void onCreate(@Nullable Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
+        this.roleCTime = System.currentTimeMillis() / 1000;
+        this.roleId = "aaa" + roleCTime;
+
+        initView();
+        EYuanGame.getInstance().initialize(this, false, new ICallback() {
+            @Override
+            public void onResult(int code, String result) {
+
+            }
+        });
+    }
+
+    private void initView() {
+        LinearLayout layout = new LinearLayout(this);
+        for (Item event : events) {
+            Button button = new Button(this);
+            button.setId(event.id);
+            button.setTag(event.id);
+            button.setText(event.name);
+            button.setOnClickListener(DemoActivity.this);
+            layout.addView(button);
+        }
+        ScrollView scrollView = new ScrollView(this);
+        scrollView.addView(layout);
+        setContentView(scrollView);
+    }
+
+    private SdkRoleInfo getSdkRoleInfo() {
+        SdkRoleInfo roleInfo = new SdkRoleInfo();
+        roleInfo.setUserId(EYuanGame.getInstance().getCurrentUserId());
+        roleInfo.setRoleId(roleId);
+        roleInfo.setRoleName("角色名123");
+        roleInfo.setRoleLevel("110");
+        roleInfo.setRoleCTime(roleCTime);
+        roleInfo.setServerId("333");
+        roleInfo.setServerName("服务器名333");
+        roleInfo.setBalance("600");
+        roleInfo.setVipLevel("1");
+        roleInfo.setTotalPurchase(0);
+        return roleInfo;
+    }
 
+    private SdkChargeInfo getSdkChargeInfo() {
+        long ts = System.currentTimeMillis();
+        SdkChargeInfo chargeInfo = new SdkChargeInfo();
+        chargeInfo.setUserId(EYuanGame.getInstance().getCurrentUserId());
+        chargeInfo.setRoleId(roleId);
+        chargeInfo.setRoleName("角色名123");
+        chargeInfo.setRoleLevel("110");
+        chargeInfo.setRoleCTime(roleCTime);
+        chargeInfo.setServerId("333");
+        chargeInfo.setServerName("服务器名333");
+        chargeInfo.setAmount(99);
+        chargeInfo.setProductId("1");
+        chargeInfo.setProductName("60元寶");
+        chargeInfo.setProductDesc("60元寶");
+        chargeInfo.setCpOrderId("order_" + ts);
+        chargeInfo.setCpExt("cp_ext_info||" + chargeInfo.getCpOrderId());
+        chargeInfo.setCpPayTime(ts / 100);
+        chargeInfo.setCpPaySign("test123");
+        return chargeInfo;
+    }
+
+    @Override
+    protected void onStart() {
+        super.onStart();
+        EYuanGame.getInstance().onStart(this);
+    }
+
+    @Override
+    protected void onRestart() {
+        super.onRestart();
+        EYuanGame.getInstance().onRestart(this);
+    }
+
+    @Override
+    protected void onResume() {
+        super.onResume();
+        EYuanGame.getInstance().onResume(this);
+    }
+
+    @Override
+    protected void onPause() {
+        super.onPause();
+        EYuanGame.getInstance().onPause(this);
+    }
+
+    @Override
+    protected void onStop() {
+        super.onStop();
+        EYuanGame.getInstance().onStop(this);
+    }
+
+    @Override
+    protected void onDestroy() {
+        super.onDestroy();
+        EYuanGame.getInstance().onDestroy(this);
+        //如果要杀进程需要在onDestroy中处理
+        System.exit(0);
+    }
+
+    @Override
+    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+        super.onActivityResult(requestCode, resultCode, data);
+        EYuanGame.getInstance().onActivityResult(this, requestCode, resultCode, data);
+    }
+
+    @Override
+    protected void onNewIntent(Intent intent) {
+        super.onNewIntent(intent);
+        EYuanGame.getInstance().onNewIntent(this, intent);
+    }
+
+    @Override
+    public boolean onKeyDown(int keyCode, KeyEvent event) {
+        if (keyCode == KeyEvent.KEYCODE_BACK) {
+            EYuanGame.getInstance().openExitView(this, new ICallback() {
+                @Override
+                public void onResult(int code, String result) {
+                    if (code == 0) {
+                        finish();
+                        //如果要杀进程需要在onDestroy中处理,不然会不执行SDK的onDestroy方法
+                    }
+                }
+            });
+            return true;
+        }
+        return super.onKeyDown(keyCode, event);
+    }
+
+    @Override
+    public void onClick(View v) {
+        if (v == null) {
+            return;
+        }
+        switch ((Integer) v.getTag()) {
+            case 10: {
+                //fb标准事件
+                SdkEvent sdkEvent = new SdkEvent();
+                sdkEvent.setEventName("tutorial");
+                sdkEvent.setStandard(true);
+                sdkEvent.setFbAliasName("fb_mobile_tutorial_completion");
+                EYuanGame.getInstance().linkingEvent(this, sdkEvent);
+            }
+            case 11:{
+                //fb标准事件
+                SdkEvent sdkEvent = new SdkEvent();
+                sdkEvent.setEventName("finish_marry");
+                sdkEvent.setStandard(false);
+                sdkEvent.setFbAliasName("");
+                EYuanGame.getInstance().linkingEvent(this, sdkEvent);
+            }
+        }
     }
 }

+ 6 - 3
demo/src/main/java/com/yyxx/eyuangame/demo/DemoApplication.java

@@ -1,16 +1,19 @@
 package com.yyxx.eyuangame.demo;
 
-import android.app.Application;
 import android.content.Context;
 
+import androidx.annotation.NonNull;
+
+import cn.yyxx.eyuangame.base.EYuanGameApplication;
+
 /**
  * @author #Suyghur.
  * Created on 2021/07/12
  */
-public class DemoApplication extends Application {
+public class DemoApplication extends EYuanGameApplication {
 
     @Override
-    protected void attachBaseContext(Context context) {
+    protected void attachBaseContext(@NonNull Context context) {
         super.attachBaseContext(context);
     }
 

+ 16 - 0
demo/src/main/java/com/yyxx/eyuangame/demo/Item.java

@@ -0,0 +1,16 @@
+package com.yyxx.eyuangame.demo;
+
+/**
+ * @author #Suyghur.
+ * Created on 2021/07/12
+ */
+public class Item {
+
+    public int id = 0;
+    public String name = "";
+
+    public Item(int id, String name) {
+        this.id = id;
+        this.name = name;
+    }
+}