www.Walzer.cn - 原创技术博客

专注于智能手机上的APP和BSP开发。
所谓高手,也就是熟悉别人制定的游戏规则、并且能在规则内跳舞的人。
posts - 59, comments - 419, trackbacks - 1, articles - 0
  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理

2008年7月18日

     摘要: 今天有个客户在我的MOBILE手机上做开发,遇到个需要检测POWER键RESUME的问题. 他们直接说在应用层检测这个是不可能的.
那么我们就把不可能变成可能, 无非就是熟悉一下微软的游戏规则而已.
关键函数: RequestPowerNotifications, StopPowerNotifications  阅读全文

posted @ 2008-07-18 17:40 Walzer 阅读(195) | 评论 (2)编辑

2008年2月20日

     摘要: 作者:liswei
Perfalyzer工具其实是结合了Monte Carlo Profile和CELOG。Monte Carlo Profile之前我们已经介绍了,我们来说说这个CELOG工具,CELOG是一个数据log工具,它可以记录各种系统数据,并把这些数据存储在celog.clg文件中,我们可以从celog.clg文件中读取我们需要的数据(celog.clg数据的读取等相关内容,我会在下面结合实际介绍)。Perfalyzer是无需要KITL支持,可以独立运行在设备上,无需要与PB交互。本文对这个工具的使用做具体的介绍.  阅读全文

posted @ 2008-02-20 10:16 Walzer 阅读(313) | 评论 (2)编辑

     摘要: 作者:liswei
Walzer评点:上面一篇微秒级定时器应用的方法,适合于对单线程,或者线程不多时的测试,尤其是CODEC效率这类测试。但我们还需要知道具体该进程占了多少的CPU时间,从而可以配合前一种方法得到的结果,大约地计算出模块所占的MIPS。这就需要使用Monte Carlo Profiler工具了。这对APP开发人员来说可能有点头痛,因为操作到PLATFORM BUILDER和BSP了,至少WINCE里是这样的,WIN MOBILE的情况还不太清楚  阅读全文

posted @ 2008-02-20 10:02 Walzer 阅读(330) | 评论 (0)编辑

     摘要: 作者:liswei
Profile在英文中解释为分类,文档管理。在我们计算机世界中,我们可以通过各种方法来测试我们程序或整个系统的性能,这些方法包括通过测试运行时间、访问cpu的次数,占用多少资源等,我们把这类方法统称为Profile技术。以下我将从应用微秒级精度定时器测试、利用Monte Carlo Profiler 工具、Perfalyzer 方法测试这三方面来介绍Profile技术。本篇先介绍应用应用微秒级精度定时器测试程序的效率。  阅读全文

posted @ 2008-02-20 09:53 Walzer 阅读(302) | 评论 (0)编辑

     摘要: 作者: liswei. 可惜他没有开BLOG 这篇文章不仅写的是WaveOutSetVolume这个API的使用, 还包括了系统注册表里对应于控制面板音量调节的修改. 并且提到了我们惯用的“暴力调用API”方法。  阅读全文

posted @ 2008-02-20 09:41 Walzer 阅读(848) | 评论 (22)编辑

     摘要: 作者:wind2ting BLOG: http://blog.csdn.net/wind2ting
文章给全了用CALLBACK FUNCTION和CALLBACK EVENT两种处理方式的SAMPLE CODE。但要特别注意,这只是个DEMO,在多线程的项目中,WAVEOUT CALLBACK处理中调用WaveOutUnprepare甚至WaveOutWrite是很危险的,具体见我那篇《WaveOutReset的N种死法》。  阅读全文

posted @ 2008-02-20 09:31 Walzer 阅读(657) | 评论 (0)编辑

     摘要: 最近有人批评我说, Walzer你的BLOG很久没更新了, 真懒啊.
俺确实有一阵子没自己动手写啦, 我把有意思的课题让给徒弟们写了, 不过我好歹有个指导老师的头衔嘛.
下面转载一些徒弟们的大作,多数都是在部门里获奖的文章。  阅读全文

posted @ 2008-02-20 09:18 Walzer 阅读(283) | 评论 (1)编辑

2007年12月17日

     摘要: 我遭遇到了调用waveOutReset死锁的问题,在GOOGLE上一搜,遇到同样问题的人还真不少,但没有人很明确地找到造成DEADLOCK的原因,都是糊里糊涂就把问题解决了,然后把运行OK的代码一贴完事。我花了四五个小时才彻底摸清楚规律,把这经验拿出来共享  阅读全文

