APP开发——目前APP开发的几种形式

关于APP开发目前已经过了火热的阶段,现在学习APP开发的人越来越多,但在实际的业务场景中,APP开发还是有一部分的市场需求。

所以,这里简单记录一下APP开发的几种思路和方案。

APP平台

首先,目前APP开发主要有两大平台,一个是安卓,一个是IOS,其他的比如微软的移动系统都没有太大市场,所以暂且不做讨论。

而基于安卓开发使用的主要语言是java,而IOS开始主要使用swift和oc(objects-c),oc是C语言的面相对象编程语言,它是C语言的超集。

手游开发

当然,APP开发还有其他的方式,比如手游开发中基于UNITY引擎,使用C++开发的王者荣耀等。

和unity游戏引擎对应的是unreal引擎,简称UE,也就是虚幻游戏引擎。

当然游戏引擎可以使用多种语言进行开发,比如js,c#,c++等。

APP开发方式

目前抛开手游开发之外,普通的APP开发大概有三种方式:

native开发

native开发就是基于安卓和Ios原生APP开发,使用的是安卓或ios官方提供的接口,也就是传统的app开发方式,其优点是性能最高,定制化最完善;缺点是移植性比较差,不同的平台需要编写多套不同的代码。比如使用native开发一款APP,这时安卓和ios要写两套完全一样的业务代码。

其主要使用的技术就是基于安卓的java和基于ios的swift和oc .

hybird app

混合APP开发,其实就是使用原生native+webview的方式进行开发。

因为h5跨平台的特性,可以一次开发,多平台部署,但又需要原生native的支持,所以才有了混合开发的模式。

混合模式开发,几个大厂有其各自不同的实现。

有hybird APP框架,其是基于jsbridge桥接的方式实现,使用jsbridge实现h5和native接口之间的双向通讯。

和hybird app类似的还有react native app实现,其是facebook为了解决hybird app的缺陷而设计的一款ui框架,原理和hybird app相同。

weex app是阿里开发的一款混合开发的框架,其功能和react native app大致相同,只是侧重点不同。

flutter APP是由谷歌开发的一款混合模式APP开发框架,其原理是自己设计了一种开发语言,然后渲染引擎能够把代码直接编译成原生的native代码,所以其具有更高的性能。

uni-app 是DCloud基于vue开发的一款APP框架,其功能和和hybird app差不多,只不过是使用vue进行开发。

其实说白了,所谓的混合开发就是基于native + h5来实现的,利用其不同的特性来实现代码的复用和性能的最优解。

还有一种native + 小程序的方式,是微信小程序带火的一种开发方式,其就是一种比native + h5开发更加定制化的一种方式。

所以,混合开发的核心技术就是在原生Native开发中加入webview技术,然后再实现webview和native接口之间的双向通讯过程,比如jsbridge就是典型的webview和native通讯的一种方式,比如微信小程序开发中的wx对象就是典型的jsbridge对象。

webapp

webapp就是纯前端开发的APP项目比如利用vue的移动端库,或者其他的移动端开发库实现的一种无需安装和上传应用商店的webapp,其特点是简单方便,一次开发多平台使用。

缺点是功能有限,性能比较差,只能满足一些特定场景的开发需求。

其核心思想就是利用浏览器跨平台的特性,把浏览器引擎打包中APP,直接在浏览器引擎中渲染h5页面。

关于混合APP开发模式原理可以看博客——Hybrid App技术解析 -- 原理篇 - 郭东东的文章 - 知乎

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/613515.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Python】使用tkinter设计开发Windows桌面程序记事本(3)

上一篇:【Python】使用tkinter设计开发Windows桌面程序记事本(2)-CSDN博客 下一篇: 作者发炎 本文章与"记事本项目"的第一篇文章类似。这里是重新创建新的"页面设置"子窗口,进行开发设计。 那为…

自动化测试的三种等待方式

自动化测试的等待方式主要有三种:强制等待、隐式等待和显式等待。 1. 强制等待(Sleep) 通过在代码中使用Thread.sleep()方法来实现的,该方法会阻塞当前线程的执行,程序会暂停指定的时间。 这种方式没有条件判断&…

SpringMVC 域对象共享数据

文章目录 2、使用ModelAndView向request域对象共享数据3、使用Model向request域对象共享数据4、使用map向request域对象共享数据5、使用ModelMap向request域对象共享数据6、Model、ModelMap、Map的关系7、向session域共享数据8、向application域共享数据 1、使用ServletAPI向re…

钉钉java登录

获取token :API Explorer 获取部门列表:获取部门列表 - 钉钉开放平台

通过wireshark抓取的流量还原文件(以zip为例)

wireshark打开流量包,通过zip关键字查找 追踪流可查看详细信息 选中media Type右键, 点击导出分组字节流选项 将生成的文件进行命名,需要时什么格式就以什么格式后缀

ffmpeg api-alac-text.c

generate_raw_frame 这个函数接受一个 frame_data 数组作为参数,用于存储音频数据。i 参数表示当前帧的索引,sample_rate 是采样率,channels 是声道数,frame_size 是帧大小。函数使用一个简单的算法生成音频数据,然后…

leetcode:LCR 159. 库存管理 III(python3解法)

