关于“鸿蒙应用安装包是.apk”与“鸿蒙版应用体积小”的思考 |
您所在的位置:网站首页 › 微博鸿蒙版下载图片 › 关于“鸿蒙应用安装包是.apk”与“鸿蒙版应用体积小”的思考 |
【本文正在参与优质创作者激励】 引言今天看到社区问答板块的一个问题引起了我的思考,在回答过程中内容越来越多,也就单独起了这一片文章进行一个讨论,发表一下自己的拙见。也希望大家在读完这篇文章后,会有所收获。 原问答地址 一、相关概念解析 1.HAP在HarmonyOS开发文档的术语定义里:HarmonyOS Ability Package,一个HAP文件包含应用的所有内容,由代码、资源、三方库及应用配置文件组成,其文件后缀名为.hap。也即HAP是Ability的部署包。 2.应用程序包APP Pack(.app),HarmonyOS的用户应用程序包以APP Pack形式发布。在华为运用分发文档的HarmonyOS应用中:最终打包上传的HarmonyOS应用软件包应为.app格式,且不能超过2GB。 3.APK全称:Android application package,Android应用程序包,是Android操作系统使用的一种应用程序包文件格式,用于分发和安装移动应用及中间件,其文件后缀名为.apk。 4.混合包开发模式华为论坛回复:在现有Android应用向HarmonyOS应用改造的过程中,为使开发者迅速迁移到HarmonyOS生态,HarmonyOS提供了混合打包方案,可以将原Android应用与HarmonyOS FA混合打包成满足HarmonyOS要求的应用 5.应用上架与发布流程为签名->构建->发布。从Android应用改造为HarmonyOS应用的流程:构建鸿蒙版本的apk包(集成专用jar包)->配置鸿蒙工程(混入apk文件配置->签名改造->增加配置文件属性->设置启动入口)->实现Android-HarmonyOS互调用(安卓调用鸿蒙需要集成专用jar包,鸿蒙调用安卓组件是本身就支持的,而目前只能调用部分安卓功能)。HarmonyOS应用发布流程:开发者中心创建鸿蒙应用->选择软件包类型(Android应用、HarmonyOS应用、快应用、PC应用)->添加项目->上传构建的.app软件包->等待审核。若想学习如何改造详见: 京东APP鸿蒙版上架实践 6.【QA帖】第7期:分布式调度相关问题解答:20. .hap文件解压后会有.apk文件的? A:hap 和 apk 只是打包压缩格式。 7.社区博主的解析再来深扒一下鸿蒙2.0Beta里的HAP如何运行 深入解析鸿蒙2.0手机Beta版的开发和设计 博主结论:鸿蒙2.0提供的SDK,对外的接口完全屏蔽了Android,HAP里解压出来的APK还是一个遵守Android标准的App包,Apk用来引导,然后使用ClassLoader加载用户程序,至少在虚拟手机层面,是有一个Android运行时存在的,根据Log看到的信息,虚拟手机层面,应该还是有一个Linux Runtime存在的。整个hap还是由Android Runtime加载并运行的,但鸿蒙应该是在外部加了一个定制的类加载路径,用来加载hap里的classes.dex文件中带的类。按照正常的程序来理解,HAP不能算是系统原生应用。 8.HUAWEI DevEco Studio 日常Q&A(20200805更新)Dynamic Ability业务介绍 Dynamic Ability是AppGallery Connect(简称AGC)基于Android App Bundle技术实现的动态加载特性的一套解决方案,第三方应用通过集成Dynamic Ability SDK,可以在需要时动态从华为应用市场下载应用的某个特性或语言包,从而减少不必要的网络流量与终端设备存储空间消耗 说明:此方案目前只支持客户端SDK-Android。且在使用说明中软件包选择必须选用“APK(Android应用)”。![]() 这个解决方案就回答了为什么鸿蒙版这些应用这么小的原因 二、相关实际验证 1.AGC现行项目创建实际情况:创建应用软件包类型只有两个选项-APK,快应用**,添加应用平台**有五个选项。 设备名称:Honor V10 HarmonyOS版本:2.0.0 应用来源:华为应用商店 (1)应用商店的鸿蒙应用与其他应用的区别 图片右下角有HMOS的标记![]() ![]() 关于文件类型:application/vnd.android.package-archive的解释 1.APK 文件基于 ZIP 文件格式,它的互联网媒体类型是:application/vnd.android.package-archive 2.互联网媒体类型是:(Internet media type),原名叫“Type MIME”或“MIME”或在头信息中各种协议之后的内容种类(Content-type),他有两部分用来在Internet上鉴别数据格式,是给互联网上传输的内容赋予的分类类型。 3.vnd = vendor stackoverflow,以“vnd”开头的是商家信息,archive(译为档案文件)。 4.application/vnd.android.package-archive解释为:文件类型为application, ZIP 文件格式android厂商提供的.apk文件,用于存储。 相关拓展: 1.文件扩展名:是操作系统用来标注文件格式的一种机制,非强制,是一种标注,比如你用photoshop可以打开一个psd图像文件。把这个文件扩展名改为txt,再拖到photoshop窗口里,还是一样能打开,说明内容完全没有变化,变化的只是双击时的默认打开方式。。MIME:多用途互联网邮件扩展(Multipurpose Internet Mail Extensions),在访问网页时,MIME type帮助浏览器识别一个HTTP请求返回的是什么内容的数据,应该如何打开、如何显示。 1.1简而言之:一个是操作系统中标注文件的,一个是邮件和HTTP协议中用来标注网络数据的。 2.W3C规定:MIME:Multipurpose Internet Mail Extensions),是描述消息内容类型的因特网标准。MIME 消息能包含文本、图像、音频、视频以及其他应用程序专用的数据。 4.ACG应用创建(1)创建HarmonyOS应用 可以发现:添加运用选择的平台是HarmonyOS,但包名输入.apk也可以正常创建,软件包类型:APP (2)创建Android应用 软件包类型:APK (一)标注信息的格式的角度 (1)MIME类型:鸿蒙应用和其他应用无异,均是application/vnd.android.package-archive (2)文件扩展名:《微博极速鸿蒙版》目前来看安装包的文件拓展名均是.apk 现在下载鸿蒙应用,长按图标是没有分享选项的 (二)软件包与运行平台的角度 (1)软件包:安卓应用是APK,鸿蒙应用是APP (2)运行平台:鸿蒙应用的运行平台是HarmonyOS (三)综述 (1)HarmonyOS支持Android应用改造为HarmonyOS应用,可以实现Android-HarmonyOS互调用。 (2)可以发布APK应用、RPK应用、App Bundle应用、PC应用 (3)目前不支持在手机上直接安装app包,需要在应用市场上架才可以安装 (4)纯 HarmonyOS 应用是指基于 HarmonyOS 开发的应用,支持 HarmonyOS 特性的应用是指基于 Android 开发的应用,但是使用了 HarmonyOS 的特性 (5)针对鸿蒙版应用提交为什么这么小的原因:根本上是使用了Dynamic Ability解决方案发布的App Bundle应用。(Dynamic Ability是AppGallery Connect(简称AGC)基于Android App Bundle技术实现的动态加载特性的一套解决方案,功能:动态加载特性和语言包-根据用户构造的请求,Dynamic Ability SDK与华为应用市场交互,动态加载应用相关的特性和语言包。) (6)针对鸿蒙版应用的安装包后缀名为.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 |