Windows Mobile设备跟桌面PC比起来,资源是相当受限的。目前最新的设备一般也就128M RAM+256M Flash,再外扩4G的存储卡。但Windows Mobile设备的资源与RAM和Flash是用Byte来计算的8bit单片机来说,还是相当可观的,编程的时候也不用像以前那样抠门到以Byte来计算全局变量。虽然是如此,但是程序和OS都是在RAM中运行的,最郁闷的是,由于RAM不够大,以至于跑一些软件时,不得不关掉正在运行的程序,为其腾出一些空间来,这样捉襟见肘的日子在以前还是经常碰到的。

大家知道,在Windows Mobile设备上,我们可以通过settings->system->memory来查看当前设备资源的使用状态,但是这个就需要动那么几下手,点击屏幕,麻烦。我们一般喜欢偷懒,让这些信息实时显示在今日界面上该多好啊,于是,好多公司的软件中都将设备资源的使用状态实时显示在界面上,比如Spb的,比如Resco的,很多很多。

其实,在WM6.0 SDK自带的Sample中,就有相关的程序,它位于” \PocketPC\CPP\win32\MemWatcher”文件夹下。这个工程是用native code写的一个今日界面的插件,编译完以后,生成一个dll文件和cab安装文件,我们可以直接将cab文件安装到设备上,然后在今日界面的设置中,将它显示。如下图1所示:

图1:MemWatcher的今日插件

当然,我们也可以通过platform invoke将coredll中的GetDiskFreeSpaceEx引入进来,通过得到的Total Free Bytes和Total Bytes计算当前的资源使用情况。如图2所示:左边是程序的运行效果,右边是settings->system->memory的信息,通过比较可以发现,他们显示的资源信息是一致的。

图2:计算Memory使用的程序

附上今日插件的那个MemWatcher安装包:memwatchercab.CAB.rar,下载后,直接将文件命改为memwatchercab.CAB,然后在设备上安装即可。以及显示资源程序的源文件:GetStorageCard.zip

参考文章:Display Device memory information with P/Invoke

Memory Information on Windows Mobile相关推荐

  1. Memory Information on Windows Mobile(续)

    在<Memory Information on Windows Mobile>一文中,讲述了Windows Mobile 6 Professional SDK中的一个关于在今日插件中显示内 ...

  2. DumpMem and Monster - Virtual Memory Explorers on Windows Mobile/CE

    Windows Mobile 5 和 6的平台是建立在CE5.x的基础上的.当可用的内存很少时,平台会自动关闭应用程序.而且,在这个移动平台上,同时只能运行32个process.在桌面电脑上,我们有4 ...

  3. Windows Mobile使用Shared Memory(共享内存)进行IPC(进程间通信)的开发

    背景 在Unix-like系统进行IPC(Inter-process communication)通信,Shared memory是效率最高的,我称之为IPC的王中王. 简介 本文讲述在Windows ...

  4. windows mobile做一个摄象头预览程序

    zdirectshow的原理大概大家都知道,基本就是用微软封装的接口来实现硬件无关性,但是最终调用的接口都要在驱动层有对应的实现: 为了更清楚地演示directshow的数据传输过程,我必须说明的这个 ...

  5. 在Windows Mobile手机上运行Android

    Interested in Android but think you need to buy a new phone to try it out? Actually, your Windows Mo ...

  6. Windows Mobile 上显示png,jpg,bmp等图片

    不只是可以显示png,jpg,bmp等等都可以,gif也行,不过只能显示单帧. 一种方法是用IImagingFactory 中的CreateImageFromFile 先看看msdn: This me ...

  7. Windows Mobile Crossbow详尽评测

    前段时间我写了一篇<Windows Mobile Crossbow 预览>,报道下一代Windows Mobile操作系统状况,并给出了几张Crossbow的截图让大家了解一下.前天发现了 ...

  8. ILockBytes Windows Mobile 6.5

    ILockBytes Windows Mobile 6.5 https://msdn.microsoft.com/zh-cn/library/aa911496(en-us,MSDN.10).aspx ...

  9. Windows Mobile和Wince(Windows Embedded CE)的字符集问题

    背景 开发过Windows Mobile和Wince(Windows Embedded CE)的开发者,特别是Native C++开发者,或多或少都遇到过ANSI字符集和Unicode字符集的转换问题 ...

最新文章

  1. 浅析pinyin4j源码 简单利用pinyin4j对中文字符进行自然排序(转)
  2. 影响线型缩聚物分子量的因素_【CRPS】通过硼烷引发剂实现氧气引发的超高分子量聚合物的可控合成...
  3. DIY一个基于树莓派和Python的无人机视觉跟踪系统
  4. 应用程序连接Oracle rac的URL写法
  5. log4j debug写法
  6. 【学习记录】网络层——IP数据报(格式与分片)
  7. Python中turtle模块画图
  8. 中鸣机器人编程教程 c 语言,足球机器人编程(最好是图形化语言
  9. JavaScript高级程序设计(4)
  10. 设置为首页,加入收藏 | JS完美实现代码收藏
  11. 日志易使用系列四:日志采集 Agent 的配置
  12. steam错误代码100怎么办
  13. 国外的大龄程序员在干什么?
  14. 用python爬取隐藏内容_人民日报点赞北大保安小哥,自学Python后,人生开挂了!...
  15. 爬虫实战之爬取电影天堂全部电影信息
  16. FTP Server端的使用
  17. SVG Symbols
  18. Unity中Destory()、DestoryImmediate()和GameObject==null问题
  19. html 点击加入qq群,怎么样加入QQ群?加入QQ群两种方式介绍
  20. Information and Influence Propagation in Social Networks学习笔记

热门文章

  1. FPGA之道(61)时空变换之时间换空间
  2. 【 MATLAB 】信号处理工具箱之波形产生函数 gauspuls
  3. JavaScript高级程序设计(1)
  4. 为什么要把js放在body的末尾?
  5. PyCharm安装mysqlclient一直提示MS Visual C++ 14 required
  6. Bzoj3550 [ONTAK2010]Vacation
  7. apache ab测试介绍
  8. pyinstaller 工具起步
  9. ADS1.2安装教程
  10. 【JOURNAL】城邦组诗之十二 - 心肠