难度:简单 仓库管理员以数组 stock 形式记录商品库存表,其中 stock[i] 表示对应商品库存余量。请返回库存余量最少的 cnt 个商品余量,返回 顺序不限。 示例 1: 输入:stock [2,5,7,4], cnt 1 输出:[2]示例…

探秘人工智能大会:揭示未来技术发展趋势与学习之道

随着科技的飞速发展,人工智能(AI)已经逐渐渗透到我们生活的方方面面。 参加人工智能大会,不仅能够洞察到最前沿的技术动态,还能与业界专家、学者交流思想,共同探讨AI的未来发展。本文将带您探秘人工智能大…

nuxt pm2使用、启动、问题解决方案

pm2简介 pm2是一个进程管理工具,可以用它来管理node进程,并查看node进程的状态,当然也支持性能监控,进程守护,负载均衡等功能,在前端和nodejs的世界中用的很多 pm2安装 安装pm2: $ npm install -g pm2查看pm2的安装…

TinyLlama-1.1B(小羊驼)模型开源-Github高星项目分享

简介 TinyLlama项目旨在在3万亿tokens上进行预训练,构建一个拥有11亿参数的Llama模型。经过精心优化,我们"仅"需16块A100-40G的GPU,便可在90天内完成这个任务🚀🚀。训练已于2023-09-01开始。项目地址&#…

2024在视频号开店怎么样?平台现状如下,有电商经验者优先!

我是王路飞。 现在开网店、做电商的平台有很多,但是有着绝对流量优势的,除了抖音之外就是视频号了。 但是抖音跟视频号相比,已经属于一个很成熟的平台了,商家们也开始进入到内卷阶段了。 所以,如果你们2024年想做电…

列表进入详情页的传参问题(vue的问题)

<router-link :to"{path: detail, query: {id: 1}}">前往detail页面</router-link> c页面的路径为http://localhost:8080/#/detail?id1&#xff0c;可以看到传了一个参数id1&#xff0c;并且就算刷新页面id也还会存在。此时在c页面可以通过id来获取对应…

[AutoSar]基础部分 RTE 07 VFB虚拟功能总线

目录 关键词平台说明一、VFB1.1VFB是什么1.1VFB的好处1.2VFB的坏处 二、VFB在ECU内部的描述2.1Components2.2 Port-Interfaces2.3 Port2.4 Compositions 关键词 嵌入式、C语言、autosar、VFB 平台说明 项目ValueOSautosar OSautosar厂商vector芯片厂商TI编程语言C&#xff0…

【Java后端】——JAVA后端学习路线

前言 hello小伙伴们&#xff0c;博主学后端也有一段时间了&#xff0c;感觉后端的知识确实比较多&#xff0c;对于逻辑思维的要求和基础要求也比较高。接下来咱们就一起捋一捋后端的学习路线&#xff0c;然后咱们就开始按顺序对每一块知识进行复习&#xff0c;总结和串联。 j…

bmp图像文件格式超详解

0 BMP简介 BMP(Bitmap-File)图形文件&#xff0c;又叫位图文件&#xff0c;是Windows采用的图形文件格式&#xff0c;在Windows环境下运行的所有图像处理软件都支持BMP图像文件格式。Windows系统内部各图像绘制操作都是以BMP为基础的。一个BMP文件由四部分组成&#xff1a; B…

Redis-Cluster 与 Redis 集群的技术大比拼

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 Redis-Cluster 与 Redis 集群的技术大比拼 前言概念与原理对比Redis-Cluster&#xff1a;基于哈希槽的分布式解决方案传统 Redis 集群&#xff1a;主从架构下的数据分片方式 搭建与配置的异同Redis-Cl…

OpenCV入门04:调整图像对比度和亮度

教程开源 本教程开源&#xff0c;地址&#xff1a;https://gitee.com/zccbbg/opencv_study 图像的亮度和对比度说明 亮度&#xff1a; 亮度是指图像中像素的整体明亮程度。在数字图像中&#xff0c;每个像素都有一个灰度值&#xff0c;表示其亮度水平。亮度越高&#xff0c;像…

Elasticsearch DSL指令请求前缀解析:快速参考指南【记录】

简单记录&#xff0c;后续整理补充 介绍&#xff1a; Elasticsearch的DSL&#xff08;Domain Specific Language&#xff09;提供了丰富的指令和操作&#xff0c;用于执行各种搜索、索引和管理任务。在使用这些指令时&#xff0c;需要使用适当的请求前缀来标识所需的操作。本文…

数据分析-Pandas如何轻松处理时间序列数据

Pandas-如何轻松处理时间序列数据 时间序列数据在数据分析建模中很常见&#xff0c;例如天气预报&#xff0c;空气状态监测&#xff0c;股票交易等金融场景。此处选择巴黎、伦敦欧洲城市空气质量监测 N O 2 NO_2 NO2​数据作为样例。 python数据分析-数据表读写到pandas 经典…

omics简介

omics简介 公众号pythonic生物人写的系列文章介绍了组学的相关内容&#xff0c;本文仅做了一个简单的知识框架&#xff0c;供后面遇到对应问题&#xff0c;快速查阅。欢迎大家去关注原作者。 这篇文章也非常值得阅读&#xff1a;肿瘤NGS行业新人如何构建自己的知识体系-思考问题…