首页 > 其他分享 >跨端技术概述

跨端技术概述

时间:2023-08-01 10:23:42浏览次数:37  
标签:渲染 -- 技术 JS 概述 跨端 组件 WebView

0x1 跨端

  1. 跨端背景

    PC 端(WLM)、移动端(Android/iOS)、web 端、IoT 设备(车载设备、手表)

    常见痛点:

    1. 各端功能区别不多,但需要单独配置开发人员
    2. 开发、维护成本高
    3. Android、iOS 发版周期长
  2. 跨端技术方案目标

    1. 加快研发效率,降低学习成本,提高多端一致性
    2. 增强用户体验,提高稳定性,优化性能
    3. 支持动态下发,满足日益增长的业务需求

0x2 跨端技术方案介绍

技术方案 视图层 逻辑层 优点 缺点
Hybrid WebView WebView JS thread 开发成本低/CSS全集/一致性好 性能中等
原生渲染 原生组件 JS Engine 性能好 CSS子集/一致性一般
自渲染 Skia Dare VM 性能最好/一致性好 CSS子集/Dart生态一般/开发成本高
小程序 WebView+原生组件 JS Engine 开发成本低/CSS全集/一致性好 性能较好
  1. Hybrid 方案

    基于 WebView 渲染,通过 JS Bridge 把一部分系统能力开放给 JS 调用

    graph LR A(JavaScript)-->B(Bridge) B--Platform-->C1(WebView) C1-->C2(Canvas/Events) B--Services-->D1(Location/Bluetooth/Audio/Sensors/Camera/...)
  2. 原生渲染方案

    使用 JS 开发,通过中间层桥接后使用原生组件来渲染 UI 界面

    • React Native

      由 Facebook 发布的一款开源的 JS 框架,通过 JS 和 React 来开发跨平台的移动应用

      graph LR A(JavaScript)-->B(Bridge) B--Platform-->C1(OEM widgets) C1-->C2(Canvas/Events) B--Services-->D1(Location/Bluetooth/Audio/Sensors/Camera/...)
  3. 自渲染方案

    利用 Skia 重新实现渲染管线,不依赖原生组件

    • Flutter

      由 Google 发布的一款开源用于开发框架

  4. 小程序方案

    使用小程序 DSL+JS 开发,通过中间层桥接后调用原生能力,使用 WebView 来渲染 UI 界面

0x3 基于小程序跨端实践

  1. 快速开发一个小程序

    1. 下载小程序开发者工具
    2. 开发、调试
    3. 上传
  2. 性能优化

    1. 优化意义

      1. 留住用户
      2. 提升转化率
      3. 提升用户体验
    2. 性能指标

      graph LR A(Loading)-->B(FP<br/>First Paint) B-->C(LCP<br/>Largest Contentful Paint)
    3. 优化手段

      1. 启动性能体验
        1. 减少包体积
          1. 合理使用分包
          2. 移除无用文件
          3. 控制包内静态资源
        2. 减少同步逻辑
          1. 优先使用异步 API
          2. 避免启动时运行过多同步代码
        3. 更早的展示首屏数据
          1. 尽早调用关键 API 和请求
          2. 接入数据预取
          3. 避免非必要的 reLaunch
        4. 合理缓存数据
          1. 网络数据缓存
          2. API 数据缓存
        5. 图片优化
          1. 选择合适的图片格式
          2. 进行合理的压缩
          3. 使用 CDN 并开启缓存
        6. 其他
          1. 框架骨架屏
          2. 占位组件
      2. 运行时性能体验
        1. 合理使用 setData
          1. 减少发送频率
          2. 动画不使用 setData
        2. 合理使用自定义组件
          1. 合理的拆分组件数量
          2. 只注册当前使用的组件
          3. 同步修改初始 data
        3. 合理监听处理事件
          1. 合理监听处理 scroll 事件
          2. 去掉不必要的事件绑定
        4. 内存优化
          1. 及时解绑事件监听
          2. 及时清理定时器
        5. 导航栏适配
          1. 适当开启自定义导航栏
          2. 关键信息避开状态栏和胶囊按钮
        6. X 分屏适配
          1. 通过 onResize 监听显示区域变化
          2. 不使用 JS 设置 ScrollView 高度
    4. 性能评分工具

      1. Audits
      2. Trace

首发于跨端技术概述 | 青训营笔记

-End-

