發布前的準備工作

透過集合功能整理內容 你可以依據偏好儲存及分類內容。

如要準備發布應用程式,您必須設定、建構及測試應用程式的發行版本。設定工作很簡單,包括基本的程式碼處理和修改工作,這些工作有助於將您的應用程式最佳化。建構程序與偵錯版本的程序相似,可透過 JDK 以及 Android SDK 工具完成。測試工作為最後一道檢查程序,這是為了確保應用程式能夠在實際的環境下正常運作。當您完成上述步驟並準備發布應用程式時,您會有一份已簽署的 APK 檔案,您可以直接提供給使用者,或透過 Google Play 等應用程式市集來提供。

本文總結了您在發布應用程式之前需要執行的準備工作。本文所述的工作內容適用於以任何形式發布或提供給使用者的 Android 應用程式。如果您是透過 Google Play 發行應用程式,請一併參閱 Google Play 上架檢查清單

請注意:在您執行本文所列出的工作前,您的應用程式應該要滿足所有功能、效能以及穩定性方面的發布條件。

準備程序如何配合開發程序

圖 1:發布前的準備是必要的開發工作,也是發布過程的第一步。

簡介

向使用者發布應用程式時,您需要先建立一個發布就緒套件,供使用者在他們的 Android 裝置上安裝並執行。發布就緒套件中包含與偵錯 APK 檔案相同的元件,例如已編譯的來源程式碼、資源以及資訊清單檔案等等,而且兩者是以相同的建構工具建立而成。不過與偵錯 APK 檔案不同的是,可用來發布的 APK 檔是以您自己的憑證簽署,並且已使用 zipalign 工具進行最佳化。

準備發布應用程式前應執行的五項工作

圖 2:執行五項主要工作,為發布應用程式做準備。

如果您是透過 Android Studio 建構應用程式,則通常可以順利執行簽署和最佳化工作。舉例來說,您可以在 Android Studio 中使用 Gradle 建構檔案,一次編譯、簽署及最佳化應用程式。您也可以設定 Gradle 建構檔案,執行與從指令列建構時相同的操作。如要進一步瞭解使用 Gradle 建構檔案的資訊,請參閱「建構系統」指南。

一般來說,您需要執行五項主要工作來為發布應用程式做準備 (參閱圖 2)。每項主要工作可能會包含一個或多個較小的工作,視您以何種方式發布應用程式而定。例如,如果您是透過 Google Play 發布應用程式,您可能會想在設定應用程式時為您的資訊清單加入特殊的篩選規則。或者,為了符合 Google Play 發布指南中的規定,您在蒐集發布相關資料時可能需要準備螢幕擷圖以及建立宣傳文字。

確實完成應用程式的偵錯以及測試程序後,您通常需要執行圖 2 中列出的工作。Android SDK 包含數種工具,能幫助您進行 Android 應用程式的測試以及偵錯程序。如需更多詳細資訊,請參閱《開發指南》中的「偵錯」以及「測試」區段。

蒐集相關資料及資源

您需要準備一些相關資料才能開始準備發布應用程式。這些資料最少含有用來簽署應用程式的加密編譯金鑰以及應用程式圖示,您可能也會想要提供一份《使用者授權協議》。

加密編譯金鑰

在 Android 系統下,每一個安裝的應用程式都須完成數位憑證簽署,此憑證必須為應用程式的開發人員所擁有,亦即是由開發人員擁有私密金鑰的憑證。Android 系統使用憑證辨識應用程式的作者,以及用來建立應用程式間的信任關係。您用來簽署的憑證不需要經憑證授權單位簽署;Android 系統允許您在簽署應用程式時使用自行簽署的憑證。如要瞭解憑證相關規定,請參閱「簽署應用程式」。

重要事項:您的應用程式必須以加密編譯金鑰簽署,該金鑰的有效期限需在 2033 年 10 月 22 日以後。

如果您的應用程式可存取或使用需要以您私密金鑰為基礎之金鑰的第三方資料庫,您也需要取得其他的發布金鑰。

應用程式圖示

請確保您有一個應用程式圖示,且此圖示符合我們的圖示建議規範。應用程式圖示能幫助使用者在裝置首頁畫面以及「啟動器」視窗中辨識出您的應用程式。應用程式圖示也會出現在「管理應用程式」、「我的下載」以及其他位置。另外,發布服務平台 (如 Google Play) 也會向使用者顯示您的應用程式圖示。

