1. 程式人生 > >android wear那些事--打包穿戴式應用

android wear那些事--打包穿戴式應用

當釋出給使用者時,你必須在手持應用中打包可穿戴應用程式,因為使用者不能在穿戴式裝置中直接搜尋安裝應用.如果打包正確,當用戶在手持裝置中下載應用之後系統會自動的傳送穿戴式應用到配對的裝置中.

注意:在開發的時候如果用debug key打包的應用沒有這個功能.在開發的時候需要使用adb install或者Android Studio直接安裝到穿戴式裝置中.

使用Android Studio打包

1.在手持應用清單檔案中包括所有的穿戴式應用的許可權.舉個例子,如果你的穿戴式應用需要VIBRATE這個許可權,你同樣需要將這個許可權新增到手持裝置應用的清單檔案中.
2.手持裝置應用和穿戴式裝置應用是相同的包名和版本號.
3.在手持裝置應用的build.gradle

檔案中宣告指向穿戴式裝置應用

dependencies {
   compile 'com.google.android.gms:play-services:[email protected]'
   compile 'com.android.support:support-v4:20.0.+''
   wearApp project(':wearable')
}

4.點選 Build>Generate Signed APK…按照螢幕的說明指定keystore併為app簽名.Android Studio將攜帶有穿戴式應用的手持裝置應用匯出到工程的根目錄.

或者你也可以在命令列裡使用

Gradle wrapper為應用簽名.這兩個應用必須都得簽名才能自動傳送到穿戴式裝置中工作.

像下面這樣在環境變數中配置keycredentials並執行Gradle wrapper.

./gradlew assembleRelease \
  -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

分別為可穿戴式應用和手持裝置應用簽名

如果在構建過程中需要在手持裝置應用為穿戴式應用簽名,你可以在手持裝置工程的build.gradle中宣告如下Gradle規則.

dependencies {
  ...
  wearApp files('/path/to/wearable_app.apk')
}

手動打包

如果你使用其他的開發工具或者構建方法有可能需要手動打包應用.

1.在手持應用清單檔案中包括所有的穿戴式應用的許可權.舉個例子,如果你的穿戴式應用需要VIBRATE這個許可權,你同樣需要將這個許可權新增到手持裝置應用的清單檔案中.

2.手持裝置應用和穿戴式裝置應用是相同的包名和版本號.

3.拷貝已經簽名的穿戴式應用到手持裝置工程下的res/raw目錄,我們將會引用這個應用最後生成wearable_app.apk

4.在res/xml下建立wearable_app_desc.xml檔案,該檔案包括穿戴式應用的版本路徑等資訊.

<wearableApp package="wearable.app.package.name">
  <versionCode>1</versionCode>
  <versionName>1.0</versionName>
  <rawPathResId>wearable_app</rawPathResId> 
</wearableApp>

檔案中的包名,版本號,版本名和穿戴式應用中的清單檔案中的相同.rawPathResId是應用的名字.舉個例子wearable_app.apk這個應用的靜態變數名就是wearable_app.

5.在手持應用專案的<application>標籤下新增meta-data標籤.

<meta-data android:name="com.google.android.wearable.beta.app"
                 android:resource="@xml/wearable_app_desc"/>

6.構建簽名手持裝置應用.

關閉資源壓縮

許多構建工具在生成android 應用的時候會自動壓縮res/raw目錄下的檔案.因為穿戴式裝置應用已經壓縮過了,這些工具會重複壓縮穿戴式裝置應用導致穿戴式裝置安裝器不能讀取穿戴式裝置應用.

當這個發生的時候會安裝失敗.會出現這個錯誤日誌:”this file cannot be opened as a file descriptor; it is probably compressed.”.

Android Studio 預設不會進行這項壓縮,但是如果你使用其他的構建工具需要確保沒有進行兩次壓縮.