J2ME程式最佳化方法二十條

來源:互聯網
上載者:User
J2me程式由於其特殊的運行環境限制,所以最佳化就顯得比較重要,以下是我在學習j2me編程所收集的一些技巧和自己的心得。

本文主要是說明j2me平台上的特殊最佳化方法,與j2se重複的一些技巧就不再贅述了。
1.顯示圖象時確定好你的fps,最好先做幾次小實驗,這樣能讓你在顯示效果和運行速度上有比較好的平衡。

2.GamaCanvas.getGraphics()每次都會產生一個全新的對象,但是對這些對象的操作都是對同一個graphics,所以還是只取一次供後面使用。

3.讓多個對象使用同樣的監聽器,比如讓主MIDlet類實現CommandListener和ItemStateListener介面。

4.考慮使用手機開發商提供的一些sdk,沒人會比他們更瞭解他們手機,所以有些時候能顯著提高速度,特別是圖片,視頻使用方面。

5.使用監視工具分析MIDlet的瓶頸,wtk和各個公司提供的開發包裡都會有,可以找到程式的弱點。如果是在手機上,用timer測試你認為有可以的地方。

6.使用System.gc(),在無線程阻塞的情況下可以有效緩解記憶體壓力,但是有些公司不是太推薦使用(如nokia).sun的說法也是越低端的機子執行的越慢,總之,慎用吧。

7.用固定的數組代替使用Vector。

8.圖片的最佳化。考慮使用裝置的規格,可能高解析度的圖片不一定顯示的出來。

9.不用的對象賦值為null,為更快的回收

10.用混淆器處理你的類檔案,防止反編譯,還有一個好的副作用就是它減小class檔案的大小,因為混淆器往往用較短的字串代替原來的變
量或方法名。

11.若資料太大,可以將資料編碼為字串,運行時解碼,或把資料存為二進位檔案並與程式打包,用類裝載器的getResourceAsStream方法在運行時存取。

12.使用現有的類,比如你使用了GameCanvas,就不用自己產生off-screen,另外像CLDC的profile沒有構造集合類,所以我們可以用內建的Hashtable和Vector類來實現。

13.用最佳化軟體jPresto(http://www.s5systems.com/jPresto.htm)---沒用過,不過暫且寫上吧。
如果對檔案大小,記憶體限制非常嚴格,這時候就只能用一些非常規的方法了,可能這些方法背離了OO思想,但是多數情況下,它是起到了非常積極的作用的(但是也可能),假如你更在意於程式的維護和擴充方面,我建議你還是跳過吧 -_-||

14.把所有資源檔做成一個資料檔案。

15.把所有的小圖片檔案做成一個檔案,在運行時再"切割"開。

16.使用有限的物件導向,因為純粹的OO往往意味著更多的虛方法,更多的層次關係,更多的class

17.產生儘可能少的class,class都有一定的系統開銷。

18.class中產生儘可能少的方法。速度比較:同步方法《介面方法《執行個體方法《final方法《靜態方法。

19.用final static限定方法可以獲得小幅的速度提高。

20.對資料成員用public限定,來代替get和set方法,不過要注意安全性。

J2ME最佳化可能使你的程式在不同的模擬器,不同的裝置下有不同的運行效果,所以 最佳化一定要建立在開發裝置的規格上。
以上所列舉的方法不一定在所有midp裝置上都起作用,也不一定都適合每一個程式,總之,應該根據自身的情況

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.