第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

全部開發(fā)者教程

Android Studio 編輯器教程

Android Studio 如何發(fā)布應(yīng)用

前面的小節(jié)我們介紹了應(yīng)用調(diào)試相關(guān)的知識(shí),本小結(jié)我們學(xué)習(xí)如何合理的發(fā)布應(yīng)用。

1. 準(zhǔn)備工作

為了讓應(yīng)用做好發(fā)布準(zhǔn)備,我們需要先進(jìn)行一些準(zhǔn)備工作。

1.1 收集材料和資源

要開始準(zhǔn)備應(yīng)用以進(jìn)行發(fā)布,我們需要收集幾項(xiàng)支持性的信息,其中至少應(yīng)包含用于為應(yīng)用簽名的加密密鑰以及應(yīng)用圖標(biāo)。此外,我們可能還需要提供最終用戶許可協(xié)議。

  • 加密密鑰
    Android 系統(tǒng)要求安裝的每個(gè)應(yīng)用都必須使用應(yīng)用開發(fā)者擁有的證書(即開發(fā)者用于存放私鑰的證書)進(jìn)行數(shù)字簽名。Android 系統(tǒng)利用該證書來識(shí)別應(yīng)用作者并在應(yīng)用之間建立信任關(guān)系。我們用于簽名的的證書無需由證書授權(quán)機(jī)構(gòu)簽名;Android 系統(tǒng)允許我們使用自簽名證書為我們的應(yīng)用簽名。

  • 應(yīng)用圖標(biāo)
    請(qǐng)確保有一個(gè)應(yīng)用圖標(biāo)且該圖標(biāo)符合建議的圖標(biāo)指南的相關(guān)要求。應(yīng)用的圖標(biāo)會(huì)顯示在設(shè)備的主屏幕上和啟動(dòng)器窗口中,有助于用戶識(shí)別我們的應(yīng)用。它還會(huì)顯示在“管理應(yīng)用”、“我的下載”等其他位置。

  • 最終用戶許可協(xié)議
    請(qǐng)考慮為我們的應(yīng)用準(zhǔn)備最終用戶許可協(xié)議 (EULA)。最終用戶許可協(xié)議可幫助保護(hù)我們的員工、公司和知識(shí)產(chǎn)權(quán),因此我們建議為自己的應(yīng)用提供一份。

1.2 配置應(yīng)用

收集完所有支持材料后,我們可以開始配置應(yīng)用以進(jìn)行發(fā)布。這部分總結(jié)了一些建議在發(fā)布應(yīng)用前對(duì)源代碼、資源文件和應(yīng)用清單進(jìn)行的配置更改。雖然是否實(shí)現(xiàn)這里列出的大部分配置更改都由自己決定,但這些都是良好的編碼習(xí)慣,因此建議實(shí)現(xiàn)這些更改。

  • 選擇合適的軟件包名稱
    請(qǐng)確保選擇的軟件包名稱適合在應(yīng)用的整個(gè)生命周期中使用。將應(yīng)用分發(fā)給用戶后,我們就無法再更改軟件包名稱。我們可以在應(yīng)用的清單文件中設(shè)置軟件包名稱。

  • 關(guān)閉日志記錄和調(diào)試功能
    在構(gòu)建應(yīng)用以進(jìn)行發(fā)布之前,請(qǐng)務(wù)必禁用日志記錄功能并停用調(diào)試選項(xiàng)。要禁用日志記錄功能,我們可以在源文件中移除對(duì) Log 方法的調(diào)用。要停用調(diào)試功能,我們可以從清單文件的 代碼中移除 android:debuggable 屬性,或在清單文件中將 android:debuggable 屬性設(shè)為 false。此外,請(qǐng)移除在我們的項(xiàng)目中創(chuàng)建的所有日志文件或靜態(tài)測(cè)試文件。

  • 清理項(xiàng)目目錄
    請(qǐng)清理項(xiàng)目,確保其符合 Android 項(xiàng)目中所述的目錄結(jié)構(gòu)。項(xiàng)目中留有散亂或孤立的文件會(huì)妨礙對(duì)應(yīng)用的編譯,而且會(huì)導(dǎo)致應(yīng)用行為異常。至少應(yīng)執(zhí)行以下清理任務(wù):

    1. 檢查項(xiàng)目中是否包含應(yīng)用不使用的專用或?qū)S袛?shù)據(jù)文件,如果有,請(qǐng)將其移除。例如,在項(xiàng)目的 res/ 目錄中查找舊的可繪制對(duì)象文件、布局文件和值文件,如果不再使用這些文件,請(qǐng)將其刪除;

    2. 檢查 lib/ 目錄中是否包含測(cè)試庫;如果應(yīng)用不再使用這些庫,請(qǐng)將其移除;

    3. 查看 assets/ 目錄和 res/raw/ 目錄的內(nèi)容,查找其中是否包含需在應(yīng)用發(fā)布前更新或移除的原始資源文件和靜態(tài)文件。

  • 解決兼容性問題
    Android 提供了多種工具和技術(shù),可讓我們的應(yīng)用與各種設(shè)備兼容。為了使我們的應(yīng)用可供盡可能多的用戶使用,不妨考慮執(zhí)行以下操作:

    1. 添加對(duì)多種屏幕配置的支持;

    2. 針對(duì) Android 平板電腦設(shè)備優(yōu)化我們的應(yīng)用;

    3. 考慮使用支持庫