請注意:如果您透過 Google Play 發布您的應用程式,您需要製作一個高解析度的圖示。如需瞭解更多資訊,請參閱「應用程式圖片資源」。

使用者授權協議

建議您為您的應用程式準備一份《使用者授權協議》(EULA)。《使用者授權協議》能幫助您保護您個人、機構以及智慧財產權,我們建議您為您的應用程式準備一份這樣的協議。

其他資料

您可能也需要準備用來宣傳您應用程式的宣傳以及行銷相關資料。例如,如果您是透過 Google Play 發布應用程式,您需要準備一些宣傳文字,並製作您的應用程式的螢幕擷圖。如要瞭解更多資訊,請參閱「應用程式圖片資源」。

設定要發布的應用程式

相關資料蒐集完畢後,您即可開始設定即將發布的應用程式。本節總結了我們建議您在發布應用程式前做的設定調整:原始碼、資源檔案以及應用程式資訊清單。儘管本節所列的大多數內容都是選擇性的設定調整,然而這些都是程式撰寫上的好作法,因此我們建議您依循執行。在某些情況下,您可能已經於開發過程中完成這些設定調整。

選擇合適的套件名稱

請確保您選擇在應用程式效期內全程適用的套件名稱,應用程式提供給使用者之後,您就無法再更改套件名稱。您可以在應用程式的資訊清單中設定套件名稱。如要瞭解更多資訊,請參閱「套件」屬性文件。

關閉紀錄以及偵錯功能

請在建立應用程式前,確認已停用紀錄以及偵錯選項。您可以透過移除來源檔案中的 Log 方法呼叫停用記錄功能。您可以從資訊清單檔案的 <application> 標記中移除 android:debuggable 屬性,或是在資訊清單中將 android:debuggable 屬性設為 false,藉此停用偵錯功能。此外,請移除所有您專案中建立的記錄檔或是靜態測試檔。

您也必須移除所有已加至程式碼的 Debug 追蹤呼叫,例如 startMethodTracing()stopMethodTracing() 方法呼叫。

重要事項:由於偵錯功能允許使用者透過 Chrome DevTools 植入指令碼以及擷取內容,因此如果您使用 WebView 顯示付費內容或是使用 JavaScript 介面,請確認您已停用您應用程式的偵錯功能。如要停用偵錯功能,請使用 WebView.setWebContentsDebuggingEnabled() 方法。

整理專案目錄

請清理您的專案,確保專案符合 Android 專案中所描述的目錄結構。如果您的專案中殘留有零星檔案或孤立檔案,您的應用程式便無法進行編譯,且會導致應用程式運作異常。您至少需執行以下的清理工作:

  • 預覽 jni/lib/src/ 目錄的內容。jni/ 目錄只能包含與 Android NDK 有關的來源檔案,例如 .c.cpp.h.mk 檔案。lib/ 目錄中只能含有第三方資料庫檔案或私人資料庫檔案,包括預先建立的共享和靜態資料庫 (例如 .so 檔)。src/ 目錄只能含有應用程式的來源檔案 (.java.aidl 檔)。src/ 目錄不得含有任何 .jar 檔。
  • 找出您專案未使用的私人或專屬資料檔,並將其移除。例如,在您專案中的 res/ 目錄找出已不再使用的舊有可繪製檔、版面配置檔和數值檔,並將其刪除。
  • 如果有應用程式不再使用的測試資料庫,請在 lib/ 目錄中將其找出並將其移除。
  • 查看 assets/ 目錄和 res/raw/ 目錄的內容,找出需要在發布應用程式前更新或移除的原始資產檔案和靜態檔案。

檢視及更新資訊清單和 Gradle 版本設定

請確認下列資訊清單和建構檔案項目均設定正確:

  • <uses-permission> 元素

    您應該僅指定與應用程式相關且必要的權限。

  • android:iconandroid:label 屬性

    您必須指定這些屬性的值,這些屬性位於 <application> 元素中。

  • versionCodeversionName 屬性

    建議您指定這些屬性的值 (這些屬性位於模組層級 build.gradle 檔案中)。詳情請參閱「應用程式版本」。

