發布程式庫前的準備工作

如要準備發布應用程式,您必須設定、建構及測試應用程式的發行版本。設定工作很簡單,包括基本的程式碼處理和編輯工作,這些工作有助於最佳化您的應用程式。建立程序與偵錯建立程序相似,可透過 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> 元素中。

  • android:versionCodeandroid:versionName 屬性。

    建議您指定位於 <manifest> 元素屬性的值。詳情請參閱應用程式版本管理

如果您要在 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 上架檢查清單