从 SqliteDatabase 创建字节数组以使用 Google Saved Games 保存它?
Creating a byte array from an SqliteDatabase to save it with Google Saved Games?
我有一个游戏,我使用几个表来存储玩家的进度。这是一个相当长的游戏,所以我不时收到合法的用户反馈,为什么我没有云保存选项?
所以我使用Google Play Games登录来获得成就,我想我也可以简单地实现Google Saved Games,直接。
如我所见,它使用一个简单的 byte[]
数组从云端保存和加载游戏进程 。(实际上是 Google 驱动器。)
我的问题是,如何创建一个 byte[]
数组 来保存玩家保存的游戏实例的完整数据库?
我正在使用 Sqlite 数据库,例如:
private static DatabaseHelper mInstance = null;
private DatabaseHelper(Context context) {
super(context, "duels_rpg_db", null, 123);
this.ctx = context;
getWritableDatabase();
}
public static DatabaseHelper getInstance(Context ctx) {
if (mInstance == null) {
mInstance = new DatabaseHelper(ctx.getApplicationContext());
}
return mInstance;
}
等等,没什么特别的。
提前致谢,
如果你是using C it would be easy to serialize the entire database, but in Android I think you would have to locate the database file, convert it to a byte array using the ByteArrayOutputStream class, store it in Google Saved Games and later on convert the byte array back to a file if necessary. For an example of converting a file to a byte array and vice-versa see this link。
最好序列化您的用户数据而不是 db 文件。这样,如果您更新您的应用程序,您将不会担心在尚未更新的应用程序版本中使用更新版本的数据库。
所以我建议将您的进度与 org.json.JSONObject 相互转换。
使用 JSON,可以很容易地转换为 json.toString().getBytes("utf-8")
的 byteArray
获取数据时,您可以将其转换回 json 并使用一种方法将 json
的数据加载到您的 sqlite 数据库
我有一个游戏,我使用几个表来存储玩家的进度。这是一个相当长的游戏,所以我不时收到合法的用户反馈,为什么我没有云保存选项?
所以我使用Google Play Games登录来获得成就,我想我也可以简单地实现Google Saved Games,直接。
如我所见,它使用一个简单的 byte[]
数组从云端保存和加载游戏进程 。(实际上是 Google 驱动器。)
我的问题是,如何创建一个 byte[]
数组 来保存玩家保存的游戏实例的完整数据库?
我正在使用 Sqlite 数据库,例如:
private static DatabaseHelper mInstance = null;
private DatabaseHelper(Context context) {
super(context, "duels_rpg_db", null, 123);
this.ctx = context;
getWritableDatabase();
}
public static DatabaseHelper getInstance(Context ctx) {
if (mInstance == null) {
mInstance = new DatabaseHelper(ctx.getApplicationContext());
}
return mInstance;
}
等等,没什么特别的。
提前致谢,
如果你是using C it would be easy to serialize the entire database, but in Android I think you would have to locate the database file, convert it to a byte array using the ByteArrayOutputStream class, store it in Google Saved Games and later on convert the byte array back to a file if necessary. For an example of converting a file to a byte array and vice-versa see this link。
最好序列化您的用户数据而不是 db 文件。这样,如果您更新您的应用程序,您将不会担心在尚未更新的应用程序版本中使用更新版本的数据库。
所以我建议将您的进度与 org.json.JSONObject 相互转换。
使用 JSON,可以很容易地转换为 json.toString().getBytes("utf-8")
获取数据时,您可以将其转换回 json 并使用一种方法将 json
的数据加载到您的 sqlite 数据库