Android性能優(yōu)化方法

本篇主要說些Android性能優(yōu)化的幾種方法坐漏,主要包括布局優(yōu)化碧信、繪制優(yōu)化砰碴、內(nèi)存泄漏優(yōu)化板丽、響應(yīng)速度優(yōu)化、ListView優(yōu)化猖辫、Bitmap優(yōu)化砚殿、線程優(yōu)化及一些優(yōu)化的建議

一. 布局優(yōu)化:

布局優(yōu)化主要思想就是盡量減少布局文件的層級,因為布局文件中的層級少了辛萍,Android繪制時工作量也就減少了,性能自然就提高了羡藐。

二. 繪制優(yōu)化:

繪制優(yōu)化指的是View的onDraw方法中避免大量的操作仆嗦,主要體現(xiàn)以下兩個方面:
1、onDraw中不要創(chuàng)建新的局部對象谆甜。因為onDraw方法可能會被頻繁的調(diào)用邢隧,這樣就會在一瞬間產(chǎn)生大量的臨時對象冈在,這樣不僅占用了過多的內(nèi)存包券,而且還會導(dǎo)致系統(tǒng)更新頻繁的gc,降低了程序的執(zhí)行效率。

2付秕、onDraw中不要做耗時任務(wù)侍郭,也不能執(zhí)行成千上萬次的的循環(huán)操作

三. 內(nèi)存泄露優(yōu)化:

  1. 靜態(tài)導(dǎo)致的內(nèi)存泄露
public class MainActivity extends AppCompatActivity {

    private static Context sContext;
    private static View sView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        sContext = this;//activity無法正常銷毀掠河,因為靜態(tài)變量sContext引用了它
        sView = new View(this);//sView是一個靜態(tài)變量唠摹,它內(nèi)部持有了當(dāng)前activity,所以activity無法釋放
    }
}
  1. 屬性動畫導(dǎo)致的內(nèi)存泄露(資源釋放不及時)
    解決方案:在onDestroy()中animator.cancel();
    其他需要釋放的資源

四. 響應(yīng)速度優(yōu)化

響應(yīng)速度優(yōu)化核心是避免在主線程中做耗時操作奉瘤,耗時操作采用異步的方式執(zhí)行

五. ListView和Bitmap優(yōu)化

1、 ListView優(yōu)化

  • 使用ViewHolder并避免在getView()中執(zhí)行耗時操作
  • 根據(jù)列表滑動狀態(tài)來控制人物的執(zhí)行藕赞,滑動的時候不加載卖局,停止滑動時在加載
  • 可以嘗試開啟硬件加速使ListView滑動更加流暢
    2砚偶、Bitmap優(yōu)化

六. 線程優(yōu)化

線程優(yōu)化的思想是采用線程池,避免程序中存在大量的Thread风钻。線程池可以重用內(nèi)部的線程酒请,從而避免了線程的創(chuàng)建和銷毀所帶來的性能開銷,同時線程池還能有效的控制線程池的最大并發(fā)數(shù)布朦,避免大量的線程因互相搶占系統(tǒng)資源二導(dǎo)致阻塞現(xiàn)象

七. 一些性能優(yōu)化的建議

  • 避免創(chuàng)建過多的對象
  • 不要過多使用枚舉昼窗,枚舉占用的內(nèi)存要比整形大
  • 常亮使用static final 來修飾
  • 使用Android特有的數(shù)據(jù)結(jié)構(gòu)是趴,比如:SpaseArray,Pair
  • 適當(dāng)?shù)氖褂密浺煤腿粢?/li>
  • 采用內(nèi)存緩存和磁盤緩存
  • 盡量使用靜態(tài)內(nèi)部類,這樣可以避免潛在的由于內(nèi)部類而導(dǎo)致的內(nèi)存泄露

