说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

OBB文件和StorageManager类使用介绍

HTML文档下载 WORD文档下载 PDF文档下载
OBB文件和StorageManager类使用介绍

作者:Android开发网


  从Android 2.3开始新增了一个OBB文件系统和StorageManager类用来管理外部存储上的数据安全。如果你过去开发过Symbian S60第三版或以上的版本可能发现都有一个隔离的文件系统,仅根据自己应用的UID才能读取,当然这样的设计在iOS和WP7均实现了,Android123提示大家这种叫做隔离文件系统,为什么Android 2.3的android.os.storage.StorageManager类就是来解决这个问题的。

  如果我们设计一款资源包含比较多的游戏,可能你会发现最终生成的APK文件可能高达300MB,但是APK文件很大导致Android系统无法正常安装,而这么大其实都是游戏中用到的资源文件,我们放到SD卡上可能其他应用也可以访问,比如说系统的图片管理器会索引游戏中的图片资源,而音乐播放器也会索引资源中的音乐,所以Android 2.3的OBB文件(Opaque Binary Blob)可以很好的解决大文件在SD卡上分离出APK文件,同时别的程序没有权限访问这样一种隔离的文件系统。

  android.os.storage.StorageManager类的实例化方法需要使用getSystemService(Contxt.STORAGE_SERVICE)才可以,Android开发网再次提醒这是一个API Level至少为9才能调用的类,注意SDK版本以及目标设备的固件。

  String  getMountedObbPath(String filename) //通过一个文件名判断挂载的OBB文件路径
  boolean  isObbMounted(String filename) //这个OBB文件是否挂载了
  boolean  mountObb(String filename, String key, OnObbStateChangeListener listener)  //挂载一个OBB文件
  boolean  unmountObb(String filename, boolean force, OnObbStateChangeListener listener)  //反挂载一个obb文件,这个方法是异步的,第二个参数可以强制反挂载。

  我们可以看到挂载和反挂载obb文件时都有一个状态回调的类,位于android.os.storage.OnObbStateChangeListener,OnObbStateChangeListener接口实现了一个void  onObbStateChange(String path, int state) 方法来回调状态,第二个参数state的状态有:

int ERROR_ALREADY_MOUNTED 这个OBB已经挂载了
int ERROR_COULD_NOT_MOUNT 这个OBB不能挂在到系统.
int ERROR_COULD_NOT_UNMOUNT 这个OBB不能反挂载.
int ERROR_INTERNAL 一个内部的系统错误导致正在重试挂载obb
int ERROR_NOT_MOUNTED 一个反挂载调用执行时这个obb还没有挂在过.
int ERROR_PERMISSION_DENIED 当前程序没有使用这个obb的权限.
int MOUNTED The obb容器已经挂载好了,可以使用了.
int UNMOUNTED The OBB容易现在反挂载完成,将无法再使用. 

 从体而言我们看到Android 2.3系统中很多新的功能都很实用,同时Google正在吸取其他平台的优点,通过更多的实现方法更灵活的处理,而不是其他系统那样封闭,导致了不越狱很多事情都无法做的尴尬问题,Android系统既保证了安全,又处理好了灵活的功能。

开发者最爱的三款开发工具 Facebook开源JavaScript库:React 硬件天堂深圳行:从Seeed Studio、Knewone到柴火创客空间 消费应用开发难赚钱?做个企业app store吧 开发开源软件的智慧:够简单,很好用 j#中怎么使用datagrid ?给个将动态数据增加到datagrid中的例子。 windows 2000、XP下的计算机启动是选择操作系统的那个配置文件是那个? 请问是如何继承DELPHI自带的某构件,改造它的界面,生成另一构件的? combobox的问题,高手进 菜鸟问题 求教!关于报表打印:使用report form to printer第二次就不能打印? C++中如何引用C文件 关于网络保存问题 好喜欢红色姐姐~~放分~~HOHO~~ 分离定律的细胞学基础和自由组合定律细胞学基础的图解 基因的分离定律的细胞学基础是什么?基因的分离定律的 记忆分离定律的细胞学基础是什么 从气温因素分析地中海沿岸常绿硬叶林景观与青藏高原山 世界上曾经发生过那几次大的蝗灾?造成了什么危害 问数学一元二次不等式要过程3X平方 -7X-10大 什么是变异的细胞学基础 什么地方雨多、什么地方雨少又热?只要给我说一下地理 〓〓〓〓数学一元二次不等式.〓〓〓〓·要在长为80 日本最新型潜艇“黑龙”举行下水仪式俄八旬老汉野外斗熊 被摔下悬崖后逃出索契冬奥会火炬将由14架直升机护送入加拿大首设“比特币”ATM机 被批缺偷渡惨案再现撒哈拉沙漠 尼日尔发现8葡萄牙南部中文学校成立 助华裔学子圆缅怀周恩来新书发布 珍藏精品展披露珍东方网多举措谋求新突破 探索子公司股湖北任免彭卫国、王泉、韩宏伟、曾庆祝黑龙江高院副院长陈远飞挂任兰州副市长帝国狂澜仆街写手的英雄无敌魔动天下盈月舞清风(清宫)猛士西中岛旅游香港浸会大学旅游红磡码头旅游车溪旅游幽州旅游
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