安卓架构自学

最近开始学习android,架构师要有大局观,不能只盯着炫酷的app,要学习安卓的整个技术架构。

前端是App的开发技术,后端是服务端技术,再加上连接二者的通信,从这三方面来学习安卓。

1、通信
常用的通信模式有两种,一是http,二是socket。
socket是TCP/IP的软件封装API,http是一个成熟的应用层协议,写到这里,我会认为http是socket的一种特定实现方式,但实际上不是,因为协议不仅包含数据格式的封装格式,还包括通信方式。

从通信方式来看,http是短连接,socket是长连接。
http协议的通信方式:服务端持续监听某个tcp端口,客户端向服务端提出请求,实现了三次握手协议之后,服务端给客户端回传数据,然后客户端就断开连接。
socket的通信方式:服务端(serversocket)持续监听某个tcp端口,客户端(clientsocket)向服务端提出请求,服务端建立新线程,给客户端回传数据,双方的连接从此确立,并不马上断开连接,直到客户端发起断开请求。

二者的主要差别在连接是否会在一次数据交互后立即断开,socket适合实时通信,如聊天,http适合非实时通信,如网页浏览。此外,socket比http的数据量少,但编程更复杂,socket由于是长连接,占用内存资源较多,不适合资源较少的条件,如手机。

2、App开发技术
(未完待续)

3、服务端技术
服务端技术实现方式可以借鉴已有的网站后台技术,根据具体的业务类型和性能需求来选择适合的后台架构。
常用的服务端架构有:
(1)LAMP = Linux + Apache + MySQL + PHP,适合小型网站,上手容易,成本低,但对并发访问量大、数据量大的网站会遇到瓶颈。【瓶颈是什么?】
(2)J2EE,传统而经典的架构,适合大型网站。【笔者猜测是:架构的稳定性较好,所以适合大型网站。】
(3)ASP.NET,微软家的架构,通常会搭配 Windows Server 操作系统,SQL Server 数据库,IIS 做 Web Server。
(4)MEAN架构,MongoDB做数据库,Express做 Web Framework,Angular 做前端的 JavaScript 框架,Node.js 用于编写 Web Server。该架构较新,目前已有一些知名网站应用该架构实现部分功能,由于可借鉴的经验和资料不多,建站和运维难度偏大。

    原文作者:小李哥的简书
    原文地址: https://www.jianshu.com/p/4f01f9ca239c
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