为什么鸿蒙应用的安装包是.apk?

您所在的位置:网站首页 鸿蒙系统如何安装apk文件包 为什么鸿蒙应用的安装包是.apk?

为什么鸿蒙应用的安装包是.apk?

#为什么鸿蒙应用的安装包是.apk?| 来源: 网络整理| 查看: 265

今天看到社区问答板块的一个问题:“为什么鸿蒙应用的安装包是 .apk?”引起了我的思考,在回答过程中内容越来越多,也就单独起了这一片文章进行一个讨论,发表一下自己的拙见。也希望大家在读完这篇文章后,会有所收获。

相关概念解析

①HAP

在 HarmonyOS 开发文档的术语定义里:HarmonyOS Ability Package,一个 HAP 文件包含应用的所有内容,由代码、资源、三方库及应用配置文件组成,其文件后缀名为 .hap。也即 HAP 是 Ability 的部署包。

②应用程序包

APP Pack(.app),HarmonyOS 的用户应用程序包以 APP Pack 形式发布。

在华为运用分发文档的 HarmonyOS 应用中:最终打包上传的 HarmonyOS 应用软件包应为 .app 格式,且不能超过 2GB。

③APK

全称:Android application package,Android 应用程序包,是 Android 操作系统使用的一种应用程序包文件格式,用于分发和安装移动应用及中间件,其文件后缀名为 .apk。

④混合包开发模式

华为论坛回复:在现有 Android 应用向 HarmonyOS 应用改造的过程中,为使开发者迅速迁移到 HarmonyOS 生态,HarmonyOS 提供了混合打包方案,可以将原 Android 应用与 HarmonyOS FA 混合打包成满足 HarmonyOS 要求的应用。

⑤应用上架与发布

流程为签名→构建→发布。从 Android 应用改造为 HarmonyOS 应用的流程:构建鸿蒙版本的 apk 包(集成专用 jar 包)→配置鸿蒙工程(混入 apk 文件配置→签名改造→增加配置文件属性→设置启动入口)→实现 Android-HarmonyOS 互调用(安卓调用鸿蒙需要集成专用 jar 包,鸿蒙调用安卓组件是本身就支持的,而目前只能调用部分安卓功能)。

HarmonyOS 应用发布流程:开发者中心创建鸿蒙应用→选择软件包类型(Android 应用、HarmonyOS 应用、快应用、PC 应用)→添加项目→上传构建的 .app 软件包→等待审核。

若想学习如何改造详见:《京东APP鸿蒙版上‍架实践》

⑥分布式调度相关问题解答

.hap 文件解压后会有 .apk 文件的?A:hap 和 apk 只是打包压缩格式。

⑦深扒一下鸿蒙 2.0 Beta 里的 HAP 如何运行

鸿蒙 2.0 提供的 SDK,对外的接口完全屏蔽了 Android,HAP 里解压出来的 APK 还是一个遵守 Android 标准的 App 包,Apk 用来引导,然后使用 ClassLoader 加载用户程序。

至少在虚拟手机层面,是有一个 Android 运行时存在的,根据 Log 看到的信息,虚拟手机层面,应该还是有一个 Linux Runtime 存在的。

整个 hap 还是由 Android Runtime 加载并运行的,但鸿蒙应该是在外部加了一个定制的类加载路径,用来加载 hap 里的 classes.dex 文件中带的类。按照正常的程序来理解,HAP 不能算是系统原生应用。

⑧HUAWEI DevEco Studio 日常 Q&A

⑨App Bundle 应用与 Dynamic Ability 解决方案

Dynamic Ability 是 AppGallery Connect(简称 AGC)基于 Android App Bundle 技术实现的动态加载特性的一套解决方案,第三方应用通过集成 Dynamic Ability SDK,可以在需要时动态从华为应用市场下载应用的某个特性或语言包,从而减少不必要的网络流量与终端设备存储空间消耗说明:此方案目前只支持客户端 SDK-Android。且在使用说明中软件包选择必须选用“APK(Android 应用)”。

这个解决方案就回答了为什么鸿蒙版这些应用这么小的原因。

相关实际验证

①AGC 现行项目创建实际情况

创建应用软件包类型只有两个选项-APK,快应用**,添加应用平台**有五个选项。

②夜神模拟器运行《微博极速鸿蒙版》

