如何通过改jad和Manifest把其它手机的java游戏改成N830的

阅读更多

首先要明确一点,不是所有的游戏都能改的。

<2006-02-01><技术资料>

今天先发个技术资料,看懂这个技术资料就不用继续看了;不懂也没关系,我会慢慢讲解的,不过就要等一段时间了,我写得很慢得。。。

觉得有用就帮忙顶上。

以下摘抄自官方网站的N830 JavaSpec V1 (CH)

5.JAD(ADF)文件 
文字编码用UTF-8。另外下面JAD和ADF两者使用时,视为同一来表示。 
有关JAD(ADF)文件的注意事项。 
$ JAD(ADF)大小的最大值为2Kbyte 
$ MIDlet-Jar-Size的最大值为256Kbyte 
$ JAD(ADF)的记述Syntax遵循MIDP1.0。 
$ 属性名有大小写区别。 
$ 表1中规定的【必选】属性必须要设置。 
$ 同一属性名不能重复2次以上。 
$ 属性值请遵循表1的Format。属性值不能省略。 
$ 使用RMS时,MIDlet-Data-Size必须设置适当的值。(能够Manifest指定) 
$ MIDlet通信时,需要将MIDlet-UseNetwork设置为YES。 
$ 表1JAD(ADF)文件和表2(6.Manifest文件)中已与预约的属性名不能设置成任意属性。

表1JAD属性 
属性名: MIDlet-Name
属性值: 用UTF-8最大32byte 
值的使用的时间点: 下载MIDlet suite, AP登录,使用应用时 
内容: MIDlet suite标题 
!《必须》!

属性名: MIDlet-Version
属性值: 用UTF-8最大16byte(X.Y.Z格式的字符集 (0.0.0~99.99.99)) 
值的使用的时间点: 下载MIDlet suite, AP登录,使用应用时 
内容: MIDlet suite的版本 
!《必须》!

属性名: MIDlet-Vendor
属性值: 用UTF-8最大32byte 
值的使用的时间点: 下载MIDlet suite, AP登录,使用应用时 
内容: MIDlet suite的生产厂家名称 
!《必须》!

属性名: MIDlet-Jar-URL
属性值: 用UTF-8,最大255byte的URL(不可使用相对路径) 
值的使用的时间点: 下载MIDlet suite, AP登录,使用应用时
内容: 下载Jar的URL 
!《必须》!

属性名: MIDlet-Jar-Size
属性值: 最大8byte (0~262144の値) 
值的使用的时间点: 下载MIDlet suite, AP登录,使用应用时 
内容: 下载的Jar文件大小 
!《必须》!

属性名: MIDlet-Data-Size
属性值: 用UTF-8,最大8byte (0~10240之间的值) 
值的使用的时间点: 下载MIDlet suite, AP登录,使用应用时 
内容: 使用MIDlet Suite时的RMS大小 
对使用RMS的MIDlet Suite,至少JAD(ADF)或Mainifest的一方是必须。
不使用的是《可选》。不指定时取为0。 

