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

    文章

    3985

    浏览量

    133070
  • 鸿蒙系统
    +关注

    关注

    183

    文章

    2642

    浏览量

    69343

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    工业级触摸一体机考试阅卷设备的应用探索

    在教育信息化快速推进的当下,考试阅卷作为教学评估的关键环节,其效率与准确性直接影响教育教学质量。工业级触摸一体机凭借自身独特优势,逐渐考试阅卷设备领域占据重要地位,为传统阅卷模式带来了革命性变革。​
    的头像 发表于 10-14 10:05 218次阅读

    定制主板_迷你小型Android主板基于MTK核心板方案

    这款迷你主板的核心是联发科MT8768平台,采用八核架构和12nm先进制程工艺,主频高达2.0GHz。标配4GB内存与64GB存储,加上11系统的深度优化,它能够
    的头像 发表于 08-12 19:59 596次阅读
    定制<b class='flag-5'>安</b><b class='flag-5'>卓</b>主板_迷你小型Android主板基于MTK<b class='flag-5'>安</b><b class='flag-5'>卓</b>核心板方案

    释放潜力:树莓派上运行系统实现多样化应用!

    为什么要在树莓派上运行系统?系统以其庞大的应用生态系统和用户友好的界面而闻名,它能够将树莓派转变为功能强大的设备,能够处理从媒体消费到轻量级计算和物联网应用等各种任务。优势高度
    的头像 发表于 07-05 08:33 912次阅读
    释放潜力:<b class='flag-5'>在</b>树莓派上运行<b class='flag-5'>安</b><b class='flag-5'>卓</b>系统实现多样化应用!

    如何实现与恩智浦i.MX RT1170的无线投屏与控制

    Scrcpy是一款免费开源的软件,支持将端屏幕投影到其他设备,并支持被投屏设备对的反向控制。基于ADB工具,
    的头像 发表于 06-26 09:53 1937次阅读
    如何实现<b class='flag-5'>安</b><b class='flag-5'>卓</b>与恩智浦i.MX RT1170的无线投屏与控制

    工控机为什么备受青睐?聚徽一文解码工业智能升级中的多维度赋能者

    工业4.0与数字化转型的交汇点,工控机凭借其开放架构、灵活扩展与智能计算能力,正成为工业设备智能化改造的核心载体。相较于传统工控机,
    的头像 发表于 06-09 14:59 535次阅读

    与 Windows 系统的手持工业平板电脑,该如何选择?

    众多企业面临的关键问题。 一、系统特性剖析 (一)系统 开源与定制灵活性:系统基于开源架构,这意味着设备制造商和开发者能够根据工业场
    的头像 发表于 06-04 11:02 777次阅读

    请问CYUSB3014支持驱动吗?

    [i]请问CYUSB3014 支持设备吗?应该使用什么驱动呢
    发表于 05-30 07:12

    有人接rk3576的视频硬件解码的实现么?

    ,机顶盒是Android 14,CPU是RK3576,商家说是支持视频硬解,但是没有提供更具体的资料了。 我们是想在这个硬件基础上实现视频硬解,看是否有相关经验的人来接 关于需求可看下面:*附件:6 需求介绍.pdf
    发表于 05-19 09:52

    工控一体机智慧农业设备中的应用场景

    工控一体机凭借其强大的计算能力、开放的操作系统、良好的兼容性和便捷的人机交互特性智慧农业设备中具有广泛的应用场景,以下是一些典型的应用场景及详细分析:
    的头像 发表于 05-16 11:57 462次阅读
    <b class='flag-5'>安</b><b class='flag-5'>卓</b>工控一体机<b class='flag-5'>在</b>智慧农业设备中的应用场景

    工业级一体机智能机器人中的应用

    工业级一体机智能机器人中的应用,凭借其高稳定性、灵活扩展性及开源生态优势,正逐步成为工业自动化与智能服务场景中的核心控制平台。以下从技术适配性、应用场景及行业价值三个维度展开分析
    的头像 发表于 04-25 11:51 553次阅读

    工业主板智能电子秤设备中的应用

    随着工业自动化与智能化需求的增长,工业主板凭借其高可靠性、灵活性和扩展性,逐渐成为智能电子秤设备的核心控制单元。以下从技术特性、应用场景、功能实现及优势等方面详细分析工业
    的头像 发表于 04-18 16:00 593次阅读
    工业<b class='flag-5'>安</b><b class='flag-5'>卓</b>主板<b class='flag-5'>在</b>智能电子秤设备中的应用

    请问rk3566有没有办法装12

    各位老哥,rk3566的sdk是11,有没有办法装12呢
    发表于 03-22 19:46

    工控平板电脑环境监测设备中的运用

    工控平板电脑环境监测设备中的运用主要体现在以下几个方面: 一、耐用性与可靠性 工控平板电脑通常具有坚固耐用的外壳设计,如铝合金面板
    的头像 发表于 02-28 18:10 696次阅读
    <b class='flag-5'>安</b><b class='flag-5'>卓</b>工控平板电脑<b class='flag-5'>在</b>环境监测设备中的运用

    自制 AirTag,支持/鸿蒙/PC/Home Assistant,无需拥有 iPhone

    ,模拟发出 FindMy 蓝牙广播。 这样制作出的定位标签,不需要苹果手机绑定,支持/鸿蒙/PC/Home Assistant 查看标签的位置。 制作教程 我 gitee
    发表于 02-25 11:22

    鸿蒙Flutter实战:14-现有Flutter 项目支持鸿蒙 II

    引言 之前的文章鸿蒙Flutter实战:09-现有Flutter项目支持鸿蒙中,介绍了如何改造项目,适配鸿蒙平台。 文中讲述了整体的理念和
    发表于 12-26 14:59