Hybrid APP混合开发的一些经验和总结

article/2025/10/8 19:46:22

Hybrid APP混合开发的一些经验和总结

写在前面:

由于业务需要,接触到一个Hybrid APP混合开发的项目。当时是第一次接触混合开发,有一些经验和总结,欢迎各位一起交流学习~

1、混合开发概述

Hybrid App主要以JS+Native两者相互调用为主,从开发层面实现“一次开发,多处运行”的机制,成为真正适合跨平台的开发。Hybrid App兼具了Native App良好用户体验的优势,也兼具了Web App使用HTML5跨平台开发低成本的优势。

目前已经有众多Hybrid App开发成功应用,比如美团、爱奇艺、微信等知名移动应用,都是采用Hybrid App开发模式。

2、移动应用开发的三种方式比较

移动应用开发的方式,目前主要有三种:

  • Native App: 本地应用程序(原生App)
  • Web App:网页应用程序(移动web)
  • Hybrid App:混合应用程序(混合App)

 

图1:三种移动应用开发方式

如图1所示,三种移动应用开发方式具体比较如表2所示:

 

表2:三种移动应用开发方式比较

3、混合开发应用场景

(1)折中考虑——如果企业使用 Hybrid 开发方法,就能集Native 和web两者之所长。一方面,Native 让开发者可以充分利用现代移动设备所提供的全部不同的特性和功能。另一方面,使用 Web 语言编写的所有代码都可以在不同的移动平台之间共享,使得开发和日常维护过程变得集中式、更简短、更经济高效。

(2)内部技能——许多企业都拥有Web 开发技能。如果选择 Hybrid 开发方法,在合适解决方案的支持下,Web 开发者只要仅仅运用 HTML、CSS 和 JavaScript 等 Web 技能,就能构建 App,同时提供 Native 用户体验。

(3)考虑未来——HTML5的可用性和功能都在迅速改进。许多分析师预测,它可能会成为开发前端 App 的默认技术。如果用 HTML 来编写 App 的大部分代码,并且只有在需要时才使用 Native 代码,公司就能确保他们今天的投入在明天不会变得过时,因为 HTML 功能变得更丰富,可以满足现代企业一系列更广泛的移动要求。

4、混合开发框架和层次结构图

混合开发结构图

 

1)移动终端web壳(以下简称“壳”):壳是使用操作系统的 API 来创建嵌入式 HTML的渲染引擎。壳主要功能是定义Android应用程序与网页之间的接口,允许网页中的JavaScript调用Android应用程序,提供基于web的应用程序的Android API,将Web嵌入到Android应用程序中。

2)前端交互js:包括基础功能js和业务功能js。

3)前端适配器:适配不同的终端:Pad、android、ios、wap。

混合开发层次结构图

 

1) 页面加载

  1. 页面容器(XdjaWebView)类,是整个框架的核心和基础,主要用来实现页面的加载,以及对页面加载完成后的后续操作提供支持,例如:文件下载、js支持、文件上传,数据缓存、进度条等;
  2. 页面加载接口:对页面的加载过程进行跟踪;例如:页面加载进度百分比,页面开始加载、页面加载出错、页面加载完成等

2) JS调用Android功能

  1. 网页:页面调用js接口中的具体方法;
  2. JS接口:调用android接口中一一对应的具体方法;
  3. android接口:直接调用框架中集成的功能,或者通过框架接口在应用系统中自定义功能(例如,退出、返回键响应等);其中升级功能的返回结果或者过程信息,可以在客户端中通过升级接口获取。
  4. XdjaClientHelper:如果需要将框架中的方法返回值通知给js方法,你们可以通过XdjaClientHelper类来实现;

3)应用系统调用JS功能

应用系统通过XdjaClientHelper来实现对js功能的调用;

4) 应用系统调用HDF功能

应用系统可以调用框架集成的工具类、消息提示框、升级模块以及手机上常见的打电话发短信等功能。

5、性能优化

1) 单个页面

登录、首页以及共用代码(样式文件、JS文件、页面加载loading代码)等放在index页面里。页面展示前显示fake页面(过场页面),首屏加载完后,fake页面消失。

页面虽然按照业务模块分为不同的页面,但是展示的时候会在同一个页面即index页面展示。具体的说,需要某个功能页面的时候将页面以AJAX的形式请求到index页面,使用完毕删除。