posted @ 2007-12-17 12:05 Walzer 阅读(687) | 评论 (3)编辑

2007年11月28日

     摘要: EVC中的线程,为什么要声明称static呢,而在静态的函数中药调用非静态成员还不能调用,必须把这些成员也设置成静态的,不怎么方便,有好的解决方法吗?  阅读全文

posted @ 2007-11-28 23:28 Walzer 阅读(439) | 评论 (6)编辑

2007年9月28日

     摘要: 本文给出了利用DATA ABORT消息中的PC值,配合MAP文件快速定位到导致泄漏的函数的方法。
10月11日验证:本文的方法存在漏洞,不好用。  阅读全文

posted @ 2007-09-28 17:10 Walzer 阅读(1905) | 评论 (15)编辑

2007年8月29日

     摘要: 应该只把程序启动时立刻就要用到的资源打包到RES里面,而某些特定条件下才会用到的资源就放在EXE外部,在程序里通过文件系统调用。  阅读全文

posted @ 2007-08-29 17:15 Walzer 阅读(335) | 评论 (1)编辑

2007年5月16日

     摘要: 简单分析了CE5和CE6在虚拟地址分配和进程空间上的异同  阅读全文

posted @ 2007-05-16 23:36 Walzer 阅读(1260) | 评论 (6)编辑

2007年5月15日

     摘要: 从其他网站上转载一个方法,用以解决Platform Builder的Connectivity Options出现unable to read device settings from the Datastore错误, 该方法适用于解决CE6和CE5的冲突。  阅读全文

posted @ 2007-05-15 16:23 Walzer 阅读(1504) | 评论 (12)编辑

2007年5月13日

     摘要: 这周末我花了不少力气才终于安装好CE6, 并且把EMULATOR跑起来可以在上面调试应用。安装时我走了不少弯路,所以把安装顺序和注意点写完整了,避免大家又在这上面花太多时间。  阅读全文

posted @ 2007-05-13 15:59 Walzer 阅读(12098) | 评论 (112)编辑

2007年5月1日

     摘要: 本文给出了丢帧的一种原创算法,比较土,效果看起来还可以。  阅读全文

posted @ 2007-05-01 10:47 Walzer 阅读(584) | 评论 (4)编辑

     摘要: 播放器里,音频断续的问题并不是一定由音频解码自己本身造成的,还得看别人的脸色,DEMUX是否被卡住,DECODER是否得到足够的INPUT DATA;RENDER是否被卡住,DECODE出来的数据是否及时处理完毕腾出BUFFER。即使AUDIO DECODER自己优先级很高,但前后的FILTER被卡住,音频同样也是会断的。而整条音频播放的链,又受到VIDEO DECODER那条链的影响和制约。这使我想到一句名言:木桶能装多少水,取决于最短的那块木板。  阅读全文

posted @ 2007-05-01 09:40 Walzer 阅读(618) | 评论 (0)编辑

     摘要: 本文描述了REAL格式中根据DEMUX得到frame timestamp时存在的问题,然后修正了RM文件读取FramesPerSecond参数时主要注意的一个容错性问题,最后根据FramesPerSecond参数,给出了计算REAL VIDEO FRAME时间戳的有效方法。  阅读全文

posted @ 2007-05-01 08:13 Walzer 阅读(666) | 评论 (4)编辑

2007年4月15日

     摘要: 本文描述了如何从Platform Builder for Windows CE里定制一个for eVC的模拟器,可定制的内容包括中文支持、组件支持、分辨率和色深等。
  阅读全文

posted @ 2007-04-15 09:54 Walzer 阅读(5645) | 评论 (65)编辑

2007年4月14日

     摘要: 本文给出了非MFC方法下,去除BUTTON控件背景色的方法,应该也适用于STATIC_TEXT其他GWES控件。文中给出了参考代码和各步的处理效果图。  阅读全文

posted @ 2007-04-14 14:27 Walzer 阅读(1874) | 评论 (11)编辑

     摘要: 用Remote Spy++找到任务栏窗口的名字,然后FindWindow找到它的HWND,最后用ShowWindow隐藏它,用EnableWindow取消它的响应。真没技术含量。  阅读全文

posted @ 2007-04-14 10:43 Walzer 阅读(1263) | 评论 (2)编辑