2017 年,短視頻成爲了內容創業的新風口,各類短視頻 App 如雨後春筍般前後上線。隨着互聯網內容消費升級,視頻愈來愈像文字、圖片同樣,成爲每個 App 不可或缺的一部分。
算法
App 的包體大小,對獲取用戶有着相當重要的做用,特別是在線下的推廣活動中,包體太大,下載費時費流量,不少用戶會失去耐心,從而直接致使 App 的推廣效果大打折扣。函數
而 App 的包體大小,除了自身的代碼量,也會受到第三方庫的包體影響,所以,短視頻 SDK 包體越小,對於減少 App 包體大小越有幫助,開發者纔會越喜歡。性能
那麼,如何作到儘量的減少 SDK 的包體呢 ?ui
使用第三方的 SDK,最怕的是像個黑盒,過於封閉,想配置的參數沒法配置,須要的狀態也沒有回調,直接致使產品經理給出的 UI 和交互方案沒法實現。所以,SDK 的開放性,愈來愈成爲開發者選型的關鍵因素。設計
那麼,SDK 如何作到儘量的開放呢 ?日誌
另外,還須要儘量地跟 SDK 上下游廠商創建良好的合做關係,好比 美顏、濾鏡、人臉貼紙特效、大眼瘦臉等供應商,讓客戶能夠隨時快速接入和替換任意一家廠商,從而加快產品迭代和上線的速度。cdn
雖然手機的性能愈來愈強大,但 CPU 使用率居高不下、發熱厲害、內存消耗大、運行速度慢的 App 很是影響用戶體驗,所以,不管是 App 自己,而是第三方 SDK,性能永遠是值得關注的重點。視頻
SDK 如何作到更好的性能呢 ?其實就一條:充分地利用 GPU,盡一切可能減小 CPU 消耗,對於短視頻 SDK 的開發,具體有哪些值得關注的點呢 ?blog
優秀的 SDK,必定要儘量避免把 UI 的界面和邏輯包含進去,否則 SDK 的使用者,很難知足產品經理的 UI 和交互設計要求,作出差別化的效果。接口
那麼,SDK 如何作到與 UI 邏輯完全地分離呢 ?
須要充分分解每個短視頻的功能需求,搞清楚每個需求的實現原理,哪部分是 UI 的,哪部分是核心的,前者寫到 Demo 上,然後者則寫入 SDK 裏面。
就拿短視頻剪輯這個功能點來舉個例子,下圖所示是短視頻的一個熱點功能,對短視頻截取中間某一段片斷。
仔細思考這個功能點,其實關鍵點在於:
屬於 UI 的部分:
屬於 SDK 的部分:
這樣分離好了以後,再去編寫 SDK 的接口和 UI 的 Demo 代碼,就很是清晰了。
優秀的 App 和 SDK,首先一點就是要穩定可靠,不會動不動就奔潰。具有良好的可支持性的產品,每每更容易受到青睞。
舉個例子,就像家裏買的某些品牌的洗衣機或者空調,在出故障的時候,液晶屏幕上會打出一些錯誤碼,當你給售後打電話的時候,售後每每可以根據描述的信息以及錯誤代碼很快地定位到問題或者給出臨時的解決方案。
關鍵在於一套健全而規範的日誌系統,能夠有效提升技術支持和開發者排查問題的速度和效率,那麼,設計這樣一套完善的日誌系統,有哪些關鍵點呢 ?
支持配置 SDK 的輸出日誌級別,如:ERROR, WARN, INFO, DEBUG, VERBOSE
SDK 初始化的時候輸出關鍵的排障信息,如:應用包名,SDK 版本,設備機型,系統 OS 版本,關鍵配置等
規範的日誌格式,如:
健全的問題排查手冊/文檔,讓每個錯誤碼都有文檔可依,開發者能夠完成簡單初步的問題分析
總而言之,設計一款優秀而且口碑好的短視頻 SDK,並非簡簡單單堆積一些功能就夠了,看上去功能豐富和實際開發過程當中是否好用還有很大的差距。