龙空技术网

大型互联网平台技术架构(一):用户端介绍

程序员地瓜 70

前言:

此刻兄弟们对“java的图形用户界面”大约比较重视,各位老铁们都需要知道一些“java的图形用户界面”的相关资讯。那么小编也在网摘上汇集了一些关于“java的图形用户界面””的相关资讯,希望同学们能喜欢,看官们一起来学习一下吧!

本系列文章,主要介绍大型互联网公司产品的技术架构。如果你是前端开发、移动端开发、后端开发、测试、运维等互联网技术岗位同学,或将来准备从事互联网公司技术岗位的同学,阅读本系列文章,可以帮助你对互联网基础技术有一个总体的认识,找到自己技术薄弱的地方进一步精进。

概述

一个互联网产品,如某宝、某东、某多,从技术架构视角看来,可以分为用户端和服务端两部分。用户端就是用户使用的手机App、小程序等,服务端就是提供图片、视频、信息数据等的后端系统。

用户端应用运行在用户的设备上,如手机、平板电脑等,当需要获取信息时,如一张图片、一个视频、一段文字,就会与服务端进行交互。当然,有些信息会存储在用户端设备上,则不需要和服务端交互。

由于互联网产品的用户极多,服务端为了能够服务好每一个用户,对各种能力进行了划分,每种能力都有一套独立的系统提供,这些划分后的系统再进行协同、聚合,为用户端提供低延迟、高可靠的服务。

本篇文章主要对用户端进行一个概要介绍,下一篇对服务端进行一个概要介绍,之后的篇章将对服务端技术架构进一步展开介绍。

用户端最常见的设备包括智能手机、平板和电脑,最常见的用户端应用形态包括App、小程序、浏览器网页和桌面客户端,下面将对这几种设备和应用形态分别进行介绍。

用户端设备介绍

智能手机

智能手机拥有标准的操作系统、基本的计算机硬件(CPU、内存、存储、网络等),和一台普通电脑拥有的能力基本相当,能够运行丰富的上层应用。当下,主流的智能手机主要分为安卓和苹果2类,前者使用基于Linux Kernel的Android操作系统,后者使用的是类UNIX的IOS系统(Linux也是一种类UNIX系统)。在Android系统上开发应用,主要使用Java和Kotlin(一种运行在JVM平台的语言)语言;在IOS系统上开发应用,主要使用Object-C和Swift语言。

平板电脑

平板电脑和智能手机的操作系统和硬件基本是一致的,主要区别包括:

平板电脑屏幕尺寸更大。平板电脑拥有一些专有的App,可以更好的发挥大屏的优势。大部分手机App都会适配平板电脑,基本和手机共享App生态。部分平板电脑不能插SIM卡,没有电话功能,只能使用WiFi网络上网;也有部分平板电脑支持安装SIM卡,但只有网络数据能力,仍然没有电话功能;这样的设计,也符合平板电脑的定位。

个人电脑

个人电脑大家就比较熟悉了,不论是笔记本电脑,还是台式电脑,都使用标准的X86架构的硬件。当前,Apple的电脑已经开始使用ARM架构(智能手机和平板电脑基本都使用的是ARM架构)的硬件了,并且目前的趋势是个人电脑和X86服务器逐步转型ARM架构。个人电脑使用的操作系统主要有Windows、macOS、Linux,可以使用C++、Java、Python、Node.js、C#等几乎所有编程语言开发应用。

用户端应用介绍

用户端应用形态主要有手机/平板App、小程序、浏览器网页、桌面客户端4种,下面分别详细介绍:

手机/平板App

一个App,就是一个普通的程序,它和你在个人电脑上使用Python、Java、C++开发的一段代码并没有本质的区别,只不过手机App有图形用户界面、运行在手机上、可以使用手机的硬件能力(如摄像头、陀螺仪、GPS)而已。手机App一方面会使用手机自身的能力,另一方面就是和服务端通信,实现上传、获取数据,这和2个程序通过网络通讯没有什么本质的区别。

使用Java/Kotlin开发的安卓App,和使用Object-C/Swift开发的苹果App,都被称为Native App,既使用原生语言开发的App,这样的App可以使用操作系统和硬件的几乎所有能力,拥有很高的性能和用户使用体验。

Native App也存在一些弊端,如开发效率低、无法跨平台、App发布和升级缓慢等,一些大型的全民App为了解决这些问题,将App内部迭代频率较高的模块进行动态化(也叫容器化),动态化后可以使用Web技术(HTML/CSS/JS)快速开发、快速发布,且可跨平台,我们将这种App称为Hybrid App。

小程序

小程序最早由微信推出,之后支付宝、字节等大型互联网公司的全民级App也推出了自己的小程序。小程序可以理解为Hybrid App的一种超级形态。从技术的角度看,这些App将系统级的能力封装并暴露API,同时提供类似浏览器的渲染引擎和JS执行引擎,以运行Web技术栈,并使用手机的部分系统级能力。

浏览器网页

在智能手机成为主流之前,大家上网的主要设备还是个人电脑,而大部分互联网企业在这个时期提供的服务也都是网站的形式,用户可以直接通过浏览器访问。我们一般把这种技术架构称为BS架构,即Browser - Server架构,这种架构主要使用HTTP协议、HTML、JavaScript、CSS等Web技术实现,开发效率高,且可跨平台。随着移动互联网的到来,手机App开始占据主导,但浏览器网页的这种形式仍然存在于企业领域和App内部。

桌面客户端

如果我们将手机App称为互联网2.0,将浏览器网页称为互联网1.0,那么桌面客户端的巅峰时代就在互联网还未诞生时。桌面客户端 + 服务端,是最早的一种架构模式,我们称之为CS架构,既Client - Server 架构。CS架构的早期阶段,Server基本就是一个数据库,几乎所有的业务逻辑都在Client端,我们称之为胖客户端;现在,会更多的将业务逻辑从客户端移动到服务端。桌面客户端应用,一般使用C++、C#、Delphi等语言开发。

总结常见的用户端设备有智能手机、平板电脑、个人电脑。常见的用户端应用形态有手机/平板App、小程序、浏览器网页、桌面客户端。智能手机主要使用Android和iOS系统,平板电脑主要使用Android和iPadOS(基于iOS开发的平板电脑操作系统),个人电脑主要使用Windows、macOS和Linux(主要应用在服务器领域,个人电脑使用较少)系统。智能手机和平板电脑主要使用ARM架构的CPU,个人电脑主要使用X86架构的CPU。由于ARM架构的低功耗、低成本和开放性,个人电脑和X86服务器都开始逐步转向ARM架构。Android系统主要使用Java和Kotlin开发App,iOS、iPadOS、macOS主要使用Object-c和Swift开发App,Windows和Linux主要使用C#、C++、Delphi开发桌面端应用。虽然桌面客户端、浏览器网页、手机/平板App是不同时代的产物,但是目前三种形态的应用都还有很丰富的应用场景,并没有被时代抛弃。

欢迎关注我的头条号@程序员地瓜,及时获取最新发布动态。阅读文章过程中有任何问题,欢迎在评论区留言,我会及时回复。

标签: #java的图形用户界面