0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

在现有安卓应用的基础上扩展鸿蒙的特性

OpenHarmony技术社区 来源:鸿蒙技术社 作者:没用的喵叔 2021-06-30 09:39 次阅读

鸿蒙混合打包,在现有安卓应用的基础上扩展鸿蒙的特性,以最快的速度布局鸿蒙生态!

本项目只是《京东 APP 鸿蒙版上架实践》这篇文章的一个验证,让更多的兄弟们可以少走弯路。

我尽可能把每一步的改动作为一个 commit,这样方便大家看代码。

开发步骤

①准备 Android 工程

本示例中,我用 AS 建了一个 Hello World 工程。

②Android 工程改造

这一步,有两点要注意的:

abilityshell_ide_java.jar 在这里,自行 copy 到安卓工程中。

注意 apk 文件名必须是 xxx-entry.apk 这种格式。

③准备鸿蒙工程

本示例中,我用 DevEco Studio 建了一个 Hello World 工程。

④配置鸿蒙工程

这一步,有三点要注意的:

签名就不要转了,直接重新创建,只要秘钥和别名和 Android 的保持不变。(如果在模拟器上运行,不配置签名也能跑起来)

鸿蒙的 version 和 apk 的 version 要一致。

config.json 的 app 节点下,增加 relatedBundleName 而不是 originalName。

config.json 里都支持哪些字段,没必要看文档,只要按住 ctrl 点击相应的字段,就可以看到,比如点击 app 字段。

9b775520-d91a-11eb-9e57-12bb97331649.jpg

⑤卡片

本示例中,我用 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《String》 entities = new HashSet《》();

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中,向根节点下增加。

《uses-feature android:name=“zidane.software.ability” android:required=“false” /》

向application节点下新增子节点。

《meta-data android:name=“permZA” android:value=“true” /》

《meta-data android:name=“multiFrameworkBundle” android:value=“true” /》

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Android
    +关注

    关注

    12

    文章

    3921

    浏览量

    127089
  • 鸿蒙系统
    +关注

    关注

    183

    文章

    2634

    浏览量

    66189

原文标题:在安卓应用上扩展鸿蒙特性

文章出处:【微信号:gh_834c4b3d87fe,微信公众号:OpenHarmony技术社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    AIC3262 CODEC能否下运用?

    我们有多路音频混音应用需求(双路MIC. LINE IN, I2S 音源输入,耳机输出监听及混音后录音),针对混音还有通过DSP 作混响, 10段EQ应用, 该装置需要在环境下运行。不知TI AIC3262 CODEC能否
    发表于 10-29 08:19

    微软版Edge浏览器测试“扩展V2”新特性

    来自消息源 Leopeva64 的图片显示,版 Edge 现已支持安装 Dark Reader(强迫网页切换至深色模式)、Global Speed(全局调节视频音频播放速度)及沉浸式翻译等多种桌面插件。
    的头像 发表于 05-27 16:22 867次阅读

    谷歌设备测试ChromeOS,仍存挑战,但具备可行性

    紧接着,Android Authority 发布了手机运行 ChromeOS 的首次实机演示。视频显示,Chromium OS Pixel 7 Pro 启动迅速,初始网络连接
    的头像 发表于 05-14 15:57 404次阅读

    谷歌正探索设备运行ChromeOS

     多年以来,谷歌为实现这两款操作系统的协同工作付出诸多努力,如 Chromebook 内置运行环境,允许其运行应用,反之则不可。
    的头像 发表于 05-14 10:12 372次阅读

    华为鸿蒙操作系统发展战略:2024年完成安应用全面迁移

    徐直军指出,2024 年,鸿蒙操作系统的主要任务是打造原生应用生态。目前,鸿蒙操作系统已基本适配各种终端设备,但在应用开发方面仍依赖生态。
    的头像 发表于 04-18 15:38 741次阅读

    面对如今的就业环境,vs鸿蒙……

    的一波 鸿蒙热潮 。鸿蒙相关职位数,投递人数,分别增至去年同期的 2.6倍、4.5倍 。而在过去,才是开发者的“主流”,鸿蒙也不过才诞生
    的头像 发表于 03-01 15:49 534次阅读
    面对如今的就业环境,<b class='flag-5'>安</b><b class='flag-5'>卓</b>vs<b class='flag-5'>鸿蒙</b>……

    没有“成份“的鸿蒙还能行吗?

    属于自己的手机操作系统。早期鸿蒙诞生之初,鸿蒙是兼容的。有很多网友就此认定鸿蒙是“套壳
    的头像 发表于 02-26 13:56 468次阅读
    没有“<b class='flag-5'>安</b><b class='flag-5'>卓</b>成份“的<b class='flag-5'>鸿蒙</b>还能行吗?

    纯血鸿蒙系统,拿什么与、iOS比?

    减少了40%的冗余代码后,HarmonyOS NEXT 的系统流畅度、能效、纯净安全特性等提升显著。 所以鸿蒙是作为开发者近10年的最具有潜力的发展道路,那么鸿蒙的底层技术到底是什么呢?它的技术点有
    发表于 02-21 21:04

    华为鸿蒙系统怎么样 华为鸿蒙系统和系统的区别

    和稳定性。与此同时,鸿蒙系统与系统架构、功能和生态系统方面都存在一些区别和特点,下面将详细探讨这些方面的差异。 首先,华为鸿蒙系统
    的头像 发表于 02-02 14:54 1612次阅读

    鸿蒙OS和开源鸿蒙什么关系?

    内核,其他功能都以模块的形式存在。     华为用的是鸿蒙OS 我们都知道,华为手机的鸿蒙OS是可以运行软件的,是因为系统中有
    的头像 发表于 01-30 15:44 1065次阅读
    <b class='flag-5'>鸿蒙</b>OS和开源<b class='flag-5'>鸿蒙</b>什么关系?

    质疑鸿蒙系统的是什么人群?为什么要杠

    2019 年,HarmonyOS 鸿蒙操作系统正式发布。但接下来很长的时间里,鸿蒙都是自研的基础上,内置一个 AOSP 架构。目的很简单,就是让 HarmonyOS 兼容
    的头像 发表于 01-22 22:20 302次阅读
    质疑<b class='flag-5'>鸿蒙</b>系统的是什么人群?为什么要杠

    华为发布原生版鸿蒙操作系统:不再兼容

    华为1月18日的发布会上,正式推出了HarmonyOS NEXT鸿蒙星河版操作系统,并面向开发者开放申请。这一新版本的鸿蒙操作系统标志着华为操作系统领域迈出了重要的一步,不再与
    的头像 发表于 01-19 15:28 1391次阅读

    鸿蒙系统和的区别 鸿蒙系统有什么特别之处

    了分布式架构,可以不同设备实现无缝连接和协同工作。而系统采用的是集中式架构,设备之间的连接和协同工作相对较为困难。 鸿蒙系统具备高度
    的头像 发表于 01-18 11:45 1.1w次阅读

    鸿蒙系统和的区别哪个好用

    鸿蒙系统和系统是目前市场上两个比较流行的手机操作系统,它们很多方面都有所不同。本文将从多个方面比较鸿蒙系统和
    的头像 发表于 01-11 11:15 1859次阅读

    手机支持外接otg扩展坞 然后使用ch340+ch9329控制电脑吗

    手机支持外接otg扩展坞 然后使用ch340+ch9329控制电脑吗
    发表于 12-30 17:11