使用一个页面,公共的CSS和JS只会加载一次。

2)CSS、JavaScript

在本次混合开发框架开发中,CSS全部写在一个文件里。

CSS和Jquery Mobile的相关文件写在index页面头部,其余公用JS等写在index页面底部。防止JS阻塞页面加载。各业务逻辑JS写在各业务页面的底部。

开发完成后,CSS和JS需要进行压缩,减少用户使用时初次请求时间。

3) @font-face

本次混合开发中使用@font-face来实现图标字体化,统一控制图标的颜色和大小。

使用@font-face优点:减少页面因使用图片而带来的流量,大大缩短页面响应时间;图标可以随意改变大小和颜色,而不会导致失真。

使用时注意:所有的图标需要是矢量的SVG格式。

使用限制:只适用于纯色扁平化的图标。背景图等比较复杂的图片仍然使用图片。

4) 本地存储LocalStorage

HTML5本地存储LocalStorage,在混合开发中主要用来存储最近查询记录等。

拿首页最近查询来说,用户每次在综合查询中点击一个模块,通过LocalStorage将图标和对应的功能名字存储起来,如果用户不清除,LocalStorage中的数据是一直存在本地的。下次打开应用的时候从LocalStorage中读取最近查询记录等。

使用LocalStorage的好处是,不进行后台交互,速度快。

5)异步AJAX

本次开发中多处实现都是通过使用AJAX。首先,显示页面时,先显示框架,然后异步加载内容;其次,分页功能中,先显示部分简项列表,上拉获取更多内容。再次,每打开一个新功能,页面以AJAX的形式获取新页面的内容并展示出来。

异步AJAX,交互体验更好。从性能的角度考虑,速度也更快。

转载于:https://www.cnblogs.com/yuanyingke/p/6060150.html


http://chatgpt.dhexx.cn/article/r2F7TSx2.shtml

相关文章

【Python编程入门】引言

What is Python? Python 是由 Guido van Rossum 工程师于1991年所开发,是一种高级的、解释性的、交互式的通用型编程语言。它被设计成具有高度可读性,是一门动态编程语言,并且具备自动垃圾回收机制。Python支持多种编程范式,其中…

python编程入门到实践pdf,python编程入门课 视频

初学者学Python编程如何快速入门? 谷歌人工智能写作项目:小发猫 初学python入门都需要具备那些条件? Python相对比较简单,零基础也能学typescript在npm安装后检测不到。系统学习的话,一般4-6个月左右能学好。python是一门语法优…

Python编程:从入门到实践(基础知识)

第一章 起步 计算机执行源程序的两种方式: 编译:一次性执行源代码,生成目标代码解释:随时需要执行源代码 源代码:采用某种编程语言编写的计算机程序 目标代码:计算机可执行,101010 编程语言…

Python从入门到实践电子书,python编程入门到实践pdf

《Python编程从入门到实践》txt下载在线阅读,求百度网盘云资源 《Python编程》([美]埃里克马瑟斯(Eric Matthes))电子书网盘下载免费在线阅读资源链接:链接: 提取码:6vcz 书名&a…

《我的世界》Python编程入门(1)Minecraft(我的世界)Python编程环境搭建

一、Minecraft环境搭建(手动模式) 环境搭建分为三个部分: 1.1、Java环境 Minecraft原始版本是用Java开发的,因此,想运行Minecraft需要安装jdk。安装Java jdk8相对来说兼容性比较好。 (1)安装…

Python编程

1.华氏温度到摄氏温度的转换 从键盘读取华氏温度,转换成摄氏温度并输出,保留1位小数。 转换公式为:c5/9*(f-32), 其中,f为华为温度,c为摄氏温度。 输入格式: 华氏温度 输出格式: 摄低温度 输入样例: 100 结尾无…

Python编程自学入门学习指南

对于初学者来说,入门很重要,这关系到初学者是从入门到精通还是从入门到放弃。 以下是结合Python的学习经验整理出来的学习路径,主要有四个阶段。 NO.1新手入门阶段,学习基础知识。 一般来说,找一本可靠的书&#x…

python编程入门(适合初学者)

