论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com
»
论坛
›
软件与程序人生
›
移动端开发
›
鸿蒙
›
鸿蒙harmony-cordova研发方案详解
鸿蒙harmony-cordova研发方案详解
祗疼妳一个
金牌会员
|
2025-2-23 15:45:40
|
显示全部楼层
|
阅读模式
楼主
主题
934
|
帖子
934
|
积分
2804
Android、Ios和HarmonyOS APP研发分析
Android研发语言Java、Ios研发语言objective-c, HarmonOS研发语言ArkTs和C/C++,写了第一句,就会有人反驳,Android和Ios也支持C/C++语言,封装成动态库so,然后调用就可以了,说的也没有错误,很多APP接纳此方案。我这里主要分析的是官方提供的框架,Android的SDK只有Java语言编写的SDK,Ios提供的只有objective-c的sdk,鸿蒙则不同,在鸿蒙的开辟者网站中,大部分接口不光提供ArkTs接口,同时也提供了C/C++接口,以是可以说鸿蒙是支持ArkTS和C/C++研发也不为过的,如果您精通C/C++就可以在harmonyOS平台上,大有作为的。我想说的重点不在这里,重点是三个研发平台接纳的是不同的研发语言,对于一个移动端研发的程序员,如果要精通三个平台研发,确实很难,仅精通一个平台以实属不易了。然面对一个公司,开辟和运营一款APP按照传统原生研发,APP的团队至少在3到5人的研发才可以胜任,粗略估算一年的团队费用在100万左右的投入,对于大厂5人以下的研发团队,完全可以担当,但是对于一个创业型的小公司,这个投入势必难以担当,在加上国内的政策性本钱,APP研发的门槛已是很高了。利用原生研发,小型创业团队极难在短时间内收回研发的本钱。
利用codova肴杂式研发
具以上原因,为了低落研发本钱,如果一次研发可以或许同时在三个平台利用就好了,以是现在出现了不少框架来解决这个问题,然很多框架仍必要单独学习,且不够高效。我们所必要的是对于公司现有的开辟团队,不必要学习新知识的环境下就可以在APP端研发,且研发的APP可以联合操作系统,直接调用原生API;目前可以或许满足这几个条件的只有cordova了。cordova是利用webview为UI交互,利用WEB技术的JS、CSS就可以完成研发,且可以调用原生API,也可以调用原生page页面,可以说现在所有的程序员都可以掌握这门技术,无需在多学习知识,公司无论巨细,现有研发团队就可以胜任,哪怕研发团队只有一人也可以完成。对于公司来说极大的节省了本钱,但是对于一个程序员,由于利用JS、CSS,就很不屑于利用这个技术研发APP,不过我可以肯定的说,现在大多APP都利用的肴杂研发的。以是对于小厂,直接利用后台的Java程序员就可以兼任前端的APP研发,并且支持三个平台。
C/C++研发鸿蒙cordova
Cordova的前世今生不再讲述,然而自harmonyOS问世以来,cordova的美国官方维护者Apache基金会,并没有打算适配harmonyOS系统,靠APP为生的公司,实在大家都知道已经在安卓和苹果应用市场,说竞争的头破血流也不为过的,由于排名竞争激烈,很多公司已无力运营,安卓和苹果应用市场的APP已处于僵死状态,不再更新和维护了,现在又多了一个鸿蒙操作系统,是否在鸿蒙上可以分的一本羹呢?多数人在观望,一部分人已经举措了(2023年到2024年)。
然新的问题来了,基于cordova研发的肴杂APP,鸿蒙系统并没有官方的cordova,我们公司的APP也是基于cordova研发的。我们从2023年10月开始抽调公司人力研发harmony-cordova。从当前看,Apache基金会的cordova的研发团队在6人左右。我们只设置3人的研发团队,因为我要做的不是创新,我们只是遵守cordova官方的尺度研发鸿蒙的即可。
做过鸿蒙研发的都知道,鸿蒙的开辟者网站上,提供的接口基本是两套,一套是ArkTs,一套是C/C++,说一句实在话,对于一个履历丰富的程序员,直觉告诉自己,在框架性底层研发只有选择C/C++才能实现一个高效、灵活、扩展性好的底层系统。因为cordova除了自身的SDK外,还有很多插件,另外用户也可以自界说研发插件,如果接纳ArkTS研发,必然有部分插件难以高效率的实现功能或者说就实现不了,例如热更新插件利用ArkTs将无法实现功能,就连cordova自己的SDK也难以高效率实现。如果您也正在着手研发公司自己内部利用的cordova,请选择C/C++和ArkTS联合的方式研发,SDK自己接纳C/C++研发,牵涉到UI层,利用ArkTS研发,鸿蒙和其他平台相比,刚强就是跨语言研发和跨语言调用。
harmony-cordova研发的技术方案简述
harmony-cordova是利用C/C++语言对webview的扩展研发,具体工作流程如下:
APP启动
APP启动后,根据config.xml的插件设置实例化插件对象,并创建线程池和内存池,线程池是负责应用端的https(SSL/TLS)哀求的。
跨域访问
harmony-cordova是webview内核的扩展研发,修改了哀求方式,因此harmony-cordova不存在跨域访问,应用层可以访问任何域名,因此为了安全您必要利用白名单插件,在config.xml设置白名单域名。
内存池
内存池是用在哀求和吸收信息时利用的内存,内存池接纳分页式内存管理,初始化是1个页面2M内存,根据实际的哀求,内存池不停增加页面,内存的内存页都可以复用,也就是用的时候去内存池里面拿内存,用完后再把内存页放进去,避免每次哀求在堆上申请内存。
线程池
线程池是负责https哀求的,webview后台开启线城池,主要是负责应用层的http(s)协议通讯的。
session复用
https哀求实际就是http协议的SSL/TLS加密通讯,如果您相识SSL/TLS通讯,就应该知道,在建立SSL/TLS通讯链路的时候,必要服务端和客户端直接进行捂手,TLS1.3版本的通讯中,也是必要1TTR的交互,harmony-cordova逼迫利用session复用实现捂手的0TTR,极大进步客户端和服务端的通讯效率。
独立文件缓存
cordova sdk接纳自己的独立资源文件缓存,对于网页的图片、视频、语音等harmony-cordova接纳独立的文件缓存,每次哀求优先从缓存获取资源。
插件研发
harmony-cordova自带部分插件利用C/C++和ArkTs研发,所有插件遵守cordova官方尺度,另外也提供了自界说插件研发,所有插件的调用入口是C/C++提供,根据功能在必要调用ArkTS时,C/C++调用ArkTS侧。
利用方法
参考鸿蒙三方库中央
OpenHarmony三方库中央仓
https://ohpm.openharmony.cn/#/cn/detail/@magongshou%2Fharmony-cordovademo程序
harmony-cordova: 鸿蒙版cordova的demo示例程序
https://gitee.com/magongshou/harmony-cordova
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
祗疼妳一个
金牌会员
这个人很懒什么都没写!
楼主热帖
容斥原理
信息收集之 端口扫描
高考是人生旅途的一处驿站
ASP.NET Core依赖注入系统学习教程:Se ...
教你30分钟快速搭建直播间
Java EnumMap get()方法具有什么功能呢 ...
【C++】拷贝构造函数的调用时机 ...
多态详解
java运算符(超详细!!!) ...
JetBrains RubyMine 2022 for Mac(Ruby ...
标签云
运维
CIO
存储
服务器
浏览过的版块
移动端开发
Nosql
Mysql
IOS
数据安全
前端开发
快速回复
返回顶部
返回列表