月归档:2010 年七月

ProGuard混淆丢掉空循环

项目正要发布时,我用proguard打了个混淆包,想不到运行的时候出错了。proguard是Netbeans6.9 J2ME插件自带的,版本号是4.4。 无奈只好debug加反编译,发现居然混淆后的代码里,我用来挂起线程的空循环语句,所谓的busy-waiting loop被去掉了 原代码大概如下: boolean a = false; new Thread().start while(a); 混淆后的代码while(a);这句已经不见了 加上个括号也不行 boolean a = false; new Thread().start while(a){ } 必须做些操作,循环才会正确运行。 boolean a = false; new Thread().start while(a){ System.out.print(""); } 想必是proguard给优化掉,Google了一下居然被我找到了一段Troubleshooting(原文地址),摘录如下:

发表在 编码大猩猩 | 标签为 , , , , | 留下评论

玩扫雷的悲剧

直接上图: 见左上角,幸好人品还是可以的: 以前玩扫雷时,就很想写一个自动求解的程序,各种懒所以没有实行过。 不过倒发现了一个非常好的ppt:how  complicated is minesweeper?

发表在 无病呻吟 | 标签为 , | 留下评论

如何为MTK平台添加新模块

包含源码的第三方库 以添加一个TTS模块为例,可以按如下步骤添加: 把TTS的源码包复制到你的MTK软件系统根目录下,以让TTS的源码都在TTS目录中 在make目录下新增一个tts目录,在tts目录下添加4个新文件,分别是,tts.def、tts.inc、tts.lis、tts.pth。tts.def文件的内容需要根据内容来修改,其他3个文件中加上源文件及其目录、头文件目录即可。 在REL_CR_MMI_<project>.mak 中加上如下语句 CUS_REL_SRC_COMP += tts 把MTK工程remake一下,若没有错误,tts模块就成功加上去了。 如果要为Modis模拟器添加该模块,须进入到Modis目录,在createMoDIS.ini文件中,[GLOBAL_SETTINGS]下,追加 enable_libs += tts createMoDIS.ini会在createMoDIS.pl中加载 不包括源码的第三库 添加一个无源码的库,如xxx.lib,可按照下面步骤: 在MTK软件系统根目录中新建一个xxx文件夹,把xxx.lib放在里面 在make\\Option.mak里增加下面几行,ifeq语句不是必要。 ifeq ($(strip $(XXX_SUPPORT)),TRUE) COMPOBJS += xxx\\xxx.lib CUS_REL_OBJ_LIST += xxx\\xxx.lib endif 有 头文件,要将头文件路径加入,用CUSTOM_COMMINC如: CUSTOM_COMMINC += ..\..\inc 如果加了XXX_SUPPORT判断,须在<customer>_<project>.mak文件中添加,并初始化为 TRUE: XXX_SUPPORT = TRUE; 修改完成后,remake就可以将新模块添加到工程里了。 … 继续阅读

发表在 编码大猩猩 | 标签为 , | 留下评论