注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Crayon

只想做自己

 
 
 

日志

 
 

Android OBB文件和StorageManager类  

2012-06-06 18:52:40|  分类: 开发 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
       从Android 2.3开始新增了一个OBB文件系统和StorageManager类用来管理外部存储上的数据安全。如果你过去开发过Symbian S60第三版或以上的版本可能发现都有一个隔离的文件系统,仅根据自己应用的UID才能读取,当然这样的设计在iOS和WP7均实现了,eoe提示大家这种叫做隔离文件系统,为什么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)才可以,eoe再次提醒这是一个API Level至少为9才能调用的类,注意SDK版本以及目标设备的固件。
Java代码:
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的状态有:
Java代码:
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系统既保证了安全,又处理好了灵活的功能。
  评论这张
 
阅读(1655)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017