降低數十億使用者的資料成本

部分國家/地區的行動資費方案費用可能會超過一般使用者的每月收入的 10%。也就是說,盡可能縮減應用程式的下載大小,讓使用者能控制應用程式使用資料的方式,能為許多使用者帶來巨大的實質好處。此外,將下載大小縮減也有助於節省內部儲存空間的空間,在部分裝置上會佔用少量資源。

這裡提供幾項策略,協助您最佳化透過網路和內部儲存空間應用程式使用的資料量。

縮減應用程式大小

針對網路資料和內部儲存空間,縮減應用程式大小是幫助使用者減少數據用量的基本方法之一。本節說明幾種縮減應用程式大小的方法。

縮減 APK 圖形資產大小

  • 圖像資源通常是在 APK 大小中影響最大的因素。最佳化這些設定可以減少下載次數,讓使用者安裝速度更快。
  • 圖示等圖形資產應使用可擴充向量圖形 (SVG) 格式。與點陣圖圖形相比,SVG 圖片的尺寸較小,而且可在執行階段以任何解析度算繪。Android 支援資料庫提供回溯相容的實作方式,用於 Android 2.1 (API 級別 7) 的向量資源。如要開始使用向量,請參閱 這篇 Medium 文章
  • 如果是相片等非向量圖片,請使用 WebP 縮短圖片載入時間並節省網路頻寬。事實證明,WebP 的檔案大小比 PNG 和 JPG 檔案小,且圖片品質至少要相同。即使設定有損設定,WebP 仍能產生與原始圖片幾乎相同的圖片。自 Android 4.0 (API 級別 14:Ice Cream Sandwich) 以來,Android 已納入有損 WebP 支援,並自 Android 4.2 (API 級別 17:Jelly Bean) 開始支援無損、透明的 WebP。
  • 如果您有許多密度的大型圖片,可以考慮支援多個 APK,依密度分割 APK。此舉會導致版本鎖定特定密度的版本,也就是說,低密度裝置的使用者不必因此對未使用的高密度資產下載造成負面影響。
  • 如要進一步瞭解如何縮減 APK 大小,請參閱「縮減 APK 大小」和「縮減程式碼和資源」。此外,您可以參閱 這篇 Medium 文章中的詳細指南,瞭解如何縮減 APK 大小。

縮減程式碼大小

  • Android 專案中的每個程式庫都會在 APK 中新增可能未使用的程式碼。由於並非所有程式庫都是專為行動應用程式使用而設計,因此請格外謹慎使用外部程式庫。請確保應用程式使用的程式庫已針對行動裝置進行最佳化調整。
  • 建議您使用 ProGuard 等工具將編譯過的程式碼最佳化。ProGuard 會找出未使用的程式碼,並從 APK 中移除。此外,您也可以在 build.gradle 中設定 minifyEnabled=true (shrinkResources=true) 以在建構時間 啟用資源縮減功能,系統會自動從 APK 中移除未使用的資源。
  • 使用 Google Play 服務時,您應 選擇性地僅將必要的 API 加入 APK。
  • 如要進一步瞭解如何縮減 APK 中的程式碼大小,請參閱 Android 訓練課程,瞭解如何避免使用依附元件插入架構

允許應用程式移至外部 (SD) 儲存空間

  • 低成本裝置通常具有少量的裝置儲存空間。使用者可以透過 SD 卡擴充這項功能;不過,應用程式需要明確宣告提供支援至外部儲存空間後,使用者才能移動這些項目。
  • 在 AndroidManifest.xml 中使用 android:installLocation 標記,允許將應用程式安裝至外部儲存空間。如要進一步瞭解如何啟用應用程式移至外部儲存空間,請參閱「應用程式安裝位置」這篇 Android 指南。

減少安裝應用程式後的磁碟用量

  • 如果應用程式的磁碟用量偏低,表示裝置可用空間不足時,使用者解除安裝應用程式的可能性較低。請務必為快取套用邊界,以免應用程式的磁碟用量無限期增長。請務必將快取資料存放在 getCacheDir(),因為系統可能會視需要刪除放在這裡的檔案,使其不會顯示在承諾使用的儲存空間中。

提供可設定的網路用量

Android 平台提供多種方式,讓使用者能控管應用程式的網路使用情況,並依照自身需求進行最佳化。舉例來說,首次使用時,應用程式可引導使用者完成各種網路相關設定。您也可以在應用程式外提供網路偏好設定畫面。

針對使用者的網路選擇提供新手上路體驗

  • 對於可減少資料使用的應用程式,開發人員相當重視應用程式,即使其有高數據用量的要求,也能照常使用。如果應用程式使用大量頻寬 (例如影片串流應用程式),您可以為使用者提供新手上路體驗,讓他們設定網路用量。舉例來說,您可以允許使用者透過行動網路強制執行較低的位元率影片串流。
  • 使用者可透過其他設定控管資料同步處理、預先擷取和網路使用行為 (例如只在 Wi-Fi 上預先擷取所有已加星號的新聞類別),也可以協助使用者根據自身需求調整應用程式行為。
  • 如要進一步瞭解如何管理網路用量,請參閱管理網路用量中的 Android 訓練。

提供網路偏好設定畫面

  • 您可以透過網路偏好設定畫面,從應用程式外前往應用程式的網路設定。您可以從系統設定畫面或系統資料使用畫面叫用這個畫面。
  • 若要提供使用者可從您的應用程式和系統設定存取的網路偏好設定畫面,請在應用程式中加入支援 ACTION_MANAGE_NETWORK_USAGE 動作的活動。
  • 如要進一步瞭解如何新增網路偏好設定畫面,請參閱「 實作偏好設定活動」中的 Android 訓練課程。

其他資源

如要進一步瞭解這個主題,請參閱下列其他資源:

網誌文章