对其安装源做了一些分析,结合LG官方网站找到相关文档,总结一下240x400全屏Java应用和游戏的修改方法:

 

首先,我们有必要先了解一下什么是jad/jar:

JAD 文件是Java应用的描述文件,包含 MIDlet Suite的一些基本信息,例如开发应用程序的公司、应用程序名称和大小。在将应用程序下载到手机上时,首先下载和读取jad文件,然后再下载和读取包含 MIDP 应用程序的 JAR 文件。

在装入 MIDlet Suite的完整 JAR 文件之前,手机上的AMS(应用管理系统)可使用 JAD 文件验证 MIDlet 是否适用于该手机,如果有签名的话,还需要验证jad中的签名信息串。

JAD 还向 MIDlet 提供特定于配置的属性(参数),当针对不同手机不同配置提供不同版本的时候,就只需要修改jad中的这些配置属性,而无需修改 JAR 文件。

其实LG的Java模块中的AMS在验证Jad属性时,正是在其中增加了自定义属性的判断,根据自定义属性的值来确定安装后的一些配置情况,(如上面①所说)比如:是否全屏,是否显示状态栏?是否允许后台运行?是否需要退出时的提示?是否开机运行?等等。。。


了解了这一点,其实大家就知道了,这个并没有太大的技术含量,就是修改一下Jad中的一些LG保留的属性值.以达到某些设置的实现. 下面演示一个修改全屏程序的实例:

以UCWEB为例:打开UCWEB 6.3的jad文件(以文本形式打开):内容如下:

MIDlet-Name: UCWEB6.3
MIDlet-Version: 6.3.2
MIDlet-Vendor: UCWEB
MIDlet-Jar-URL: UCWEB6.3-63-999-69-09011709.jar
MIDlet-Jar-Size: 255996
MIDlet-Description: UCWEB
MIDlet-Icon: /l.png
MicroEdition-Profile: MIDP-2.0
MicroEdition-Configuration: CLDC-1.0
MIDlet-1: UCWEB6.3,/l.png,WebClient
MIDlet-Permissions-Opt: javax.microedition.io.Connector.http........
........

那我们现在对其进行修改,加入几个信息:

LGE-MIDlet-Height: 378
LGE-MIDlet-Indicator: Hide
LGE-MIDlet-Width: 240
MIDlet-Name: UCWEB6.3
MIDlet-Version: 6.3.2
MIDlet-Vendor: UCWEB
MIDlet-Jar-URL: UCWEB6.3-63-999-69-09011709.jar
MIDlet-Jar-Size: 255996
MIDlet-Description: UCWEB
MIDlet-Icon: /l.png
MicroEdition-Profile: MIDP-2.0
MicroEdition-Configuration: CLDC-1.0
MIDlet-1: UCWEB6.3,/l.png,WebClient
MIDlet-Permissions-Opt: javax.microedition.io.Connector.http.....
........

然后保存,将对应的jar/jad拷贝到手机中,使用jad进行安装便可以实现全屏了。(注意,一定要使用jad安装,否则AMS获取不到jad中的自定义属性值)。

下面,我对上面增加的内容部分稍作解释:

LGE-MIDlet-Height: 378
这个表示自定义Midlet的高度如果不定义,不定义的话,AMS便会使用默认值320的高度来安装程序.定义成378(不含状态栏的全屏高度)的话,AMS便会根据高度值取消虚拟键盘的显示。

LGE-MIDlet-Indicator: Hide
这个表示是否允许状态栏显示出来(最上面的图标栏),Hide表示隐藏,Show表示显示。 默认值是Show。

LGE-MIDlet-Width: 240
这个表示Midlet的宽度。

当然,LG自定义的属性远远不止这几个,还有很多,比如:LGE-MIDlet-Delete-OptionLGE-
MIDlet-Undelete-Option, LGE-MIDlet-autolaunch-power-on等等,属性还有很多,有兴趣者欢迎一起探讨。

