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

Android高性能文件类MemoryFile

HTML文档下载 WORD文档下载 PDF文档下载
Android高性能文件类MemoryFile

作者:Android开发网


  很多网友抱怨Android处理底层I/O性能不是很理想,如果不想使用NDK则可以通过MemoryFile类实现高性能的文件读写操作。MemoryFile顾名思义就是内存文件的意思,如果你过去从事过Win32开发,那么它的原理就是MapViewOfFile(),当然开发过Linux的网友可能很快就联想到了mmap(),是的该类就是他们的托管代码层封装,位于android.os.MemoryFile这个位置,从Android 1.0开始就被支持。

  MemoryFile适用于哪些地方呢?

  对于I/O需要频繁操作的,主要是和外部存储相关的I/O操作,MemoryFile通过将 NAND或SD卡上的文件,分段映射到内存中进行修改处理,这样就用高速的RAM代替了ROM或SD卡,性能自然提高不少,对于Android手机而言同时还减少了电量消耗。Android123提示网友该类实现的功能不是很多,直接从Object上继承,通过JNI的方式直接在C底层执行。

 主要的构造方法 MemoryFile(String name, int length) ,这里第二个参数为文件大小,需要说明的是Android的MemoryFile和传统的mmap还有一点点区别,毕竟是手机,它内部的内存管理方式ashmem会从内核中回收资源。毕竟目前部分低端机型的RAM也比较吃紧。 

synchronized boolean  allowPurging(boolean allowPurging)  //允许ashmem清理内存,线程安全同步的方式。
 
void  close() //关闭,因为在Linux内部mmap占用一个句柄,不用时一定要释放了
 
InputStream  getInputStream()  返回读取的内容用Java层的InputStream保存
 
OutputStream  getOutputStream()  把一个OutputSream写入到MemoryFile中
 
boolean  isPurgingAllowed() //判断是否允许清理
 
int  length()  //返回内存映射文件大小

下面就是我们熟悉的,读写细节,主要是对字符数组的操作,这里大家要计算好每个文件类型的占用,同时考虑到效率对于自己分配的大小考虑粒度对齐。
 
int  readBytes(byte[] buffer, int srcOffset, int destOffset, int count)
 
void  writeBytes(byte[] buffer, int srcOffset, int destOffset, int count)  

  具体的实际应用,Android开发网将在下次和大家讲到。