2. 版本控制

版本控制是應(yīng)用升級(jí)和維護(hù)策略的關(guān)鍵組成部分。版本控制很重要,因?yàn)椋?/p>

  • 用戶需要了解其設(shè)備上所安裝應(yīng)用的具體版本信息,以及可供安裝的升級(jí)版本。

  • 其他應(yīng)用(包括作為套件發(fā)布的其他應(yīng)用)需要向系統(tǒng)查詢應(yīng)用的版本,以確定兼容性并識(shí)別依賴關(guān)系。

  • 我們將借以發(fā)布應(yīng)用的服務(wù)可能也需要向我們的應(yīng)用查詢其版本,以便它們可以向用戶顯示相應(yīng)版本。要發(fā)布的服務(wù)可能還需要檢查應(yīng)用版本,以確定兼容性并建立升級(jí)/降級(jí)關(guān)系。

Android 系統(tǒng)使用我們應(yīng)用的版本信息來防止降級(jí)。系統(tǒng)不會(huì)使用應(yīng)用版本信息對(duì)第三方應(yīng)用的升級(jí)或兼容性施加限制。我們的應(yīng)用必須強(qiáng)制執(zhí)行所有版本限制,并且應(yīng)告知用戶這些限制。

2.1 設(shè)置應(yīng)用版本信息

要為我們的應(yīng)用定義版本信息,請(qǐng)?jiān)?Gradle 構(gòu)建文件中為版本設(shè)置設(shè)定相應(yīng)的值。這些值隨后會(huì)在構(gòu)建流程中合并到我們應(yīng)用的清單文件中。

有兩種設(shè)置,我們應(yīng)始終為它們定義相應(yīng)的值:

  • versionCode:一個(gè)正整數(shù),用作內(nèi)部版本號(hào)。此數(shù)字僅用于確定某個(gè)版本是否比另一個(gè)版本更新:數(shù)字越大,則版本越新。這不是向用戶顯示的版本號(hào);向用戶顯示的版本號(hào)由 versionName 設(shè)置來設(shè)定。Android 系統(tǒng)使用 versionCode 值來防止降級(jí),方法是阻止用戶安裝 versionCode 低于設(shè)備上當(dāng)前所安裝版本的 APK。

  • versionName:一個(gè)字符串,用作向用戶顯示的版本號(hào)。我們可以將此設(shè)置指定為原始字符串或?qū)ψ址Y源的引用。

示例如下:

android {
  defaultConfig {
    ...
    versionCode 2
    versionName "1.1"
  }
}

示例的 defaultConfig {} 代碼塊中,versionCode 值表示當(dāng)前 APK 包含應(yīng)用的第二個(gè)版本,versionName 字符串則指定向用戶顯示的應(yīng)用版本為版本 1.1。

2.2 指定 API 級(jí)別要求

如果我們的應(yīng)用需要特定的最低 Android 平臺(tái)版本,我們可以在應(yīng)用的 build.gradle 文件中將該版本要求指定為 API 級(jí)別設(shè)置。在構(gòu)建流程中,這些設(shè)置將合并到應(yīng)用的清單文件中。指定 API 級(jí)別要求可確保只能將我們的應(yīng)用安裝在運(yùn)行兼容的 Android 平臺(tái)版本的設(shè)備上。

