在某些國家/地區,數據方案的成本可能會超出一般使用者的每月收入,不會超過 10%。這表示盡可能減少應用程式的下載大小,並讓使用者能夠控制應用程式使用資料的方式,可對許多使用者帶來重大影響。最大限度地降低下載大小,也有助於節省內部儲存空間,這種空間在部分裝置上是相當稀少的資源。
您可以在此找到一些策略,協助您透過網路和內部儲存空間,改善應用程式使用的數據量。
縮減應用程式大小
減少應用程式大小是讓使用者在減少網路資料和內部儲存空間使用量時的基本方法之一。本節說明縮減應用程式大小的方法。
縮減 APK 圖形資產大小
- 圖形資產通常是 APK 尺寸最大的貢獻者。進行最佳化處理可能會減少下載量,進而縮短使用者的安裝時間。
- 如果是圖示等圖形資產,請使用可擴充向量圖形 (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 訓練課程。
其他資源
如要進一步瞭解這個主題,請參閱下列其他資源: