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