python编程入门 特别说明:这是早期的学习笔记,最近试用Python 3.8.1( Dec. 18, 2019),发现安装过程及基本功能差不多。或许对新手还有点用处,就未作大修改发布于此。 IDLE是开发python程序的基本IDE&#x…

python编程入门自学

作为一个什么都不懂的小白,学习编程的第一步当然是掌握一门编程语言。本节就来介绍常见的编程语言的学习路线。 首先,先明确一个观点,作为一个程序员,只会一种编程语言是远远不够的。最好精通1~2门语言,基本掌握其它所…

Python编程 介绍(入门)

作者简介:一名在校计算机学生、每天分享Python的学习经验、和学习笔记。 座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​​ 目录 一.pytnon安装地址 二.python介绍 1.Python来源 2.Python LOGO(蟒…

编程语言python入门-Python基础教程,Python入门教程(非常详细)

Python 英文本意为"蟒蛇”,直到 1989 年荷兰人 Guido van Rossum (简称 Guido)发明了一种面向对象的解释型编程语言(后续会介绍),并将其命名为 Python,才赋予了它表示一门编程语言的含义。…

Python编程入门教程

http://www.tzcoder.cn/acmhome/news.do?methodnewsDetail&id2c903bb4796f8da101798391db600b2e 本博客原文地址:Python编程入门教程(以在线评测平台为载体) - 暴力都不会的蒟蒻 - 博客园,原文体验更佳 如果你是一名浙江2020级及以后的高中生要学…

python零基础入门教程(非常详细),从零基础入门到精通,看完这一篇就够了

前言 本文罗列了了python零基础入门到精通的详细教程,内容均以知识目录的形式展开。 第一章:python基础之markdown Typora软件下载 Typora基本使用 Typora补充说明 编程与编程语言 计算机的本质 计算机五大组成部分 计算机三大核心硬件 操作系统 第二…

python入门基础(完整)

安装及配置 使用的编程地址:编程地址python基础相关文件安装: 链接:https://pan.baidu.com/s/1ZAhPIJ4_KAgWRHzX1lD3dQ 提取码:nxis pycharm配置环境 将原本pycharm中不可见的显示出,需要勾选以下三个:…

Python编程基础(快速入门必看)

Python编程基础 一、Python语言基本语法 Python是一个结合了解释性、编译性、互动性和面向对象的高级程序设计语言,结构简单,语法定义清晰。Python最具特色的就是使用缩进来表示代码块,不需要使用大括号{}。缩进的空格数是可变的&#xff0…

IPv4地址分类(A类 B类 C类 D类 E类)

5类地址(A类 B类 C类 D类 E类) IPv4地址由四段组成,每个字段是一个字节,8位,最大值是255,, IPv4地址由两部分组成,即网络地址和主机地址。网络地址表示其属于互联网的哪一个网络,主…

计算机网络中的A类、B类、C类地址的划分

原创不易,麻烦点个关注,点个赞,谢谢各位。 A类地址的第一组数字为1~126。注意,数字0和 127不作为A类地址,数字127保留给内部回送函数,而数字0则表示该地址是本地宿主机,不能传送。 范围:1.0.0.1到126.255.255.254 B类地址的第一组数字为128~191。 范围:128.0.0.1…

【计算机网络】B类IP地址

做笔试的时候遇到这个B类IP地址,做个笔记: B类IP地址是指:从 128.0.0.0 到 191.255.255.255 的单址广播 IP 地址 B类主机地址范围:128.0.0.1到191.255.255.254。 前两个八位二进制指明网络,后两个八位二进制指明网络上的主机。 172.16.0.0到…

IP地址常见分类:A类、B类、C类、D类、E类

文章目录 前言IPv4地址表示方法IPv6地址表示方法IPv4地址常见分类 前言 虽然IPv6渐渐出现在了人们的视线之中,但是目前来看IPv4仍然占据着主导地位,在日常的编码过程中两者都会接触到,但实际上两者在使用范围、消息头结构等细节上有诸多不同…

SPSS多元线性回归结果分析

输出下面三张表 第一张R方是拟合优度 对总回归方程进行F检验。显著性是sig。 结果的统计学意义,是结果真实程度(能够代表总体)的一种估计方法。专业上,p 值为结果可信程度的一个递减指标,p 值越大,我们越不能认为样本中变量的关联是 总体中各变量关联的可靠指标。p 值是…