性能和穩(wěn)定性與在Google Play上獲得積極評價有直接關(guān)系。修復應(yīng)用中存在的問題和防止應(yīng)用出現(xiàn)不良行為,可以提升用戶體驗、提高評分并增加保留應(yīng)用的安裝人數(shù)。此外,縮減應(yīng)用的大小可以提高安裝率并減少卸載次數(shù)。
這樣做的好處
Android Vitals可顯示有關(guān)穩(wěn)定性、耗電量、卡頓、啟動時間和權(quán)限遭拒情況的應(yīng)用性能指標。通過跟蹤這些指標,您可以找出并修正會直接影響用戶體驗的不良應(yīng)用行為。您可以根據(jù)Android Vitals核心指標的突然變化來了解有哪些異常情況需要加以調(diào)查,并借助各種基準數(shù)據(jù)將您的應(yīng)用與同類或其他應(yīng)用進行比較。指標值較高的應(yīng)用更容易獲得推廣,其在Google Play商店搜索結(jié)果中的排名也會升高。此類應(yīng)用也更可能被列入Google Play的“新上線+最近更新”和“編輯精選”合集,獲得Google Play年度獎提名的可能性也更大。
關(guān)鍵指標
穩(wěn)定性|ANR發(fā)生率:在活躍日遇到至少1次應(yīng)用無響應(yīng)(ANR)事件的用戶所占的百分比。ANR通常是由于界面線程和后臺進程(廣播接收器)出現(xiàn)死鎖情況或速度緩慢所導致。
穩(wěn)定性|崩潰率:在活躍日遇到至少1次崩潰問題的用戶所占的百分比。崩潰問題通常是由于未處理的異常情況、資源耗盡、失敗的斷言或其他非預期的狀態(tài)所導致。
呈現(xiàn)時間|16ms(60fps):存在以下情況的活躍日所占的百分比-超過50%的幀呈現(xiàn)時間大于16毫秒。用戶與應(yīng)用的互動速度應(yīng)該保持在60幀/秒,且不會出現(xiàn)幀丟失或幀延遲的情況。
呈現(xiàn)時間|700ms:一天內(nèi)遇到1000幀中有1個以上幀的呈現(xiàn)時間超過700毫秒的用戶所占的百分比。如上所述,呈現(xiàn)時間較長會使應(yīng)用運行不夠順暢,導致用戶體驗變差。如果呈現(xiàn)幀需要700毫秒或更長時間,對于用戶來說,您的應(yīng)用很有可能看起來像是停滯不動了。
電池|部分喚醒鎖定:在指定日期遇到至少1次長達1小時以上的喚醒鎖定的用戶所占的百分比??ㄔ诓糠謫拘焰i定狀態(tài)時,空閑設(shè)備無法進入休眠狀態(tài)及節(jié)電模式。
電池|喚醒次數(shù):充滿電后,設(shè)備每小時被喚醒60次以上的用戶所占的百分比。因鬧鐘在應(yīng)用生命周期之外按時執(zhí)行的操作而頻繁喚醒設(shè)備,會阻止空閑設(shè)備進入休眠狀態(tài)。
啟動時間:用戶冷啟動或熱啟動時間過長的會話所占的百分比。啟動緩慢可能是由一系列問題導致的,但通常意味著在初始化應(yīng)用時執(zhí)行了繁重的工作負載或復雜的邏輯。
權(quán)限遭拒:用戶拒絕權(quán)限請求或選擇不再詢問的權(quán)限申請日所占的百分比。權(quán)限遭拒可能表明用戶不清楚請求權(quán)限的原因或認為該請求不必要或不合理。
應(yīng)用大小:跟蹤您應(yīng)用的下載大小和安裝到設(shè)備上的大小,然后將這些指標與同類應(yīng)用進行比較。另外,請參閱可用存儲空間低的設(shè)備的活躍用戶和卸載量指標??筛鶕?jù)對您的應(yīng)用版本所做的分析,了解有關(guān)如何縮減應(yīng)用大小的優(yōu)化建議。
最佳做法
考量不良行為并予以根除:在開發(fā)應(yīng)用的過程中,考量應(yīng)用在不同環(huán)境中的行為方式。例如,如果您在功能完善的高端設(shè)備上測試應(yīng)用,則應(yīng)考量應(yīng)用在電源、內(nèi)存、帶寬以及CPU/GPU性能方面都很有限的低端設(shè)備上的會如何表現(xiàn)。在發(fā)布每個版本之前,請使用發(fā)布前測試報告在多種設(shè)備上測試您的應(yīng)用。
在發(fā)布新的應(yīng)用版本后查看Android Vitals:在您發(fā)布應(yīng)用后,Android Vitals會針對應(yīng)用在實際設(shè)備上的運行狀況提供性能指標,以助您找出在特定設(shè)備和Android版本中出現(xiàn)的會影響用戶體驗的問題和不良行為。
找出存在問題的設(shè)備:應(yīng)用可能只在某個設(shè)備或某些設(shè)備上出現(xiàn)不良行為。根據(jù)對用戶體驗造成影響的嚴重程度以及受影響的設(shè)備和用戶數(shù)量,您可以在問題得到修正之前,先選擇更新應(yīng)用的設(shè)備定位,將這些設(shè)備排除在外。
找出存在問題的Android版本:應(yīng)用可能只在特定的Android版本上出現(xiàn)不良行為。對于用戶數(shù)量較少的Android的較低版本,請更新您的應(yīng)用以消除不良行為,或者在應(yīng)用的清單中將<uses-sdk>元素的android:minSdkVersion屬性更新至應(yīng)用不會出現(xiàn)任何不良行為的API級別。對于較新的Android版本,請一律通過更新應(yīng)用來修正不良行為,而不是通過設(shè)置<uses-sdk>元素的android:maxSdkVersion屬性將較新的Android版本用戶排除在外。
使用崩潰報告工具找出并跟蹤崩潰和ANR情況:使用崩潰報告工具(如Firebase崩潰報告或Crashlytics)以及Android Studio調(diào)試程序,盡可能找出并跟蹤導致崩潰和ANR的各種情況。
使用JobScheduling API避免喚醒鎖定和喚醒:使用JobScheduling API(如JobScheduler)靈活地安排后臺進程和任務(wù)。這樣一來,平臺能更好地管理空閑狀態(tài),從而延長電池續(xù)航時間。
使用FrameMetrics API找出呈現(xiàn)速度緩慢的幀:使用FrameMetrics以很高的精細度衡量應(yīng)用在正式版設(shè)備中每次互動的幀呈現(xiàn)時間。這樣您無需依賴通過USB連接的測試設(shè)備,即可找出在正式版設(shè)備上導致卡頓的特定互動或事件。
遵循權(quán)限請求的最佳做法:在請求權(quán)限之前向用戶提供說明,并確保用戶可在授予權(quán)限后立即獲得好處。幫助用戶撤消拒絕權(quán)限的操作,并確保用戶啟用正確設(shè)置以便您的應(yīng)用能夠運行。
使用發(fā)布前測試報告在真實設(shè)備上測試您的應(yīng)用,從而在發(fā)布更新之前找出并解決問題。
改用Android App Bundle,更高效地開發(fā)和發(fā)布應(yīng)用,無需重構(gòu)代碼即可縮減應(yīng)用的大小。