說明:文章參考《開發(fā)藝術(shù)探索》一書
這篇也不錯:https://www.cnblogs.com/cr330326/p/8011523.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末澄惊,一起剝皮案震驚了整個濱河市唆途,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌掸驱,老刑警劉巖肛搬,帶你破解...
    沈念sama閱讀 210,914評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異毕贼,居然都是意外死亡温赔,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評論 2 383
  • 文/潘曉璐 我一進(jìn)店門鬼癣,熙熙樓的掌柜王于貴愁眉苦臉地迎上來啤贩,“玉大人,你說我怎么就攤上這事拜秧」衔睿” “怎么了?”我有些...
    開封第一講書人閱讀 156,531評論 0 345
  • 文/不壞的土叔 我叫張陵腹纳,是天一觀的道長痢掠。 經(jīng)常有香客問我,道長嘲恍,這世上最難降的妖魔是什么足画? 我笑而不...
    開封第一講書人閱讀 56,309評論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮佃牛,結(jié)果婚禮上淹辞,老公的妹妹穿的比我還像新娘。我一直安慰自己俘侠,他們只是感情好象缀,可當(dāng)我...
    茶點故事閱讀 65,381評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著爷速,像睡著了一般央星。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上惫东,一...
    開封第一講書人閱讀 49,730評論 1 289
  • 那天莉给,我揣著相機(jī)與錄音,去河邊找鬼廉沮。 笑死颓遏,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的滞时。 我是一名探鬼主播叁幢,決...
    沈念sama閱讀 38,882評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼坪稽!你這毒婦竟也來了曼玩?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,643評論 0 266
  • 序言:老撾萬榮一對情侶失蹤刽漂,失蹤者是張志新(化名)和其女友劉穎演训,沒想到半個月后弟孟,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體贝咙,經(jīng)...
    沈念sama閱讀 44,095評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,448評論 2 325
  • 正文 我和宋清朗相戀三年拂募,在試婚紗的時候發(fā)現(xiàn)自己被綠了庭猩。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片窟她。...
    茶點故事閱讀 38,566評論 1 339
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖蔼水,靈堂內(nèi)的尸體忽然破棺而出震糖,到底是詐尸還是另有隱情,我是刑警寧澤趴腋,帶...
    沈念sama閱讀 34,253評論 4 328
  • 正文 年R本政府宣布吊说,位于F島的核電站,受9級特大地震影響优炬,放射性物質(zhì)發(fā)生泄漏颁井。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,829評論 3 312
  • 文/蒙蒙 一蠢护、第九天 我趴在偏房一處隱蔽的房頂上張望雅宾。 院中可真熱鬧,春花似錦葵硕、人聲如沸眉抬。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蜀变。三九已至,卻和暖如春介评,著一層夾襖步出監(jiān)牢的瞬間昏苏,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評論 1 264
  • 我被黑心中介騙來泰國打工威沫, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留贤惯,地道東北人。 一個月前我還...
    沈念sama閱讀 46,248評論 2 360
  • 正文 我出身青樓棒掠,卻偏偏與公主長得像孵构,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子烟很,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,440評論 2 348

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,727評論 25 707
  • 前言 為什么要進(jìn)行性能優(yōu)化颈墅?Android作為移動平臺,不管是內(nèi)存或者cpu的性能都受到了一定的限制雾袱,過多的使用內(nèi)...
    Jdqm閱讀 619評論 0 8
  • 學(xué)習(xí)資料 《Android開發(fā)藝術(shù)探索》 布局優(yōu)化 思想概述: 盡量減少布局文件的層次(android繪制時的工...
    sun_goden閱讀 393評論 0 0
  • 前言 內(nèi)存泄露在開發(fā)工程中是一個需要重視的問題恤筛,但是由于內(nèi)存泄露問題對開發(fā)人員的經(jīng)驗和開發(fā)意識有較高的要求,因此這...
    Liuuuuuuzi閱讀 781評論 4 11
  • 冬日里芹橡,人與人之間的溫暖關(guān)切毒坛,諸如一句問候、一聲叮呤,甚至短短的一句你好煎殷,輕輕的一個微笑屯伞。淡淡的,像溫暖的小太陽豪直,...
    阿長的沙鷗閱讀 345評論 0 1