Java應用<<手機遊戲修改為240x400全屏版教程>>

【授人以魚,不如授人以漁】
【建議】我只是拋磚引玉,希望有更多的J2ME愛好者們一起研究探討。
【聲明】該方法適合幾乎所有LG 240x400螢幕的Java應用修改。歡迎轉帖,但請注明來源。
【我已經修改了部分現有的程式,需要的可以去下載(下載位址)】
【經guihesong研究發現,修改jar包中的MANIFEST.MF文件也可以是預設值屬性生效】

---------------------------------------------------------------------------------------------
【2009.03.08】最新發現,貌似在LGE-MIDlet-Height: 378 的情況下,LGE-MIDlet-Indicator屬性就有效了。
---------------------------------------------------------------------------------------------


在研究壇友【guyyjp】的那個【提取kp500自帶文件】的帖子的時候,提取出了系統自帶的
Thomsons & Touch遊戲的一些東西,做了一些分析,得出一些實現240x400全屏程式的初步推斷,后來在LG網站找到相關文檔,總結一下修改方法︰

首先,我想有必要先向大家介紹一下什麼是jad/jar:

可能很多人一直有一種錯誤的想法︰
既然我只用jar也能安裝,為何還要jad呢?那不是多此一舉嗎?

其實這種想法是錯的,首先我說說什麼是Jad文件︰

JAD 文件是Java應用的描述文件,包含 MIDlet Suite的一些基本訊息,例如開發應用程式的公司、應用程式名稱和大小。在將應用程式下載到手機上時,首先下載和讀取jad文件,然後再下載和讀取包含 MIDP 應用程式的 JAR 文件。在裝入 MIDlet Suite的完整 JAR 文件之前,手機上的AMS(應用管理系統)可使用 JAD 文件驗証 MIDlet 是否適用于該手機(如果有簽名的話,還需要驗証jad中的簽名訊息串)。 JAD 還向 MIDlet 提供特定于配置的屬性(參數),當針對不同手機不同配置提供不同版本的時候,就只需要修改jad中的這些配置屬性,而無需修改 JAR 文件。這樣在OTA安裝時手機便可以確認是否應下載完整的應用程式。

其實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,javax.microedition.io.Connector.https,javax.microedition.io.Connector.file.read,javax.microedition.io.Connector.file.write,javax.microedition.io.Connector.socket,javax.microedition.io.PushRegistry,javax.microedition.io.sms,javax.microedition.io.Connector.sms,javax.wireless.messaging.sms.send,javax.wireless.messaging.sms.receive

........

--------------------------------------------------------------------------------------

那我們現下對其進行修改,加入幾個訊息︰
--------------------------------------------------------------------------------------
複製內容到剪貼板 代碼:
LGE-MIDlet-Height: 400
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,javax.microedition.io.Connector.https,javax.microedition.io.Connector.file.read,javax.microedition.io.Connector.file.write,javax.microedition.io.Connector.socket,javax.microedition.io.PushRegistry,javax.microedition.io.sms,javax.microedition.io.Connector.sms,javax.wireless.messaging.sms.send,javax.wireless.messaging.sms.receive

........
--------------------------------------------------------------------------------------

然後保存,將對應的jar/jad拷貝到手機中,使用jad進行安裝便可以實現全屏了。(注意,一定要使用jad安裝,否則AMS獲取不到jad中的自定義屬性值)。

下面,我對上面增加的內容部分稍作解釋︰
LGE-MIDlet-Height: 400
這個表示自定義Midlet的高度如果不定義,不定義的話,AMS便會使用默認值320的高度來安裝程式.定義成400的話,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等等,屬性還有很多,有興趣者歡迎一起探討。

好了,現下大家應該都知道怎么把一個應用或者遊戲修改為全屏了吧?好﹗收工~~。

補充一下︰可能大家手頭有些應用程式只有jar,沒有jad,也沒關係,我給大家提供一個jad生成工具。詳見附件。

【補充】如果應用或者遊戲的設計者開發時使用的Display高度不是從手機獲取的,而是定死的話,即使改成240x400了,估計也只是消掉了虛擬鍵盤,畫面大小估計還會是只有240x320。

Jad生成器:


文章出處: http://www.babydigi.cn/thread-7173-1-1.html

WYC 發表在 痞客邦 PIXNET 留言(0) 人氣()