有兩種 API 級(jí)別設(shè)置:

  • minSdkVersion:可運(yùn)行應(yīng)用的最低 Android 平臺(tái)版本,由平臺(tái)的 API 級(jí)別標(biāo)識(shí)符指定。

  • targetSdkVersion:指定運(yùn)行應(yīng)用的目標(biāo) API 級(jí)別。在某些情況下,這允許應(yīng)用使用針對(duì)目標(biāo) API 級(jí)別定義的清單元素或行為,而不是僅限于使用那些針對(duì)最低 API 級(jí)別定義的清單元素或行為。

示例如下:

android {
  ...
  defaultConfig {
    ...
    minSdkVersion 14
    targetSdkVersion 24
  }
}

在準(zhǔn)備安裝我們的應(yīng)用時(shí),系統(tǒng)會(huì)檢查這些設(shè)置的值,并將其與系統(tǒng)版本進(jìn)行比較。如果 minSdkVersion 值大于系統(tǒng)版本,系統(tǒng)會(huì)阻止安裝應(yīng)用。

3. 應(yīng)用簽名

Android 系統(tǒng)要求所有 APK 必須先使用證書進(jìn)行數(shù)字簽名,然后才能安裝到設(shè)備上或進(jìn)行更新。

3.1 生成密鑰和密鑰庫

如果我們還沒有密鑰,我們可以使用 Android Studio 生成一個(gè),具體步驟如下所示:

  1. 在菜單欄中依次點(diǎn)擊 Build > Build > Generate Signed Bundle/APK

  2. Generate Signed Bundle or APK 對(duì)話框中,選擇 Android App BundleAPK,然后點(diǎn)擊 Next;

  3. Key store path 字段下,點(diǎn)擊 Create new;

  4. New Key Store 窗口中,為密鑰庫和密鑰提供以下信息:

    • Key store path:選擇創(chuàng)建密鑰庫的位置。

    • Password:為我們的密鑰庫創(chuàng)建并確認(rèn)一個(gè)安全的密碼。

    • Key-Alias:為我們的密鑰輸入一個(gè)標(biāo)識(shí)名。

    • Key-Password:為我們的密鑰創(chuàng)建并確認(rèn)一個(gè)安全的密碼。此密碼應(yīng)該與我們?yōu)槊荑€庫選擇的密碼不同。

    • Key-Validity (years):以年為單位設(shè)置密鑰的有效時(shí)長。密鑰的有效期應(yīng)至少為 25 年,以便我們可以在應(yīng)用的整個(gè)生命期內(nèi)使用同一密鑰為應(yīng)用更新簽名。

    • Key-Certificate:為證書輸入一些關(guān)于本人的信息。此信息不會(huì)顯示在應(yīng)用中,但會(huì)作為 APK 的一部分包含在我們的證書中。

  5. 填寫完表單后,請(qǐng)點(diǎn)擊 OK。

至此,我們的密鑰庫和密鑰就創(chuàng)建好了,下面我們使用密鑰來給應(yīng)用簽名。

3.2 為應(yīng)用簽名

要使用 Android Studio 為我們的應(yīng)用簽名,并導(dǎo)出現(xiàn)有的應(yīng)用簽名密鑰,請(qǐng)按以下步驟操作:

  1. 在菜單欄中依次點(diǎn)擊 Build > Build > Generate Signed Bundle/APK;
  2. Generate Signed Bundle or APK 對(duì)話框中,選擇 Android App BundleAPK,然后點(diǎn)擊 Next
  3. 指定密鑰庫的路徑、密鑰的別名,然后輸入二者的密碼,然后點(diǎn)擊 Next;
  4. 為簽名的應(yīng)用選擇一個(gè)目標(biāo)文件夾、選擇構(gòu)建類型,選擇簽名版本,然后點(diǎn)擊 Finish。

至此,我們的應(yīng)用就編譯并且簽名完成,可以上傳至應(yīng)用市場(chǎng)或自己的服務(wù)器。

4. 小結(jié)

本節(jié)課程我們主要學(xué)習(xí)了如何合理的發(fā)布應(yīng)用。本節(jié)課程的重點(diǎn)如下:

  • 掌握發(fā)布應(yīng)用前的準(zhǔn)備工作;
  • 掌握如何創(chuàng)建密鑰庫和密鑰;
  • 掌握如何為應(yīng)用簽名。