http://blog.chinaunix.net/uid-10062010-id-3174877.html
AIR程序大多需要在本地缓存一些数据,这些数据是否能正确存储关系到AIR是否真正可用,本文就介绍在基于AIR的Android开发中数据存储需要特殊处理。
首先,需要明白几个基本的路径关系:
- File.applicationStorageDirectory — 每个已安装的 AIR 应用程序独有的存储目录
- File.applicationDirectory — 安装应用程序的只读目录(其中包括所有已安装的资源)
- File.desktopDirectory — 用户的桌面目录
- File.documentsDirectory — 用户的文档目录
- File.userDirectory — 用户目录
这些目录在不同的系统(pc/android/mac)中都是不尽相同的,无论你的程序是在那种环境中,你都必须要正确的构造合适的数据存储文件URI,才能保证数据文件可用。
首先我们需要关注 File.applicationDirectory,因为这个目录其实是反映你打包时的状态,我们知道AIR程序的打包主要是由这样一些部分构成的(除了一系列标准的描述元数据外):
1. 一个swf主程序文件
2. 系列swf主程序以外的各类资源(可以是其他包括swf在内支持可用的任何数据文件)
所以我们要在主程序中能够正确的访问到相应资源,就可以利用
File.applicationDirectory.resolvePath("资源相对于打包根目录的URI") 这样的形式来构造资源的真实URI,然后才去访问。注意这里采用的是标准方法resolvePath,它可以自行处理不同环境下路径分隔符不同的问题。至此对外部资源的访问是可行的了。
对于数据的存储(比如缓存一系列状态/或者联网程序下载一些元数据进入数据库存储)却不能采用File.applicationDirectory.resolvePath("存储资源URI"),这是因为File.applicationDirectory对AIR程序来说是不能保证可写的,必须要避免这样的使用,这时应该用File.applicationStorageDirectory.resolvePath("存储资源URI")来构造可写的资源存储实体文件URI,去进行写入操作。不过需要说明的是这个目录不建议进行大数据量的写入,如果是大数据量的写入建议以File.desktopDirectory 或者 File.documentsDirectory 或者File.userDirectory为基础连接构造文件存储URI。
此外一个技巧是对于复杂文件结构的二进制文件,例如数据库文件(有一定的数据结构),可能需要采用如下机制来建立可写的文档URI:
1. 在资源打包时打包一个拥有结构的空数据库文件;
2. 在首次运行时把File.applicationDirectory.resolvePath("空数据库文件相对URI")复制一个到File.applicationStorageDirectory.resolvePath("数据存储资源URI")
3. 以后的读写都是对File.applicationStorageDirectory.resolvePath("数据存储资源URI")进行了[严格来说是先检查是否有File.applicationStorageDirectory.resolvePath("数据存储资源URI"),如果没有就先执行2步骤]
相关推荐
### 使用Flash Professional CS5开发Android AIR应用 #### 基本介绍 - **Android 2.2 对 Flash 的支持**: - Android 2.2 版本开始,该操作系统开始支持 Flash Player 10.1 和 AIR 2.5。这意味着开发者可以利用...
- 这些类提供了专为Adobe AIR设计的API,涵盖了文件系统访问、网络连接、本地存储等方面的功能。 **具有特定于AIR功能的Flash Player类**: - Flash Player 类扩展了其功能,以便支持桌面应用特有的需求,如本地...
以下将详细介绍Android数据持久化的四种主要方式:SharedPreferences、内部存储、外部存储以及数据库的简单使用。 1. **SharedPreferences**: SharedPreferences提供了一个轻量级的数据存储方案,适合保存简单的...
开发者可以请求`READ_EXTERNAL_STORAGE`和`WRITE_EXTERNAL_STORAGE`权限来访问外部存储(相当于iOS的系统卷)。 - 使用ANE,可以调用Android的`Environment`类获取SD卡或内部存储的根目录,并使用`File`对象进行...
其中,`-r`表示更新已存在的应用,`-g`表示授予所有权限,`-t`表示允许测试包,`-d`表示调试包,`-p`表示安装到外部存储,`-i`指定安装者,`<path_to_apk>`是APK文件的路径。 2. **智能安装**: 智能安装通常涉及...
在Adobe AIR中,可以借助SQLite数据库来存储和管理应用程序的数据,无需依赖外部服务器或数据库管理系统。 在Flex中,我们可以使用AS3(ActionScript 3)语言来编写代码,通过Flex SDK提供的SQLite库与SQLite数据库...
3. **设置外部SDK**:在开发环境中配置AIR和Flex SDK的路径,以便于项目构建。 **五、创建AIR应用程序** 1. **在Flash Builder中创建Flex AIR应用程序**:使用Flash Builder IDE,开发者可以创建、调试和部署桌面...
7. **应用缓存与数据存储**:Android应用可以通过SQLite数据库、SharedPreferences、内部/外部存储来保存数据。软件管理器通常提供清理缓存和数据的功能,以释放存储空间。 8. **安全与隐私**:Android提供了多种...
同时,需要考虑权限管理,如使用`READ_EXTERNAL_STORAGE`和`WRITE_EXTERNAL_STORAGE`权限来访问外部存储。 3. **Android打印框架**:自Android 4.4(KitKat)版本起,Android引入了打印框架,允许开发者实现自定义...
2. **配置权限**:在`AndroidManifest.xml`中添加必要的权限,如互联网访问、写入外部存储等。 3. **初始化设置**:在应用启动时,调用框架提供的初始化方法,设置服务器地址、更新接口等信息。 4. **触发检查更新**...
航空导航 Air Navigation Pro v1.0.7 当前版本:1.0.7 软件语言:非中文 软件类别:GPS应用 软件大小:38.62 MB 适用固件:2.3及更高固件 内置广告:没有广告 适用平台:Android 资费提示:已付费版 空中导航是一...
在Android平台上,应用程序的数据通常存储在特定的目录下,如 `/mnt/sdcard`,这是外部存储区域,用户可以访问。 在本项目中,外部SQLite数据库被预先创建并在安装应用时放置在Android设备的外部存储目录 `/mnt/...
4. 应用程序接口(API):为了方便第三方应用接入车载系统,开发人员会提供API接口,使得外部设备可以通过标准接口访问媒体文件,实现播放、下载、上传等功能。 5. 安全性与隐私保护:在数据共享过程中,必须确保数据...
- **支持外部储存读取更新包**:允许用户通过USB连接外部存储设备,直接从设备上读取和安装更新包,增加了升级的灵活性。 - **Usb-Recovery功能**:当设备无法正常启动时,可以通过USB连接电脑进入Recovery模式,...
4. 检查SD卡:在没有启动主系统的状态下检查或格式化外部存储卡。 5. 修复或安装Bootloader:在某些情况下,如果Bootloader出现问题,可以从恢复模式进行修复。 压缩包内的文件“recovery-clockwork-2.5.1.2-bravo-...
* **7.6.2 应用共享存储**:说明了外部存储介质(如SD卡)的使用要求。 * **7.7 USB**:描述了USB接口的兼容性和性能要求。 #### 八、性能兼容性 这部分内容涉及到了系统性能的要求,包括启动时间、响应时间等...
12. **移动设备开发**:ActionScript也可以用于开发Adobe AIR应用,适用于iOS和Android等移动平台,了解如何进行跨平台开发。 通过这本书的学习,你可以获得全面的ActionScript开发技能,无论你是初学者还是有经验...
此外,用户也可以通过U盘等外部存储设备手动进行系统更新。然而,当Recovery模式出现问题时,用户通常缺乏专业知识和工具来修复,这阻碍了系统的进一步升级。 为了解决这个问题,本文提出了一个基于Android平台的...