建構向使用者發布的應用程式
透過集合功能整理內容
你可以依據偏好儲存及分類內容。
按一下「Run」(執行) 按鈕 ,即可將應用程式部署至裝置。不過,如要建構應用程式來分享或上傳至 Google Play,您必須使用「Build」選單中的其中一個選項來編譯部分或全部的專案。選取資料表 1 中列出的任何建構選項之前,請務必先選取要使用的建構變數。
表 1. 「Build」選單的建構選項
選單項目 |
說明 |
「Make Module」 |
為所選模組中的所有原始碼檔案,編譯自上次建構後修改過的檔案,且所選模組的所有模組皆須遞迴。編譯包含相依來源檔案和任何相關聯的建構工作。您可以在「Project」視窗中選取模組名稱或其中一個檔案,選取要建構的模組。 |
「Make Project」 |
建立所有模組。 |
「Clean Project」 |
刪除所有中繼/快取的建構檔案。 |
「Rebuild Project」 |
針對所選的建構變數執行「Clean Project」,然後產生 APK。 |
「Build Bundle(s) / APK(s)」>「Build APK(s)」 |
在目前專案中為所選變化版本建構所有模組的 APK。建構完成後,系統會顯示確認通知,並提供 APK 檔案連結以及用於在 APK 分析工具中分析該檔案的連結。
如果您選取的建構變數為偵錯版本類型,系統會使用偵錯金鑰簽署 APK,然後您就可以安裝該 APK。如果您已選取發布版本,APK 會預設為未簽署狀態,這時您必須手動簽署 APK。您也可以從選單列中依序選取「Build」>「Generate Signed Bundle / APK」。
Android Studio 會儲存您在 project-name/module-name/build/outputs/apk/ 中建立的 APK。 |
「Build Bundle(s) / APK(s)」>「Build Bundle(s)」 |
在目前專案中為所選變化版本建構所有模組的 Android App Bundle。建構完成後,系統會顯示確認通知,並提供應用程式套件的連結,以及用於在 APK 分析工具中分析該套件的連結。
如果您選取的建構變數為偵錯版本類型,系統會使用偵錯金鑰簽署應用程式套件,然後您就能使用 bundletool 透過該套件將應用程式部署至已連結的裝置。如果您已選取發布版本,應用程式套件會預設為未簽署狀態,這時您必須使用 jarsigner 手動簽署。您也可以從選單列中依序選取「Build」>「Generate Signed Bundle / APK」。
Android Studio 會儲存您在 project-name/module-name/build/outputs/bundle/ 中建立的 APK。 |
「Generate Signed Bundle / APK」 |
利用精靈啟動對話方塊,以建立新的簽署設定,並建構已簽署的應用程式套件或 APK。您必須使用發布金鑰簽署應用程式,才能將其上傳至 Play 管理中心。如要進一步瞭解應用程式簽署,請參閱「簽署應用程式」。 |
注意:點選「Run」按鈕 後,系統會隨即建立含有 testOnly="true"
設定的 APK,代表該 APK 只能透過 Android Studio 使用的 adb
安裝。如要取得無需 ADB 即可安裝的可偵錯 APK,請選取偵錯變化版本,然後依序點選「Build Bundle(s) / APK(s)」。
如要進一步瞭解 Gradle 為每個指令執行的工作,請按照下節說明開啟「Build」視窗。如要進一步瞭解 Gradle 和建構程序,請參閱「設定建構」。
這個頁面中的內容和程式碼範例均受《內容授權》中的授權所規範。Java 與 OpenJDK 是 Oracle 和/或其關係企業的商標或註冊商標。
上次更新時間:2023-10-18 (世界標準時間)。
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"缺少我需要的資訊"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"過於複雜/步驟過多"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"過時"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"翻譯問題"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"示例/程式碼問題"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"其他"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"容易理解"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"確實解決了我的問題"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"其他"
}]
{"lastModified": "\u4e0a\u6b21\u66f4\u65b0\u6642\u9593\uff1a2023-10-18 (\u4e16\u754c\u6a19\u6e96\u6642\u9593)\u3002"}
[[["容易理解","easyToUnderstand","thumb-up"],["確實解決了我的問題","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["缺少我需要的資訊","missingTheInformationINeed","thumb-down"],["過於複雜/步驟過多","tooComplicatedTooManySteps","thumb-down"],["過時","outOfDate","thumb-down"],["翻譯問題","translationIssue","thumb-down"],["示例/程式碼問題","samplesCodeIssue","thumb-down"],["其他","otherDown","thumb-down"]],["上次更新時間:2023-10-18 (世界標準時間)。"]]