<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    即興的靈感

    思維是一種藝術(shù); 藝術(shù)需要靈感。

    博客好友

    最新評(píng)論

    J2ME手機(jī)開發(fā)之內(nèi)存優(yōu)化攻略

    ??????嚴(yán)正聲明:本文出自即興詩人blogjava博客,作者經(jīng)過整理總結(jié)而得,如轉(zhuǎn)載必需與作者聯(lián)系improviser@163.com
    ??????在C或C++開發(fā)過程中,內(nèi)存溢出問題可謂是經(jīng)常讓開發(fā)人員極其痛苦的事情,稍不注意問題就產(chǎn)生,甚至引發(fā)隱含的漏洞產(chǎn)生。JAVA正是在C++的優(yōu)秀品質(zhì)中繼承下來的產(chǎn)物,擁有垃圾回收機(jī)制是JAVA虛擬機(jī)在C++繼承過程中進(jìn)化的一個(gè)重要地方,垃圾回收機(jī)制能在對(duì)象沒被使用之后的某個(gè)時(shí)間將對(duì)象進(jìn)行回收,從而能使無用對(duì)象占據(jù)的內(nèi)存得到釋放。但是,這僅僅對(duì)有足夠內(nèi)存的Server服務(wù)器主機(jī)跟PC機(jī)上的虛擬機(jī)有用,對(duì)于內(nèi)存極其珍貴的設(shè)備來說垃圾回收機(jī)制卻顯得有點(diǎn)無能為力,英雄無用武之地。雖然隨著手機(jī)硬件的不斷升級(jí),智能手機(jī)中的手機(jī)內(nèi)存以及CPU資源大大得到提升,但是目前用戶手中的手機(jī)并無法普遍達(dá)到這種水平,因此在J2ME設(shè)計(jì)開發(fā)過程中我們需要很好的考慮到每一寸內(nèi)存土地的利用。今天參考了有關(guān)資料,并對(duì)J2ME開發(fā)過程中的內(nèi)存相關(guān)內(nèi)容做個(gè)歸納,以增加對(duì)內(nèi)存的使用有更好的理解。
    ??????一、程序內(nèi)存情況分析
    ??????1、在使用WTK中,我們可以調(diào)用工具中的Memory Monitor來查看程序的內(nèi)存使用情況。
    ??????2、使用相對(duì)于的手機(jī)模擬器內(nèi)存監(jiān)視器來對(duì)程序使用內(nèi)存進(jìn)行監(jiān)視。
    ??????3、Runtime類提供了查看剩余內(nèi)存的方法freeMemory()。

    ??????二、程序內(nèi)存占用分析
    ??????一個(gè)軟件在運(yùn)行過程中占據(jù)內(nèi)存主要是程序代碼和程序所使用的各類資源,包括文字文件資源、圖片、音樂等多媒體資源。
    ????? 而在JAVA虛擬機(jī)中,java代碼最終是被編譯成class文件的字節(jié)碼形式并且隨著程序的啟動(dòng)而加載到內(nèi)存中,因此經(jīng)過編譯之后的字節(jié)碼文件的容量大小,將會(huì)影響程序最終占用內(nèi)存的大小,而字節(jié)碼文件的大小則是由程序代碼中類的個(gè)數(shù)、變量名稱以及方法名的長度、字符串以及靜態(tài)常量的長度和大小等因素決定的。
    ??????在手機(jī)應(yīng)用程序中特別在游戲開發(fā)中,都需要使用各類的資源,使得游戲內(nèi)存豐富多彩,而這些資源將是程序占據(jù)更多資源的原因。同樣的,在游戲場(chǎng)景中,設(shè)計(jì)到很多對(duì)話內(nèi)容,因此涉及到很多文字存儲(chǔ)文件(使用文件存儲(chǔ)而不是在程序中聲明字符串的作用是在需要時(shí)候才讀取內(nèi)容,防止過多字符串占據(jù)過大內(nèi)存)。
    ??????聲音也是一種極其占據(jù)內(nèi)存的資源,因此在程序當(dāng)中也需要對(duì)聲效等資源的控制。

    ??????三、內(nèi)存優(yōu)化方法攻略
    ??????1、代碼優(yōu)化
    ??????盡量使用較短的變量名稱和方法名稱,減少類中成員變量跟成員方法的數(shù)量,多使用局部變量而少使用全局變量,減少程序總體的代碼行數(shù),在程序測(cè)試確定無錯(cuò)情況下可以去掉異常處理的try-catch語句,對(duì)常量跟字符串過多的程序中使用文件存儲(chǔ)形式以使用時(shí)候再讀取,對(duì)不使用的對(duì)象及時(shí)指向?yàn)閚ull,對(duì)占據(jù)大內(nèi)存的程序或資源的數(shù)據(jù)流讀取使用后及時(shí)釋放資源并使用System.gc()方法回收垃圾資源。
    ??????2、圖片優(yōu)化
    ??????在圖片使用中,我們通常使用圖形壓縮工具或算法對(duì)圖片大小進(jìn)行壓縮,但是這樣的作用僅僅是較小了J2ME程序最終產(chǎn)生的JAR文件包大小,但無法減少圖片在被使用時(shí)候?qū)?nèi)存的消耗。據(jù)有關(guān)資料介紹,圖片的內(nèi)存在內(nèi)存中的大小只跟圖片被裝載后的高度跟寬度有關(guān),而跟圖片本身體積大小無關(guān),計(jì)算公式為內(nèi)存占用量=寬*高*像素字節(jié)數(shù)。
    ??????因此在圖片優(yōu)化中可以使用減小圖片的高寬、使用圖片分割編輯工具對(duì)圖片進(jìn)行分割,充分利用圖片的空間;在使用的時(shí)候才載入相關(guān)的圖片,而在無用的時(shí)候及時(shí)銷毀圖片對(duì)象;對(duì)每一張圖片聲明一個(gè)對(duì)象變量。
    ??????3、聲效資源優(yōu)化
    ??????對(duì)聲音采用字節(jié)流ByteArrayInputStream來創(chuàng)建Player對(duì)象;在對(duì)聲音對(duì)象的回收前停止聲音的播放;其次在每次播放聲音前先對(duì)聲音對(duì)象進(jìn)行判斷,如對(duì)象存在則先停止后再進(jìn)行播放。
    ??????4、有關(guān)字符串處理
    ??????對(duì)字符串的處理使用StringBuffer來操作,因?yàn)槭褂梅椒╝ppend時(shí)是同一個(gè)對(duì)象上的操作,而如果采用“+”操作字符串則會(huì)每次創(chuàng)建新的對(duì)象。
    ??????5、對(duì)循環(huán)的優(yōu)化
    ??????盡量在for循環(huán)語句中將size或length等計(jì)算提取到循環(huán)外面,如下所示(對(duì)數(shù)組num{23,13,46,26,22,57}進(jìn)行排序):
    ??????int k = num.length;
    ??????for(int i=0;i<k-1;i++)
    ??????{
    ???????????????for(int j=1;j<k;j++)
    ??????????????????{
    ????????????????????????if(num[i]<=num[j])
    ????????????????????????{
    ???????????????????????????????????int temp = num[i];
    ???????????????????????????????????num[i] = num[j];
    ???????????????????????????????????num[j] =?temp;
    ????????????????????????}
    ??????????????????}
    ???????}
    ????????下篇文章J2ME手機(jī)開發(fā)之內(nèi)存優(yōu)化攻略(續(xù))將繼續(xù)敘述有關(guān)代碼優(yōu)化的內(nèi)存。
    ????????二零零九年二月二十八日于東莞東陽光
    ??????? 嚴(yán)正聲明:本文出自即興詩人blogjava博客,作者經(jīng)過整理總結(jié)而得,如轉(zhuǎn)載必需與作者聯(lián)系improviser@163.com



    ?
    鳳凰涅槃/浴火重生/馬不停蹄/只爭(zhēng)朝夕
    ???? 隱姓埋名/低調(diào)華麗/簡(jiǎn)單生活/完美人生

    posted on 2009-02-28 19:35 poetguo 閱讀(1518) 評(píng)論(0)  編輯  收藏 所屬分類: J2ME

    主站蜘蛛池模板: 亚洲人成色77777在线观看| 日韩a级毛片免费观看| 国产亚洲无线码一区二区 | 在线观看的免费网站无遮挡| 国产亚洲精品自在久久| 永久在线毛片免费观看| 亚洲第一se情网站| 免费a在线观看播放| 久久久久久久久久免免费精品| 亚洲伊人久久综合中文成人网| 亚洲免费一区二区| 久久水蜜桃亚洲av无码精品麻豆| 99在线热视频只有精品免费| 亚洲不卡1卡2卡三卡2021麻豆| 免费国产黄线在线观看| 亚洲AV香蕉一区区二区三区| 色噜噜亚洲精品中文字幕| 免费成人高清在线视频| 亚洲永久中文字幕在线| 国产裸模视频免费区无码| 少妇性饥渴无码A区免费 | 亚洲国产区男人本色| 亚洲国产精品无码久久久不卡| 波多野结衣在线免费视频| 亚洲av无码一区二区三区天堂| 精品亚洲AV无码一区二区三区 | www视频免费看| 久久99精品免费一区二区| 特级毛片aaaa级毛片免费| 亚洲AV无码不卡无码| 日韩一区二区三区免费体验| 韩国日本好看电影免费看| 日本无吗免费一二区| 国产嫩草影院精品免费网址| 免费a级毛片18以上观看精品| 日韩精品无码人妻免费视频| 国产男女性潮高清免费网站 | 国产精品内射视频免费| 一级一级一级毛片免费毛片| 亚洲国产成人在线视频| 亚洲伊人色欲综合网|