游戏App通过集成GameTurbo Engine,能够为系统提供精细化场景信息、游戏配置信息、网络信息等。同时系统也能为游戏App反馈系统状态等信息。双方利用这些信息进行更紧密和深入的协作,使得在资源有限的情况下进一步改善玩家的游戏体验。

本篇Codelab将实现的内容

在这个Codelab中,你将创建Demo Project,并将GameTurbo Engine集成到Demo Project中,以及完成GameTurbo Engine服务的整体流程搭建。

您将会学到什么

硬件要求

软件要求

需要的知识点

集成GameTurbo Engine能力,需要完成以下准备工作:

具体操作,请按照《GameTurbo Engine接入准备》中详细说明来完成。

1. 集成GameTurbo Engine。

请按照《GameTurbo Engine接入准备》,配置好GameTurbo Engine的jar包。

点击同步工程按钮,进行工程同步,如下图所示:

同步成功后,如下图所示:

2. 获取能力对象。

MainActivity.java

public class MainActivity extends Activity { private GameManager mGameManager = GameManager.getGameManager(); ... }

3. 注册应用。

您有以下两种注册应用的方式(是否需要回调):

MainActivity.java

public class MainActivity extends Activity implements View.OnClickListener { ... private GameManager.GameCallBack gameSdkCallBack = new GameManager.GameCallBack() { @Override public void onPhoneInfoUpdated(String info) { } }; private void registerKitWithCallback() { boolean isSuccess = mGameManager.registerGame(getPackageName(), gameSdkCallBack); } private void registerKitWithoutCallback() { boolean isSuccess = mGameManager.registerGame(getPackageName(), null); } }

4. 向设备发送消息。

MainActivity.java

public class MainActivity extends Activity implements View.OnClickListener { ... private void sendData() { String str = getDataString(); if (str != null) { mGameManager.updateGameAppInfo(str); Toast.makeText(this, "sendData:" + str, Toast.LENGTH_LONG).show(); } } private String getDataString() { JSONObject jsonObject = new JSONObject(); try { jsonObject.put("MessageType", 3); jsonObject.put("SceneID", 1); jsonObject.put("Description", "Game Start"); jsonObject.put("ImportantLevel", "2"); jsonObject.put("RecommendFps", 30); jsonObject.put("KeyThread", "net|6001"); } catch (JSONException e) { return null; } return jsonObject.toString(); } }

5. 主动获取设备信息。

MainActivity.java

public class MainActivity extends Activity implements View.OnClickListener { ... private String getPhoneInfo() { return mGameManager.getPhoneInfo(); } }

6. 异步调用。

建议GameTurbo Engine的所有Api都在非UI线程调用。

MainActivity.java

public class MainActivity extends Activity implements View.OnClickListener { ... private static final int MSG_REGISTER_WITH_CALLBACK = 0; private static final int MSG_REGISTER_WITHOUT_CALLBACK = 1; private static final int MSG_SEND_DATA = 2; private static final int MSG_GET_PHONE_INFO = 3; private HandlerThread mWorkThread; private Handler mHandler; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_demo_main); initThread(); ... } private void initThread() { mWorkThread = new HandlerThread("WorkThread"); mWorkThread.start(); mHandler = new Handler(mWorkThread.getLooper(), new Handler.Callback() { @Override public boolean handleMessage(Message message) { switch (message.what) { case MSG_REGISTER_WITH_CALLBACK: registerKitWithCallback(); break; case MSG_REGISTER_WITHOUT_CALLBACK: registerKitWithoutCallback(); break; case MSG_SEND_DATA: sendData(); break; case MSG_GET_PHONE_INFO: getPhoneInfo(); break; default: break; } return false; } }); } ... @Override protected void onDestroy() { super.onDestroy(); mWorkThread.quit(); } }

干得好,你已经成功完成了Codelab并学到了:

您可以阅读下面链接,了解更多相关的信息。
相关文档

下载 source code

已复制代码