溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何打包Android Wearable 應(yīng)用程序

發(fā)布時(shí)間:2020-06-04 22:48:58 來(lái)源:網(wǎng)絡(luò) 閱讀:616 作者:yaorugang 欄目:移動(dòng)開發(fā)

如何打包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)限。

  • 確保wearablehandheld應(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)簽名wearablehandheld程序。這兩個(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)限。

  • 確保wearablehandheld應(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,versionCodeversionName的值與wearable程序的AndriodManifest.xml文件中的對(duì)應(yīng)值保持一致。rawPathResIdAPK文件的名字(不包括后綴名)。比如,對(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)行壓縮。


向AI問一下細(xì)節(jié)

免責(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)容。

AI