标签:渲染,--,技术,JS,概述,跨端,组件,WebView
From: https://www.cnblogs.com/SRIGT/p/17595725.html

相关文章

  • 【技术积累】Linux中的命令行【理论篇】【二】
    ag命令命令介绍ag命令是一个用于在Linux系统中进行文本搜索的工具。它是基于SilverSearcher的改进版本,具有更快的搜索速度和更强大的功能。ag命令的基本用法是在指定的目录中搜索指定的关键字。例如,要在当前目录中搜索关键字"example",可以使用以下命令:agexampleag命令会递......
  • 6种主流的Hybrid 技术框架与方案
    移动操作系统在经历了诸神混战之后,BlackBerryOS、SymbianOS、WindowsPhone等早期的移动操作系统逐渐因失去竞争力而退出。目前,市场上主要只剩下安卓和iOS两大阵营,使得iOS和安卓工程师成为抢手资源。然而,由于两者系统的差异,开发同一个应用需投入两倍的工作量,不仅增加了人力成本,而......
  • 你确定不来看看?谷歌技术团队打造的Kotlin协程入门+进阶实战
    前言尽管协程并不是一个新的话题,但他是一个很吸引人的话题,协程在这些年里被重新发现了很多次,特别是当需要某种形式的轻量级线程和/或寻找“回调地狱”的解决方案时。Kotlin协程的概念协程是Coroutine的中文简称,co表示协同、协作,routine表示程序。协程可以理解为多个互相协作的程序......
  • j2me在线音乐播放器技术分析
    j2me在线音乐播放器技术分析1.在线音乐播放器:音乐资源存储在服务器端,手机客户端通过无线网络读取服务器端音乐资源进行播放,播放器具有播放、暂停、快进、快退、循环播放、显示播放进度、时间等功能.2.技术实现由于j2me占时不支持边播放边下载音乐资源功能,所以需采用另一种方式实......
  • 逆向开发-hook技术
    Hook(钩子)简介Hook:意为钩子。在技术中用途多样化,但多数都用来改变原有程序执行顺序或拦截原程序指定信息、代码或数据。这技术其实无处不在,比如我们所熟知的任意杀毒软件中。这些杀软在各种敏感的系统函数中,下了各种钩子。当有程序或病毒调用该函数时,首先会经过杀软的检测函......
  • 祝贺!openGauss社区技术委员会主席李国良当选2023 IEEE FELLOW
    祝贺!openGauss社区技术委员会主席李国良当选2023IEEEFELLOW[openGauss](javascript:void(0);)2022-11-2917:56发表于广东近日,IEEE(InstituteofElectricalandElectronicEngineers)公布了2023年度Fellow名单,全球共有319位学者入选,华人学者占104位(约占总人数的31%)。其中,openGa......
  • 活动回顾|阿里云 Serverless 技术实战与创新成都站回放&PPT下载
    7月29日“阿里云Serverless技术实战与创新”成都站圆满落幕。活动受众以关注Serverless技术的开发者、企业决策人、云原生领域创业者为主,活动形式为演讲、动手实操,让开发者通过一个下午的时间增进对Serverless技术的理解,快速上手Serverless,拥抱云计算新范式带来的技术......
  • Facebook反思HTML5技术
    最近,Facebook掌门人扎克伯格表示,Facebook在过去几年中的最大错误在于对HTML5押注过多,忽视了原生应用,同时他对HTML5的长期趋势依然看好。针对扎克伯格的言论,国内开发社区对此展开了广泛的讨论,其中不乏真知灼见。 张克军认为HTML5非常适合移动互联网,但是Facebook的用户量太大,难以......
  • 2023年等保2.0测评技术要求
    一、技术要求:1.供应商应把握和理解国家对该类项目的具体要求,对等级保护2.0相关政策标准本身有较深的认识。2.供应商组建的测评组须至少配备4名测评师,测评组长应为高级测评师。测评组至少包括1名高级测评师和1名中级测评师。3.供应商应具有完善的工作流程,有计划、按步骤地开展测......
  • 活动回顾|阿里云 Serverless 技术实战与创新成都站回放&PPT下载
    7月29日“阿里云Serverless技术实战与创新”成都站圆满落幕。活动受众以关注Serverless技术的开发者、企业决策人、云原生领域创业者为主,活动形式为演讲、动手实操,让开发者通过一个下午的时间增进对Serverless技术的理解,快速上手Serverless,拥抱云计算新范式带来的技术红......