ANDROID下面的游戏更新目录

更新模块的整体方案终于搞定了,包括launcher的自更新,以及framework,app等代码的更新,均测试通过。

很激动地拿到ANDROID上去测试,一下就傻眼了。 在创建upd目录的时候,就遇上了 Permission Denied
我勒个X,我有WRITE_EXTERNAL_STORAGE权限呀。
经过百度后发现,cocos2dx返回的是路径为 /data/data/<package_name>/files
这是在内部存储卡上的,而要想对这个进行操作, 只能是使用Context相关API了。
在我的更新方案中,我使用了lfs,这当然是不行了。
经过多番搜索,一个东西映入我眼帘
Context.getExternalFilesDir()
这个API将会返回  /mnt/sdcard/android/data/<package_name>/files 目录
这个目录与/data ...../files目录一样,会在程序删除时被删除。 这样一来,你的数据将不会保存在玩家机器上了(其实,对于删游戏的玩家,可以考虑留下点什么,哈哈)
修改方法很简单,将Cocos2dxHelper.Java中的sFileDirectory赋值的那一行改为如下即可
Cocos2dxHelper.sFileDirectory = pContext.getExternalFilesDir(null).getAbsolutePath();

但这个路径需要注意的是,它可以被用户操作, 在APP信息里面, 清除数据就是清除的这个目录下的东西。网上也有人建议换一个地方来保存,以避免这个情况。
 
同时,将数据写在SD卡上,来带的问题就是 用户有没有安装SD卡
 
目前我的做法是,如果用户没有安装SD卡,就提示他去安装一个SD卡。
 
Context.getExternalFilesDir()取到的路径,与通过Enviroment.getExternalStorage取到的目录,再加上 /android/data/<package_name>/files的结果是一样的。
因此,回到getExternalStorage这个地方来,这个函数的注释说得很清楚了。
getExternalStorage返回的是 /mnt/sdcard/  这个路径指向的是主SD卡。
像小米3,或者是一些其它ANDROID机器,你会发现,根本没有机会让你使用SD卡,你怎么办呢?
答案是,你不需要怎么办,因为你买的小米3 16G,这个16G,就是sd卡,而不是机身内部存储。 
到此,可能你还是不放心,万一真的有用户没有SD卡怎么办呢。
我想的是弹一个提示,告诉用户去买张SD卡吧,又不贵。 因为一个没有SD卡的用户,机身内部存储卡估计也早满了,能够安装你的游戏,已经算是挤得不能再挤了,何必为这点东西而大改你的设计。
如果想要做得好,也可以先判定是否有SD卡,如果没有SD卡,则还是使用机身内存……。这要看如何取舍了。
 
BTW:在ANDROID上,判定SD卡剩余空间,也挺好弄的。 http://www.oschina.net/question/54100_33506?sort=time
PS:IOS还未测试

posted @ 2014-07-07 00:17 麒麟子(Alex) 阅读(...) 评论(...) 编辑 收藏

