位置:首页 > 综合教程 > Adobe AIR本地存储数据备份方法详解

Adobe AIR本地存储数据备份方法详解

时间:2026-06-05  |  作者:318050  |  阅读:0

Adobe AIR 应用的本地数据备份,听起来像是件小事。但真遇上设备重装、应用意外卸载,或者系统出点小毛病,那些登录凭证、用户设置、离线缓存内容——说没就没了。

而且这些数据躲在三种完全不同的存储机制里,互相不兼容,备份手法也得区别对待。今天就专门讲讲怎么把这三种数据稳稳地捞出来。

Adobe AIR怎么备份数据?Adobe AIR本地存储数据备份方法

先看最常用、也最轻量的一种——SharedObject,也就是那些 .sol 文件。它会把数据以二进制的 AMF 格式存到系统的特定路径下,你得手动找到那个文件夹,把整个目录复制出来。

备份 SharedObject 数据(.sol 文件)

第一步很简单:打开文件管理器,定位到 AIR 应用的专属数据目录。不同系统路径不太一样,直接对照着找就行:

  • Windows:C:Users[用户名]AppDataRoamingMacromediaFlash Player#SharedObjects
  • macOS:~/Library/Preferences/Macromedia/Flash Player/#SharedObjects
  • Linux:~/.macromedia/Flash_Player/#SharedObjects

第二步:在这个目录里,找一个名字跟你 AIR 应用的 ID 相匹配的子文件夹。通常包名或应用名会嵌在里面,比如 com.example.myapp。打开它,里面所有的 .sol 文件就是该应用的 SharedObject 数据。

第三步:把整个子文件夹复制到外部硬盘或者云盘里,命名成类似“MyApp_SOL_20260604”的样子,方便以后恢复时辨认。

导出加密本地存储(EncryptedLocalStore)数据

接下来是稍微麻烦点的——EncryptedLocalStore,简称 ELS

它专门存敏感信息,比如 token、密码。数据被操作系统底层加密保护,你没法直接打开文件读到内容。而且 AIR 官方并没有提供一个现成的导出接口,想备份只能靠代码来解决。

方法就是在应用内部嵌入一段导出逻辑。用 ActionScript 调用 EncryptedLocalStore.getItem() 逐个读取所有键值,然后通过 JSON.stringify() 转成字符串。最后写入应用存储目录下的一个临时文本文件。代码大致像这样:

var dataObj:Object = {};
for each (var key:String in EncryptedLocalStore.keys) {
  dataObj[key] = EncryptedLocalStore.getItem(key);
}
var file:File = File.applicationStorageDirectory.resolvePath("els_backup.json");
var stream:FileStream = new FileStream();
stream.open(file, FileMode.WRITE);
stream.writeUTFBytes(JSON.stringify(dataObj));
stream.close();

这里有句关键提醒:导出操作必须在原应用上下文中执行。脱离 AIR 沙箱环境就无法访问 ELS 数据了。所以写这段代码的时候,得确保应用本身还在正常运行。

备份本地 SQLite 数据库文件

最后一种是嵌入式 SQLite 数据库。AIR 应用通常把它存成一个 .db 或 .sqlite 文件。

这个文件的存放位置由开发者在代码里指定。最常见的地方是 applicationStorageDirectory 或 documentsDirectory 下面。

要找到它,可以回看源码里 SQLConnection.open() 调用前的 File.resolvePath() 参数。或者直接在调试时输出 File.nativePath 的值,看一眼就清楚了。

确认文件存在后,直接把这个 .db 文件复制出来就行——它本身就是完整的数据库,不需要额外的导出步骤。

比如它叫 user_data.db,拖到备份文件夹里,一切搞定。这一步操作起来真的很简单。

来源:整理自互联网
免责声明:文中图文均来自网络,如有侵权请联系删除,心愿游戏发布此文仅为传递信息,不代表心愿游戏认同其观点或证实其描述。

相关文章

更多

精选合集

更多

大家都在玩

热门话题

大家都在看

更多