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

2021-10-21 13:52 更新

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

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

1. 準(zhǔn)備工作

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

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

如果大家的應(yīng)用程序在運(yùn)行中需要使用某種程度的權(quán)限,則必須在manifest當(dāng)中利用uses-permission元素將其添加進(jìn)來(lái)。為了順利實(shí)現(xiàn)應(yīng)用發(fā)布,大家還需要在manifest應(yīng)用程序元素中設(shè)置應(yīng)用圖標(biāo)以及標(biāo)簽屬性。我們?cè)谇鍐萎?dāng)中列出的大部分條目都將與Google Play軟件商店的應(yīng)用列表內(nèi)容相對(duì)應(yīng)。

2. 版本管理

我們?cè)谥暗奈恼庐?dāng)中已經(jīng)提到過(guò),大家需要為自己的應(yīng)用程序設(shè)置一個(gè)版本號(hào)并為其命名。說(shuō)起版本號(hào),這部分信息應(yīng)該被包含在根manifest元素中manifest下的android:versionCode與android:versionName屬性當(dāng)中。

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

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

3. 簽名

第一步

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

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

第二步

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

16.1export_project

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

16.2signing_key

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

請(qǐng)確保我們的發(fā)布密鑰受到嚴(yán)格保護(hù),因?yàn)橹挥惺褂猛惶酌荑€、大家才能在為同一軟件包發(fā)布更新內(nèi)容。如果大家利用其它不同的驗(yàn)證機(jī)制處理應(yīng)用程序的更新版本,則必須使用與原先不同的軟件包名稱。

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

4. 發(fā)布

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

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

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

在應(yīng)用程序清單中的Pricing and Distribution部分,大家需要指定自己的應(yīng)用是否需要收費(fèi)或者可以免費(fèi)提供給用戶。請(qǐng)注意,免費(fèi)應(yīng)用程序無(wú)法被重新修改為收費(fèi)應(yīng)用。不過(guò)大家可以修改收費(fèi)應(yīng)用的價(jià)格或者將收費(fèi)應(yīng)用修改為免費(fèi)。我們也可以在免費(fèi)應(yīng)用當(dāng)中設(shè)置內(nèi)購(gòu)機(jī)制。如果大家的應(yīng)用程序適用于多個(gè)國(guó)家,Google Play會(huì)自動(dòng)將我們?cè)O(shè)定的價(jià)格換算為其它貨幣單位。請(qǐng)大家花點(diǎn)時(shí)間仔細(xì)查看應(yīng)用程序清單當(dāng)中的其它內(nèi)容,例如應(yīng)用內(nèi)產(chǎn)品以及API等。

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

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

總結(jié)

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


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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)