亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 優化j2me程序大小.txt

?? 優化J2ME程序大小 作者Eric Giguere是來自Sybase下屬iAnywhere Solutions的軟件開發人員。他致力于手持設備和無線計算領域的Java技術。他是滑鐵盧大學的數學學士和
?? TXT
字號:
要把J2ME程序與J2SE程序區分開來,其依據就是J2ME運行所處的受限環境。多數J2ME系統的主要 
受限條件就是可以存儲和運行程序所需內存的大小。例如,許多MIDP設備限制應用程序的尺寸不 
大于50K,這遠遠不及Server端J2SE運行環境下那些成兆的程序。實際應用中,程序會很容易超出 
這些限制條件。通過本篇您將學到一些減小程序尺寸大小的技巧,并在下面的例子中實踐這些技 
術。這個例子MIDlet僅僅顯示一個文本框并在其內容改變時發聲。 


代碼:-------------------------------------------------------------------------------- 
package com.j2medeveloper.techtips; 
import javax.microedition.lcdui.*; 
public class BeforeSizeOptimization extends 
BasicMIDlet { 
public static final Command exitCommand = 
new Command( "Exit", 
Command.EXIT, 1 ); 
public BeforeSizeOptimization(){ 
} 
protected void initMIDlet(){ 
getDisplay().setCurrent( new Mainform() ); 
} 
public class Mainform extends form { 
public Mainform(){ 
super( "Mainform" ); 
addCommand( exitCommand ); 
append( textf ); 
setCommandListener( new CommandListener(){ 
public void commandAction( Command c, 
Displayable d ){ 
if( c == exitCommand ){ 
exitMIDlet(); 
} 
} 
} 
); 
setItemStateListener( 
new ItemStateListener() { 
public void itemStateChanged( 
Item item ){ 
if( item == textf ){ 
AlertType.INFO.playSound( 
getDisplay() ); 
} 
} 
} 
); 
} 
private TextField textf = 
new TextField( "Type anything", null, 
20, 0 ); 
} 
} 
-------------------------------------------------------------------------------- 

雖然這個MIDlet在此僅作為一個例子,但使用的尺寸優化技巧可以適用于任一J2ME的profile上。 
注意,上面的MIDlet類需要下面的輔助類: 

代碼:-------------------------------------------------------------------------------- 
package com.j2medeveloper.techtips; 
import javax.microedition.lcdui.*; 
import javax.microedition.midlet.*; 
public abstract class BasicMIDlet extends MIDlet { 
private Display display; 
public BasicMIDlet(){ 
} 
protected void destroyApp( boolean unconditional ) 
throws MIDletStateChangeException { 
exitMIDlet(); 
} 
public void exitMIDlet(){ 
notifyDestroyed(); 
} 
public Display getDisplay(){ return display; } 
protected abstract void initMIDlet(); 
protected void pauseApp(){ 
} 
protected void startApp() 
throws MIDletStateChangeException { 
if( display == null ){ 
display = Display.getDisplay( this ); 
initMIDlet(); 
} 
} 
} 
-------------------------------------------------------------------------------- 

