Windows Mobile操作系统,其实可以看做是Windows开发,基本上很多地方都很相似,但是在性能上还差很多,所以在WM上做平常的应用程序,也不知道编写什么好,每次刷机啊,刷ROM啊之类的,弄完了之后都要对系统进行优化,例如是否实现动态窗口效果,是否打开关闭警告,这些还要手动修改注册表,对于我们这样的开发人员而言,可能修改注册表什么的,是很简单的事情,但是对于一些不是搞编程的人来说,还真是头疼,例如我老舅,他就喜欢WM的手机,但是总是搞死机,这确实很让人郁闷的,现在回头想想,其实系统优化,不就是一些注册表之类的优化吗,不如动手做一个Windows Mobile系统优化软件,就当小试牛刀了。
不知道叫什么名字好,既然Windows下有一个Windows 优化大师,干脆我就叫Windows Mobile 优化小师吧,挺搞笑的,也蛮像的,OK,来分析一下需求,一个用户,需要哪些操作呢,大概整理了一下,基本如下所示。
其中,系统缓存在1-6之间,越大越好,显式速度也是越大越好,如果是6.1的系统,可以打开动态窗口等效果,大概整理了一下,恩,差不多,就这样了。
再看看注册表中都有哪些好玩的。
HKEY_LOCAL_MACHINE/System/StoragManager/FATFS/EnableCache 【该值保存的是缓存,从1-6,6为极限】
HKEY_LOCAL_MACHINE/SYSTEM/GDI/GLYPHCACHE 【该值是系统加速,默认61440,最大可设置到92160】
好,既然知道了一些基本的注册表中的值对应的Windows Mobile中的意义,能给操作系统带来什么影响,看来只需要修改相应的值就能够实现系统优化了,(暂时我们不谈怎么测试和优化读写速度之类的)。
那么,当打开窗体的时候,就需要载入一些信息,代码如下所示。
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
这些都只是相应的函数而已,还没实现,例如GetCatch就是缓存,当然我这里写错了,=。=,非常不好意思,懒得改了,这个随便了,大家凑合一下。
那么查看注册表中缓存的值的函数代码如下所示。
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
其中Registry.LocalMachine锁定了HKEY_LOCAL_MACHINE,然后分别进入 System/StorageMnager/FATFS,然后获取EnableCache的值,如果该操作系统不支持或者注册表中的这个值不是保存在这的,那么就出现异常,我们将它变为灰色,不能选择,当选择完成后,就需要保存键值。
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
使用SetValue方法就能够保存相应的键值,保存后,只要重新启动一下WM就行了。
当然,用户可能需要其他的优化,我老舅就喜欢上网,让他上网速度快一点吧。
其中只需要修改相应的注册表的值,就能够提升IE浏览器的速度和加快上网的速度,基本上没有什么技术难度。
如果再做的傻瓜一点,当另一个朋友买了WM手机,然后想要优化,不如直接点击【推荐配置】,或者当一个机油,想要把字体变成微软雅黑,比如我,就要不停的修改注册表中的值,不如一次批量修改算了。
小结:
本节中的DEMO基本上都是通过修改注册表来实现的,其实在很多方面,做WM开发,只需要带着Windows开发的思想就可以了,没有必要带着【嵌入式】【智能机】的包袱,好像做智能机应用开发是一件很麻烦的事情一样,虽然做智能开发门槛确实比较高,就算能够通过.net能够实现一些功能,但是,很多功能是不能通过.net实现的,这就需要一些C++知识了。
但是,做什么都需要从简易难,一开始做一些小程序,对自己而言是非常有用的,例如本例中的【优化小师】,虽然对于开发人员来说,好像也没方便多少,更不要说企业应用了,但我觉得做开发应该看需求,而不是看技术,例如这个优化小师,很多WM的初学者还是非常需要的。如果专门论技术,QQ技术含量也没多少,但是就是能够把握住年轻一代的需求,什么非主流啊,空间啊之类的,就算是成功了。
。。这些都是题外话了。。回过头来,本节简单的讲解了如何制作一个自己的优化程序,其思路非常简单,就是修改注册表,修改注册表的过程也非常简单,直接通过修改注册表就能够优化WM系统了。
不过最后值得提醒的是,在修改注册表时,别忘记引用Microsoft.Win32命名空间,对于初学者,连找个命名空间都有点难,希望能对初学者提供一些帮助。在下一节中,就会讲到一些基本的命名空间的使用,包括发送邮件,发送短信以及DirectX等,希望能够和高手一起共同学习。
DEMO下载: