为方便他人,希望大家能把自己测试得到的键值保存为文件,并点击“下载/上传键值文件”将键值放到网上共享。
点击“默认值”可以将键值回复到默认的值。这个默认值也是可以自行指定的,只需要将键值以 "KeyDefault.xml"为文件名保存,并与JavaMagic.exe放在同一文件夹下即可。
在“键码转换”中,还可以指定"选择/确认"键的功能。比如某些游戏中这个键本身是没有功能的,用上下左右移动后,还要把手指伸到左软键上按确认。如果你像我一样懒,可以将"选择/确认"键定义为左软键,这一在游戏中操作起来就方便多了。
注意,出于软件易用性考虑,JavaMagic只提供其它手机键位->Nokia式键位的转换。如果您要处理的游戏本身使用的键位不是Nokia式的,建议您将游戏交与专业人士处理。当然,自行处理的方法还是有的,但涉及Java编程,因此不在此讨论。
“Manifest与Jad选项”可能也会让某些人感到迷惑。其实这里的选项也与兼容性有关。
先说说Manifest是什么。在每个jar文件中,都会有一个meta-inf目录。在meta-inf目录下,都有一个manifest.mf文件。这跟从前有座山山里有座庙庙里有个叫manifest.mf的和尚的原理是一样的。这个和尚满脸字符,是一个文本文件,可以用记事本打开看看它具体长成啥样。文件包含了一些属性信息,它每行的格式基本上都是xxxx: xxxxxxxx,冒号前面的字符串为属性的名字,后面为属性的值。例如 "MIDlet-Name: Golf"就表示MIDlet-Name这个属性的值为Golf。
嗯,其实我们不需要知道这么详细,只需要了解一个事实就可以了。那就是,如果manifest.mf里某些属性的值写得比较不好看,或者用了中文和一些奇怪的符号,会直接导致某些软件和手机拒绝承认它所在的jar文件是一个正常的java包。因此,就有了“Manifest过滤”一说。过滤选项就是用于设定是否对manifest.mf文件及生成的jad文件内容进行过滤,当开启过滤功能就能把多余的属性和可能不兼容的字符过滤掉。
至于jad文件,它一般都是与jar文件一起出现的,其内容与manifest.mf文件差不多。对于某些手机和软件来说,它不是必须的,只要有jar文件就够了,但对于大多数手机和软件,没它jar文件就活不下去,所以这个世界上才会出现那个叫jadgen的小程序。比如我的这款手机,单独传入jar文件时也能跑,但就是不能保存进度。即使传入jad文件,如果里面的某些属性是中文,看起来也没啥问题,但仍然还是不能保存进度。一定要同时传入一个相貌平凡的jad文件它才能正常保存进度,十分恶心。所以,针对这些恶心的手机,JavaMagic中设计了这些跟manifest和jad有关的功能:
“过滤Manifest中的属性”就是用来对manifest.mf文件中的属性项进行过滤的。它有三种设置状态(不选,选择和半选择):不选表示不进行任何过滤;选择表示仅保留最基本的几个属性,并将多余的属性过滤掉,同时替换掉某些属性("MicroEdition-Configuration", "MIDlet-Version", "MicroEdition-Profile"及"Manifest-Version")的值,以避免这些值写得不标准造成jar无法载入的错误;半选择状态则表示仅对那些属性的值进行替换,不过滤任何属性。一般建议置于半选择状态,因为那些“多余”的属性,往往会在游戏中使用到,有的游戏运行时需要manifest.mf中特定的属性,过滤后可能会造成部分游戏无法运行。(如一款叫wax的游戏。) 。只有jar无法识别或载入时才应尝试进行完全过滤。
“对Manifest中的属性值进行字符过滤”则是针对属性的具体值进行过滤。某些属性的值如果含有特殊的符号(如"*", "\"等)或中文符号(有的手机和软件不支持含有中文字符的manifest文件),同样会造成jar无法识别或者别的兼容性问题。这个选项也有三种设置状态:不选表示不进行任何过滤;选择表示对所有属性的值都进行字符过滤;半选择表示仅对基本的几个属性("MIDlet-1", "MIDlet-Name", "MIDlet-Vendor")的值进行字符过滤。如果您的手机很健壮,对于那些特殊字符和中文字符不会有不良反应,就不必选择此项;如果您的手机只对于某些属性的值比较敏感,就请将其设置为半选择状态;如果您的手机对中文支持较差,请设置为选择状态。至于怎么设置比较适合您,就要靠经验了。
需要注意的是,虽然经过数次改进,这个过滤功能目前仍然十分不完善,可能会在某些情况下出现异常。
另外,无论是否开启了过滤功能,JavaMagic都会自动加上MIDlet-Icon 属性。因为有的手机需要该属性才能在程序管理器中正确显示Java游戏的图标。
“生成主jad文件”用于生成一个与处理后的jar文件同名的jad文件,省去了另外找工具生成jad文件的麻烦。如果您的手机不需要jad文件,可以不选此项。
“生成第二jad文件”用于生成一个jad文件的副本,这个文件的文件名中会含有游戏名等附加信息。这个功能可以帮助用户识别不同的游戏。例如,我们在网上下载的游戏可能是 "20040605225854.jar"这种文件名,从文件名上完全看不出是什么游戏。使用“生成第二jad文件”功能,转换后除了生成"20040605225854_new.jad",还会生成一个 "20040605225854[游戏名]_new.jad"这种文件名格式的jad文件。如果同时开启了jar自动改名功能,还可能在"[游戏名]"后加上"[原文件名]"。此外,还会加上[ArFnNx]之类的标志,其具体含义可以查看该选项的注释。例如有"N"标志的表示这是一个Nokia游戏;有"Nx"标志的表示这是一个运行起来可能慢得像幻灯片的Nokia游戏:)
用户可以选择只保留主jad文件,只保留第二jad文件,或者两个jad文件都保留,或者两个jad文件都干掉。由于第二jad文件文件名中可能包含中文字符,且于jar文件文件名不一致,并不是所有的软件和设备都支持这种文件名的jad文件,所以进行了这样的设置。用户可根据实际情况和需要进行设置。
“jar大小警告”可以提示您生成的jar文件是否超过您的手机所允许的最大长度。在“jar文件最大大小(字节数)”旁边的编辑框输出以字节为单位的最大文件长度,当生成的jar文件超过此长度时候就会在讯息框给出一个警告。如果您不需要此功能,或者您不知道您的手机最大支持多大的jar文件,可在此填入0。
“超过此大小时放弃处理”选项则表示当填入了非0值时,生成的jar文件的大小如果超过了这个值,不但会给出警告,还会放弃处理该文件,将其视为“处理失败”。使用此功能可帮您“过滤”掉体积过大的jar文件,以节省您的宝贵时间。
“其它”一栏中可以对JavaMagic的行为进行一些设置:
“仅显示摘要”用于设定是否显示详细的分析过程。
“输出到子文件夹”用于设定输出文件与源文件处于同一文件夹还是放在子文件夹中。
“jar中文文件名自动改名”同样是为解决中文字符的兼容问题而设置的。很多软件及设备对中文文件名兼容性不好,使用中文文件名的jar文件可能会识别不了。但有时我们在网上下载的jar文件会使用中文文件名,这时这个选项就比较有用了。启用该选项后,文件名中的中文字符会被自动转换为拼音声母,例如对于文件 "foo测试bar.jar",转换后生成的文件名文件名将为 "fooCSbar_new.jar"。
“用WinRAR压缩jar”用于解决默认压缩引擎带来的小问题。JavaMagic采用了压缩率较高的kzip对游戏重新压缩,因此新生成的文件可能比原文件小。但在测试过程中我发现极少数的游戏会出现异常(如EonTheDragon的几个版本,Quest Craft等游戏),在设置中选择“用WinRAR压缩jar”,重新对游戏进行处理,一般都能解决问题。但对于大多数游戏,JavaMagic应该都是能正常工作的。