- UID
- 1770723
- 精华
- 9
- 帖子
- 89045
- 主题
- 1309
- 积分
- 118652
- 阅读权限
- 100
- 威望
- 23095
- 活跃度
- 72583
- 性别
- 男
   
 - 精华
- 9
- 帖子
- 89045
- 金币
- 160831
- 注册时间
- 2005-12-23
|
|
【風行出品 品質保證】
; \+ H- E* H3 |( W4 F# f
6 [% V7 Z. ^( ?本教程并非原创,而是原教程的详细补充。如有任何疑问,欢迎跟帖提出。
& w! _8 H- }: _1 {+ {& }; o# B& q
* w9 k ]" u/ _& n; i一、ITM文件的制作4 E, g6 h- O- M5 V) U& W- _, Y1 t
6 c: F9 h9 Q% r2 E$ y) U 如果你比较懒,可以跳过这一步,在3楼我会上传一些已经制作好的ITM文件。你也可以使用此软件自己制作ITM:SE_Menu_Hook_Generator_3.0
1 r1 Y5 \, I7 d, r6 x
d) K# ~5 o6 [, e! U/ m6 }9 U) U7 r) \2 U- k0 M% z2 }
1.编写XML文件
1 U! {3 S% ]& s: z6 X3 d N$ |: F5 P2 d% h; a( O! n# r
ITM文件实际上就是个TAR格式的压缩包,其中至少包含了一个XML文件用来定义它的功能。以下是一个例子,请打开记事本,把这些内容复制粘贴进去,然后根据需要自己修改。- <?xml version="1.0" encoding="utf-8"?>
( k0 F. U% L; ]1 e' K! A$ @2 l - <MenuItem version="1.0">3 }2 J7 S H, c
- <item_text>
3 z* R; Y2 | e: d - <text lang="zs" str="媒体" />) o, Y, M* i' A8 e" C
- <text lang="en" str="Media" />: x6 Y/ i6 d& D+ l! V
- <text lang="zh" str="媒體" />
1 [4 j( u) J# `, w( Q% A - </item_text>
9 q w/ M F/ H: M& k+ B2 E - <item_help># @9 v& I% z9 V% n
- </item_help>/ ]" v# {" t8 z) Y8 \- ^
- <item_icon>
6 |* S, v: r2 S2 m I9 D3 |( i - </item_icon>0 t3 F0 D9 Z0 _3 `2 k3 p" F
- <item_action>
0 d a1 K- F/ H8 F - <ACTION type="Internal" str="MediaCenter" />0 q; U4 W9 d' n! d
- </item_action>
( o* b5 W8 v) c - </MenuItem>
复制代码 其中,<item_text>一段定义的是软键处要显示的文字。zs/en/zh代表的分别是简体中文/英文/繁体中文,这样写的好处就是,随着你手机语言的切换,软键处显示的文字也会跟着切换,跟手机语言保持一致。而str=后面的引号里自然就是要显示的文字,这个请根据你需要的功能自己修改。+ c5 M. Q# R! ?/ j9 Z3 n
' f2 J3 g% c0 x1 P/ U0 V
如果你希望使用图标来替代文字,那么可以在<item_icon>和</item_icon>之间回车,插入这么一句:<RIGHT str="xxx.png"/>,其中的xxx.png就表示你要使用的图标是一个文件名为xxx的PNG格式的图片,其高度最好不要超过25像素,长度也不要太长。这个图标文件等会儿要跟编写好的XML文件一起打包成ITM文件。/ t8 Y" F: |# O& S p: ^: z
* Y1 \! r' O1 C; q 接下来<item_action>一段则定义了要调用的功能,比如我这里写的MediaCenter就是媒体菜单。<item_action>这段可以有三种不同形式:调用手机菜单的某一项功能、打开某个已安装的java程序、打开某个URL网址。接下来一一说明。
1 s- V) [6 q. i& }/ H$ r. G% l
a.手机菜单里的某项。用记事本打开你那个型号手机的menu文件,会发现它实际上也是按XML格式编写的,稍微懂点语言的不难找到你需要的某一项的ID。比如我要改的是媒体,它是第6宫,那么我就在menu里找“Desktop Element 6”,再往下就会发现id="MediaCenter",这就是<ACTION type="Internal" str="MediaCenter" />当中“str=”后面要写的内容。其他的也以此类推。而type="Internal"就表示了要调用手机里原有的某个功能。
- [6 ]2 a8 |4 ~
' ?, i" {- a- p! |' J6 ab.某个java程序。首先来看一下XML里应该怎么写(以手机QQ2009为例):- <?xml version="1.0" encoding="utf-8"?>" N# ], `' Y" c5 g
- <MenuItem version="1.0"># U* b. C: @, T- k9 U. |8 W
- <item_text>9 {, }& {* L' e3 P6 P
- <text lang="zs" str="手机QQ" />
0 a* N) j5 @9 W: A- U - <text lang="en" str="MobileQQ" />
& N1 B6 k$ _! n$ L8 w) U E - <text lang="zh" str="手機QQ" />
8 Q- X8 K* I+ s3 ` - </item_text>
: A: W R9 x) s: k5 |# l2 r7 J - <item_help>+ d5 q- B) M9 @% O" ^; G
- </item_help>6 N& h1 g$ l: j( G% H' W# h
- <item_icon>
& O: z/ Z4 y) N5 N - </item_icon>
0 {- B# G8 `8 ~, s% M - <item_action>( r8 F5 S8 \6 v5 e& `
- <ACTION type="JAVA" suite_name="QQ2009" suite_vendor="Tencent" entry_point="com.tencent.kqq2006.ui.MainMIDlet"/>
" p$ Q# C7 z6 ~6 H& x9 [; \4 K - </item_action>
, F! l2 s& I9 t: M' f M8 R1 X @ - </MenuItem>
复制代码 注意<item_action>这一段。其中,type="JAVA"这个是固定的,而且注意JAVA一定要大写。后面的三项,要根据你要调用的java程序的MANIFEST.MF文件内容来改写。下面详细说明一下。
|, \" X- r/ S3 B: `' S: A. D& g- u" W3 h& D2 O3 o3 a, Z* U
首先,用WinRAR打开jar安装文件,进入META-INF文件夹,把其中的MANIFEST.MF文件拖拽出来。用记事本打开这个文件,可以看到如下内容:Manifest-Version: 1.0
D9 B, _* m( u/ QMIDlet-Vendor: Tencent% C( T+ b* c, K/ {
MIDlet-Version: 09.00.47
- n4 A' S6 i( }6 e, {; g- y9 R9 ]' A3 eMIDlet-1: QQ2009,/icon.png,com.tencent.kqq2006.ui.MainMIDlet
& L) |1 E5 W2 b b3 s% d) o% b6 hMicroEdition-Configuration: CLDC-1.0
+ \. n8 s' G5 _0 w5 lMIDlet-Name: QQ2009
) {" c* e4 p; h& |" o( T6 `MicroEdition-Profile: MIDP-2.0
* P- X. b( B$ m$ A1 m1 V1 z4 _7 ]5 NMIDlet-Permissions: javax.microedition.io.Connector.file.read,javax.mi; z. @/ U$ r; E5 X
croedition.io.Connector.file.write,javax.microedition.io.Connector.ht
1 W. t( N" S" K* s2 r- A# Mtp,javax.microedition.io.Connector.sms,javax.wireless.messaging.sms.s7 R+ V7 l! E3 o* f
end,javax.microedition.io.Connector.serversocket,javax.microedition.i
: I9 O/ k2 ]8 X) {+ Ro.Connector.socket,javax.microedition.media.control.RecordControl,jav5 k8 J' O5 N7 M; A/ x
ax.microedition.media.control.VideoControl.getSnapshot 0 e9 \, l# j5 q8 A5 f# A
注意我用红色标注的部分,这就是你的XML中,<item_action>这一段要改写的三项。其中,suite_name就是MIDlet-Name;suite_vendor就是MIDlet-Vendor;而entry_point则是MIDlet-1这一行,第二个逗号以后,直到这一行结尾的内容。
1 {; n) e& d5 F6 f7 X, z3 ]$ z8 g$ i" }
再举一个Anyview的例子。Anyview的MANIFEST.MF内容是这样的:1 M/ p+ y* c( T# V$ [& J$ L2 {' ^
Manifest-Version: 1.0
' Z; Q( W4 m4 xMIDlet-Vendor: ismyway.com
: ^& @- l; p' B DAnt-Version: Apache Ant 1.7.0" V& y6 F8 R6 _/ e3 Z$ p7 M: R
MIDlet-Version: 4.0.84 \2 [8 o4 {. H9 E, p8 F! |, k
MIDlet-Permissions-Opt: javax.microedition.io.Connector.http,javax.mic b w9 n1 V& \1 ^) P1 H
roedition.io.Connector.sms,javax.microedition.io.Connector.file.write! m6 L3 ]# w) _2 H' q' x& p
,javax.microedition.io.Connector.file.read,javax.microedition.io.Push: R! Q& |: M3 i$ B" u+ b) f
Registry,javax.wireless.messaging.sms.send,javax.wireless.messaging.s
* n3 d2 N6 z" t7 r, [$ t ms.receive
+ \, H% C: R" i1 TMicroEdition-Configuration: CLDC-1.1
/ s8 ~9 ~6 |; [, SMIDlet-1: Anyview4.0, /res/icon.png, com.ismyway.anyview.Anyview! D9 F& _2 H0 K' z
Created-By: 10.0-b22 (Sun Microsystems Inc.)
& e6 \: G+ s W9 ZMIDlet-Icon: /res/icon.png7 i& Q# Y! R. Z
MIDlet-Name: Anyview4.00 l# i; w0 G% E; J [5 q
MicroEdition-Profile: MIDP-2.0 ! u# X1 [) ~- y
所以<item_action>这一段就应该这样写:<ACTION type="JAVA" suite_name="Anyview4.0" suite_vendor="ismyway.com" entry_point="com.ismyway.anyview.Anyview"/>。大家对照一下颜色应该就能看明白。7 k4 n: c W3 |7 P" w
f; V5 F* q4 K& F' ]3 zc.某个URL网址。以cnBeta手机版为例:- <?xml version="1.0" encoding="utf-8"?>
) V5 n$ l1 p# \* | - <MenuItem version="1.0">
2 g; W" n" n: M9 F& [- d% Q - <item_text>; W7 O0 S6 T. O* C1 i* Y
- <text default_lang="zs" str="cnBeta" />
( i& w# H2 T0 g$ ] - </item_text>
7 K" X# ^, d3 |5 E0 @" b% f - <item_help>2 H" C7 R/ E1 M9 z
- </item_help>- F8 M$ f6 g7 ~& {" h. @- H
- <item_icon>
) E8 b$ H5 @9 p) n0 J2 q& R - <RIGHT str="cb.png" />
) O# t% e7 w- T$ _9 W - </item_icon>
. H6 L" P. @" G3 z( i* ? - <item_action>
5 s! e0 O8 T( C5 s( p" u: B4 n& X2 ~5 R - <ACTION type="URL" str="m.cnbeta.com" mode="Normal" />" |& u* [# q6 \. W5 X2 u9 i8 m
- </item_action>
! e. i4 U' l, s: S - </MenuItem>
复制代码 首先请注意<item_icon>这一段,这里我使用了一个图标文件,文件名是cb.png。<item_action>这一段,type="URL"表示访问一个网址,而str="m.cnbeta.com"则说明了要访问的地址是m.cnbeta.com,注意这里是不用写http://的,直接写网址就可以。# t! F; p% _& w( [) m- T9 p
. R5 N7 [; [4 \0 g, I+ u$ h5 |* W
===================================================================================================================================' _& y* K6 g2 F. h6 B
不管你想改的是abc哪种,现在,这个XML文件已经写好了。使用记事本的文件菜单里的“另存为”功能,将其保存成一个XML文件。保存类型选择“所有文件”,编码格式选择UTF-8。文件名为LEFT_SOFTKEY_HOOK.XML,如果你要改的是右软键则是RIGHT_SOFTKEY_HOOK.XML。注意.XML的扩展名一定要写,否则你就保存成TXT文本了。
u# t) k: f0 \% Q. \) k& [' E0 n, k+ y; s" v+ _" A
$ _/ L6 c3 M+ H" P% X7 x
* y3 L% F+ {" v7 J2 {5 z2.将XML打包成ITM文件
- Y* z8 S) B( {
- t2 B: R5 R8 k, z8 }- c 这一步要使用的工具是TUGZip。我建议你到官网下载3.4.0.2英文版再加上简体中文语言包,最好不要用汉化绿色版以及最新的3.5版,因为我遇到过双击打不开程序,但任务管理器里却有进程的情况。% u; d& l% u4 o' u
% l; a5 Y {' x6 a点此下载3.4.0.2英文版 | 点此下载中文语言包(解压后将chinese(simplified).ini文件放置到TUGZip的Languages目录里)& k# w) b& A9 s, e
! F: t! ]: {7 F7 ~! T①打开TUGZip,选择文件菜单-->新建归档文件,或者点击工具栏第一个图标打开新建文件的窗口。
6 o3 w5 `% p4 _) i; \②找到刚才保存的XML文件,单击选中。如果你要用图标文件,请在这一步按住Ctrl键将图标文件同时选中。
" \4 b% L2 ^4 Q5 Y# [7 B6 u9 z③文件名默认是Untitled.tar,这里我们把它改成LEFT_SOFTKEY_HOOK.itm(右软键则是RIGHT_SOFTKEY_HOOK.itm)。压缩格式选择TAR。
; S8 N0 c! a. b( C% S# d④点击确定即可生成ITM文件。9 @# v/ v/ e0 t; y/ @+ k
, G" ~+ ?% b& p8 `8 S
" ~& u% v f3 K6 B8 H. Z) _& A& c2 T
至此,第一步的工作已经完成,接下来将ITM文件刷入手机即可。请继续看2楼。 |
附件: 你需要登录才可以下载或查看附件。没有帐号?注册

|