無論锤子還是茄子手機的不時冒出,Android係統的手機市場佔有率目前來說還是最大的,因而基於Android開發的App數量也是很庞大的。那麼,如何能開發出更高性能的AndroidApp?置信是软件開發公司以及廣阔程序員們頭疼的一大難題。今天,就給大家提供幾個進步AndroidApp性能的技巧。
高效天時用線程1.在後台取消一些線程中的動作
我們晓得App運轉過程中一切的操作都默許在主線程(UI線程)中停止的,這樣App的響應速度就會遭到影響。會招致程序墮入卡頓、死掉以至會發作係統錯誤。
爲了加快響應速度,需求把费時的操作(比方網络懇求、數據庫操作或者復雜的計算)從主線程挪動到一個單獨的線程中。最高效的方式就是在類這一級完成這項操作,能夠運用AsyncTask或者IntentService來創立後台操作。假如選择運用IntentService,它會在需求的時分啟動起來,然後經過一個工作線程來處置懇求(Intent)。
運用IntentService時需求留意以下幾點限製:
這個類不要給UI傳送信息,假如要向用戶展現處置結果信息請用Activity;
每次只能處置一個懇求;
每一個處置懇求過程都不能中缀;
2.堅持響應不發作ANR
從UI線程中移除费時操作這個方式還能夠避免用戶操作呈現係統不響應(ANR)對話框。需求做的就是繼承AsyncTask來創立一個後台工作線程,並完成doInBackground()辦法。
還有一種方式就是本人創立一個Thread類或者HandlerThread類。需求留意這樣也會使App變慢,由於默許的線程優先級和主線程的優先級是一樣的,除非妳明白設定線程的優先級。
3.在線程中初始化查询操作
當查询操作正在後台處置時,展現數據也不是即時的,但是妳能夠運用CursorLoader對象來加快速度,這個操作能夠使Activity和用戶之間的互動不受影響。
運用這個對象後,妳的App會爲ContentProvider初始化一個獨立的後台線程停止查询,當查询完畢後就會給調用查询的Activity返回結果。
4.其它需求留意的方面
運用StrictMode來檢查UI線程中可能潜在的费時操作;
運用一些特殊的工具如Safe.ijiami、Systrace或者Traceview來尋觅在妳的應用中的瓶頸;
用進度條向用戶展現操作進度;
假如初始化操作很费時,請展現一個歡送界面。
预览时标签不可点收录于话题#个上一篇下一篇