安卓应用混合打包拥有鸿蒙特性
将apk(需改名为xxx-entry.apk)和jks文件拷贝到根目录下,并在 entry module的build.gradle 中,添加混入apk的配置。记住别名和密码 , 密码弄稍微复杂点,后面Harmony工程也需要设置相同的别名和密码(鸿蒙工程签名对密码有些要求)。创建mycard模块,其实IDE已经做了很多操作,例如服务卡片是否要在 服务中心显示,卡片的样式,卡片的持久化等等。在用户与
介绍
本篇 旨在使用混合打包使得现有的安卓应用能够快速拥有鸿蒙的特性,布局鸿蒙生态
效果图
打开仍是android应用内容,拥有了 服务卡片的鸿蒙特性。

开发步骤
准备安卓工程
新建一个包名为 com.hoperun.harmonyMix 的 helloworld工程。
签名(Generate Signed APK)
记住别名和密码 , 密码弄稍微复杂点,后面Harmony工程也需要设置相同的别名和密码(鸿蒙工程签名对密码有些要求)。
本例中的别名/密码分别为key0/harmony123456
安卓工程进行改造
引入鸿蒙sdk中的abilityshell_ide_java.jar。 jar自行拷贝,位置:HarmonySdk\java\2.x.x.xx\api\abilityshell_ide_java.jar

原有的Application,继承更换为 HarmonyApplication
在AndroidManifest.xml中,向根节点下增加
向application节点下新增子节点
编译出app-debug.apk,同时,准备好签名生成的harmonymix.jks文件。
至此,安卓工程的改造已经结束。
配置鸿蒙工程
创建HelloWorld鸿蒙工程,包名最好最好最好 和Androd工程一致。
保证entry/src/main/config.json中的 version.code & version.name 和 Android一致 (Android 默认是 1/1.0)。
追加apiVersion节点
将apk(需改名为xxx-entry.apk)和jks文件拷贝到根目录下,并在 entry module的build.gradle 中,添加混入apk的配置。
运行鸿蒙工程
直接运行会报错,提示不存在entry下的启动页面了。 这是因为混合打包的本质就是用apk替代entry模块。
在桌面找到我们的应用,点击可正常打开,页面为Android启动页

此时运行的是鸿蒙工程,但是内容任然是APK的内容。
支持鸿蒙特性之服务卡片
创建卡片module
保证mycard/src/main/config.json中的 version.code & version.name 和 Android一致 (Android 默认是 1/1.0)。 和entry一样设置
追加apiVersion节点。 和entry一样设置
创建mycard模块,其实IDE已经做了很多操作,例如服务卡片是否要在 服务中心显示,卡片的样式,卡片的持久化等等。
好了,重新运行下,看下 长按应用图标是不是能够看到已经支持的鸿蒙特性之服务卡片。

看来 鸿蒙工程不签名是不行了。。。
鸿蒙工程签名
Generate Key and Csr, 生成p12和csr文件。 别名和密码 需要和Androd签名时一致。
在AppGalleryConnect中申请 调试签名Profile
-
创建项目
-
在用户与访问中,新增证书,过程中用到了刚才的获取的xxx.csr文件,下载获取xxx.cer文件
-
在我的项目中,管理HAP Provision Profile,添加Profile,下载获取xxx.p7b文件
鸿蒙工程设置签名
设置运行配置,勾选 deploy Multi Hap Packages
再次运行Entry,一切OK。
点击卡片如何快速跳转到Android
卡片创建所在类 CardAbility,一般(除非自己去设置点击)点击卡片,会跳转到CardAbility。 若是想立马跳转到Android 的某个页面。 可以在 onstart 中这样做:


更多推荐



所有评论(0)