另外需要补充的是, 如果Java应用或者游戏的设计者开发时使用的Display高度不是从手机获取的,而是使用固定值的话(比如固定使用240x320的应用),即使改成240x400了,也只是消掉了虚拟键盘,画面大小还会是只有240x320。表现症状就是原来虚拟键盘的区域显示空白.

可能大家手头有些应用程序只有jar,没有jad,也没关系,给大家提供一个傻瓜式的jad生成工具。详见下面的附件。使用前请先看说明。

好了,现在大家应该都知道怎么把一个应用或者游戏修改为全屏了吧?好!收工~~。


傻瓜式修改全屏程序的工具:

下载附件后解压, 运行里面的 JADMaker_KP500.exe
可能某些机器不能运行,解决办法:
下载附件JADMaker_KP500_Patch.rar 解压后执行JADMaker_KP500_Patch.exe就ok了.

 

 

非触摸版游戏修改为触摸版游戏攻略: (这个纯粹是网络上收集整理的, 非原创)
先来介绍一款软件:
ChMobileKey是一款可以修改JAVA游戏键位的软件,最大的好处就是能为我们这些没有键盘的机器在触摸屏上实现控制的强大软件.工具下载:

软件主界面主要三个部份组成:“键值转换设”是修改硬键盘的、“GetGameAction设定”以及“触摸屏设定”是修改触摸屏的,点一下“缺省设置”,空白的地方就被填满了。

 

键值转换设定区“原键值”的1-12分别代表手机键盘的#、*、0-9、13-14代表左右软键。需要转换哪个就在“转换键值"那对应修改:

 

整个过程主要重点是在对触摸屏键位的增加,那就重点说说触摸屏的修改,打开软键ChMobileKey后在右边看到屏幕设定,屏幕分成9个格(9宫格),代表我们能在触摸屏增加9个健,修改转换前可以先用一些测试程序测试自己手机的键码。(测试程序下载:)

 

同理,每个格的数值对应键盘的每个键,需要在屏幕哪个位置增加哪个键就修改哪个就改哪的个值(对应原键值的数值修改,1-12分别代表手机键盘的#、*、0-9、13-14代表左右软键),比如我们要在屏幕中间增加一个”#“键,就只需要把原有的53改成35.然后点”运行转换“,选定要转换的JAVA游戏,就能生成改好触摸键的JAVA游戏了。改键后对游戏运行没有任何影响并且可以映射硬键盘

有部分JAVA游戏用其他修改过的是修改不了的,安装后会提示出错。但是只要能找到没有修改过的原JAVA文件来修改应该是没问题的。
注意:每次修改后的文件是自动覆盖在(触摸及键位设置)文件夹下的(pkg_new.jar)文件中的,请修改好后复制pkg_new.jar到你需要的文件夹,并且修改文件名称,但后缀.jar不要改动.另外,请尽量用没有被修改过的原始java游戏进行测试,这样可以提高成功的概率。

再介绍另外一款软件:JavaMagic [下载:]

JavaMagic的用法和ChMobileKey差不多,不过只能修改键盘的键位,没有触摸屏修改功能,有些游戏修改不了的,可以先用JavaMagic修改再用ChMobileKey,或许就能成功了。


软件使用的小技巧和注意事项:ChMobileKey无法修改JM改过的文件或者已经支持触屏的文件,但是JM可以修改ChMobileKey改过的文件,所以,有些使用ChMobileKey修改但无法使用的游戏,可以试试再用JM转换,没准就能运行了

常用的改键软件就是这两个,配合使用就可以了,虽然不是所有的游戏都可以成功改键,不过多数游戏都可以,如果你找到自己喜欢的游戏,又为缺少游戏按键而烦恼的话,以上的教程应该可以满足你的愿望。

 

https://files.cnblogs.com/pchgo/JAVA修改.rar

posted on 2010-10-18 13:09  pchgo  阅读(1189)  评论(0编辑  收藏  举报