用J2ME WTK打包時,本例子MIDlet占用4K空間。 
減小尺寸的首要步驟就是通過修正程序的功能實現來去掉多余的類。程序的所有功能確實必須都 
實現嗎?用戶可以不需要這些“附屬功能”嗎?要設計盡可能小的程序,這里的MIDlet例子已經 
相當小了。 
第二步就是深入考察程序定義的內部類,特別是匿名類。記住,每個類文件都有一定量的與之相 
關的系統開銷。即便最普通的類也有系統開銷。 
public class foo { 
// nothing here 
} 
編譯上邊的類,生成的類文件大約200byte大小。比如實現一個事件監聽器,就是對匿名類的常見 
使用。在例子MIDlet中就定義了兩個此類的監聽器。接下來進行的最簡單的優化就是,讓主 
MIDlet類實現CommandListener和ItemStateListener接口,并把監聽器代碼移至此處。記住,多 
個對象可以使用同樣的監聽器。必要時,可以使用傳遞至commandAction和itemStateChanged方法 
的參變量來區分它們。 
內部類也可使代碼過大,因為編譯器必須生成特殊的變量和方法,以便內部類可以訪問包含它們 
的類的私有內容。請參考內部類的規范以獲取更多信息。 
第三步,盡量使用現有的類。例如,基于CLDC的profile沒有構造集合類,所以我們可以用內建的 
Hashtable和Vector類來實現之。構造MIDP程序時也可采用此法。例子MIDlet中定義了一個form字 
類來生成主表,可以容易的如下直接生成: 
mainform = new form( "Mainform" ); 
mainform.addCommand( okCommand ); 
mainform.setCommandListener( listener ); 
這里沒有正確或者錯誤的答案,只是要推敲。 
第四步就是破壞程序的繼承關系。你也許把相關的代碼放到一個或多個抽象類中,這是OOD中為提 
高程序間代碼重用的推薦做法。雖然破壞繼承關系與你所學知識相違背,但簡化的繼承關系更有 
意義。特別的,當你的的抽象類?D?D可能來自其他項目?D?D僅僅被繼承一次時,破壞繼承關系的 
結果不言而喻。例如,例子MIDlet繼承了BasicMIDlet類,但兩者合并為一個類。 
第五步就是要縮短名字長度,如包名、類名、方法名和數據元素名。看起來有些蠢,但一個類文 
件確實包含太多的符號信息。縮短各量的名字可以縮小生成的類文件尺寸。這種節省不會特別明 
顯,但多個類中進行總加的結果還是可觀的。包名對減小尺寸來講特別合適。MIDP程序是完全自 
我包容的,完全可以不使用包名,因為在手持設備上包名根本不可能與其他類名沖突。例子 
MIDlet中,可以把com.j2medeveloper.tchtips包名去掉。 
注意,一般來講,縮短名字不需要手工去做,要用一個“混淆器”去做。“混淆器”的主要功能 
是“隱藏”程序代碼,使之不能通過反編譯讀出。它的副作用是減小了程序的尺寸。因為隱藏過 
程主要通過更改方法和數據成員的名字來完成。有一個開源的混淆器稱為RetroGuard,可以免費 
從 http://www.retrologic.com 得到。也有一些商業包可用。(當為基于CLDC的profile混淆時,記 
得在預校驗之前混淆,否則混淆器將使類文件中的預校驗數據失效。) 
最后,深入數組的初始化。(例子MIDlet沒有做數組初始化,但對程序來說初始化是重要的一步) 
在編譯時,一個數組初始化聲明如下所示: 
int arr[] = { 0, 1, 2, 3 }; 
而實際生成代碼的過程如下所示: 
arr[0] = 0; 
arr[1] = 1; 
arr[2] = 2; 
arr[3] = 3; 
這個過程可以通過使用Java 2 SDK中附帶的javap工具把二進制代碼反編譯成類文件去看(使用-c 選項)。也許你會詫異于看到的內容,特別當你希望看到的是一排排二進制常數時。有兩種方法可以讓你看不到反編譯的程序代碼,
(1)把數據編碼為字符串,運行時解碼之,或者
(2)把數據存為 二進制文件并與程序打包,用類裝載器的getResourceAsStream方法在運行時存取之。以上只是一些指導性的方法,對每個J2ME程序而言,這里沒有具體到步驟。但是多數方法可以應用的本例。優化后的MIDlet如下所示: 

