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阅读 174,848评论 25 709
  • 可穿戴应用可以直接运行在可穿戴的设备上。拥有访问类似传感器的硬件权限,还有操作activity,services等...
    磨砺营IT阅读 570评论 0 0
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,288评论 19 139
  • 1.介绍 如果你正在查阅build.gradle文件的所有可选项,请点击这里进行查阅:DSL参考 1.1新构建系统...
    Chuckiefan阅读 12,233评论 8 72
  • 今日有几事 1,宝宝只是病了一天,但是感觉自己一直没调整过精神,一直犯困中。中午没有吃饭,和宝宝两个人一直睡。我到...
    大果果ly阅读 208评论 0 0