打包可穿戴应用(Packaging Wearable Apps)
内容包括使用Android Studio进行打包以及手动打包以及关闭资源压缩(Turn off Asset Compression)。
当应用发布时,你必须把可穿戴应用打包进一个手机应用中, 因为用户不能直接在可穿戴设备上浏览和安装应用。
如果打包正确,当用户下载手机应用时,系统会把可穿戴应用自动推送到配对的可穿戴设备中。
注意:这个功能对于使用调试密钥签名的应用不工作,在开发过程中,必须使用adb install或Android Studio来直接安装。
使用Android Studio打包
在手机应用的build.gradle文件中声明一个Gradle依赖,指向可穿戴应用模块:
dependencies { compile ‘com.google.android.gms:play-services:[email protected]‘ compile ‘com.android.support:support-v4:20.0.+‘‘ wearApp project(‘:wearable‘) }
点击Build > Generate Signed APK... 然后遵循屏幕上的指示来指定你的发布密钥存储(release keystore)并进行签名。
Android Studio自动导出已签名的嵌入了可穿戴模块的手机应用到你的项目根目录下。
此外,你可以在可穿戴和手机模块的build.gradle文件中创建一个signingConfig规则,以便使用你的发布密钥来进行签名。
两个应用模块都必须被签名,这样才能正常使用自动推送的发布功能。
android { ... signingConfigs { release { keyAlias ‘myAlias‘ keyPassword ‘myPw‘ storeFile file(‘path/to/release.keystore‘) storePassword ‘myPw‘ } } buildTypes { release { ... signingConfig signingConfigs.release }d } ... }
在Android Studio右边栏工具条中点击Gradle按钮,来编译这个手机应用并运行assembleRelease任务,
这个任务位置在:项目名称> 手机模块名称> assembleRelease.
注意:这个例子把密码嵌入了你的Gradle文件,也许是不合适的。要用系统变量来替换密码请参阅Configure signing settings。
分别对可穿戴和手机应用进行签名
如果编译过程要求对可穿戴应用进行单独签名,
你可以在手机模块的build.gradle文件中声明如下Gradle规则,以便嵌入已签名的可穿戴应用:
dependencies { ... wearApp files(‘/path/to/wearable_app.apk‘) }
你然后可以用任何一种方法来对手机应用签名(菜单项Android Studio Build > Generate Signed APK... 或者如上所述的Gradle signingConfig规则)。
手动打包(Package Manually)
如果你使用了其他开发工具,你也可以进行手工打包。
把已签名的可穿戴应用拷贝到你的手机应用项目的res/raw目录。我们将通过wearable_app.apk来引用这个APK。
创建一个res/xml/wearable_app_desc.xml文件,包含该应用的版本和路径信息。比如:
<wearableApp package="wearable.app.package.name"> <versionCode>1</versionCode> <versionName>1.0</versionName> <rawPathResId>wearable_app</rawPathResId> </wearableApp>
package, versionCode和versionName跟可穿戴应用AndroidManifest.xml文件中指定的一样。rawPathResId是API资源的静态变量名。
比如,对于wearable_app.apk,静态变量名为wearable_app。
添加一个meta-data标签到你的手机应用的<application>标签中,来引用wearable_app_desc.xml文件。
<meta-data android:name="com.google.android.wearable.beta.app" android:resource="@xml/wearable_app_desc"/>
编译手机应用并签名。
关闭资源压缩(Asset Compression)
许多编译工具会自动把添加到res/raw下面的文件自动进行压缩。不过由于这个可穿戴应用的APK已经被压缩过,如果再被其他工具重新压缩的话,安装器(Installer)将无法读取可穿戴应用而导致安装失败。
在手机应用中,PackageUpdateService日志记录了如下错误:"this file cannot be opened as a file descriptor; it is probably compressed."
Android Studio缺省情况下不会压缩你的APK文件,不过如果你使用了其他开发工具,确保不要进行二次压缩。
Android:创建可穿戴应用 - 打包发布