代碼:-------------------------------------------------------------------------------- 
import javax.microedition.lcdui.*; 
import javax.microedition.midlet.*; 
public class ASO extends MIDlet 
implements CommandListener, 
ItemStateListener { 
private Display display; 
private form mainform; 
private TextField mainformTF = 
new TextField( "Type anything", null, 
20, 0 ); 
public static final Command exitCommand = 
new Command( "Exit", 
Command.EXIT, 1 ); 
public ASO(){ 
} 
public void commandAction( Command c, 
Displayable d ){ 
if( c == exitCommand ){ 
exitMIDlet(); 
} 
} 
protected void destroyApp( boolean unconditional ) 
throws MIDletStateChangeException { 
exitMIDlet(); 
} 
public void exitMIDlet(){ 
notifyDestroyed(); 
} 
public Display getDisplay(){ return display; } 
protected void initMIDlet(){ 
mainform = new form( "Mainform" ); 
mainform.addCommand( exitCommand ); 
mainform.setCommandListener( this ); 
mainform.setItemStateListener( this ); 
mainform.append( mainformTF ); 
getDisplay().setCurrent( mainform ); 
} 
public void itemStateChanged( Item item ){ 
if( item == mainformTF ){ 
AlertType.INFO.playSound( getDisplay() ); 
} 
} 
protected void pauseApp(){ 
} 
protected void startApp() 
throws MIDletStateChangeException { 
if( display == null ){ 
display = Display.getDisplay( this ); 
initMIDlet(); 
} 
} 
} 
-------------------------------------------------------------------------------- 