③手机上验证与比对设备名称:Honor V10HarmonyOS 版本:2.0.0应用来源:华为应用商店(1)应用商店的鸿蒙应用与其他应用的区别图片右下角有 HMOS 的标记:

应用体积小:

(2)应用的详情比较微博:

微博极速鸿蒙版:

关于文件类型:application/vnd.android.package-archive 的解释:

APK 文件基于 ZIP 文件格式,它的互联网媒体类型是:

application/vnd.android.package-archive

互联网媒体类型是:(Internet media type),原名叫“Type MIME”或“MIME”或在头信息中各种协议之后的内容种类(Content-type),他有两部分用来在 Internet 上鉴别数据格式,是给互联网上传输的内容赋予的分类类型。

vnd = vendor stackoverflow,以“vnd”开头的是商家信息,archive(译为档案文件)。

application/vnd.android.package-archive解释为:文件类型为application, ZIP 文件格式 android 厂商提供的 .apk 文件,用于存储。相关拓展如下:

文件扩展名:是操作系统用来标注文件格式的一种机制,非强制,是一种标注,比如你用 photoshop 可以打开一个 psd 图像文件。

把这个文件扩展名改为 txt,再拖到 photoshop 窗口里,还是一样能打开,说明内容完全没有变化,变化的只是双击时的默认打开方式。

MIME:多用途互联网邮件扩展(Multipurpose Internet Mail Extensions),在访问网页时,MIME type 帮助浏览器识别一个 HTTP 请求返回的是什么内容的数据,应该如何打开、如何显示。

简而言之:一个是操作系统中标注文件的,一个是邮件和 HTTP 协议中用来标注网络数据的。

W3C 规定:MIME:Multipurpose Internet Mail Extensions),是描述消息内容类型的因特网标准。MIME 消息能包含文本、图像、音频、视频以及其他应用程序专用的数据。④ACG 应用创建(1)创建 HarmonyOS 应用

可以发现:添加运用选择的平台是 HarmonyOS,但包名输入 .apk 也可以正常创建,软件包类型:APP。

(2)创建 Android 应用

软件包类型:APK

相关结论

标注信息的格式的角度:

MIME 类型:鸿蒙应用和其他应用无异,均是application/vnd.android.package-archive

文件扩展名:《微博极速鸿蒙版》目前来看安装包的文件拓展名均是 .apk

现在下载鸿蒙应用,长按图标是没有分享选项的:

软件包与运行平台的角度:

软件包:安卓应用是 APK,鸿蒙应用是 APP

运行平台:鸿蒙应用的运行平台是 HarmonyOS

综述如下:

①HarmonyOS 支持 Android 应用改造为 HarmonyOS 应用,可以实现 Android-HarmonyOS 互调用。

②可以发布 APK 应用、RPK 应用、App Bundle 应用、PC 应用。

③目前不支持在手机上直接安装 app 包,需要在应用市场上架才可以安装。

④纯 HarmonyOS 应用是指基于 HarmonyOS 开发的应用,支持 HarmonyOS 特性的应用是指基于 Android 开发的应用,但是使用了 HarmonyOS 的特性。

⑤针对鸿蒙版应用提交为什么这么小的原因:根本上是使用了Dynamic Ability解决方案发布的App Bundle应用。

Dynamic Ability 是 AppGallery Connect(简称 AGC)基于 Android App Bundle 技术实现的动态加载特性的一套解决方案。

功能:动态加载特性和语言包-根据用户构造的请求,Dynamic Ability SDK 与华为应用市场交互,动态加载应用相关的特性和语言包。

⑥针对鸿蒙版应用的安装包后缀名为 .apk 的问题。

解释 1:与 Dynamic Ability 解决方案有关,AppBundle 中。

Bundle 原理是 Base.apk+feature2-xhdpi.apk+feature2-armabi.apk+feature2-en.apk 来组合形成的一个 APK 提供给这种手机配置的用户下载,所以当我们分享应用的时候分享的时 Base.apk。

解释 2:这里的 Base.apk 其实起的是一个引导作用,就像 HAP 解压出来也有 .apk 文件一样。

毕竟至少在虚拟手机层面,是有一个 Android 运行时存在的,整个 HAP 还是由 Android Runtime 加载并运行的。

👇 扫码报名周三的鸿蒙直播课 👇

👇 点击关注鸿蒙技术社区 👇了解鸿蒙一手资讯

求分享

求点赞

求在看



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3