發(fā)布時間:2021-02-26 19:35:14
作者:微紅科技
閱讀次數(shù):6071
現(xiàn)在,App日益重視用戶的交互體驗,了解性能優(yōu)化的方式則可以有效提高用戶體驗。閱讀和實踐下面的性能優(yōu)化技巧,可以幫你改善應用的流暢度、渲染時間和其他方面的性能表現(xiàn)。
對App進行性能優(yōu)化是一份冗雜沉重的工作,這不僅是因為構建一個App需要前后端協(xié)作,而且需要多方面的技術棧:數(shù)據(jù)庫、后端、前端,需要運行在多種平臺:iOS,安卓,Chrome,F(xiàn)irefox,Edge,這太復雜了!不過,還是有一些歷經(jīng)實踐的通用方式可以用來優(yōu)化App的性能。
移動應用市場用戶爭奪戰(zhàn)日益激烈,原來做App靠的是拼想法、拼創(chuàng)意、拼是否抓住用戶痛點;現(xiàn)在精細化用戶體驗成為了一個App能否留存用戶的關鍵問題,一旦用戶覺得體驗不暢,馬上就有競品App后補,如何開發(fā)高性能的移動應用,已成為開發(fā)者最為關心的問題之一,對此,馬海祥特意總結了以下提升App開發(fā)性能的技巧:
1、規(guī)劃好應用功能,做好應用架構評估
用戶體驗開始于App開發(fā)初始規(guī)劃階段,當你夢想開發(fā)一個App改變世界之前,先想好App主要解決用戶的哪些真實需求,提煉出App的核心功能,一個App并不是功能越豐富越好,核心功能才能為用戶帶來不可替代的價值。
想清楚核心功能,才能做好應用架構評估,應用程序性能不佳可能是因為可擴展性限制、不匹配的技術選擇、低效的網(wǎng)絡配置以及UI設計不符合移動端使用習慣等因素,清晰完整的App架構規(guī)劃有利于構建用戶所需的系統(tǒng)功能構建(具體可查看馬海祥博客《詳解APP軟件開發(fā)過程中的解構和重構》的相關介紹)。
2、良好的編程習慣
良好的編程習慣不僅可以使程序代碼易于讀懂和修改,還可以使程序結構合理、清晰。
開發(fā)人員可以從程序結構模塊化、命名規(guī)則清晰易懂、注釋方法簡潔明了,文本格式易讀等方面開始養(yǎng)成良好習慣,讓應用開發(fā)事半功倍,提高程序的執(zhí)行效率。
3、改善程序啟動和響應的時間
為了加快App響應速度,我們可以在UI線程上創(chuàng)建足夠的對象,以便完善公共API功能。
然后將功夫用到后臺線程上,將費時的操作從主線移動到一個單獨線程中,緩存從磁盤存儲打開和閱讀,客戶端證書在后臺加載。
Cookies反序列化和解碼在后臺,通過這些改變,UI將更快地出現(xiàn)在屏幕上。
4、使用最新版本的軟件開發(fā)SDK、API
隨著Android、ios平臺的不斷發(fā)展,平臺提供的功能也在不斷更新,一些功能可能被新功能完全替代。
核心API得到修正版(bug fix)和性能改進,幫助開發(fā)者編寫出運行更穩(wěn)定、響應更迅速的應用程序。
5、使用SuperWebView,讓App支持動態(tài)更新
已經(jīng)上線的App在需要更新新功能時,可以使用APICloud平臺的SuperWebView功能,基于SuperWebView開發(fā)的功能支持動態(tài)更新,可以繞過應用商店的審核,用戶無需重新下載App,就能讓新功能悄無聲息的更新到用戶手機上,讓原生App的新功能開發(fā)變得更高效。
6、使用Android性能調(diào)優(yōu)利器StrictMode
StrictMode意思為嚴格模式,是用來檢測程序中違例情況的開發(fā)者工具,最常用的場景就是檢測主線程中本地磁盤和網(wǎng)絡讀寫等耗時的操作。
使用嚴格模式,系統(tǒng)檢測出主線程違例的情況會做出相應的反應,如日志打印,彈出對話框亦或者崩潰等。換言之,嚴格模式會將應用的違例細節(jié)暴露給開發(fā)者方便優(yōu)化與改善。
7、使用Hierarchy Viewer工具
Hierarchy Viewer可以幫助調(diào)試應用布局,它會讓你選擇設備或者模擬器上正在運行的進程,然后顯示其Layout的樹型結構。
每個塊上的交通燈分別代表了它在測量、布置和繪畫時的性能,幫你找出瓶頸部分。
8、優(yōu)化應用布局
簡單的屏幕可以讓應用使用輕松流暢,使用Lint工具可以查看View層級哪些地方可以優(yōu)化。
它可以幫助你找到不必要的控件嵌套以及縮減布局資源的其他方法,以盡量減少資源的使用。
它讓你可以了解哪些布局控件可能是多余的或不必要的。
控件越少、布局層次越淺,性能就越好(具體可查看馬海祥博客《APP用戶體驗開發(fā)的10大原則》的相關介紹)。
9、優(yōu)化應用的耗電量
?如果讓用戶發(fā)現(xiàn)你的應用很耗電,那就不怪用戶馬上卸載應用了,應用之所以耗電,是因為使用了手機的某種資源,根據(jù)谷歌官方統(tǒng)計,典型的耗電場景有調(diào)用GPS定位、網(wǎng)絡傳輸、屏幕亮度、CPU頻率、內(nèi)存調(diào)度頻度、wake_locker時間和次數(shù),如果你的應用能優(yōu)化以上幾點,就能降低耗電風險。
10、規(guī)劃應用的離線體驗
當用戶無法連接WiFi或其它網(wǎng)絡信號時,用戶使用App時仍然能夠有極佳的可用性,那一定能給你的App加不少印象分。
在規(guī)劃App應用時,應該將這一設計方法考慮其中,提前規(guī)劃好App在離線狀態(tài)下的運營模式。
11、按需加載
按需加載資源或者說懶加載資源(特別是圖片)對優(yōu)化Web App的性能有很大幫助,對于圖片較多的頁面,使用懶加載通常有以下三點好處:
(1)、減少并發(fā)請求,緩解服務器壓力,提高加載速度。
(2)、減少瀏覽器的內(nèi)存占用率。
(3)、降低服務器的負載。
圖片或其他資源懶加載的方案一般是,在程序啟動時加載首屏資源,在頁面滾動時持續(xù)加載即將進入視口的資源,由于這種方法往往需要與頁面結構和開發(fā)方式相協(xié)調(diào),所以常常使用現(xiàn)有的插件和擴展來實現(xiàn)惰性加載(具體可查看馬海祥博客《App界面常用的數(shù)據(jù)加載設計和技術》的相關介紹)。
一個典型的按需加載實例就是谷歌的圖片搜索工具,點擊這一鏈接并滾動頁面,打開開發(fā)者工具注意資源的加載時間。
12、緩存
緩存常用來存儲頻繁調(diào)用的數(shù)據(jù),當緩存后的數(shù)據(jù)再次被調(diào)用時,就可以由緩存直接提供數(shù)據(jù),提高數(shù)據(jù)的響應速度。
通常來說,一個App都是由多個組件構成的,在這些組件中都能發(fā)現(xiàn)緩存的影子,比如動態(tài)內(nèi)容服務器和客戶端之間使用的緩存,通過減少通用請求降低服務器負載,可以改善頁面的響應時間;比如代碼中的緩存處理,可以優(yōu)化某些通用的腳本訪問模式。此外,還有數(shù)據(jù)庫緩存和長進程緩存等。
簡而言之,緩存是改善應用程序響應速度和降低CPU負載的有效方式,在一個開發(fā)體系中,最難的不是如何使用緩存,而是找出哪里適合使用緩存(具體可查看馬海祥博客《交互設計的三大隱形機制:加載、刷新和緩存》的相關介紹)。
對于這一問題,我還是建議使用事件分析工具(profiler):找出性能瓶頸,檢測緩存是否成功,測試緩存是否容易失效……這些問題都需要歷經(jīng)實踐才能得出有效的結論。
13、性能剖析
性能剖析是應用程序進行性能優(yōu)化的重要步驟,在馬海祥看來,盲目地優(yōu)化應用程序往往會降低生產(chǎn)力、產(chǎn)生新的痛點且難以維護,性能剖析的作用就是要找出應用程序中潛在的風險區(qū)域。
對Web應用程序來說,響應速度是一個非常重要的衡量指標,所以開發(fā)者都會盡可能地去提高資源的加載速度和頁面的渲染速度。
此外,鄭州網(wǎng)站建設如果合理分析內(nèi)存的使用率,也將有效提高應用程序的性能,如果你的頁面中有大量的視覺元素(比如動態(tài)的表格)或者大量的交互元素(比如游戲),那么對內(nèi)存使用的剖析就可以有效減少卡頓,提高幀速。
找出性能的核心痛點,才能讓你更加高效地進行性能優(yōu)化。
相對而言,對后端進行性能剖析稍顯困難,一般而言,從最耗時的請求入手查找相應的服務器是個不錯的方法,這里并沒有推薦任何有關后端的性能剖析工具,這是因為具體的剖析工具要視具體的后端技術棧而定(具體可查看馬海祥博客《移動設備Web App開發(fā)與調(diào)試的相關知識要點》的相關介紹)。
14、負載均衡
簡而言之,負載均衡類似于一種輪詢方案,基于反向代理服務器nginx或者成熟的分發(fā)網(wǎng)絡,比如Cloudflare和Amazon CloudFront構建。
為了實現(xiàn)負載均衡,需要將動態(tài)內(nèi)容和靜態(tài)內(nèi)容進行分離,便于執(zhí)行并行連接。換言之,串行訪問削弱了負載均衡檢索最佳路徑并進行分發(fā)的能力。此外,并行加載資源還可以加快應用程序的啟動速度。
負載均衡也可以構建的很精細,如果數(shù)據(jù)模型不能夠很好地與最終的一致性算法或緩存保持良好的匹配關系,那么必將導致諸多問題,幸運的是,大多數(shù)的應用程序所請求的數(shù)據(jù)都是一個縮減集,該縮減集本身具有較高級別的一致性,鄭州做網(wǎng)站公司如果你的應用程序還沒有具備這樣的能力,那么你需要考慮重構它了。
15、算法
在大多數(shù)情況下,鄭州網(wǎng)站制作選擇更高效的算法可以比局部優(yōu)化獲得更佳的收益。
從某種意義上說,對CPU和內(nèi)存進行性能剖析有助于幫助開發(fā)者找出應用程序中較大的性能瓶頸,如果這些瓶頸并不是由代碼的錯誤引起的,那很有可能就是算法的問題。
上一篇: 談SEO優(yōu)化理念之主題模型!
下一篇: 談SEO優(yōu)化理念之主題模型!
Copyright ? 微紅科技 All Rights Reserved
黔公網(wǎng)安備
黔ICP備17001430號-1
【微紅科技官方微博】
版權所有:微紅科技
百度統(tǒng)計