读opensource project talkingClock有感
2010-06-18 19:41
190 查看
talkingClock是google code上的一个j2me 的opensource project。
这个项目对我的帮助有两点:
第一是它的日志,这种分级的日志我想做,但一直懒得去做,现在可以直接用了。用这个日志,可以提高模拟器移植到实际设备后的调试效率。
第二是它的本地语言。通过配置语言类型,然后,读取对应的语言文件,就可以灵活配置程序的语言类型了。这种方法比我之前在一个资源类中存放字符信息灵活性更佳。对这部分稍微修改,就可以用存储在磁盘上的(相对于打包到JAR中)的文件来配置,实现在不修改程序的前提下,修改本地语言。
简要分析一下talkingclock的代码;
Logger对日志分了六类:FATAL、ERROR、WARN、INFO、DEBUG和TRACE。
在Logger中用一个Stringbuffer存储所有的调试信息,设置了一个最大的容量,默认是2000字节,可以设置最大容量。当需要添加新的信息,而StringBuffer已经到了最大容量时,就删去相对最旧的调试信息。
此外,允许设置记录级别,通过记录级别可以过滤掉低于该级别的消息。
此外,在这个Logger中还做了一个对StringBuffer的synchronized,以防止并发访问。
这个Logger需要修改的就是它的显示是通过传入的midlet来display的,这样,不利于集成进现有的MVC架构。还有一点需要改进的就是没有添加文件读写。现在的j2me程序很多都没有使用高级UI,而且虚拟机对setCurrent的频繁切换的支持也有限。因此,有必要将日志信息记录到文件中。
本地语言文件中实际上是key-value对,在程序启动时读取文件解析文件,形成key-Value对的Hashtable(这个和我的CommonResource类似,不过我的CommonResource是java文件,此为,我的key是整数,而talkingClock是字符串)。然后提供了根据key查询的接口。
这个项目对我的帮助有两点:
第一是它的日志,这种分级的日志我想做,但一直懒得去做,现在可以直接用了。用这个日志,可以提高模拟器移植到实际设备后的调试效率。
第二是它的本地语言。通过配置语言类型,然后,读取对应的语言文件,就可以灵活配置程序的语言类型了。这种方法比我之前在一个资源类中存放字符信息灵活性更佳。对这部分稍微修改,就可以用存储在磁盘上的(相对于打包到JAR中)的文件来配置,实现在不修改程序的前提下,修改本地语言。
简要分析一下talkingclock的代码;
Logger对日志分了六类:FATAL、ERROR、WARN、INFO、DEBUG和TRACE。
在Logger中用一个Stringbuffer存储所有的调试信息,设置了一个最大的容量,默认是2000字节,可以设置最大容量。当需要添加新的信息,而StringBuffer已经到了最大容量时,就删去相对最旧的调试信息。
此外,允许设置记录级别,通过记录级别可以过滤掉低于该级别的消息。
此外,在这个Logger中还做了一个对StringBuffer的synchronized,以防止并发访问。
这个Logger需要修改的就是它的显示是通过传入的midlet来display的,这样,不利于集成进现有的MVC架构。还有一点需要改进的就是没有添加文件读写。现在的j2me程序很多都没有使用高级UI,而且虚拟机对setCurrent的频繁切换的支持也有限。因此,有必要将日志信息记录到文件中。
本地语言文件中实际上是key-value对,在程序启动时读取文件解析文件,形成key-Value对的Hashtable(这个和我的CommonResource类似,不过我的CommonResource是java文件,此为,我的key是整数,而talkingClock是字符串)。然后提供了根据key查询的接口。
相关文章推荐
- Python OpenSource Project
- 有感于codeproject文章审核:引用(Reference)而不是拷贝(Copy)
- Moblin.org: Open Source Project for Mobile Devices (英文)
- 看《H.264官方中文版》有感
- The Software Development Edge: Essays on Managing Successful Projects
- eclipse 引入 没有.project文件的方法
- Software Project Survival Guide
- 20 Interesting WPF Projects on CodePlex
- Project Chameleon Work In Progress 4
- [Unity3D插件系列]-A* Pathfinding Project 学习(一)
- Ship it! A Practical Guide to Successful Software Projects
- java project 导出介绍
- 初恋有感
- 【问题解决】Project facet Java version 1.7 is not supported.
- Catastrophe Disentanglement : Getting Software Projects Back on Track
- 我是内闭型思考者。-11月有感
- 奥运会闭幕式有感
- 将Nutch添加到WebProject中,出现org.eclipse.jdt.internal.compiler.CompilationResult.getProblems()
- Agile Project Management: How to Succeed in the Face of Changing Project Requirements
- 读TrinityCore源码有感