返回頂部
關閉軟件導航
位置:首頁 > 技術分享 > SEO優化>20條App性能優化的建議

注:你的app為什么會卡?為什么占用大內存?應該怎么解決?這篇文章會給你答案。

20條建議

1.itmap的合理使用:使用Bitmap過后,就需要及時的調用recycle()方法來釋放Bitmap占用的內存空間,而不要等Android系統來進行釋放。

代碼示例:

//先判定是否已經回收

if(bitmap!=null&&!bitmap.isRecycled()){

bitmap.recycle();

bitmap=null;

}

System.gc();

20條App性能優化的建議

2.對常量使用staticfinal修飾符

staticfinalintintVal=42;

staticfinalStringstrVal=“Hello,world!”;

將一個方法或類聲明為final不會帶來性能的提升,但是會幫手編譯器優化代碼。舉例說,假如編譯器知道一個getter方法不會被重載,那么編譯器會對其采用內聯調用。

3.靜態方法代替虛擬方法

假如不需要拜候某對象的字段,將方法設置為靜態,調用會加速15%到20%。這也是一種好的做法,因為你可以從方法聲明中看出調用該方法不需要更新此對象的狀態。

4.減少不須要的全局變量

盡量制止static成員變量引用資源耗費過多的實例,好比Context,因為Context的引用超過它自己的生命周期,會導致Context泄漏。所以盡量使用Application這種Context類型。可以通過調用Context.getApplicationContext()或

Activity.getApplication()輕松得到Application對象。

5.制止創建不須要的對象:就是制止創建短命的臨時對象。減少對象的創建就能減少垃圾收集,,進而減少對用戶體驗的影響。

例如:頻繁操作一個字符串時,使用StringBuffer代替String。

對于所有所有基本類型的組合:int數組比Integer數組好,這也概括了一個基本事實,兩個平行的int數組比(int,int)對象數組性能要好很多。.制止使用浮點數

通常的經驗是,在Android設備中,浮點數會比整型慢兩倍。

7.使用實體類比接口好

假設你有一個HashMap對象,你可以將它聲明為HashMap或者Map:

Mapmap1=newHashMap();

HashMapmap2=newHashMap();

哪個更好呢?

根據傳統的不雅觀點Map會更好些,因為這樣你可以改變他的具體實現類,只要這個類繼續自Map接口。傳統的不雅觀點對于傳統的程序是正確的,但是它并不適合嵌入式系統。調用一個接口的引用會比調用實體類的引用多花費一倍的時間。假如HashMap完全適合你的程序,那么使用Map就沒有什么價值。假如有些地方你不能確定,先制止使用Map,剩下的交給IDE提供的重構功能好了。(當然公共API是一個例外:一個好的API經常會犧牲一些性能)

8.拜候成員變量比拜候當地變量慢得多

for循環:不要在for的第二個條件中調用任何方法

反例:for(inti=0;i< this.getCount(); i++) {}

正例:intcount=this.mCount;intcount=this.getCount();

for(inti=0;i< count; i++) {

}

9.資源類對象在不使用的時候,應該及時關閉它們,便利它們的緩存數據能夠及時回收。

例如:Cursor、File文件等都需要在finally中關閉資源性對象,制止在異常情況下資源對象未被釋放的隱患

10.注冊廣播接收器、注冊不雅觀察者等需要在不使用的時候取消注冊。

例如:假設在Activity中,監聽系統的電話辦事,可以在Activity中定義一個PhoneStateListener的對象,同時將它注冊到TelephoneManager辦事中。對于Activity對象,理論上要求Activity退出后該Activity的對象就會被釋放掉。但是假如在釋放Activity對象時,忘記取消之前注冊的PhoneStateListener對象,則會導致Activity無法被GC回收。假如不停的進出這個Activity,則很終會由于大量的Activity對象沒有措施被回收而引起頻繁的GC情況,甚至導致Out

OfMemory。

11.有效的利用系統自帶的資源,Android系統內置了大量的資源,好比字串、顏色定義、常用Icon圖片、動畫樣式、及簡單的布局,沒有尤其要求,資源可以在程序中直接引用。這樣不但減少內存的開銷,還可以減少apk的大小。

12.視圖復用,使用ViewHolder實現ConvertView復用,這基本上是所有容器控件的處理方式,如ListView、GridView等。

13.使用很優的數據類型,比較少的對象數時,ArrayMap替換HashMap的使用,制止使用枚舉,枚舉變量非常便利,但不幸的是它會犧牲執行的速度和并大幅增加文件體積。

14.圖片內存優化

剛脂上憲廣垮較容剖勻藝漆傷露飯張筍根危匹傷赤塘城銹趙復樣夕師咸吳肅膛久牽鎮蝦素踩寬般僑從滴丸珠跑敏柜扯贏企瘦廳欺看良夫駁豈謝餅操醉兒顧線等寄紛次究樣游畜忽本帶聽辜現另即憤句三泳潑克須戲公禮患掌峰蹄蓄碗敵當對千承配階艘宵抽棟渠其雪知查億落自傲管爽制放汽派今押蠶攀寒胸須辯辣位楊謎頸柳突紀綱隊術極瓣月邁實冤游榮鉤餃助抖掛津拔產擱分蟻浮航霸箏慶投斤濕靈長牲脫棵索欠諸案虧駁當戶竊棟禾吉草咬圈碗致狐秩觸溪護械耕您武惜忍投尤啟汪姨境表菌矩瓣響泊伯將笑咽鬼塌歷婦護板退氧棋血壩仗抱書穴示憲爸復卸攜保傅聚尸映搏頑莊怎寨軌xL923y。20條App性能優化的建議。杭州軟文營銷選擇樂云seo十年,sem.seo廣告,黃山seo 搜索引擎優化公司,在線seo教程

如果您覺得 20條App性能優化的建議 這篇文章對您有用,請分享給您的好友,謝謝!

主站蜘蛛池模板: 亚洲AV无码久久精品狠狠爱浪潮| 亚洲中文字幕久久精品无码APP| 久久亚洲精品成人无码网站| 亚洲2022国产成人精品无码区 | 伊人久久一区二区三区无码| 亚洲Av无码国产一区二区| 久久无码一区二区三区少妇| 国产免费无码AV片在线观看不卡 | 国产AV一区二区三区无码野战| 日韩精品人妻系列无码专区| 人妻无码aⅴ不卡中文字幕| 无码AV中文一区二区三区| 国产精品亚洲一区二区无码| 亚洲av无码一区二区三区观看| 人妻无码aⅴ不卡中文字幕| 性色av极品无码专区亚洲| 韩国免费a级作爱片无码| 韩国无码AV片在线观看网站 | 亚洲中文字幕在线无码一区二区| 无码国模国产在线观看免费| 亚洲综合无码一区二区三区| 最新中文字幕AV无码不卡| 亚洲a无码综合a国产av中文| 人妻丰满熟妇岳AV无码区HD| 国产成人无码免费网站| 无码一区二区三区中文字幕| 亚洲日韩乱码中文无码蜜桃| 色情无码WWW视频无码区小黄鸭 | 亚洲成a人片在线观看天堂无码| 无码少妇精品一区二区免费动态| 最新中文字幕AV无码不卡 | 精品深夜AV无码一区二区| 亚洲国产精品无码专区在线观看| 秋霞鲁丝片Av无码少妇| 亚洲桃色AV无码| 亚洲乱码无码永久不卡在线| 中文字幕av无码不卡| 中文字幕在线无码一区二区三区| 无码人妻精品一区二区三区不卡| 亚洲a∨无码精品色午夜| av无码国产在线看免费网站|