成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

Android性能之冷啟動優(yōu)化的示例分析

這篇文章主要為大家展示了“Android性能之冷啟動優(yōu)化的示例分析”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“Android性能之冷啟動優(yōu)化的示例分析”這篇文章吧。

網(wǎng)站制作、網(wǎng)站設計過程中,需要針對客戶的行業(yè)特點、產(chǎn)品特性、目標受眾和市場情況進行定位分析,以確定網(wǎng)站的風格、色彩、版式、交互等方面的設計方向。創(chuàng)新互聯(lián)建站還需要根據(jù)客戶的需求進行功能模塊的開發(fā)和設計,包括內(nèi)容管理、前臺展示、用戶權(quán)限管理、數(shù)據(jù)統(tǒng)計和安全保護等功能。

1.前言

APP冷啟動比較慢,點擊桌面圖片需要用戶等待很久,體驗較差。

2.APP啟動方式

冷啟動(Cold start)

場景:冷啟動是指APP在手機啟動后第一次運行,或者APP進程被kill掉后在再次啟動。

可見冷啟動的必要條件是該APP進程不存在,這就意味著系統(tǒng)需要創(chuàng)建進程,APP需要初始化。在這三種啟動方式中,冷啟動耗時最長,對于冷啟動的優(yōu)化也是最具挑戰(zhàn)的。因此本文重點談論的是對冷啟動相關的優(yōu)化。

生命周期:Process.start->Application創(chuàng)建->attachBaseContext->onCreate->onStart->onResume->Activity生命周期
啟動速度:在幾種啟動類型中最慢,也是我們優(yōu)化啟動速度最大的攔路虎

溫啟動(Warm start)

場景:App進程存在,當時Activity可能因為內(nèi)存不足被回收。這時候啟動App不需要重新創(chuàng)建進程,但是Activity的onCrate還是需要重新執(zhí)行的。場景類似打開淘寶逛了一圈然后切到微信去聊天去了,過了半小時再次回到淘寶。這時候淘寶的進程存在,但是Activity可能被回收,這時候只需要重新加載Activity即可。

生命周期:onCreate->onStart->onResume->Activity生命周期

啟動速度:較快

熱啟動(Hot start)

場景:App進程存在,并且Activity對象仍然存在內(nèi)存中沒有被回收??梢灾貜捅苊鈱ο蟪跏蓟?,布局解析繪制。

場景就類似你打開微信聊了一會天這時候出去看了下日歷 在打開微信 微信這時候啟動就屬于熱啟動。

生命周期:onResume->Activity生命周期

啟動速度:快

3.如何統(tǒng)計Android App啟動時間(使用命令行)

adb shell am start -W [packageName]/[packageName.***Activity]

例如:

adb shell am start -W com.dateyou.test/com.datayou.test.ui.home.PageLoadingActivity

當然為了結(jié)果更加準確,可以執(zhí)行多次取平均值。

adb shell am start -S -R 10 -W com.dateyou.test/com.datayou.test.ui.home.PageLoadingActivity

其中-S表示每次啟動前先強行停止,-R表示重復測試次數(shù)。每一次的輸出如下所示信息。

Android性能之冷啟動優(yōu)化的示例分析

其中TotalTime代表當前Activity啟動時間

4.冷啟動流程

冷啟動指的是應用程序從進程在系統(tǒng)不存在,到系統(tǒng)創(chuàng)建應用運行進程空間的過程。冷啟動通常會發(fā)生在一下兩種情況:

1)設備啟動以來首次啟動應用程序

2)系統(tǒng)殺死應用程序之后再次啟動應用程序

在冷啟動的最開始,系統(tǒng)需要負責做三件事:

1)加載以及啟動app

2)app啟動之后立刻顯示一個空白的預覽窗口

3)創(chuàng)建app進程

一旦系統(tǒng)完成創(chuàng)建app進程后,app進程將要接著負責完成下面的工作:

1)創(chuàng)建Application對象

2)創(chuàng)建并且啟動主線程ActivityThread

3)創(chuàng)建啟動第一個Activity

4)Inflating views

5)布局屏幕

6)執(zhí)行第一次繪制

一旦app進程完完成了第一次繪制工作,系統(tǒng)進程就會用main activity替換前面顯示的預覽窗口,這個時候,用戶就可以正式開始與app進行交互了。

從冷啟動的流程看,我們無法干預app進程創(chuàng)建等系統(tǒng)操作,我們能夠干預的有:

1)預覽窗口

2)Application生命周期回調(diào)

3)Activity生命周期回調(diào)

5.冷啟動優(yōu)化

1)預覽窗口

為什么啟動時會出現(xiàn)短暫黑屏或白屏的現(xiàn)象?當用戶點擊你的app那一刻到系統(tǒng)調(diào)用Activity.onCreate()之間的這個時間段內(nèi),WindowManager會先加載app主題樣式中的windowBackground做為app的預覽元素,然后再真正去加載activity的layout布局。
很顯然,如果你的application或activity啟動的過程太慢,導致系統(tǒng)的BackgroundWindow沒有及時被替換,就會出現(xiàn)啟動時白屏或黑屏的情況(取決于你的主題是Dark還是Light)。

解決辦法:在style中自定義一個主題,在其中放一張背景圖片或者廣告頁,讓用戶先看默認圖。

2)Application OnCrate()優(yōu)化

1.耗時操作子線程中進行

2.非必要初始化懶加載

3)Activity onCreate()優(yōu)化

1.耗時操作子線程中進行

2.布局層次減少

以上是“Android性能之冷啟動優(yōu)化的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

網(wǎng)頁名稱:Android性能之冷啟動優(yōu)化的示例分析
文章地址:http://jinyejixie.com/article12/gdjhdc.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃品牌網(wǎng)站建設、網(wǎng)站建設、外貿(mào)建站App開發(fā)、網(wǎng)站收錄

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)
高陵县| 临城县| 宁乡县| 焉耆| 韶关市| 重庆市| 贞丰县| 沙坪坝区| 临潭县| 砚山县| 南安市| 永泰县| 罗城| 定陶县| 乌拉特前旗| 灵璧县| 山阳县| 乐亭县| 绥芬河市| 称多县| 玉屏| 双江| 华安县| 睢宁县| 冷水江市| 武清区| 油尖旺区| 珲春市| 鱼台县| 诸城市| 绥棱县| 靖远县| 都江堰市| 新邵县| 阳谷县| 漳平市| 松原市| 仪陇县| 永修县| 泾阳县| 桓台县|