如果您要在 Google Play 上發布應用程式,可以設定其他資訊清單或建構檔案元素。例如,位於 <uses-sdk> 元素中的 android:minSdkVersionandroid:targetSdkVersion 屬性。如要進一步瞭解上述設定以及其他 Google Play 設定,請參閱「Google Play 篩選器」。

解決相容性問題

Android 提供了一些工具及技術,可讓您的應用程式與多種裝置相容。建議您執行下列動作,讓您的應用程式可供最多的使用者使用:

  • 新增支援多螢幕的設定功能

    請確保您符合支援多螢幕的最佳做法。透過支援多螢幕設定,您建立的應用程式可在 Android 支援的任何尺寸螢幕上正常運作,並且視覺上效果良好。

  • 針對 Android 平板電腦裝置最佳化您的應用程式

    如果您的應用程式專為 Android 3.0 版以下的裝置所設計,請按照針對 Android 3.0 版最佳化應用程式中的規範以及最佳做法,將您的應用程式最佳化,使其與 Android 3.0 版的裝置相容。

  • 建議您使用支援資料庫

    如果您的應用程式專為 Android 3.x 版的裝置所設計,請新增「支援資料庫」至您的專案,使您的應用程式可與 Android 較舊版本相容。「支援資料庫」提供靜態支援資料庫,您可以將其新增至您的 Android 應用程式,便能使用舊版本平台上沒有提供的 API,或是不屬於架構 API 的工具 API。

更新服務及伺服器的網址

如果您的應用程式可存取遠端伺服器或服務,請確保您使用伺服器或服務的實際執行網址或路徑,而非測試的網址或路徑。

執行授權 (如果您是透過 Google Play 發布應用程式)

如果您是透過 Google Play 發布付費應用程式,建議您新增對 Google Play 授權的支援。藉由授權,您可以根據目前使用者的購買狀態控管應用程式的存取權。即使您是透過 Google Play 發布應用程式,還是可以選擇是否要使用 Google Play 授權。

如要進一步瞭解 Google Play 授權服務以及如何在應用程式中使用,請參閱「應用程式授權」。

建構要發布的應用程式

應用程式設定完成後,您可以將其建入至已簽署、已最佳化並準備發布的 APK 檔。JDK 當中含有簽署 APK 檔的工具 (Keytool 以及 Jarsigner);Android SDK 則包含編譯及最佳化 APK 檔的工具。如果您使用的是 Android Studio,或是透過指令列使用 Gradle 建構系統,則您可以將整個建構程序自動化。如要進一步瞭解如何設定 Gradle 建構作業,請參閱「設定 Gradle 建構作業」。

使用 Android Studio 進行建構

您可以使用與 Android Studio 整合的 Gradle 建構系統,建構可使用您的私密金鑰簽署並最佳化的可發布 APK 檔案。如要瞭解如何透過 Android Studio 設定及執行建構作業,請參閱「透過 Android Studio 建構及執行」。

建構程序會假設您具備可用來簽署應用程式的憑證和私密金鑰。如果您沒有適合的憑證和私密金鑰,Android Studio 可協助您產生一組。如要進一步瞭解簽署程序,請參閱「簽署應用程式」。

外部伺服器與資源的準備工作

如果您的應用程式使用的是遠端伺服器,請確保該伺服器安全無虞且設定為可實際上線使用,若您實作的是在應用程式內結帳、並在遠端伺服器上進行簽名驗證時,這一點特別重要。

另外,如果您的應用程式是從遠端伺服器或即時服務 (例如內容資訊提供) 取得內容,請確保您提供的是最新內容且該內容可實際上線使用。

測試要發布的應用程式

測試即將發布的應用程式,可確保您的應用程式在實際裝置以及網路條件下正常運作。建議您在至少一個手機大小和平板電腦大小的裝置上測試您的應用程式,確認您的使用者介面元素大小設定正確、應用程式效能以及電池效能在可接受的範圍內。

開始測試時,請先參閱測試項目。這篇文章提供了在測試時您應考慮到的 Android 常見情況。測試完成、且您對應用程式的正常運作情況感到滿意,您就可以向使用者發布應用程式。如要瞭解更多資訊,請參閱「向使用者發布您的應用程式」。如果您是透過 Google Play 發布應用程式,請參閱「Google Play 上架檢查清單」。