關于作者:Eric Giguere是來自Sybase下屬iAnywhere Solutions的軟件開發人員。他致力于手持設備和無線計算領域的Java技術。他是滑鐵盧大學的數學學士和數學碩士,寫了很多有關計算的文章

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美v日韩v国产v| 国产一区二三区| 精品电影一区二区| 成人激情电影免费在线观看| 亚洲午夜一区二区| 久久精品免视看| 欧美亚洲国产一卡| 精品午夜久久福利影院| 一区二区三区精品| 国产区在线观看成人精品| 欧美精选一区二区| 91蝌蚪porny成人天涯| 欧美在线观看一区| 色先锋aa成人| 91亚洲国产成人精品一区二区三| 亚洲一二三四在线观看| 国产精品九色蝌蚪自拍| 中文字幕欧美激情一区| 国产精品视频一区二区三区不卡| 日韩色视频在线观看| 91精品国产丝袜白色高跟鞋| 欧美高清www午色夜在线视频| 欧美视频在线一区| 欧美三级三级三级| 波多野结衣视频一区| 日韩**一区毛片| 日韩电影在线看| 久久99在线观看| 国产999精品久久| 成人一区二区三区| 91视频在线观看免费| 91丨九色porny丨蝌蚪| 欧美又粗又大又爽| 91精品国产色综合久久ai换脸| 欧美一级在线视频| 精品久久国产字幕高潮| 国产精品天美传媒沈樵| 中文字幕一区二区在线播放 | 日韩黄色免费电影| 99精品国产一区二区三区不卡| 成人性视频免费网站| 国产精品亚洲第一| 99精品在线免费| 色中色一区二区| 欧美日韩一区三区四区| 日韩欧美亚洲一区二区| 欧美岛国在线观看| 亚洲欧美在线高清| 亚洲另类在线一区| 精品一区二区三区视频| 成人精品一区二区三区中文字幕| 色综合天天综合色综合av | 在线电影国产精品| 久久一区二区三区四区| 亚洲精品视频观看| 国产91丝袜在线播放| 欧美做爰猛烈大尺度电影无法无天| 国产三级精品视频| 国产麻豆精品久久一二三| 日韩欧美国产一二三区| 一区二区久久久久久| 一本高清dvd不卡在线观看| 久久精品亚洲一区二区三区浴池| 日韩不卡一二三区| 午夜亚洲福利老司机| 日韩视频一区二区在线观看| 首页综合国产亚洲丝袜| 欧美精品一区二区精品网| 国产一区二区福利视频| 亚洲精品中文在线| 欧美亚洲动漫制服丝袜| 午夜精品久久久久久久久久| 欧美日韩一区视频| 美女视频黄 久久| 国产亚洲欧美色| 成人国产精品免费观看视频| 国产精品色在线观看| 色伊人久久综合中文字幕| 亚洲成人午夜影院| 久久精品视频一区| 欧美性猛片xxxx免费看久爱| 久久国产婷婷国产香蕉| 国产精品萝li| 欧美一区二区三区在线| 亚洲激情校园春色| 国产婷婷色一区二区三区| av不卡一区二区三区| 欧美a级理论片| 亚洲黄色片在线观看| 欧美大片顶级少妇| 一本色道久久综合精品竹菊| 久久99九九99精品| 天天综合网天天综合色| 久久综合久久综合亚洲| 91精品在线免费观看| 日本高清无吗v一区| 暴力调教一区二区三区| 国产一区二区主播在线| 午夜激情一区二区| 亚洲综合小说图片| 亚洲中国最大av网站| 中文字幕一区二区在线播放| 国产精品久久综合| 中文字幕av在线一区二区三区| 91精品国产一区二区| 欧美人妇做爰xxxⅹ性高电影| 在线看一区二区| 欧美亚洲图片小说| 欧美疯狂做受xxxx富婆| 制服丝袜日韩国产| 日韩一区二区三| 欧美不卡在线视频| 久久精子c满五个校花| 国产精品乱子久久久久| 一区二区三区在线视频观看58| 亚洲欧美另类综合偷拍| 亚洲国产va精品久久久不卡综合| 亚洲图片欧美色图| 国产资源精品在线观看| 福利视频网站一区二区三区| 99re成人精品视频| 欧美日韩成人综合天天影院| 日韩一区国产二区欧美三区| 精品久久久久久亚洲综合网| 亚洲免费观看视频| 麻豆一区二区三区| 天堂一区二区在线免费观看| 蜜桃视频在线一区| 色综合天天综合色综合av | 国产成人av电影在线播放| av综合在线播放| 日韩欧美视频一区| 亚洲国产精品久久人人爱| 国产麻豆精品在线| 日韩一区二区视频| 亚洲午夜成aⅴ人片| 99热这里都是精品| 国产亚洲欧洲997久久综合| 婷婷国产v国产偷v亚洲高清| 99这里都是精品| 欧美激情中文字幕| 国产福利一区在线| 日韩精品中午字幕| 裸体在线国模精品偷拍| 精品视频色一区| 亚洲伊人伊色伊影伊综合网| 91玉足脚交白嫩脚丫在线播放| 久久久亚洲精品一区二区三区| 久久精品99久久久| 精品国产精品一区二区夜夜嗨| 日韩精品视频网| 精品国精品国产| 国产一区二区三区久久久| 337p日本欧洲亚洲大胆精品| 一区二区三区四区国产精品| 亚洲最新在线观看| 蜜桃91丨九色丨蝌蚪91桃色| 国产午夜精品一区二区三区四区| 欧美三片在线视频观看| 国产成人综合亚洲网站| 美女任你摸久久| 日韩一区中文字幕| 91精品蜜臀在线一区尤物| 成人一区二区三区中文字幕| 亚洲电影一区二区三区| 国产日韩精品一区二区三区在线| 成人免费电影视频| 亚洲精品乱码久久久久久日本蜜臀| 日韩三级在线免费观看| 色女孩综合影院| 国产99一区视频免费| 裸体健美xxxx欧美裸体表演| 中文字幕在线一区| 久久看人人爽人人| 欧美电影免费观看高清完整版在线 | 国产做a爰片久久毛片| 亚洲一区日韩精品中文字幕| 国产精品美女久久久久aⅴ国产馆| 欧美一级二级在线观看| 欧美日韩国产精品自在自线| 99久久精品国产麻豆演员表| 日韩精品一区二区三区老鸭窝 | 亚洲成人你懂的| 亚洲手机成人高清视频| 国产精品免费人成网站| 国产欧美一区二区在线| 欧美激情中文不卡| 国产精品国产三级国产普通话蜜臀| 欧美日韩成人在线一区| 99v久久综合狠狠综合久久| 91福利资源站| 日韩欧美在线影院| 国产精品乱人伦| 亚洲综合一二三区| 国产自产v一区二区三区c| 色综合久久久久网| 欧美精品一区二区三区一线天视频| 国产精品美女久久久久高潮| 人人爽香蕉精品| 欧美亚洲动漫精品|