前言
使用过windows mobile手机的人应该都知道RAM这个概念。RAM就好比电脑的内存,给手机运行程序提供空间。但是很多人都会有这样的疑问:为什么打开系统设置里的内存选项却显示总的程序内存小于机器的标称内存?
下面,我们就来看看这部分“消失的”内存,究竟到哪里去了。
概述
产生这种现象的根源在于windows mobile(以下简称wm)系统实际并没有显示出物理RAM大小,它所显示的只是WM系统在载入时及载入后应用程序和进程所可控制/支配的内存总量。
它包括“已使用”和“闲置”两部分。其中“已使用”部分除操作系统占用外,还包括了硬件驱动,个人信息管理,电话拨号等在系统启动时必须加载的程序。这些程序,一部分来自微软,一部分来自制造商,还有一部分来自移动通讯服务商。
自加载的基本内容有:
1.WM系统核心占用一部分RAM;
2.设备驱动占用的一部分RAM;
3.生产商预置的内容,用于第一次开机及格机之后的初始化;
除上述用途之外,其余部分的内存被固定用作了其它方面的用途而并未被系统设置里的内存状况显示所计算在内。这是用户所不能控制的并且更为隐蔽的另一部分被占内存。
包括以下部分:
1. 缓存池(Page Pool)
系统运行程序,程序代码和代码所产生的数据都会消耗内存。对于NOR型flash ROM的设备,代码可以从ROM里直接被CPU调用执行。这种执行方式叫作“立即执行”或“就地执行” (XIP: execute in place)。对于NAND型flash ROM的设备,程序代码必须首先被调入内存,然后再从内存里被CPU逐条执行。如果没有缓存池,代码会首先被全部调入普通的内存里。缓存池实际上就是起到了限制执行代码时占用过多内存的作用,也就是说,超出了缓存池容量的其余代码不会被预先调入内存,而只有需要时再行调入。
WM5系统的NAND型ROM设备的缓存池大小一般是4.5 MB。
2. 射频协议栈(Radio Stack)
在PPC手机中,有相当部分的代码是用于和发射基站间的通讯。在某些设备里,这一无线通讯模块有自己的RAM和ROM。而在其它设备里,无线通讯模块的代码是被存储在系统的ROM里的。这样,它或者是就地执行,或者是调入内存执行。如果是后者,那么这部分被占内存会直接从总的内存中划掉而不被计入系统设置里所显示的总的内存容量的。
这一模块(射频协议栈)占用约 4 MB内存。
3. 直接存取内存区(DMA Buffers)
一些硬件可以不经CPU的处理和控制而自行写内存,这叫作直接性内存读写(DMA: Direct Memory Access)。这块内存区在系统加载前已被事先分出(而不受CPU支配)。这种方式的优点在于能够极高效和通常更低能耗地进行数据的传送。在早期的PPC里,这主要用在音频采集上,通常占用内存很小。现在,它被用于视频采集,从而也占用了大得多的内存。
机器的生产商会根据机器在应用方面的定位来调整这部分内存的大小。譬如如果主要用途是预设为拍照,则会需要较小的DMA内存,而如果考虑用于摄像,则需要占用大得多的内存,而如果是视频会议的话,所需内存会更大。
直接存取内存区的容量从300 KB 到 6 MB 不等。对于把视频采集作为主要应用方向之一的机器,可能会在4 MB左右。
4. 核心区(XIP Kernel)
操作系统最核心的部分需要就地执行(XIP)的模式。对于NAND型ROM的设备,在系统加载时,需要把这部分代码首先载入内存,并从这部分代码开始执行后面的任务。由于系统正在运行时还无法分辨正被执行的这部分核心代码是从ROM还是RAM执行的,所以它会假设是从ROM里执行的从而把这部分内存排除在外。
核心区占用约 1.5 到 2 MB 大小。
5. 帧缓冲区(the Frame Buffer)
这部分内存专门用作存储当前屏幕上显示的一切信息。大多数设备,每个像素占用两个字节(16-bit 65535种色彩)。所以一般320×240的QVGA屏需要150 KB,而640×480的VGA屏需要600 KB。有时为了显示性能方面的原因,机器 会设置两个帧缓冲区,这样就会占用1.2 MB的内存容量。
根据上面列出的部分,对于现在市场上一般配置的PPC手机(基本都是基于NAND型flash ROM的设备),这部分未显示内存大约会占用13-15 MB的空间。
而由于系统的原因,刷不同的系统版本,也会导致“消失的”内存数量不尽相同。所以,即便是同一型号的手机,也未必会显示同样多的内存量。
沙你个发
说实话 我羡慕N900那内存
也才256而已,还比不上diamond2的288M
我对手机的内存观察每这么仔细 ~~
用的m8 的ce
M8不错喔。我也看过好久。
这个我都没有机会研究
新潮玩意儿,也没啥技术,就是没人关注而已了
这个功能貌似很不错啊,要学习一下了
WM就是一个电脑系统的翻版
好专业啊,楼主很厉害,佩服~~
偶尔感兴趣研究一下,感谢支持
看看,没用过WM[yangcongtou::face013.gif]
这个可以有
灰机灰过
路过可是要留点买路财
WM的手机现在已经显得有点落后了,就看WP7能否扭转了,微软加勒个油!
_______________________________________________
小博将于8月8日满1月,欢迎到时候来参加满月Party!
WP7将与android3一决高下
北人网赚(www.beiren.info)坚持网赚原创,坚持更新。希望能与贵站交换链接,如需交换可以加QQ:806768613
暂不考虑交换网赚类型的,谢了
哦,原来是这样,学习了
感谢一如既往支持了
对这些都不是很了解,咋整啊!
[yangcongtou::face149.gif]可以无视
新人学习了
不是新人也学习了~~
哈,你俩真逗
没有新旧之分
现在手机系统还没有一统天下的出现
微软想要独霸移动平台看来是不可能了
貌似现在塞班系统最火爆啊
玩过就知道,塞班不好玩
没用过智能手机 希望今年年底能购置一部体验下
没用过的话,刚开始用可能会很晕
建议有人指导
博主很有才!看了你写的每篇文章感觉都很不错。
感谢支持,欢迎走走
你好,请问你用的是什么主题?写的挺好的。有空我会常来看看你的博客。
主题你研究一下哈,很容易发现的
我对WM系统研究还很浅
看不大懂。
多多观察还是会有收获的
没有机会用啊
现在手机都便宜了,水货更是物美价廉
你对这还研究的够深噜!
爱好而已哈
我的手机照不了像了
摄像头坏了?悲剧
wm如果再不优化它的资源占用,恐怕就会被google和塞班彻底吃掉了
相对而言,WM更像计算机的操作系统,所以资源开销更大也能理解
恩……我用的手机根本无法知道内存,嘿嘿,因为就不是智能手机
非智能快,不卡
为什么我安装主题时总是提示释放内存呢 这个我一直没有搞明白
TSK主题不需要安装啊
话说这手机操作系统我是根本没有用过也,呵呵