android虚拟内置sd卡,Android: 浅论虚拟SD卡的实现

75b54eec000b560c9c29a962f7609298.png

项目中使用分布式并发部署定时任务,多台跨jvm,按照常理逻辑每个jvm的定时任务会各自运行,这样就会存在问题,多台分布式jvm机器的应用服务同时干活,一个是加重服务负担虚拟sd卡是什么,另外一个是存在严重的逻辑问题,. 比如需要回滚的数据,就回滚了多次,刚好quartz提供很好的解决方案. 集群分布式并发环境中使用quartz定时任务调度,会在各个节点会上报任务,存到中,执行时会从中取出触发器来执行,如果触发器的名称和执行时间相同,则只有一个节点去执行此任务.。开发人员,一定要养成业务思维的模式,所谓的业务思维,就是在做任何一个项目的时候,写任何代码前,需要对项目本身的业务概念和业务逻辑甚至业务流程都要有一个全面的学习和理解,这虽然不是一个项目的强制要求,却是一个很好的开发习惯,无论自己的觉得是开发者还是测试员又或是技术总监,掌握了业务原理,才能够更好的设计或阅读项目的数据结构和流程结构。开发正规的程序跟那种写个运行一次就扔了的小脚本一个很大不同就是.你的代码总是需要不断的更改.不是修改bug就是添加新功能等.所以为了日后方便程序的修改及扩展.你写的代码一定要遵循易读、易改的原则(数据叫可读性好、易扩展) 如果你把一段同样的代码复制、粘贴到了程序的多个地方以实现在程序的各个地方调用这个功能.那日后你再对这个功能进行修改时.就需要把程序里多个地方都改一遍.这种写程序的方式是有问题的.因为如果你不小心漏掉了一个地方没改.那可能会导致整个程序的运行都出问题.因此我们知道在开发中一定要努力避免写重复的代码.否则就相当于给自己再挖坑. 。

我们知道,Android的设计中,SD卡(ExternalStorage)是非常重要

摩托罗拉ce0168刷机方法:1先将下载好的rom卡刷包复制到根目录下的zip格式的rom包(比如:xxxxxx.zip),然后再选择【是的-安装 xxxxx.zip】,按电源键确认6等待刷机完成后,返回上级菜单,最后选择【立即重启系统】。当然在完成软件的下载安装后可以不需要解压直接就放入到文件夹中,然后将sd卡与电视相连,进入到电视的主页中,选择“设置”,里面就有直接的软件安装选择,用户们可以点击选择“软件恢复”就可以了。程序运行,首先根据manifest清单文件(这个文件可以嵌入到exe或dll中,或者单独生成外部文件,可以通过vc2005/vc2008的编译选项控制:工程“属性”->“配置属性”->“清单工具”->“输入输出”->“嵌入清单文件”,选择“是”或“否”来控制)来查找程序运行需要的dll库的名称、版本等,如果所在的系统中没有程序运行所需要的dll库和相应的manifest清单文件,则弹出“应用程序配置不正确,程序无法启动”对话框。

有些APK在运行中需要SD卡来存储数据,而有些大型游戏需要大量的SD卡空间

1-738-png_6_0_0_84_339_549_396_892.979_1262.879-1024-0-441-1024.jpg

这样如果系统没有接入SD卡,某些APK就会碰到安装或运行的问题

但对于现在的硬件平台,很多都内置了几个G的存储空间(Nand/iNand Flash)

放着这么大的空间不用,却要依赖于SD卡插入才能运行某些APK

这样似乎有点说不过去

2f25e39a6a2aaec7f9306c7f1f627e8e.png

所以要想办法把内置空间用起来

现在主流的做法是怎样的呢

三星、联想好像是这样做的

把内部flash mount为sdcard,然后把外部sd卡 mout到 /mnt/sdcard/下面的某个子目录

wKhQc1R1v9SED1PKAAAAAK3pZLs531.jpg

比如 /mnt/sdcard/externacard

这种做法的优点是可以有一个一直存在的SD卡

缺点是内置flash要足够大,mediascanner中要增加/mnt/sdcard/externacard的扫描、mount/unmount处理

而APK是没有机会安装到实际的外置SD卡上的

5682071c8f167267aa88925ffa48c63e.png

另外的一种办法是

在没有SD卡插入时把一部分内置flash mount到/mnt/sdcard

在SD卡插入时把实际SD卡重新mount到/mnt/sdcard

由于这一代极路由不再内置存储空间,因此想要安装各种功能插件的话,就必须插入 sd 卡才能安装,这也是为了节省成本的常见做法。五、安装ftp,用于客户上传数据到空间上我这用的ftp是muddleftp,rpm包安装可执行文件安装路径:/usr/prima/muddleftpd/bin/usr/prima/muddleftpd/sbin配置文件:/usr/prima/etc/muddleftpd/ftpd.conf/usr/prima/etc/muddleftpd/ftppasswd.conf被动模式端口范围:tcp 9000~9049创建2个站点目录:sky1.com sky2.com 目录位置:/www/users/创建ftp虚拟用户,并所定到站点目录,(安全考虑,该ftp用户是无法登陆系统的)添加新的ftp帐号的方法:/usr/prima/muddleftpd/bin/mudpassd –p /usr/prima/etc/muddleftpd/ftppasswd –a sky1 –r /www/users/sky1.com –h /www/users/sky1.com执行这条命令后,会要求输入一个密码。限于篇幅原因,vsftp的安装配置不再在本文展示,vsftpd使用yum安装很简单,主要是要配置vsftpd使用虚拟用户(这样就不需使用centos的系统用户来操作,还可以指定每个虚拟用户的根目录,比如本文中的网站根目录/var/www/www.jjonline.cn/wwwroot,设置ftp的跟目录为/var/www/www.jjonline.cn/,配合php代码,可以提高不少系统安全性),配合web服务。

缺点是相当于两个SD卡在切换,就是说安装到虚拟SD卡上的APK在第二个SD卡插入时消失

第一种的代码修改比较多,主要是增加/mnt/sdcard/externacard设备的mount/unmount, mediascan处理

第二种的修改比较少,只需要在vold里面做workaround

#一不小心写成了梨花体,借此向梨花姐姐致敬

本文来自电脑杂谈,转载请注明本文网址:

http://www.pc-fly.com/a/shouji/article-113076-1.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值