個推消息推送SDK技術沉澱(2):提升推送SDK穩定性和兼容性的方法

一個好的推送SDK應該具備穩定、易用、安全、小巧靈活等特點。個推作爲國內第三方推送市場的早期進入者,一直致力於爲開發者提供高效穩定的推送SDK。經過多年的打磨和創新,個推沉澱了豐厚的技術經驗。這期文章將從“穩”字着手,與大家分享如何提升SDK的穩定性和兼容性。

1 穩定性

在實際應用中,開發者可能會遇到ANR、OOM、Crash、內存泄露、閃退等棘手的問題,我們需要通過持續的迭代和優化來將錯誤最小化。提升消息推送SDK穩定性的方法如下:

(1)做好代碼管理除了藉助SVN、GIT等工具做好代碼託管外,開發者還需遵循一定的代碼規範,藉助類似gerrit等工具進行代碼review,使用verify流程。在保證機器找不到問題的前提下,再用人眼去辨別是否符合業務邏輯。

(2)自動化測試:自動化測試可以大幅提升迴歸測試的效率,非常適合敏捷的開發過程。此外,自動化測試可以替代大量的手工機械重複性操作,測試工程師可以把更多的時間花在更全面的用例設計和新功能測試上。

(3)運用代碼模塊化小技巧代碼模塊化能以最少的模塊、零部件,更快速地滿足更多的個性化需求。異常處理可以提高系統的容錯性,讓程序更加穩定。代碼檢測能及時發現程序中的缺陷和錯誤,比如檢測內存是否泄露,是否有安全漏洞等,保證代碼質量。

(4)線上灰度:實際場景中,我們很難去覆蓋所有的環境,例如機型、網絡等,需要通過線上用戶的反饋去驗證代碼的健壯性。因此在產品大規模推向用戶之前,我們需要進行少量的真實用戶測試,即灰度上線來幫助減少風險。

(5)日誌系統:系統有問題是必然的,在儘量保持系統穩定的前提下,要考慮容錯性。當問題發生時,需要第一時間以最快的速度排查,因此需要有一套完整的日誌系統。此外,平時我們也可以通過日誌系統的撥測檢測系統的健壯性,可以在用戶反饋之前及時發現並解決問題。

 

2  兼容性

好的消息推送SDK

兼容性也是保證SDK穩定性的一個重要條件,提升SDK的兼容性,可以考慮以下幾個方面:   

(1)接口兼容每次版本更新後,對外接口要儘可能保持不變。對於改動較大的接口,可以使用 @Deprecated 註解對老接口進行標記,並且做新接口調用的兼容,而不是直接刪除老接口。

(2)主鍵兼容:當主鍵發生變更(例如去掉service、provider)時,部分老的安卓系統會有組件緩存,運行時直接告知“類”找不到。建議在AndroidManifest中保留聲明,且對應“類”進行代碼空實現,以減少發生crash的概率。

(3)安卓系統兼容:可使用Build.VERSION.SDK_INT做API區分。

(4)真機兼容:可以藉助雲測等平臺進行兼容性測試。

 

前文回顧:個推消息推送SDK技術沉澱(1):如何使SDK包體體積變小?如何實現省電省流量?

 

作者:個推高級研發總監 公瑾

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章