第十六章 應用程序發(fā)布

2021-10-21 13:52 更新

第十六章 應用程序發(fā)布

在今天的文章中,我們將重點探討通過Google Play軟件商店進行應用程序發(fā)布,不過如果愿意,大家也可以選擇其它一些發(fā)布途徑。要通過Google Play商店進行應用程序發(fā)布,我們需要注意一些必要條件;不過如果通過其它途徑發(fā)布則有可能無需考慮這些前提。但我個人建議大家認真了解這些內(nèi)容,并盡可能在任何發(fā)布方式當中都嚴格貫徹這些最佳實踐方案。

1. 準備工作

在我們考慮發(fā)布一款應用程序之前,首先要完成的就是全面的調(diào)試與測試工作,其中包括確保應用能夠在各類不同配置的設備上正常運行。此外,大家還應該注意其它一些前提性事項。首先,如果我們的Java代碼當中包含任何日志聲明或者其它用于輸出調(diào)試信息的調(diào)用內(nèi)容,請務必在發(fā)布之前將其從應用內(nèi)移除。

如果大家的清單文件當中包含android:debuggable屬性集,則需要在發(fā)布應用程序之前將其移除。我們的清單版本屬性還需要經(jīng)過合理配置,我將在后續(xù)內(nèi)容中進一步解釋該話題。大家要確保自己的應用程序資源正確包含在軟件包文件夾里,例如drawables等指向配置信息的媒體條目。如果大家的應用程序需要使用數(shù)據(jù)庫之類資源,則必須確保其經(jīng)過合理調(diào)整。

如果大家的應用程序在運行中需要使用某種程度的權限,則必須在manifest當中利用uses-permission元素將其添加進來。為了順利實現(xiàn)應用發(fā)布,大家還需要在manifest應用程序元素中設置應用圖標以及標簽屬性。我們在清單當中列出的大部分條目都將與Google Play軟件商店的應用列表內(nèi)容相對應。

2. 版本管理

我們在之前的文章當中已經(jīng)提到過,大家需要為自己的應用程序設置一個版本號并為其命名。說起版本號,這部分信息應該被包含在根manifest元素中manifest下的android:versionCode與android:versionName屬性當中。

其中versionCode屬性應該為一個整數(shù),且每一個應用程序新版本分配到的數(shù)字都需要比前一個更大。從邏輯角度講,大家應該以1為初始版本號,并在每一次推出新版本時逐漸遞增該數(shù)值;不過大家也可以隨意選擇自己想要的數(shù)字,只要比上一個版本數(shù)值更大即可。終端用戶無法看到應用程序的版本代碼值,該數(shù)值僅用于在發(fā)布過程中衡量應用程序的當前版本號是否比原先已經(jīng)安裝的版本更新。

不過versionName屬性則不同,它是一個可被終端用戶查看的字符串。版本名稱并不需要一定與版本代碼相匹配,但從邏輯上講其同樣應該遵循遞進關系。舉例來說,從1.0開始,接下來應該是1.1,當我們發(fā)布的新內(nèi)容更新幅度較大時則將其提升為2.0。換句話來說,版本名稱應該能夠幫助終端用戶理解應用版本的先后順序。如果大家有計劃為自己的應用程序發(fā)布多個版本,則最好花點時間來考慮怎樣的版本名稱最適合反映自己的升級進程。

3. 簽名

第一步

要在Android系統(tǒng)上安裝一款應用程序,該應用必須利用具備私有密鑰的證書進行簽名驗證。在我們的開發(fā)過程中,Eclipse與Android SDK會自動利用調(diào)試密鑰完成應用程序的簽名過程,但大家無法通過這個調(diào)試密鑰進行應用程序發(fā)布。在Android應用程序的創(chuàng)建過程中,系統(tǒng)會選擇debug或者release兩種模式之一進行創(chuàng)建。在release模式下,大家需要利用自己的私有密鑰完成應用程序簽名。

大家也可以利用keytool程序為自己的應用程序生成一個密鑰,我們可以在Java Development Kit(或者簡稱為JDK)當中找到該程序。各位可以 點擊此處 查看keytool說明文檔以了解更多詳細情況。在為我們的私有密鑰創(chuàng)建了keystore之后,大家即可選擇alias name以及password,從而在日后進行應用程序簽名時加以使用。

第二步

當我們已經(jīng)準備好了應用程序簽名所必需的key/keystore之后,正面要做的就是為其創(chuàng)建一個發(fā)布版本。在Eclipse當中,通過Package Explorer選中自己的應用程序項目,右鍵點擊該項目或者選擇“File”、“Export”。展開其Android文件夾后,選擇“Export Android Application”并點擊“Next”。

16.1export_project

接下來,Eclipse將突出顯示創(chuàng)建過程中所遇到的全部錯誤信息,我們需要將其一一解決才能繼續(xù)進行下一步。如果整個過程沒有出現(xiàn)錯誤,大家可以直接點擊“Next”以繼續(xù)。在Keystore Selection容器中,瀏覽至我們的keystore文件并為其輸入密碼。接下來,從菜單中選擇我們?yōu)槊荑€指定的alias并輸入自己設定的密碼內(nèi)容。當一切準備就緒之后,點擊“Next”進入下一步。