ANDROID下面的游戏更新目录相关推荐

  1. 腾讯手游助手android文件夹,腾讯手游助手安装的apk在哪个文件夹?腾讯手游助手游戏安装目录介绍...

    腾讯手游助手游戏的安装目录在哪个文件夹?腾讯手游助手,我们在安装的时候并没有给出设定把下载的游戏存放到哪个盘,很多人都是担心在c盘,其实不在c盘,那么,腾讯手游助手安装的apk在哪个文件夹呢?下面给大 ...

  2. 基于Android的社交游戏百宝箱App设计与实现

    目录 一.产品设计方案 1 (一)项目实施可行性报告 1 1.可行性研究前提 1 2.技术可行性分析 2 3.市场可行性分析 3 (二)产品定位及目标 4 1.产品需求 4 2.产品定位 4 3.产品 ...

  3. Android 8.0学习(32)---Android 8.0源码目录结构详解

    Android 8.0源码目录结构详解 android的移植按如下流程:     (1)android linux 内核的普通驱动移植,让内核可以在目标平台上运行起来.     (2)正确挂载文件系统 ...

  4. Android APP增量更新

    最近项目推进app的增量更新方案,特意看了几篇文章,先来两个博客地址 http://my.oschina.net/liucundong/blog/160436 https://github.com/c ...

  5. 俄罗斯方块android论文,基于Android的俄罗斯方块游戏设计与实现(论文+任务书+答辩PPT+设计源码)...

    摘  要 随着移动平台的崛起,越来越多的传统PC软件被移植到移动平台,比如ipad,iphone,Android等智能终端设备,在这些平台中,Android占领着最大的市场份额,所以为Android用 ...

  6. android p正式版一加6,国内首家!一加氢OS Android P正式版更新

    原标题:国内首家!一加氢OS Android P正式版更新 一加手机在成为谷歌Android P的首批更新厂商之后,在Android P的更新上就处在了各大手机厂商的前列,并成为了首个适配Androi ...

  7. Android 3D 魔方游戏的设计与开发

    Android 3D 魔方游戏的设计与开发 5.1 Feature 定义 魔方是一个有趣的益智游戏,相信很多人都玩过.本次毕业设计,欲完成的主要的功能如下: (1) 开始游戏:开始一个新的游戏 (2) ...

  8. Android 版本更新,支持增量更新

    AppSmartUpdate 项目地址:itlwy/AppSmartUpdate 简介: a smart lib for updating app / Android 版本更新,支持增量更新 更多:作 ...

  9. P2P、P2SP游戏更新下载解决方案。

    P2SP游戏更新下载解决方案说明   一.      游戏更新目前的状况: 随着网络游戏的发展,游戏目录越做越大,更新也越来越频繁,再加上游戏更新时的集中性,在短时间内要把更新文件推到用户的机器上以确 ...

最新文章

  1. 比起VR高端设备市场,三星或对移动VR平台更感兴趣
  2. ARP协议全面实战手册1.1.2设置过滤器
  3. package.json 中的 bin 字段作用
  4. Spring MVC 完整示例
  5. VS.NET 2005中实用的默认键
  6. P2495-[SDOI2011]消耗战【虚树,dp】
  7. 2021首届“科创中国”开源创新榜评选来了,你优秀的开源内容应该上榜,立即参加
  8. NodeJs——(14)express框架的send()方法简介
  9. ASP.NET三层架构的优点和缺点
  10. php diff 文本比较,php文本操作方法集合比较
  11. android 正五边形图表,Android自定义View-蜘蛛网属性图(五边形图)
  12. Python求二次方程根
  13. 颜色的英语单词,最好是中文和英文的
  14. windows系统c++/VS2019编译gRPC
  15. 织梦栏目地址使用栏目名称首字母
  16. 淘宝网无法确认收货(chrome)
  17. HTML期末大作业 使用HTML+CSS制作科技文化主题网站(航天之路)
  18. 计算机编程课程顺序_您可以在八月开始的500项免费在线编程和计算机科学课程
  19. 在Linux服务器root用户依然遇到删除不掉得文件如何办 ,宝塔用命令无法删除文件得解决问题,使用rm -rf删除命令提示Operation not permitted 如何解决
  20. 银行外汇资金业务学习笔记(2)当我们在说头寸(position)的时候

热门文章

  1. linux裸设备文件系统,关于裸设备,文件系统,CIO/DIO
  2. 解决element的Table表格组件的高度问题( height只能是数字或者字符串 ),实现height: calc(100vh - 260px) 的效果
  3. 2个鸡蛋100层楼/2个玻璃珠39层楼
  4. go-kit入门指南
  5. java webshell_都0202年了老嗨还在用的 - 各种姿势jsp webshell
  6. 基于安卓的高校程序设计类课程考核平台的设计与实现
  7. sharding-jdbc之SQL改写
  8. MindSpore联邦学习框架解决行业级难题
  9. pg_rewind详解
  10. 作者已死?AI正用艺术征服人类