news 2026/2/28 2:54:41

安卓应用混合打包拥有鸿蒙特性

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
安卓应用混合打包拥有鸿蒙特性

介绍
本篇 旨在使用混合打包使得现有的安卓应用能够快速拥有鸿蒙的特性,布局鸿蒙生态

效果图
打开仍是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

  1. 创建项目

  2. 在用户与访问中,新增证书,过程中用到了刚才的获取的xxx.csr文件,下载获取xxx.cer文件

  3. 在我的项目中,管理HAP Provision Profile,添加Profile,下载获取xxx.p7b文件

鸿蒙工程设置签名

设置运行配置,勾选 deploy Multi Hap Packages

再次运行Entry,一切OK。

点击卡片如何快速跳转到Android

卡片创建所在类 CardAbility,一般(除非自己去设置点击)点击卡片,会跳转到CardAbility。 若是想立马跳转到Android 的某个页面。 可以在 onstart 中这样做:


版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/27 0:16:51

Cypress 入门指南:从安装到执行测试全流程

Cypress 是一款现代化的前端自动化测试工具,提供友好的 Test Runner 和丰富的 API,能够快速构建和执行测试用例。本文将带你从 Cypress 安装、文件结构、基本测试实现,到多种方式执行测试的完整流程。一、启动 Cypress Test RunnerCypress Te…

作者头像 李华
网站建设 2026/2/25 14:39:56

Open-AutoGLM部署全流程解析,资深架构师绝不外传的7大核心技巧

第一章:Open-AutoGLM部署全流程解析环境准备与依赖安装 部署 Open-AutoGLM 前需确保系统具备 Python 3.9 及 CUDA 11.8 环境。推荐使用 Conda 管理虚拟环境,以隔离依赖冲突。创建独立环境:conda create -n openglm python3.9激活环境&#xf…

作者头像 李华
网站建设 2026/2/27 0:48:23

碱性水电解槽气液两相流模拟:氢气在KOH溶液中的奇幻之旅

碱性水电解槽气液两相流模拟,模拟氢气在KOH溶液中运动积聚现象,软件采用fluent或者comsol。 满足基本的学习和研究需求最近在研究碱性水电解槽气液两相流模拟,主要聚焦于氢气在KOH溶液中的运动积聚现象,选用的模拟软件是fluent或者…

作者头像 李华
网站建设 2026/2/25 14:22:55

JavaScript 可选链操作符(Optional Chaining)详解

JavaScript可选链操作符(?.)是ES2020的重要特性,简化了深层对象属性的访问。它允许安全访问可能不存在的属性、数组元素或方法调用,避免因undefined/null导致的错误。关键特点包括:1)基本语法obj?.prop、…

作者头像 李华
网站建设 2026/2/25 23:01:15

JavaEE框架程序设计核心知识点入门:从Maven到Spring Boot实战指南

JavaEE框架程序设计核心知识点入门:从Maven到Spring Boot实战指南摘要:本文系统梳理JavaEE企业级开发中必备的主流框架与工具链,涵盖Maven、MyBatis、Spring(IoC/AOP/事务)、Spring MVC、Spring Boot等核心技术&#x…

作者头像 李华
网站建设 2026/2/27 9:30:04

Open-AutoGLM到底有多强?:3大核心能力颠覆AI模型部署方式

第一章:Open-AutoGLM到底有多强?Open-AutoGLM 是一个开源的自动化通用语言模型框架,旨在通过模块化设计和高效推理引擎,实现跨场景任务的零样本或少样本自主执行。其核心优势在于融合了提示工程自动化、动态上下文感知与多工具调用…

作者头像 李华