2019-08-19 App啟動優(yōu)化(二)

Android性能優(yōu)化分幾點:

1:繪制優(yōu)化 2:內(nèi)存優(yōu)化 3:存儲優(yōu)化 4:穩(wěn)定性優(yōu)化 5:好點優(yōu)化 6: apk瘦身 7:工具

安裝python? 使用性能分析工具Systrace楞艾;性能分析工具還有TraceView硫眯;Profile GPU Rendering蜀细;

一:繪制優(yōu)化

場景? ??

? ????????????????1:UI? ?(繪制戈盈;刷新)

刷新幀率要與手機一致,太高太低都會影響屏幕的流暢性

? ? ? ? ? ? ? ? ? 2:啟動 (冷啟動归斤;溫啟動刁岸;熱啟動)

三種啟動方式,啟動慢了也不好

? ? ? ? ? ? ? ? ? 3:跳轉(zhuǎn)(頁面切換虹曙;前后臺切換)

Activity之間的切換,多使用Fragment切換矾踱,F(xiàn)ragment切消耗的資源要小很多疏哗,F(xiàn)ragment屬于輕量級;

前后臺切換的時候后有一些在運行的進程贝搁,線程,手動停掉雷逆,app切換到遷臺后,重新啟動关面;

? ? ? ? ? ? ? ? ? 4:響應(yīng)(按鍵;滑動)

用戶與手機之間產(chǎn)生卡頓捂齐,影響用戶留存率


根本原因

1:界面繪制?

繪制層太深奠宜;界面復(fù)雜(空間個數(shù)>80個);刷新不合理

2:數(shù)據(jù)處理

在UI線程處理數(shù)據(jù)压真;子線程數(shù)據(jù)處理占用cpu高滴肿,導(dǎo)致主線程拿不到時間片佃迄;內(nèi)存增加導(dǎo)致GC頻繁而引起的卡頓;

課外:安卓線程優(yōu)先級知識點鞏固堆缘,如果線程安卓使用到了線程普碎,盡量使用線程優(yōu)先級為background;

系統(tǒng)顯示原理

安卓應(yīng)用把經(jīng)過測量麻车,布局,繪制后的surface緩存數(shù)據(jù)唆鸡,通過SurfaceFlinger把數(shù)據(jù)渲染到顯示屏幕上枣察,通過按住哦的刷新機制來刷新繪制

應(yīng)用層負責(zé)繪制-》系統(tǒng)層負責(zé)渲染-》C/S架構(gòu)-》SurfaceFlinger(c++底層實現(xiàn)+Java API)

應(yīng)用層(Measure燃逻;Layout臂痕;Draw)握童,硬件加速GPU,比CPU耗電澡绩,兼容性問題肥卡,內(nèi)存大

系統(tǒng)層

Profile GPU Rendering 性能分析工具

藍色? 測量繪制時間

紅色? 執(zhí)行時間 Displya List

橙色? cpu處理時間

紫色? 將資源轉(zhuǎn)移到渲染線程時間

TraceView? 函數(shù)調(diào)用的次數(shù)

白屏優(yōu)化:

第一次進入app白屏

? ? ? ? 解決方案一:設(shè)置app主題,windowsContentOverlay值設(shè)置為null步鉴,windowsBackGround為空可以解決,但是點擊手機app啟動圖片會延遲一段時間喊递,所以這并不是完美解決方案

? ? ? ? 解決方案二:設(shè)置一個啟動圖阳似,啟動的時候白屏顯示的就是自己手動放置的啟動圖,比第一種體驗好俏讹。

? ? ? ??

? ??????Application 里面的onCreate執(zhí)行次數(shù)藐石,如果app里面的進程是三個即供,Application的oncreate會執(zhí)行三下,優(yōu)化點:

? ??????做主線程判斷逗嫡,非主線程不做初始化操作驱证。

? ??????MainActivity調(diào)用接口優(yōu)化,盡量不要執(zhí)行網(wǎng)絡(luò)請求抹锄,如果請求接口數(shù)過多,可以考慮存放到一個接口里面获高。

? ??????工作線程要設(shè)置優(yōu)先級念秧,AyncTask使用的是thread_priority_background? 自己創(chuàng)建的線程也要設(shè)置優(yōu)先級

? ??????數(shù)據(jù)緩存,避免從網(wǎng)絡(luò)獲取同樣數(shù)據(jù)的操作摊趾,盡量緩存本地

? ??????業(yè)務(wù)流程是否合理砾层,需要考慮

? ??????廢棄老代碼梢为,不需要用的老代碼,刪掉

如何查找優(yōu)化點:

開發(fā)階段使用BlockCanary或者ANRWatchDog等第三方監(jiān)控铸董,Method Tracing工具systrace minbledroid工具,還有l(wèi)int

避免IO操作蕴忆,序列化反序列化 網(wǎng)絡(luò)操作 布局嵌套

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末套鹅,一起剝皮案震驚了整個濱河市卓鹿,隨后出現(xiàn)的幾起案子留荔,更是在濱河造成了極大的恐慌,老刑警劉巖杰妓,帶你破解...
    沈念sama閱讀 218,204評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件巷挥,死亡現(xiàn)場離奇詭異验靡,居然都是意外死亡雏节,警方通過查閱死者的電腦和手機矾屯,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評論 3 395
  • 文/潘曉璐 我一進店門件蚕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來排作,“玉大人,你說我怎么就攤上這事亚情⊥荆” “怎么了楞件?”我有些...
    開封第一講書人閱讀 164,548評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長罪针。 經(jīng)常有香客問我,道長泪酱,這世上最難降的妖魔是什么还最? 我笑而不...
    開封第一講書人閱讀 58,657評論 1 293
  • 正文 為了忘掉前任斯撮,我火速辦了婚禮勿锅,結(jié)果婚禮上辜梳,老公的妹妹穿的比我還像新娘泳叠。我一直安慰自己,他們只是感情好宗挥,可當(dāng)我...
    茶點故事閱讀 67,689評論 6 392
  • 文/花漫 我一把揭開白布契耿。 她就那樣靜靜地躺著瞒大,像睡著了一般。 火紅的嫁衣襯著肌膚如雪搪桂。 梳的紋絲不亂的頭發(fā)上透敌,一...
    開封第一講書人閱讀 51,554評論 1 305
  • 那天,我揣著相機與錄音踢械,去河邊找鬼酗电。 笑死,一個胖子當(dāng)著我的面吹牛内列,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 40,302評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼栖秕,長吁一口氣:“原來是場噩夢啊……” “哼蜂桶!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起交排,我...
    開封第一講書人閱讀 39,216評論 0 276
  • 序言:老撾萬榮一對情侶失蹤划滋,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后埃篓,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,661評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,851評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片骂铁。...
    茶點故事閱讀 39,977評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡套蒂,死狀恐怖烁挟,靈堂內(nèi)的尸體忽然破棺而出柬采,到底是詐尸還是另有隱情警没,我是刑警寧澤,帶...
    沈念sama閱讀 35,697評論 5 347
  • 正文 年R本政府宣布大州,位于F島的核電站疮茄,受9級特大地震影響力试,放射性物質(zhì)發(fā)生泄漏淳地。R本人自食惡果不足惜伍伤,卻給世界環(huán)境...
    茶點故事閱讀 41,306評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦百侧、人聲如沸佣渴。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽锋八。三九已至路媚,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間裤园,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人尽爆。 一個月前我還...
    沈念sama閱讀 48,138評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像幅狮,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,927評論 2 355

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