Android開發之跟蹤應用更新大小



新增功能:支持APK補丁大小估算工具中的逐個文件更新css

下降APK大小一直是過去一年的熱門話題。有不少緣由能夠解釋:不管您是創建數十億仍是在昂貴且不可靠的網絡上覆蓋功能較弱的設備的用戶,或者您只是嘗試優化您的應用,每一個人均可以享受較小的APK尺寸,更快的下載速度和更短的安裝時間倍。html

與您的應用大小相關的費用有所不一樣:python

  • 您上傳到Google Play的文件大小(原始APK大小)
  • 初始下載大小
  • 設備安裝尺寸
  • 更新下載大小

咱們發佈了不少指南,解釋瞭如何減小初始和設備上的APK大小,包括新的文檔頁面個人I / O談話文章,它們解釋瞭如何優化資源,縮小代碼並定製APK到用戶的交付'使用Multi APK等技術的設備。android

這一切都很棒,但用戶一般會在每一個設備上安裝一次應用程序,而後經過Play商店下載按期更新,這就是優化應用更新大小一樣重要的緣由。git

針對應用更新尺寸進行優化

關於使應用程序更新更小的最好的部分是它自動發生了不少。因爲Android Studio打包APK的方式有所改進,以使後續版本儘量類似,Play商店能夠計算出較小的增量更新。此外,在Play商店中引入新算法(例如最近的逐個文件修補)有助於將應用更新大小平均下降65%。github

要記住的重要一點是不要干擾Android Studio和Play中的機制。算法

若是您使用最新的(至少2.2+)Android Studio / Android Gradle插件來構建您的發佈APK,而且以後不進行修改,那麼您應該很高興。android-studio

不要使用自定義ZIP編碼器設置壓縮APK,也不要使用Zopfli從新壓縮您的APK,不然您將錯過File-by-File更新帶來的巨大節省。服務器

跟蹤APK和更新大小

既然您知道爲何以及如何作正確的事情,是否有一種簡單的方法來跟蹤您的APK大小?您能夠更改應用程序,修復錯誤並引入新功能,在此過程當中添加資產和庫,這是正常的。如何預測下次更新對用戶的影響程度?網絡



咱們以幾種方式表達這些信息。首先,這也是用戶會看到的內容,Play Store 在Android上的應用程序列表頁面上顯示下載大小,這將成爲已安裝應用程序的用戶的更新大小。

APK補丁大小估算器

對於開發人員而言,在發佈以前可以看到該數字會更爲理想,這就是爲何咱們開源了一個名爲APK patch size estimator的工具。

它是一個命令行工具,所以您能夠將其集成到Continuous Integration服務器中並解析輸出以包含在報告中,或經過爲其提供兩個這樣的APK來手動調用它:

python apk_patch_size_estimator.py --old-file old.apk --new-file new.apk
複製代碼

這是輸出的一個例子:

磁盤上的新APK大小:18,271,850字節[17.4MB]
估計新安裝的下載大小:
   全新APKgzip)大小:16,339,603字節[15.6MB]
估計舊APK的更新下載大小,使用BsdiffBsdiff補丁(gzip)大小:2,989,691字節[2.85MB]
估計舊APK的更新下載大小,
使用逐個文件:
   逐個文件修補程序(gzip)大小:1,912,751字節[1.82MB]
複製代碼

APK補丁大小估算器實現了Play商店使用的當前壓縮和增量算法,而且能夠估算新安裝的初始APK下載大小(它與原始APK大小不一樣,由於Play商店可能會應用額外的壓縮)和delta補丁下載大小。咱們最近更新了該工具以支持新的File-by-File更新,所以您也能夠對此進行估算。

爲何估計而不是確切數字?Play商店不斷髮展,咱們常常測試可能爲用戶保存數據的新壓縮方法。咱們的目標是在徹底推廣到生產後,使用任何新方法使APK補丁大小估算器保持最新。

順便提一下,值得一提的是,對於想要了解應用程序的哪些部分在版本之間增加(或縮小)的開發人員,還有一個交互式「比較」工具,做爲Android Studio中APK Analyzer的一部分提供。


在Android Studio 3.0中,咱們更新了此工具,以選擇性地顯示逐個文件的更新大小。

相關文章
相關標籤/搜索