在安卓应用上扩展鸿蒙特性
鸿蒙混合打包,在现有安卓应用的基础上扩展鸿蒙的特性,以最快的速度布局鸿蒙生态!
我尽可能把每一步的改动作为一个 commit,这样方便大家看代码。
开发步骤
①准备 Android 工程
本示例中,我用 AS 建了一个 Hello World 工程。
②Android 工程改造
④配置鸿蒙工程
这一步,有三点要注意的:
签名就不要转了,直接重新创建,只要秘钥和别名和 Android 的保持不变。(如果在模拟器上运行,不配置签名也能跑起来)
鸿蒙的 version 和 apk 的 version 要一致。
config.json 的 app 节点下,增加 relatedBundleName 而不是 originalName。
config.json 里都支持哪些字段,没必要看文档,只要按住 ctrl 点击相应的字段,就可以看到,比如点击 app 字段。
⑤卡片
本示例中,我用 DevEco Studio 建了一个名为 mycard 的 module,并且勾选"show in service center",这样这个卡片就可以显示在"服务中心"了。
有几点需要说明:
必须签名(我的验证结果是这样的),所以要有真机。我提交的签名文件是绑定我的机器,所以你要更新自己的签名文件。
卡片的 config.json 的 app 字段要和 entry 的 app 字段完全一致(relatedBundleName 字段只在 entry 里有就可以,卡片里不写也行)。
多 module 的工程,运行的时候要勾选 Deploy Multi Hap Packages。
为什么把卡片放在独立的 module 里?因为混合打包下,entry 只是一个壳,我们可以把 entry 当作 apk 的占位,所以 entry 里的内容都不会打到 appj 里,鸿蒙相关的功能代码我们只能放在独立的 module 中。(当然,这也是我的验证结果,最终要等华为官方更明确的文档解释)
⑥鸿蒙打开 apk 中的 activity
请参考京东 APP 鸿蒙版上架实践:
⑦鸿蒙打开 apk 中的 activity,并传递参数
鸿蒙 IntentParams 对应安卓 Bundle,相应的 api:
//ohos put:
IntentParams params = new IntentParams();
params.setParam("androidFile1","androidFile1----");
intent.setParams(params);
//android put:
Intent intent = new Intent();
intent.putExtra("androidFile1","androidFile1----");
//get:
intent.getStringExtra("androidFile1");
鸿蒙 Uri 对应安卓 Uri,鸿蒙 Entity 对应安卓 Category,相应的 api:
//ohos put:
Set
entities.add("entity.user.c1");
Operation operation = new Intent.OperationBuilder()
.withUri(Uri.parse("https://www.baidu.com"))
.withEntities(entities)
.build();
//android put:
Intent intent = new Intent();
intent.setData(Uri.parse("https://www.baidu.com"));
intent.addCategory("entity.user.c1");
//get:
intent.getData();
intent.getCategories();
常见问题(欢迎评论区补充)
Failure[INSTALL_FAILED_INCONSISTENT_BUNDLE_VERSION]
混合打合时要和 apk 的 version 一致。
Failure[INSTALL_FAILED_RESTRICTED_PERMISSIONS_NOT_GRANTED]
没有继承 HarmonyApplication 或者没有配置到 AndroidManifest.xml 中。
Failure[INSTALL_FAILED_INTERNAL_ERROR]
确认一下:
在AndroidManifest.xml中,向根节点下增加。
向application节点下新增子节点。
<meta-data android:name="multiFrameworkBundle" android:value="true" /
来源:鸿蒙技术社区
- 分享
- 举报
-
浏览量:4519次2021-09-09 13:48:45
-
浏览量:4115次2021-07-27 15:48:40
-
浏览量:4048次2021-07-15 09:42:01
-
浏览量:3452次2019-12-05 18:03:06
-
浏览量:2378次2020-09-07 19:59:03
-
浏览量:1579次2019-06-04 09:25:24
-
浏览量:1779次2020-02-29 09:07:58
-
浏览量:1880次2019-07-08 09:36:56
-
浏览量:5402次2021-08-16 18:26:14
-
浏览量:4855次2019-12-26 18:08:07
-
浏览量:4157次2021-03-30 15:42:23
-
浏览量:2486次2020-11-14 09:37:35
-
浏览量:4874次2021-07-23 15:35:44
-
浏览量:3244次2020-08-14 18:10:33
-
浏览量:4989次2021-06-28 13:50:26
-
浏览量:3080次2021-07-19 10:11:54
-
浏览量:1959次2018-02-27 20:01:13
-
浏览量:1484次2018-06-06 14:29:55
-
浏览量:2407次2017-10-25 10:58:26
-
广告/SPAM
-
恶意灌水
-
违规内容
-
文不对题
-
重复发帖
独孤九剑
感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明