1、工作過程
Lottie:
設計師使用 AE 設計好動畫, 通過 bodymovin 插件將 AE 工程文件導出為 json 文件,在客戶端(使用 Lottie SDK)解析,最后通過各平臺原生渲染方案進行渲染,其中在 Android 平臺上通過 Canvas 進行繪制,在 iOS 上通過 CALayer 進行繪制,在 web 端支持 SVG、Canvas 和 HTML 繪制。
PAG:
設計師使用 AE 設計好動畫以后,通過 PAGExporter 插件讀取 AE 工程文件,根據(jù)具體需求選擇矢量導出、BMP 預合成、混合導出方式中的一種導出一個 PAG 二進制文件,客戶端對該 PAG 二進制文件進行解碼、渲染,各端共享一套 C++實現(xiàn),平臺端只做接口封裝。(導出插件:PAGExporter;桌面預覽工具:PAGViewer;客戶端渲染 SDK:PAG SDK)
2、文件格式方面
Lottie:導出素材格式是 json 文本,可讀性高,但是承載 AE 特性能力差,文件體積大,解碼速度慢。
PAG:采用二進制的編碼方法,配套自研編解碼器,動態(tài)比特位壓縮,冗余信息極少,文件體積最小,解碼速度最快,且支持圖片和音頻信息編碼。
3、平臺端支持方面
Lottie:支持 Android、iOS、web、mac OS,SVGA 支持 Android、iOS 和 web 端
PAG:支持 Android、iOS、web、mac OS、windows、Linux等,幾乎涵蓋到所有平臺。
4、矢量動畫渲染性能
PAG 優(yōu)化 Lottie 和 SVGA,內(nèi)存占用方面會偏大一些。
5、矢量動畫文件對比
PAG 采用了動態(tài)比特位的壓縮技術,動畫文件可以做到足夠小。相同的 AE 工程,PAG 導出的動畫文件大小是 Lottie 動畫文件的 51%左右