您好,登錄后才能下訂單哦!
如何打包Android Wearable 應(yīng)用程序
原文標(biāo)題:Packaging Wearable Apps 原文地址:http://developer.android.com/training/wearables/apps/packaging.html 翻譯:姚汝剛 郵箱:yaorugang@hotmail.com |
名詞說明:
l Wearable:指的是可穿戴設(shè)備,但是目前應(yīng)用最廣泛的可穿戴設(shè)備就是手表,所以為了方便起見,本文在翻譯的過程中有時(shí)會(huì)將Wearable直接翻譯為手表,便于理解。
l Handheld: 原文中用的handheld指的是手機(jī)程序,本文不對(duì)這個(gè)單詞做翻譯。它指的就是Android Studio項(xiàng)目中的Mobile模塊。
發(fā)布安卓手表應(yīng)用程序時(shí),我們必須要將手表應(yīng)用直接打包到對(duì)應(yīng)的手機(jī)應(yīng)用程序里面,因?yàn)橛脩舨豢梢灾苯訛g覽并安裝應(yīng)用程序到手表設(shè)備上。如果我們進(jìn)行正確的打包,當(dāng)用戶下載安裝手機(jī)版應(yīng)用時(shí),系統(tǒng)會(huì)自動(dòng)將打包的手表程序安裝到與之配對(duì)的手表上。
提示:如果在開發(fā)過程中使用的是debug key來(lái)進(jìn)行簽名,那么wearable app將不會(huì)被自動(dòng)安裝。這時(shí)就需要使用"adb install"命令或者Android Studio來(lái)直接安裝手表應(yīng)用了。 |
使用Android Studio打包
正確使用Android Studio打包wearable app的步驟:
將wearable manifest中聲明的所有權(quán)限在handheld app 的manifest中全部再聲明一遍。比如,你要是在wearable中添加了VIBRATE權(quán)限,那么你需要也同樣在handheld manifest中添加VIBRATE權(quán)限。
確保wearable和handheld應(yīng)用程序具有相同的package name和版本號(hào)。
在handheld app的build.gradle文件里聲明對(duì)wearable程序的指向:
dependencies { compile 'com.google.android.gms:play-services:5.0.+@aar' compile 'com.android.support:support-v4:20.0.+'' wearApp project(':wearable') } |
點(diǎn)擊菜單Build > Generate Signed APK…并按照屏幕提示選擇你的release keystore去給app簽名。Android Studio自動(dòng)將簽名后的handheldapp(內(nèi)嵌有wearable app)導(dǎo)出到項(xiàng)目根目錄下。
你其實(shí)還可以通過命令行使用Gradle wrapper來(lái)簽名wearable和handheld程序。這兩個(gè)程序都必須被簽名才可以使wearable程序可以被自動(dòng)推送到手表上。
為了運(yùn)行Gradle wrapper,請(qǐng)按照如下方式在環(huán)境變量中配置key文件路徑和證書:
/gradlewassembleRelease \ -Pandroid.injected.signing.store.file=$KEYFILE \ -Pandroid.injected.signing.store.password=$STORE_PASSWORD \ -Pandroid.injected.signing.key.alias=$KEY_ALIAS \ -Pandroid.injected.signing.key.password=$KEY_PASSWORD |
單獨(dú)對(duì)wearable和handheld程序進(jìn)行簽名
如果你單獨(dú)對(duì)wearable程序進(jìn)行了簽名,你可以在handheld模塊的build.gradle文件中進(jìn)行以下聲明來(lái)將簽名過的wearable程序嵌入進(jìn)來(lái):
dependencies { ... wearApp files('/path/to/wearable_app.apk') } |
接下來(lái)你就可以按照任何你喜歡的方式來(lái)簽名你的handheld程序(可以點(diǎn)擊菜單 Build > Generate Signed APK… 或者使用前面章節(jié)介紹的signingConfig規(guī)則)
手動(dòng)打包
如果你不是使用的Android Studio,而是其他的IDE或者其他的編譯方式,你依舊可以手動(dòng)將wearable程序打包到你的handheld程序包里。
將wearable manifest中聲明的所有權(quán)限在handheldapp 的manifest中全部再聲明一遍。比如,你要是在wearable中添加了VIBRATE權(quán)限,那么你需要也同樣在handheld manifest中添加VIBRATE權(quán)限。
確保wearable和handheld應(yīng)用程序具有相同的package name和版本號(hào)。
將簽名后的wearable程序拷貝到手機(jī)項(xiàng)目的res/raw目錄中。我們指定APK的名字為wearable_app.apk。
創(chuàng)建文件res/xml/wearable_app_desc.xml,包含有wearable程序的版本號(hào)和路徑信息。例如:
<wearableApppackage="wearable.app.package.name"> <versionCode>1</versionCode> <versionName>1.0</versionName> <rawPathResId>wearable_app</rawPathResId> </wearableApp> |
其中package,versionCode和versionName的值與wearable程序的AndriodManifest.xml文件中的對(duì)應(yīng)值保持一致。rawPathResId是APK文件的名字(不包括后綴名)。比如,對(duì)于wearable_app.apk來(lái)說,其名字就是wearable_app。
在handheld程序的<application>標(biāo)簽中添加一個(gè)meta-data標(biāo)簽來(lái)指定wearable_app_desc.xml文件。
<meta-dataandroid:name="com.google.android.wearable.beta.app" android:resource="@xml/wearable_app_desc"/> |
編譯并簽名handheld程序。
關(guān)閉Asset壓縮
許多編譯工具會(huì)自動(dòng)壓縮安卓應(yīng)用程序res/raw目錄中的文件。因?yàn)?/span>wearable APK已經(jīng)是壓縮過的,這些編譯工具會(huì)再次對(duì)wearable APK進(jìn)行壓縮,這會(huì)導(dǎo)致wearable app installer無(wú)法對(duì)APK進(jìn)行讀取。
如果這種情況發(fā)生,安裝將失敗。Handheld程序的PackageUpdateService
將記錄如下日志信息” this file cannot be opened as a file descriptor; it is probablycompressed.”
AndroidStudio默認(rèn)情況下不會(huì)對(duì)APK進(jìn)行壓縮,但是如果你使用其他方式進(jìn)行編譯,請(qǐng)一定確定不要重復(fù)對(duì)APK進(jìn)行壓縮。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。