`

AIR-Android开发外部数据访问与存储

 
阅读更多

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应用

    ### 使用Flash Professional CS5开发Android AIR应用 #### 基本介绍 - **Android 2.2 对 Flash 的支持**: - Android 2.2 版本开始,该操作系统开始支持 Flash Player 10.1 和 AIR 2.5。这意味着开发者可以利用...

    Android开发教程笔记完全版

    - 这些类提供了专为Adobe AIR设计的API,涵盖了文件系统访问、网络连接、本地存储等方面的功能。 **具有特定于AIR功能的Flash Player类**: - Flash Player 类扩展了其功能,以便支持桌面应用特有的需求,如本地...

    Android数据持久化

    以下将详细介绍Android数据持久化的四种主要方式:SharedPreferences、内部存储、外部存储以及数据库的简单使用。 1. **SharedPreferences**: SharedPreferences提供了一个轻量级的数据存储方案,适合保存简单的...

    与iOS和Android设备的系统卷交互的AIR本机扩展。.zip

    开发者可以请求`READ_EXTERNAL_STORAGE`和`WRITE_EXTERNAL_STORAGE`权限来访问外部存储(相当于iOS的系统卷)。 - 使用ANE,可以调用Android的`Environment`类获取SD卡或内部存储的根目录,并使用`File`对象进行...

    安卓安装卸载相关-android静默安装和智能安装的实现本人测试的5.0的系统.rar

    其中,`-r`表示更新已存在的应用,`-g`表示授予所有权限,`-t`表示允许测试包,`-d`表示调试包,`-p`表示安装到外部存储,`-i`指定安装者,`<path_to_apk>`是APK文件的路径。 2. **智能安装**: 智能安装通常涉及...

    Air Flex Sqlite通信

    在Adobe AIR中,可以借助SQLite数据库来存储和管理应用程序的数据,无需依赖外部服务器或数据库管理系统。 在Flex中,我们可以使用AS3(ActionScript 3)语言来编写代码,通过Flex SDK提供的SQLite库与SQLite数据库...

    Flash创建AIR

    3. **设置外部SDK**:在开发环境中配置AIR和Flex SDK的路径,以便于项目构建。 **五、创建AIR应用程序** 1. **在Flash Builder中创建Flex AIR应用程序**:使用Flash Builder IDE,开发者可以创建、调试和部署桌面...

    Android代码-软件管理器.rar

    7. **应用缓存与数据存储**:Android应用可以通过SQLite数据库、SharedPreferences、内部/外部存储来保存数据。软件管理器通常提供清理缓存和数据的功能,以释放存储空间。 8. **安全与隐私**:Android提供了多种...

    Android打印Excel表项目(HP OfficeJet200)

    同时,需要考虑权限管理,如使用`READ_EXTERNAL_STORAGE`和`WRITE_EXTERNAL_STORAGE`权限来访问外部存储。 3. **Android打印框架**:自Android 4.4(KitKat)版本起,Android引入了打印框架,允许开发者实现自定义...

    Android自动升级框架

    2. **配置权限**:在`AndroidManifest.xml`中添加必要的权限,如互联网访问、写入外部存储等。 3. **初始化设置**:在应用启动时,调用框架提供的初始化方法,设置服务器地址、更新接口等信息。 4. **触发检查更新**...

    航空导航 Air Navigation Pro v1.0.7

    航空导航 Air Navigation Pro v1.0.7 当前版本:1.0.7 软件语言:非中文 软件类别:GPS应用 软件大小:38.62 MB 适用固件:2.3及更高固件 内置广告:没有广告 适用平台:Android 资费提示:已付费版 空中导航是一...

    Flex4.6手机项目预载外部sqlite数据库

    在Android平台上,应用程序的数据通常存储在特定的目录下,如 `/mnt/sdcard`,这是外部存储区域,用户可以访问。 在本项目中,外部SQLite数据库被预先创建并在安装应用时放置在Android设备的外部存储目录 `/mnt/...

    行业分类-设备装置-车载系统向第三方共享媒体数据文件的方法和车载系统.zip

    4. 应用程序接口(API):为了方便第三方应用接入车载系统,开发人员会提供API接口,使得外部设备可以通过标准接口访问媒体文件,实现播放、下载、上传等功能。 5. 安全性与隐私保护:在数据共享过程中,必须确保数据...

    H6 AndroidN OTA使用说明文档.pdf

    - **支持外部储存读取更新包**:允许用户通过USB连接外部存储设备,直接从设备上读取和安装更新包,增加了升级的灵活性。 - **Usb-Recovery功能**:当设备无法正常启动时,可以通过USB连接电脑进入Recovery模式,...

    recovery-clockwork-2.5.1.2-bravo-modded-by-udK

    4. 检查SD卡:在没有启动主系统的状态下检查或格式化外部存储卡。 5. 修复或安装Bootloader:在某些情况下,如果Bootloader出现问题,可以从恢复模式进行修复。 压缩包内的文件“recovery-clockwork-2.5.1.2-bravo-...

    Android2.3 系统的兼容性标准规范

    * **7.6.2 应用共享存储**:说明了外部存储介质(如SD卡)的使用要求。 * **7.7 USB**:描述了USB接口的兼容性和性能要求。 #### 八、性能兼容性 这部分内容涉及到了系统性能的要求,包括启动时间、响应时间等...

    ActionScript开发技术大全

    12. **移动设备开发**:ActionScript也可以用于开发Adobe AIR应用,适用于iOS和Android等移动平台,了解如何进行跨平台开发。 通过这本书的学习,你可以获得全面的ActionScript开发技能,无论你是初学者还是有经验...

    一种基于Android平台机顶盒的按键修复Recovery系统方法.pdf

    此外,用户也可以通过U盘等外部存储设备手动进行系统更新。然而,当Recovery模式出现问题时,用户通常缺乏专业知识和工具来修复,这阻碍了系统的进一步升级。 为了解决这个问题,本文提出了一个基于Android平台的...

Global site tag (gtag.js) - Google Analytics