属性名: MIDlet-Install-Notify
属性值: 用UTF-8,最大255byte的URL 
值的使用的时间点: 下载MIDlet suite, AP登录,使用应用时 
内容: 安装状态报告的发送目标地址URL(http://必须) 
《可选》 

属性名: MIDlet-Description
属性值: 用UTF-8最大512byte 
值的使用的时间点: 下载MIDlet suite, AP登录,使用应用时 
内容: 应用程序的描述 
!《必须》!

属性名: MicroEdition-Profile
属性值: MIDP的版本 用UTF-8是8byte 
值的使用的时间点: 下载MIDlet suite, AP登录,使用应用时 
内容: 有关指定MIDP-1.0的相关内容: 
!《必须》!

属性名: MicroEdition-Configuration
属性值: CLDC的版本 用UTF-8是8byte 
值的使用的时间点: 下载MIDlet suite, AP登录,使用应用时 
内容: 有关指定CLDC-1.0的相关内容: 
!《必须》!

属性名: Media-price 
属性值: 用UTF-8最大32byte 
值的使用的时间点: 下载MIDlet suite, AP登录,使用应用时 
内容: 应用程序的价格 
!《必须》!

属性名: MIDlet-UseNetwork 
属性值: 用UTF-8,YES/NO,无大小写区别,最大4byte 
值的使用的时间点: 下载MIDlet suite, AP登录,使用应用时 
内容: MIDlet Suite 是否使用网络 
《可选》。MIDlet Suite需要通信时为必须。 
不进行通信时为《可选》项。不指定时与No相同 

属性名: 任意(最大32byte字符集),最多5个 
属性值: 用UTF-8最大127byte 
值的使用的时间点: 下载MIDlet suite, AP登录,使用应用时 
内容: 可以作为MIDlet的参数来使用 
《可选》。但是,ADF,Manifest 无论哪个定义的属性,当做任意属性时不能识别。

6.Manifest文件 
文字编码用UTF-8。Manifest文件的相关注意事项。 
$ Manifest的记述Syntax遵循http://java.sun.com/products/jdk/1.2/docs/guide/jar/manifest.html。 
$ 属性名有大小写区别。 
$ 表2中规定的【必选】属性必须要设置。 
$ 同一属性名不能重复2次以上。 
$ 属性值请遵循表2的Format。属性值不能省略。 
$ MIDlet-Name、MIDlet-Version、MIDlet-Vendor的属性值与JAD(ADF)文件中的设定值必须一致。 
$ MIDlet- 以外的属性中Manifest和JAD(ADF)文件同时设定的情况下,JAD(ADF)的属性值优先。MIDlet-
为Manifest优先。 
$ 表1(5.JAD(ADF)文件)和表2(6.Manifest文件)中已预约的属性名不能设置成任意属性。另外,JAD(ADF)文
件中设定的任意属性不能作为Manifest的任意属性。 

表2 Manifest属性 
属性名: MIDlet-Name
属性值: 用UTF-8最大32byte 
值的使用的时间点: 下载MIDlet suite, AP登录,使用应用时 
内容: MIDlet suite的标题 
!《必须》!

属性名: MIDlet-Version
属性值: 用UTF-8最大16byte(X.Y.Z格式的字符集 (0.0.0~99.99.99)) 
值的使用的时间点: 下载MIDlet suite, AP登录,使用应用时 
内容: MIDlet suite的版本 
!《必须》!

属性名: MIDlet-Vendor
属性值: 用UTF-8最大32byte 
值的使用的时间点: 下载MIDlet suite, AP登录,使用应用时 
内容: MIDlet suite的生产厂家名称 
!《必须》!

属性名: MIDlet- 
属性值: MIDlet suite里面包含的各MIDlet的名称、类 
MIDlet的名称(Name) : 用UTF-8最大64byte 
类(Class Name): 用UTF-8で最大128byte 
不支持ICON 
MIDlet-: Name,ICON,Class Name 
或者MIDlet-: Name, ,Class Name 
值的使用的时间点: 下载MIDlet suite, AP登录,使用应用时 
内容: MIDlet的标题 
!《必须》!

属性名: MicroEdition-Profile
属性值: MIDP的版本 用UTF-8是8byte 
值的使用的时间点: 下载MIDlet suite, AP登录,使用应用时 
内容: 有关指定MIDP-1.0的相关内容: 
!《必须》!

属性名: MicroEdition-Configuration
属性值: CLDC 的版本 用UTF-8是8byte 
值的使用的时间点: 下载MIDlet suite, AP登录,使用应用时 
内容: 有关指定CLDC-1.0的相关内容: 
!《必须》!

属性名: MIDlet-Description
属性值: 用UTF-8最大512byte 
值的使用的时间点: 下载MIDlet suite, AP登录,使用应用时 
内容: 应用程序的描述 
!《必须》!

属性名: MIDlet-Data-Size
属性值: 用UTF-8,最大8byte (0~10240之间的值) 
值的使用的时间点: 下载MIDlet suite, AP登录,使用应用时 
内容: 使用MIDlet Suite时RMS大小 
对使用RMS的MIDlet Suite,至少在JAD(ADF)或Manifest中有一处必须设置。 
不使用的是《可选》。不指定时取为0。 

属性名: 以“MIDlet-“开头的任意属性(最大32byte字符集),最多5个 
属性值: 用UTF-8最大127byte 
值的使用的时间点: 下载MIDlet suite, AP登录,使用应用时 
内容: 可以作为MIDlet的参数来利用 
《可选》。但是,ADF,Manifest 无论哪个定义的属性,当作任意属性时不能识别。

_________________________________________________________________________

<改JAD文件>
JAD文件中必须有如下属性:
MIDlet-
MIDlet-Name
MIDlet-Version
MIDlet-Vendor
MIDlet-Jar-URL
MIDlet-Jar-Size
MIDlet-Description
MicroEdition-Profile
MicroEdition-Configuration
Media-price

如有一个JAD文件的内容如下:
MIDlet-1: JBookMidlet,,JBook.JBookMidlet
MIDlet-Description: N830
MIDlet-Jar-Size: 140517
MIDlet-Jar-URL: JBook.jar
MIDlet-Name: JBook
MIDlet-Vendor: SnailStudio
MIDlet-Version: 1.0
Media-price: 0
MicroEdition-Configuration: CLDC-1.0
MicroEdition-Profile: MIDP-1.0


我一行一行解释。
(1)MIDlet-1: JBookMidlet,,JBook.JBookMidlet


MIDlet suite里面包含的各MIDlet的名称、类 
MIDlet的名称(Name) : 用UTF-8最大64byte 
类(Class Name) 用UTF-8最大128byte 
不支持ICON 
MIDlet-: Name,ICON,Class Name 
或者MIDlet-: Name, ,Class Name



N830一个MIDlet Suite支持5个MIDlet,所以说n的范围是1~5,这里是1(一般都是1)
JBookMidlet是MIDlet的名称,其后有两个逗号,逗号中间应该是图标的文件名,这里没有。最后的JBook.JBookMidlet是JAVA类的名称。
[改]在这里,可以改的是MIDlet的名称(Name),改成你喜欢的名字吧,看起来也爽一些。(注意,Manifest文件中也有这个属性,要改成一样的),一般这里不会有问题的,不建议更改。


(2)MIDlet-Description: N830


应用程序的描述


[改]随便改吧(注意,如果Manifest文件中有这一项,也要改Manifest文件),一般很多其它手机的java程序的JAD都是缺这一行,加上去就好了。


(3)MIDlet-Jar-Size: 140517


Jar文件的大小,字节表示


[改]大小不对的时候再改吧,一般不需要改


(4)MIDlet-Jar-URL: JBook.jar


Jar文件的名称


[改]对应jad的jar文件名称,名称不对时再改吧,一般不需修改


(5)MIDlet-Name: JBook


MIDlet的标题


[改]可以改成喜欢的名称(注意改对应的Manifest文件),一般不需修改


(6)MIDlet-Vendor: SnailStudio


MIDlet Suite厂商的名称


[改]可以改成喜欢的名称(自己的公司?呵呵。但是要注意改对应的Manifest文件),一般不需修改


(7)MIDlet-Version: 1.0


MIDlet Suite的版本号,范围从0.0.0~99.99.99


[改]范围以内都可以,(注意改对应的Manifest文件),一般不需修改


[改]还想改??不能改啦,如果是2.0版本,不用想了,玩不了的,N830是1.0的。。


(8)Media-price: 0


价格啦。。。。我讨厌收费的!!


[改]随便改啦,我喜欢改成0(一般,对应的Manifest文件不会有这一项),一般很多其它手机的java程序的JAD都是缺这一行,加上去就好了。



(9)MicroEdition-Configuration: CLDC-1.0
(10)MicroEdition-Profile: MIDP-1.0


最后两个一起说啦,CLDC版本和MIDP的版本


 



综上,一般只需要在JAD文件中加上MIDlet-DescriptionMedia-price两个属性。

_________________________________________________________________________

Manifest文件

Manifest文件必有属性:


MIDlet-Name
MIDlet-Version
MIDlet-Vendor
MIDlet-
MicroEdition-Profile
MicroEdition-Configuration


MIDlet-Description属性,在N830的java规范中,指定Manifest中是必须的,但是实践证明,这个属性可以不包涵在Manifest中!!


这些属性和JAD文件中的一样,就不多说了。只要记得属性值和JAD中的保持一致就好了。


接下去就是实际动手修改了。
(1)只想改jad和manifest的,可以只安装WinRAR。
(2)想更进一步了解原理,进行修改的,建议继续安装 JDK1.5 , N830 SDK , WinHex
(3)再进一步就要涉及到修改游戏的class文件了,建议继续安装java反编译软件,nokia的com包支持库,索爱的支持库。

今天先到这里,有空就开始写实例教程了。

你可能感兴趣的:(游戏,Java,网络应用,Nokia,JDK)