16.2signing_key

選擇一個位置并為我們應用程序的APK文件指定一個名稱。該APK文件也就是我們將要上傳到Google Play商店中的文件,用戶在安裝過程中需要將其下載到自己的設備上并加以運行。Eclipse會利用正確的密鑰與驗證機制處理應用程序簽名。在點擊“Finish”之后,該APK文件就會出現(xiàn)在大家所選定的保存位置?,F(xiàn)在我們應該已經(jīng)可以將該APK文件復制到Android設備上了。在復制工作完成之后,利用文件管理器應用選擇該APK文件,并依據(jù)說明進行安裝。只要應用程序簽名一切正常,則系統(tǒng)應該能夠順利安裝該應用、供大家在設備上運行所發(fā)布版本的應用程序了。

請確保我們的發(fā)布密鑰受到嚴格保護,因為只有使用同一套密鑰、大家才能在為同一軟件包發(fā)布更新內(nèi)容。如果大家利用其它不同的驗證機制處理應用程序的更新版本,則必須使用與原先不同的軟件包名稱。

提示:在發(fā)布特定應用程序時,大家可能需要執(zhí)行額外一些步驟。舉例來說,需要利用谷歌地圖庫的應用程序要求我們?yōu)镸aps API設定一個專門的發(fā)布密鑰。

4. 發(fā)布

在我們創(chuàng)建好了一個完整版APK文件之后,接下來要做的就是將應用程序發(fā)布到Google Play軟件商店當中。除了應用程序本身,我們還需要為發(fā)布過程準備一些額外資源——其中一部分最好能提前準備就緒。首先,應用程序的銷售宣傳圖片以及功能描述是必不可少的,大家需要將這部分信息添加到應用程序的列表當中。我們還需要為應用程序在軟件商店中的介紹與下載界面設計說明內(nèi)容,其中包括應用程序的定價(如果這是一款收費應用的話)、應用程序的內(nèi)購項目以及語言設定等等。

要著手進行發(fā)布流程,我們首先需要登錄自己的谷歌賬戶并導航至Developer Console。點擊“Add New Application”并在彈出的窗口中選擇自己應用程序的默認語言、輸入應用程序名稱。從這里開始,大家就要用到之前準備好的應用程序清單并上傳我們剛剛創(chuàng)建好的APK文件。

相信大家已經(jīng)注意到了,我們應用程序的Google Play清單會要求填寫大量細節(jié)信息,而且整個發(fā)布過程也需要一定時間。在每款應用的主清單部分,大家可以添加一部分圖形內(nèi)容——例如應用圖標、應用截圖、視頻介紹、應用程序描述、功能類別、內(nèi)容評級以及開發(fā)者的聯(lián)系方式等。如果各位對這些信息在Google Play中的顯示效果還沒啥概念,請直接參照商店中其它已經(jīng)擺上貨架的其它應用程序。

在應用程序清單中的Pricing and Distribution部分,大家需要指定自己的應用是否需要收費或者可以免費提供給用戶。請注意,免費應用程序無法被重新修改為收費應用。不過大家可以修改收費應用的價格或者將收費應用修改為免費。我們也可以在免費應用當中設置內(nèi)購機制。如果大家的應用程序適用于多個國家,Google Play會自動將我們設定的價格換算為其它貨幣單位。請大家花點時間仔細查看應用程序清單當中的其它內(nèi)容,例如應用內(nèi)產(chǎn)品以及API等。

如果大家已經(jīng)在Google Play上發(fā)布一個或者多個應用程序,則可以在Developer Console當中查看各應用的當前狀態(tài)。這套控制臺為開發(fā)人員提供了非常詳盡的報告內(nèi)容。我們可以對清單的統(tǒng)計部分進行配置,從而更準確地把握其Android版本、應用版本、國家、設備以及語言設定的運作情況。其它統(tǒng)計內(nèi)容還包括安裝與營收報告、詳細的崩潰情況報告、評分以及用戶評論等。相比之下,蘋果的App Store還允許開發(fā)人員回復用戶評價并直接與應用程序用戶進行對話。當應用程序被擺上Google Play商店的貨架之后,大家就可以通過分享應用清單的鏈接來達到宣傳的目的。

最后,在著手進行應用程序發(fā)布流程之后,請認真閱讀 Launch Checklist 中的內(nèi)容。

總結(jié)

如果大家剛剛開始接觸Android平臺,那么離發(fā)布自己的第一款應用恐怕還有很多長的路要走。不過了解整個發(fā)布流程對于新手開發(fā)者來說仍然非常重要。應用程序的首次發(fā)布可能需要花上不少時間,但一旦填寫了初始信息及描述之后,未來的更新上傳將變得很快。在本系列教程的下一部分,我們將為大家提供一些進一步學習Android開發(fā)的建議性方向。最后,我們將共同面對一次小小的結(jié)業(yè)考試——通過試題驗證大家是否已經(jīng)真正掌握了到目前為止介紹過的知識。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號