Android:创建可穿戴应用 - 打包公布
打包可穿戴应用(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:5.0.+@aar'
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右边栏工具条中点击Gradlebutton,来编译这个手机应用并执行assembleRelease任务,
这个任务位置在:项目名称> 手机模块名称> assembleRelease.
注意:这个样例把password嵌入了你的Gradle文件。或许是不合适的。要用系统变量来替换password请參阅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文件,只是假设你使用了其它开发工具,确保不要进行二次压缩。
參考链接: