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

Packaging Wearable Apps

當發布給用戶時,你必須在手持應用中打包可穿戴應用程序,因為用戶不能在穿戴式設備中直接搜索安裝應用.如果打包正確,當用戶在手持設備中下載應用之后系統會自動的發送穿戴式應用到配對的設備中.

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

使用Android Studio打包


1.在手持應用清單文件中包括所有的穿戴式應用的權限.舉個例子,如果你的穿戴式應用需要VIBRATE這個權限,你同樣需要將這個權限添加到手持設備應用的清單文件中.
2.手持設備應用和穿戴式設備應用是相同的包名和版本號.
3.在手持設備應用的build.gradle文件中聲明指向穿戴式設備應用

dependencies {
   compile 'com.google.android.gms:play-services:5.0.+@aar'
   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 默認不會進行這項壓縮,但是如果你使用其他的構建工具需要確保沒有進行兩次壓縮.

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,353評論 25 708
  • 可穿戴應用可以直接運行在可穿戴的設備上。擁有訪問類似傳感器的硬件權限,還有操作activity,services等...
    磨礪營IT閱讀 562評論 0 0
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,948評論 18 139
  • 1.介紹 如果你正在查閱build.gradle文件的所有可選項,請點擊這里進行查閱:DSL參考 1.1新構建系統...
    Chuckiefan閱讀 12,179評論 8 72
  • 今日有幾事 1,寶寶只是病了一天,但是感覺自己一直沒調整過精神,一直犯困中。中午沒有吃飯,和寶寶兩個人一直睡。我到...
    大果果ly閱讀 204評論 0 0