小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
本文已参与 「掘力星计划」 ,赢取创作大礼包,挑战创作激励金。
前言
在21世纪的今天,在我们日常生活中,小到我们使用的手机、手表,电脑、大到现在智能家居、智能汽车等,背后支撑它们能正常的工作是我们耳熟能详的一个名词“操作系统”。
什么是操作新系统
操作系统(Operating System )简称 OS,是对计算机硬件与软件资源进行管理和控制的计算机程序,是所有软件的动力之源。
任何软件应用都必须在操作系统的支持下才能运行。
操作系统按应用领域主要分为3类:嵌入式操作系统、桌面操作系统、服务器操作系统
目前主流移动系统有 Android 和 IOS 系统。其中Android 系统在移动端占比70%的市场。
本期,我们将学习Android 系统相关的基础信息,Let's go~
1. Android 概述
Android 是基于Linux内核开发开源的操作系统,主要用于移动手机比较多,同时在物联网的快速发展下Android系统也应用在家居设备、智能汽车等嵌入式设备上。
Android 系统起初是由Andy Rubin 团队在美国加尼福尼亚州诞生,之后在被Google收购,在2008年正式发布Android 1.0 系统。
目前,Android系统类型主要包含两类:AOSP 和 GMS
-
AOSP:是Android Open-Source Project 的简称,Android 开放代码项目,厂商拿到项目可以进行个性化开发,我们熟知的手机品牌,亦或是物联网相关的产品等都是使用AOSP开源项目进行开发的
-
GMS:是安卓官方原生系统,集成Google一系列相关的服务,产品研发后要经过Google官方的认证。
从目前移动端数据看,Android 系统在市场占有率远远甩过排名第二IOS系统和第三名Windows Phone,达到89%左右,可见Android系统使用在我们生活是随处可见。
2. Android 版本迭代
Android 系统版本从2008年至今,每年会发布一个大版本。
- 从Android 1.5到Android 9.0,Android系统的名字以A~Z顺序的甜品名字来命名。
- 在Android 9.0 之后,Android 命名规则发生变化,Google直接采取数字来进行命令。
- 到2020 Q3时,Google 已发布 Android 11。
从2008年发布Android 1.0开始,Google主要从UI设计、系统性能、安全等方面进行迭代更新
- Android 1.0 ~ Android 4.0 主要完善整个系统各个功能
- Android 4.1 ~ Android 4.4 Beta 版本,就开始对系统性能进行优化,采取低内存,UI清透性等放面进行优化
- Android 5.0,重点提高Android 系统的续航能力,采用全新的ART,提升运行效率。UI上使用扁平化设计风格
- Android 6.0,提高权限管控。UI上,新增黑夜模式
- Android 7.0,引入JIT编辑器,对内存空间和运行速度进一步提升。UI上,推出分屏功能
- Android 8.0,重构安卓代码,将安卓系统框架与Vendor层解耦。UI设计上,优化通知功能,智能文本和自动填充功能。
- Android 9.0,新增神经网络API接口,预测用户使用习惯来做省电优化。UI上,推出刘海屏。
- Android 10.0,推出主线计划,相关模块不允许厂商直接修改;支持人脸识别
- Android 11.0,对APK应用进行权限授权管理,加强用户信息安全
- Android 12.0,对APP应用待机内存分区进行优化,改进了刷新率切换
3. Android 系统组成
Android 系统从2008年更新,到2020年,已经更新了11个大版本。2021年Android 12 Beta版本的也已经发布。
经过这么多版本的迭代,但是它的整体架构都没有发生变化。
Android 系统架构主要分为5类,从上到下依次是应用层、应用框架层、系统运行库层、硬件抽象层和Linux内核层
-
应用层 : 系统里面存着各种功能系统和非系统的应用程序,负责与用户进行交互。
-
应用框架层:提供开发者一系列开发应用程序所需要的API接口,这一层主要适用Java开发语言。这一层提供的组件主要有活动管理器Activity Manager、位置管理器Location Manager、窗口管理器Window Manager等
-
系统运行库层:主要由C/C++程序库和Android运行时库组成。C/C++库主要是构建原生代码,为一些应用提供相关功能例如有OpenGL ES 3D绘图函数库,SGL 底层2D图像渲染引擎等;Android 运行时库分为核心库和ART
-
硬件抽象层:为了保护硬件厂商的知识产权,它屏蔽掉了特定平台的硬件接口细节,为操作系统提供虚拟硬件平台。
-
Linux内核层:Android平台核心是Linux内核,硬件厂商可以使用硬件驱动程序如蓝牙、WiFi
4. Android 四大组件
我们说起Android系统来说,都会不有自主地想到四大组件啦
Android 四大组件为:Activity、Service、BroadcastReceive和Content
-
Activity活动: 用于为用户提供执行操作指令的窗口
-
Service 服务: 用于在后台处理耗时的逻辑。
- sevice主要分为启动(started)和绑定(bound)两种
- startService 是被其他组件调用startservice()方法启动的,跟service没有关联,只有当Service调用stopSelf或者stopservice服务才会终止
- boundService 是调用者与服务绑定在一起的,调用者停止,则服务也会终止
-
BroadcastReceiver 广播: 在应用程序之间进行传输信息的工具
- 广播接收者注册方式有两种:程序动态注册和文件中进行静态注册
-
ContentProvider 内容提供者: 相当于数据库,支持多个应用程序存储和读取数据。其主要有两个特点
- 对数据进行封装,提供统一的接口
- 提供跨进程数据共享的方式
5. Android 生命周期
我们学习了四大组件,其组件都有生命周期的
Activity 活动组件生命周期
-
Activity 主要有三种状态:
- active:激活状态,获取用户操作指令
- paused:暂停状态,暂停的Activity仍然是存活状态
- stoped: 终止状态,当内存不够时,则会被系统杀掉。
-
Activity 生命周期有七个方法:
- onCreate(): 创建实例化对象,为Activity设置所要使用的布局文件
- onStart(): 当Activity没有获取到可见的用户焦点时,不能开始调用系统
- onRestart():对停止的Activity进行重新启动
- onResume():对获取可见的用户焦点Activity时,系统开始调用
- onPause():存储持久数据,对于用户来说是可见不可交互的
- onStop(): Activity被新的Activity覆盖时,会停止
- onDestroy():Activity执行完成后,会进行释放onCreate()创建的对象
Service 服务组件生命周期
Service 生命周期从调用onCreate()开始直到onDestroy()结束
Service 有两种使用方法
- 调用startService()启动,而调用stopSevice()结束
- 调用bindService()启动,而调用unbindSevice()结束
BroadcastReceiver 广播接收器生命周期
广播接收器的生命周期非常短,只有10秒。当在onReceive()内做超过10秒事情,则系统会报ANR的错误。
广播的生命周期从调用onReceive()方法开始到该方法返回结果结束
总结
本期,通过对Android系统历史版本演进、Android系统架构、Android四大组件及生命周期的基本概念进行详细的了解和学习。
以上是本期内容,欢迎大佬们点赞评论,我们下期见~