乙個好的sdk應該具備易用性、穩定性、輕量、靈活的特點,而箇推作為國內第三方推送市場的早期進入者,一直致力於為開發者提供高效穩定的推送sdk。
這期文章,我們特地採訪了個推android 資深開發敬瑜,以個推推送sdk為例,來聊聊打造大型sdk的關鍵技術點。
作者 個推android 資深開發 敬瑜
02 sdk 開發最關鍵的點是什麼?
除了穩定性外,以下幾個問題對於打造優質sdk也很重要。
03 sdk 版本適配以及廠商相容情況如何?
個推 sdk 支援 android 端和 ios 端,以下文章均使用 android 端來舉例。
截止目前,android 系統從07年發布第一版至今,經歷了多次迭代,android q為其最新版本。個推android sdk 支援 android 2.3及以上版本,幾乎可以在市面上現存的所有android 版本上執行。
** 2)廠商相容**
乙個成熟的 sdk 勢必要保證在不同的廠商裝置上正常執行,尤其是當sdk 內部涉及到android 四大元件時需要特別注意廠商的相容性,注意其是否會限制固定 action 的廣播使用及限制固定類名 service 的啟動。而如果 sdk 開發涉及到 android framewrok 的引用,某些功能可能會失效。比如andfix 的底層實現依託於 art/dalvik 虛擬機器的架構,但是大部分廠商會對虛擬機器進行定製,修改底層 artmethod 結構,這時,andfix將無法在修改過虛擬機器的裝置上生效。
所以在 sdk 開發過程中我們要盡量避免android framework 的引用。個推在使用android 四大元件的時候,會要求開發者提供自定義 service,其service 只需要繼承個推預設的即可,這樣可以保證 sdk 在不同廠商上均能正常執行。
04 怎麼看待現在市面上的 sdk廣泛支援多混合開發這一現象?
大前端開發是必然的趨勢,現在新推出的產品會優先使用混合開發,保證一套**可以在多個終端上執行。因此,乙個成熟的 sdk 有必要對不同的語言框架進行適配。目前,個推 sdk 不僅支援 android、ios系統,還支援混合開發,如unity3d cocos2dx react-native flutter cordova apicloud等。具體見個推實驗室
05 android sdk 是否會使用開源專案?
不會使用。
有以下幾點考慮:
06 如何適配海外市場環境?
07 sdk 如何降低手機電量、流量的消耗?
為了給使用者更好的使用體驗,我們會盡可能地降低sdk對電量以及流量所造成的消耗。為此,我們不會使用藍芽這類電量消耗較高的工具。此外,我們還會採用多鏈路合併技術來節約流量。
08 如何自主檢測 sdk 的異常?
經過近 10 年的優化與公升級,個推推送 sdk 的異常情況已經控制在乙個非常非常低的水平,但因為 android 市場碎片化非常嚴重,sdk 在如此碎片化的環境下執行難免會出現各種意想不到的突發情況,為此我們專門開發了sdk執行自查系統,類似於精簡版的 bugly。該內部產品與 sdk 相輔相成,可以自主檢測 sdk 的異常情況,並在發現異常後主動上報。其次,在**層面,我們也做了一些防控,避免 sdk 因為異常而導致無法正常使用。另外,我們還成立了技術支援團隊,服務廣大的開發者,定期回訪客戶,幫助解決客戶遇到的問題。
09 開發sdk還有什麼是需要注意的麼?
sdk開發過程中,我們還需要注意安全性。安全性不僅僅代表網路資料互動的安全、本地資料儲存的安全,也涉及到 sdk 的加固、混淆、第三方安全軟體審核。舉例來說,個推 android sdk 提供了四大元件的對接,sdk 內部會特別注意,避免這些元件被反序列化攻擊。為了讓開發者更加放心地使用我們的sdk,我們公司內部建立了嚴格的安全管理機制,來保障sdk的安全性。
10 對 sdk 開發者有何建議?
開發sdk並不難,難的是如何讓自己開發的 sdk 在複雜的環境下穩定執行。這需要我們對 sdk 的架構有乙個比較清晰的認知,並對前文所提到的問題進行認真思考。
百億億級計算機遇與挑戰
百億億級計算機遇與挑戰1 翻譯 田榮黎雷生 王迎瑞 任江勇 王朝尉 伍澤東 靳慶賀 主題摘要 本調查報告是美國先進計算諮詢委員會 ascac advanced scientific computing advisory committee e2級計算專委會在研討會報告和專家討論的基礎上形成的。報告認...
每秒百億億次 E級超算原型系統研製專案浮出水面
隨著第31屆國際超算大會 isc2016 在德國法蘭克福落下帷幕,全球超算top500榜單也迎來新一輪的更新。由我國自主研製的 太湖之光 取代 天河二號 成為世界最快計算機,並將最快計算機的計算速度重新整理到93pflops 每秒9.3億億次 核心處理器全國產化的 太湖之光 著實讓國人為之一振。其接...
打造一款億級應用你會碰到哪些問題?
李小年 2015 04 22 11 30 51 科技 8 雲移動應用 餓了麼原來有乙個機房,差不多有兩三百臺機器。但是每個月的業務都在漲,所以運維部門很頭疼,每個月都要採購裝置 上架裝置。機房滿了再部署乙個機房,整個週期又很強,最後不得已把服務部署在雲機房。每年應用數都在不斷地增長。我前兩天向我們開...