AWS集群计算新增内存分析EC2实例 手游:鼓足力气,掰弯传统3D游戏大作 LBA兴起:未来移动广告将基于地理位置 苹果发布2013财年Q1财报:iPhone销量及营收低于预期 不再被墙后 一个全新GitHub到来 与乔布斯并肩作战的日子 Google抛弃Exchange ActiveSync WP用户获DAV支持 Facebook真的要做“Facebook Phone”? 程序员,都去写一写前端代码吧 清除山寨和广告应用,“豌豆洗白白”服务上线 谷歌另类“开源” 程度仍不及Facebook和Twitter 想在云中分一份蛋糕? 不妨试试“山寨” 为何乔布斯脾气怪糟 却能让一群最优秀的人为他卖命? 单页Web设计案例+技巧攻略(多图) IE10里的捕捉模式和响应式设计 在“亚马逊商店”出售自己:产品经理这么找工作 【CTO俱乐部第92期】大规模存储与电商架构演化实战分享 刘黎明:PaaS是非主流业务,要与IaaS融合 个人手机游戏开发者之死 为什么苹果的应用审核是个笑话? 程序员性格怪癖是才华横溢的表现,还是危险分子的征兆? JavaScript Source Map详解 8条学习编程的可靠建议 一周消息树:亲爱的GitHub,我们怎么访问不了你? [回顾] 2012年几大编程语言就业趋势分析 研发周报:微软无视W3C 拒绝遵循WebRTC标准 移动周报:夫妻档闯江湖 事业爱情双丰收 当服务器遇见锤子:第六届AWS全球创业大赛落幕 C# DataTable 和List之间相互转换的方法 iPad如何在三年内改变世界 划时代的成果:新DNA存储技术 轻而易举装下世界 关于Pointer类型数据和自定义的数据类型(Record),TList的保存问题。 请问哪里有《WRITING WINDOWS VXD AND DEVICE DRIVER》下载,中英文皆可,作者KAREN HAZZAH 还是#pragma的问题请教高手 用鼠标选定图形应该怎么做? !!!超长数字,大家猜猜,欢迎灌水!!!! 关于localhost不能直接连接的问题 请问一个很简单的问题,做了一个查询功能,如果没有查到记录,怎样做才能提示:没有满足条件的记录!的这样的信息呢?很菜的问题! 如何在浏览器客户端上载一个文件,传送到SERVER数据库? 关于求余和with语句 各位各位,小弟有新发现哦,爽。 我想学GIS (dos高手的挑战!!!)如何在dos下对声卡编程选通CD-IN通道,实现CD播放 jdbc连接oracle8i的问题?急。 如何用<logic:iterate>与<html:radio>配合将<logic:iterate>的列出多项列表项,从中选定一项,并对该项进行操作?如何联系?谢谢!急用! 哪有jbuilder中文版文档 请问怎样将整个屏幕拷贝到一个Image对象? 如何在vbscript中获取javascript取得的下拉菜单所选择的值?(急,在线等) 在聊天室中服务器的socket怎么和多个客户端的socket建立连接? 如何在Post以后保存Post之前的值 史上最恐怖的10个鬼故事!!! j2ee中的EAR 和war是怎么生成的,具体用什么工具,怎么生成的 紧急降落求救(在线等待)…………谁能告诉这个水晶报表的问题04, 图形如何和数据库关联? 积分运算? 急!!! 怎样在RowFilter中用函数表达式, 如SubString, ToString等? VB中的WINSOCK在哪里?我打开VB找了半天没找到这个控件,真衰 请教.... 能否在autoexec.bat的内容里: path ......... 加上 ;c:\windows \.....之类的? tomcat 4 中配置JDBCRealm的问题。急啊!! mysql怎么用money类型的数据? 会用FileGateway的进来 服务器配置(jdk1.3+tomcat或jswdk) 关于dreamweaver mx的font preference设置 redhat9.0的安装问题 如何获取文件上传者的IP地址?(马上给分)万分感激,在线等待. 各位大侠帮帮忙!急!!!有高分! 如何删除用户控件 请问我将汉字写入一个HTML文件,但显示出来是乱码..有没有解决办法 请教各位前辈,继续提问关于《Visual basic 与RSC232/485串行通信》的问题 高分求救---如何把wma文件转成mp3文件 200分求购自动动生成的缩略图的代码???不够有分加 struts中的分页问题? 在delphi如何中为web中的数据与程序通信... 按web页查看时出的问题!!请高手帮助 一天一小问,请教请教,今天问连接数据库问题! 郁闷中,哪们大哥帮帮我! 正式接到SCJD Assignment, 进入努力状态中. :) 我用的是2000系统,最近老是弹出信使服务的窗口 ,怎么样才能拒绝这样的消息? 关于逗号表达式值的问题 菜的问题,请指教 这里是24真彩 to 256 灰度 部分代码,谁还有更快的? 在三角形ABC中,顶点A,B和内心坐标分别为A(9,1)B(3.4)I(4,1),求C点坐标.除了设C(x,y),列距离相等方程还有其他方法么? 欢乐斗地主里面的倍数是怎么算的 五年级的正方体计算(1道题)一个正方体的表面积是36平方米,它的体积是( )立方米.请不要弄根号和ˇ—的什么什么··· 已知△ABC的三个顶点A(4,0),B(8,10),C(0,6)求过B点且与A,C距离相等的直线方程 HELP ME 1."山重水复疑无路,柳暗花明又一村"是出自___的2.野艾_______________(是解释意思哦,我怀疑野艾是一种植物.)3.阅读:发现 (闻一多)我来了,我喊一声,迸着血泪,"这不是我的中华,不对,不对!"我 英语句子结构问题这是2009年第一道题的第一句话:Reasearch on animal intelligence makes me wonder just how human are consider friut-fly experiments described in Carl Zimmer 's piece the Science Times on Tuesday.也就是主谓宾和 2006*20052006-2005*20062005的简便计算过程 能不能用伟岸形容女人, 我需要一篇400字的作文题目《我和书的故事》 f(x)=1/3*x^3-a/2*x^2+(2-b)x-2,a,b∈R,已知f(x)在区间(1,2)内存在两个极值点,求证:0 六年级下册语文冲刺一百分第二单元答案,由回答的人说要多少分,30分左右, 关于几道英语句子结构的题目A .S+V B.S+V+DO C.S+V+DO+OC D.S+V+IO+DO E.S+V+P 1 .Andy is planning to go out _______2.Playing football is interesting _______3.He is running ______4.The book on the desk is mine______5.He gave me a book _______ 设x=1,x=2是f(x)=ax³+bx²+6x+1的两个极值点.求(1)a,b (2)求f(x)的单调区间设x=1,x=2是f(x)=ax³+bx²+6x+1的两个极值点.求(1)a,b(2)求f(x)的单调区间 《哀溺》中,那人被淹死的直接原因是——;根本原因是——.(用自己话回答)请语文天才们帮帮忙!这是原文:永之氓咸善游.一日,水暴甚,有五、六氓乘小船绝湘水.中济,船破,皆游.其一氓尽 英语关于句子结构的题目A.S+V B. S+V+O C. S+V+PI like Engish she is pretty They are laughing He looks young将结构的序号 填入 句子的括号内。。 求抛物线y=-1/2x^2-x+3/2顶点坐标与对称轴,当x取何值时,y随x的增大而增大?,当x取何值时,y随x的减小而减小? 13.14.15题 有关英语句子结构的一些题目He discusses problems with his business partners.He asks his workers to do jobs for him.Then he gives them pay weekly or monthly.He has to spend a lot of time and effort.以上句子能不能告知一下它们 2005+2006乘20052005减2005乘20062006加1得几多?一定要下过程啊! 50的倍数一定是2的倍数,对还是错 给我一片作文 题目《语文书中的故事》要求:翻开语文书,除了看到一篇篇有趣的课文,一幅幅精彩的图片,你有没有发现藏在语文书里的故事?通过阅读,找找语文书里的故事,选一两个写下来. 谁有子女与父母发生隔阂的作文 2005乘20062006减2006乘20052005等于多少? 50/0.2=250,所以说50是0.2的倍数,0.2是50的因数.对还是错. 抛物线Y=A[X+2]的平方-1交x轴ab两点a在b的左边且ab=2求抛物线解析式急, 已知两点A(-8,0),B(2,0),以AB为直径的半圆与y轴正半轴交于点C.求经过A、B、C三点的抛物线的解析 学神快来,help~ 已知抛物线的顶点是从(1,16)且与x轴交于A/B两点(A在B的左边)若AB=8,求该抛物线的解析式 如图,抛物线的图象经过A(-1,0)、B(4,0)、C三点,点C在Y轴的正版轴上,且AB=OC.(1)求点C的坐标(2)求这个抛物线的解析式及此二次函数的最大值. 学神们,Who can help me? 已知弧长3557mm 高为1160mm 弦长2300mm 求弧形面积.公式也给我 1.计算:∫上限1下限0 x(根号(1-x^2) dx 2.∫上线pi/2下线0 cosx^3sinx dX 第一次用作业帮提问,学神们,help help , 弧形面积!弦长1464mm弦高290mm. 已知抛物线y=x²+bx+c经过点(2,-1)和(4,3) 求这个抛物线的解析式 上帝啊 让学霸help me吧 已知弧长为1478.12mm,高为180mm,弦长1417.96,求弧形的面积! 21题,学霸help help谢谢 神们~help! 三颗纽扣的房子告诉了人们什么道理 一道数字推理题~Help!4,3,8,6,12,12,(),()后面两个空填什么啊?答案是16,24,可是我怎么也找不出规律,Thans very much!我没有分,但是我有一颗真挚的心♡♡♡♡♡♡♡♡b 动物昏迷有什么额外奖励 四年级上册中文章三颗纽扣的房子的问题(四年级的回答)看来问题不在于小房子,而在于心 这句话是怎样理解的 我会用数学那题,请学霸help me 地球公转为什么会产生四季变化?早上听了老师的讲解,不太理解.请用通俗易懂的话语解释一下, 美国动漫讲述了一个小女孩在屋子里发现了一个小门然后钻进去了来到一个布偶世界 还有女巫那扣子缝眼睛美国动漫讲述了一个小女孩在屋子里发现了一个小门然后钻进去了来到一个布偶世 二次函数y=ax^2+bx+c 的图像与X轴的负半轴相交于点A,与X轴的正半轴相交于点B,与T轴交于点C,C点的坐标为(0,-3),且BO=CO, 书有说:电流是电荷流经一点的流量速率.请老师们举例通俗易懂地讲解一下. 若命题p交q为真,-p为真,则 欢乐斗地主 200倍场倍数的问题想问下,为什么,同样的倍数,别人赢我是20万,我赢别人却只10万,还有个就是,有些人怎么要牌之后还可以明牌啊,那是怎么搞的啊 数学正方体面积怎样求 一个 巨难 的英语句子结构的分析---务必高手帮忙(1)“Most of the infections(感染)we think of as human infections started in other animals,” says Stephen Morse, director of the Center for Public Health Preparedness at Col 初二语文问题(HELP!)1.楼因诗显,岳阳楼因范仲淹的文而名垂千古,写出让长江另外两座楼文明的诗人,标题及诗句.2.先天下之忧而忧,后天下之乐而乐,战国初期孟子说过的类似的两句话是( 一个棱长为6cm的正方体木块,如果把它锯成棱长为2cm的正方体小木块(我这个图上好像有27块,表面积增加了多少?请写出过程and为神马! 我现在是初一,这题不会做,大家帮帮忙 欢乐斗地主里的倍数是怎么算的 1.有一个正方形木块,棱长3CM 再六个面上各凿一个边长为1CM的洞【对穿】剩下木料多少?2.用厚1cm的木板做一个无盖木盒,从外面量长10cm 宽8cm 高5cm.做这个木盒要木板多少cm的平方?容积是多少?3. 三角形ABC中,顶点A(9,1) B(3,4) 内心D(4,1),则顶点C的坐标什么? 从括号内的句子中提炼成语公元383年,苻坚征调各族人民,组成78万人的军队南下进攻东晋.因为根据情报,东晋只有十多万兵力,所以苻坚很狂妄地说:"(我的大军只要把马鞭扔进河里,就能让河断 一个正方体的体积是125cm^,现将它锯成8块同样大小的正方体小木块,求每个正方体小木块的表面积. 中方支持安理会与伊斯兰合作组织深化合美国将与新西兰重启两军对话伊拉克多起暴力袭击致48人伤亡专家:中国需当地区强国应理直气壮发展台媒:中国核潜艇的巨浪-2导弹能打到英媒:中国核艇或改变美军思维 重绘亚格执政联盟候选人有望大胜叙利亚提交化武销毁计划男子纽约杀亲戚5人奥巴马亲自上阵引外资蒙古国总统访朝 金正恩首迎外国元首朝鲜称将继续发射卫星朝鲜将派小球员赴欧留学德媒称奥巴马知晓“监听门”格鲁吉亚选总统最高法强调依法办案 排除权力金钱人情河北冀宝斋博物馆馆长王宗泉去世 馆方俄称愿与北约就导弹防御系统进行建设性美4囚犯上演浴室版“越狱” 2人被缉美方称机密情报泄露未对美外交政策造成美方称机密情报泄露未对美外交政策造成浓烈优雅蒂凡尼的早餐东海银湾售楼“不打烊”南海怡丰城试业3个月人气爆棚马拉松创意大赛启动护豚没钱?诈骗万元月饼新花样 DIY最健康后日起顺德候机楼 将增6趟机场快巴三水严查外地摩托车“闯禁”合家观影学养娃道理吃火锅智障? 酒店不赔钱部分景区严控价格上涨广东健身气功联赛举行本期发声天河商圈转打体验牌深圳初步实现社区首诊高校腐败多发折射内部治理之乱新能源汽车充电设施有望获千亿元补贴小洲便桥公交线恢复团购销量大幅降 月饼价格更亲民世界最长寿男 爱读汉诗万家乐空气能产品启动全国招商
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