2024年4月29日发(作者:)
Pak文件的结构
pak文件就是将多个文件打包为一个单独文件,在这个文件中保存着多个文件的数据,
当然还有一些描述文件结构的数据。所以将“Pak”作为文件的后缀是一种常规的用法,
可以自定义其它的文件后缀。
使用Pak方法将程序中要用到的资源(图片、音乐、文本)组合为单一文件是一个
安全有效的方法。
由于MIDP对j2me程序大小有限制,所以缩小发布程序就意味着能够提供更多的程
序或者内容(如图片、音乐)给用户。因为zip/jar算法对大文件的压缩率高于对等量的
多个小文件的压缩率,所以先把多个小文件按一定结构组合成一个pak文件,再压缩成
jar包,有助于减少程序容量。同时可以在pak文件中对文件数据进行加密,可以保护作
者权益。
可以自行设计Pak文件结构,下面是一个参考例子:
同样的可以把Java me平台上的pak文件使用方法修改扩展应用到其他平台上,如
Android/OPhone,wm等
PAK File Header:Pak文件的头部
* 签名:6字节char数组 * 版本号:32位float * 文件table数量:32位整数 * 密
码行为:8位字节 * 密码:8位字节 * 文件唯一ID:10字节char数组 * 保留位:32位
整数(4字节)
File Table:Pak文件中包含文件的列表,在一个Pak文件中一个被包含的文件对应
一个File Table。
* 文件名:30字节char数组 * 文件大小:32位整型 * 文件在pak文件中的位移:
32位整数
Concatenated File Data:按File Table的顺序连接在一起的文件数据。
* 文件数据
四、程序框架:
1。PakHeader类,定义了Pak文件头。
2。PakFileTable类,定义Pak文件table。
3。PakUtil类(J2SE版),具备两个功能:将多个png图片合成一个Pak文件,并
使用简单的加减加密法对其进行加密;从Pak文件中取出png图片,构造byte数组
(可以用来构造Image对象)或者写为文件。
PakUtil类(j2me版),具备的功能:从Pak文件中取出png图片,构造byte数组
(可以用来构造Image对象)。
可自行设计实现程序,特别是关键的加密算法
以下为参考代码:
发布评论