国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

J2ME最佳實踐概述

2019-11-18 16:14:11
字體:
來源:轉載
供稿:網友

        J2ME是Sun發布的運行在小型設備上的微型版java的一系列標準,其中,最重要的標準便是運行在手機上的MIDP應用程序了。到目前為止,MIDP一共發布了兩個版本:MIDP 1.0(JSR37)和MIDP 2.0(JSR118),2.0版本可以向后兼容1.0版本,也就是說,支持MIDP 2.0的手機可以同時運行MIDP 1.0和MIDP 2.0的應用程序。本文將重點講述開發MIDP應用程序時非常有用的一些設計模式,開發技巧以及如何調試、優化J2ME應用程序。

本文將討論J2ME開發的以下內容:

  • 如何自動適應用戶手機配置
  • 如何在屏幕間導航
  • 如何實現一個靈活的聯網應用
  • 如何實現一個靈活的RMS應用
  • 如何調試并優化J2ME程序

避免OutOfMemoryError

對于MIDP應用程序來說,由于手機設備上的資源非常有限,較弱的CPU計算能力,有限的內存(從幾十KB到幾百KB,雖然少數高端手機擁有超過1M的動態內存),很小的屏幕尺寸,因此,為了讓一個MIDP應用程序能夠不加改動地在多種不同手機上運行,程序必須有能力根據系統配置自動調整運行時的參數。比如,對于內存非常小的手機,如果從網絡下載一幅較大的圖像,需要分配巨大的緩沖區,就可能導致OutOfMemoryError錯誤,使應用程序直接終止,這會使用戶感到不知所措,或者丟失用戶的重要數據。
因此,在試圖分配一塊大內存之前,首先使用System.gc()嘗試讓垃圾收集器釋放無用對象占用的內存,然后,使用Runtime.getRuntime().freeMemory()方法獲得可用的內存空間。如果可用空間太小,給用戶一個“內存不足,無法完成操作”的Alert提示,從而盡可能地避免OutOfMemoryError錯誤。

// 示例代碼:
System.gc();
int max_size = 102400; // 100KB
int free_size = (int)Runtime.getRuntime().freeMemory();
if(max_size>free_size*2/3) {
    // TODO: Alert!
}
else {
    byte[] buffer = new byte[max_size];
    // TODO: Download image...
}

減少圖片以減小JAR文件大小

許多手機會因為JAR文件太大而無法運行MIDP應用程序,而減小JAR文件尺寸的有效方法之一是減少不必要的圖片,例如,啟動時的LOGO圖片可以用文字來代替,列表項可以只顯示文字而不顯示圖片。為了能適應不同配置的手機,我們的代碼就應該編寫得更加靈活。例如,從JAR包中加載圖片時:

Image image = null;
try {
    image = Image.createImage("/logo.png");
}
catch(Exception ioe) {}
if(image==null) {
    g.setColor(0);
    g.drawString("info", getWidth()/2, getHeight()/2, Graphics.HCENTERGraphics.BASELINE);
}
else {
    g.drawImage(image, getWidth()/2, getHeight()/2, Graphics.HCENTERGraphics.VCENTER);
}

如果加載失敗,程序會以文字方式顯示,這樣,對于低配置的手機,只需要把美化界面的圖片刪除掉,再重新打包即可得到一個可發布的尺寸較小的JAR包,同時應用程序的代碼并沒有改動。

類似的,在加載List之類的UI組件時:

Image image = null;
try {
    image = Image.createImage("/logo.png");
}
catch(Exception ioe) {}
append("label", image);

這使得有無圖片僅僅影響界面美觀,而不影響應用程序的功能。

(出處:http://m.survivalescaperooms.com)



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 乌鲁木齐县| 宜兰县| 平武县| 天水市| 府谷县| 策勒县| 万全县| 高州市| 焦作市| 彭山县| 肥乡县| 怀安县| 明水县| 虹口区| 阳曲县| 扎赉特旗| 贵南县| 梓潼县| 公主岭市| 桦甸市| 平塘县| 柳河县| 宜良县| 丰原市| 安泽县| 金坛市| 叙永县| 师宗县| 峨眉山市| 白沙| 广南县| 万宁市| 都昌县| 乾安县| 嘉义县| 漳州市| 巴中市| 四会市| 长汀县| 漳州市| 额济纳旗|