阅读 96

【小知识】Android系统浅析

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

本文已参与 「掘力星计划」 ,赢取创作大礼包,挑战创作激励金。

前言

在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 主要有三种状态:

    1. active:激活状态,获取用户操作指令
    2. paused:暂停状态,暂停的Activity仍然是存活状态
    3. stoped: 终止状态,当内存不够时,则会被系统杀掉。
  • Activity 生命周期有七个方法:

    1. onCreate(): 创建实例化对象,为Activity设置所要使用的布局文件
    2. onStart(): 当Activity没有获取到可见的用户焦点时,不能开始调用系统
    3. onRestart():对停止的Activity进行重新启动
    4. onResume():对获取可见的用户焦点Activity时,系统开始调用
    5. onPause():存储持久数据,对于用户来说是可见不可交互的
    6. onStop(): Activity被新的Activity覆盖时,会停止
    7. onDestroy():Activity执行完成后,会进行释放onCreate()创建的对象

Service 服务组件生命周期

Service 生命周期从调用onCreate()开始直到onDestroy()结束

Service 有两种使用方法

  1. 调用startService()启动,而调用stopSevice()结束

  1. 调用bindService()启动,而调用unbindSevice()结束

BroadcastReceiver 广播接收器生命周期

广播接收器的生命周期非常短,只有10秒。当在onReceive()内做超过10秒事情,则系统会报ANR的错误。

广播的生命周期从调用onReceive()方法开始到该方法返回结果结束

总结

本期,通过对Android系统历史版本演进、Android系统架构、Android四大组件及生命周期的基本概念进行详细的了解和学习。

以上是本期内容,欢迎大佬们点赞评论,我们下期见~

文章分类
后端
文章标签