游戏App通过集成GameTurbo Engine,能够为系统提供精细化场景信息、游戏配置信息、网络信息等。同时系统也能为游戏App反馈系统状态等信息。双方利用这些信息进行更紧密和深入的协作,使得在资源有限的情况下进一步改善玩家的游戏体验。
在这个Codelab中,你将创建Demo Project,并将GameTurbo Engine集成到Demo Project中,以及完成GameTurbo Engine服务的整体流程搭建。
集成GameTurbo Engine能力,需要完成以下准备工作:
请按照《GameTurbo Engine接入准备》,配置好GameTurbo Engine的jar包。
点击同步工程按钮,进行工程同步,如下图所示:
同步成功后,如下图所示:
MainActivity.java
public class MainActivity extends Activity {
private GameManager mGameManager = GameManager.getGameManager();
...
}
您有以下两种注册应用的方式(是否需要回调):
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);
}
}
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();
}
}
MainActivity.java
public class MainActivity extends Activity implements View.OnClickListener {
...
private String getPhoneInfo() {
return mGameManager.getPhoneInfo();
}
}
建议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并学到了:
您可以阅读下面链接,了解更多相关的信息。
相关文档