|
|
昨天,闲来无事阅读了一下JSR 238的规范。规范是由Nokia领导完成的。规范中最重要的一点就是定义了一种二进制格式的资源文件,资源文件中可以存储文本,二进制数据例如png图片。二进制文件的优势在规范中列举了4点,大家有兴趣可以下载来看看。资源文件由四个部分构成:文件特征,头文件长度,头文件和资源数据。头文件长度标记了头文件的大小。而头文件中包含了所有资源数据的id,类型和偏移量(相对文件)。每个实体由8个字节组成,高位4个字节代表id,低4位第个字节的第一个代表类型,主要有三种类型文本,二进制和文件尾。后面三个字节是偏移量。资源数据中就是所有的数据了,比如文本和图片。
JSR 238中还定义了4个Class,最重要的就是ResourceManager。他可以管理资源文件,并且根据ID读取出需要的内容来。目前支持jsr 238的手机还比较少一些,但是有了这个规范我们大可以自己来实现ResourceManager,并配合适当的缓存机制把经常使用的内容缓存在内存中。其他的随时读取。ResourceManager一定要把Header表缓存起来,这样就不用每次查找的时候都要解析header了。
有了这个想法之后就动手写了一个ResourceManager,把wtk 2.5里面 I18NDemo里面的res文件读取了一下,果然里面定义了一些中文文本。接着又读取了一个德文的,就看不明白了。
希望这个思路对大家有帮助。
mingjava
|
|