0

0

Android 进入Android世界

星夢妙者

星夢妙者

发布时间:2025-10-22 12:32:33

|

630人浏览过

|

来源于php中文网

原创

进入我们的Android世界

  欢迎你来到android的世界!很高兴在这里碰面,从今天开始我们将并肩作战,你可以把我当成你的朋友,我们一起学习新的知识,编写每一行代码,体验android开发给你不一样的感觉。

一、Android介绍

  Android是一种移动智能设备操作系统,比如手机、平板电脑、手表、车载设备等,丰富着我们的生活。Android系统是目前世界上市场占有率最高的移动操作系统,Android是建立在Linux开源系统基础之上的。

  2003年10月,Andy Rubin(安迪·鲁宾)等人一起创办了Android公司,于2005年8月17日被Google(谷歌)公司收购,收购后Andy Rubin继续负责Android项目。2007年11月5日,Google与84家硬件制造商、软件开发商及电信营运商组成开放手持设备联盟(Open Handset Alliance),来共同研发改良Android系统并生产搭载Android的智慧型手机,并逐渐拓展到平板电脑及其他领域上。随后,Google以Apache免费开源许可证的授权方式,发布了Android的源代码,并在2008年Google推出了Android的第一个版本。

  Android的发展跟任何新生事物一样,也不是一帆风顺、顺风顺水的,从最开始苹果公司的阻挠,到Linux团队的除名,再到Oracle(甲骨文公司)的针对,主要是针对Android侵犯Java知识产权一事对Google提起了诉讼,这也是后面Android改用Kotlin作为开发语言的原因,虽然现在你会看到一些古董项目仍然是使用Java,但是新项目基本都切换到Kotlin了。

  杀不死你的使你更强大,由于Google的开放政策,任何手机厂商和个人都能免费获取Android操作系统源码,并且可以自由地使用和定制。目前来说国外出名的Android手机就是三星了,而国内使用的厂家就比较多,荣耀、小米、OPPO、VIVO、魅族等手机品牌。华为原来也用Android,后面随着老美的制裁,启用了备案系统,也就是现在的鸿蒙,一步一步成长到现在的纯血鸿蒙,相信鸿蒙会越来越强大。好的,我们回到Android上,下面我们开始进一步了解Android系统。

二、Android 系统架构

  通过Android系统架构我们可以了解到Android系统是怎么工作的,我们来看一下官方网站最新的Android平台架构图,大致分为5层架构:Linux内核层(Linux Kernel)、硬件抽象层(Hardware Abstraction Layer,HAL)、系统运行库层、应用框架层(Java API Framework)、应用层(System Apps),如下图1-1所示。

Android 进入Android世界在这里插入图片描述

图 1-1 Android系统架构图

2.1. Linux内核层

  Android系统是基于Linux内核的,Linux 内核提供了系统的进程管理、内存管理、文件系统、网络功能、硬件驱动、安全机制,Android的 Linux内核层在此基础上添加了部分Android专用的驱动,如音频驱动、显示驱动、照相机驱动、蓝牙驱动、WIFI驱动、USB驱动等。

2.2. 硬件抽象层

  硬件抽象层(Hardware Abstraction Layer,HAL)处于应用程序框架层和Linux内核层之间,用于将硬件抽象化。简单来说,就是对内核驱动程序进行封装,向上提供接口,向下屏蔽具体的实现细节。当应用程序框架层API要访问设备硬件时,Android系统会为该硬件组件加载库模块。

2.3. 系统运行库层

  系统运行库层分为两个部分:   (1)Native C/C++ Libraries。通过一些C/C++库为Android系统提供了主要的特性支持,这些库能够被安卓系统的不同组件所使用。它们通过Android应用框架为开发者提供服务,其中有系统C语言库、多媒体库、图层管理、SQLite、OpenGL|ES、WebKit、音频、SSL、SGL等。

  (2)Android Runtime。Android运行时库,允许开发者使用Java语言来编写Android应用,Android运行时库包括核心库以及Dalvik虚拟机(Android 5.0以后更改为ART虚拟机)。Dalvik虚拟机兼容了大多数Java语言所需要的功能函数,还包括了Android的核心库,比如android.os、android.net、android.media等。ART虚拟机采用AOT(Ahead-of-time)技术,在应用程序安装时就会将字节码转换为机器码,从而优化了应用运行的速度。在内存管理方面,ART也有比较大的改进,对内存分配和回收都做了算法优化,降低了内存碎片化程度,回收时间也得以缩短。

2.4. 应用框架层

  应用框架层(Java API Framework)提供了大量可供开发人员使用的应用程序接口(Application Programming Interface,API),Android自带的很多核心应用也是使用这些API完成的。应用程序框架层集中了很多Android开发需要的组件,其中最主要的就是Activities(活动)、Broadcast Receiver(广播接收器)、Services(服务)以及Content Providers(内容提供者)这四大组件。

2.5. 应用层

  应用层(System Apps)就很好理解了,你在手机上能看到的应用都属于这一层,而这一层的应用又分为系统应用和用户开发的应用。一些厂商为了方便用户使用,会在出厂时就默认安装很多应用。那些应用中能卸载的就是用户开发的应用,比如微信、QQ、抖音、微博等;不能卸载的就是系统自带的应用,比如浏览器、联系人、电话、日历、相机等应用。

三、Android发布的版本

  Android自从面世以来到现在已经发布了20多个版本了,目前最新的是Android 13 (Beta) 版,目前未正式发布,今年的Google I/O大会上将会正式发布,下面我们通过一张表来介绍Android目前的所有版本,如表1-1 所示。

名称

版本名

API等级

发布时间

Android 16

16.0

36

2025-6-11

Android 15

15.0

35

2024-9-24

Android 14

14.0

34

2023-10-4

Android 13

13.0

33

2022-8-15

Android 12LBeta 版 3

12L

32

2022-2-9

Android 12

12.0

31

2021-10-5

Android 12

12.0

31

2021-10-5

Android 11

11.0

30

2020-9-9

Android 10

10.0

29

2019-9-4

Android Pie

9.0

28

2018-8-7

Android Oreo

8.0-8.1

26-27

2017-8-22、12-5

Android Nougat

腾讯交互翻译
腾讯交互翻译

腾讯AI Lab发布的一款AI辅助翻译产品

下载

7.0-7.1.2

24-25

2016-8-22、12-5

Android Marshmallow

6.0

23

2015-9-30

Android Lollipop

5.0-5.1.1

21-22

2014-11-13、3-10

Android KitKat

4.4-4.4.4

19-20

2013-11-1、2014-6-20

Android Jelly Bean

4.3-4.2-4.1

16-18

2013-7-25、2012-10-30、2012-6-28

Android Ice Cream Sandwich

4.0.1-4.0.4

14-15

2011-10-19、2012-3-29

Android Honeycomb

3.0-3.2

11-13

2011-2-3、5-11、7-13

Android Gingerbread

2.3-2.3.7

9-10

2010-12-7、2011-1-1

Android Froyo

2.2

8

2010-5-20

Android Eclair

2.0-2.0.1-2.1

5-7

2009-10-26、12-3、2010-1-12

Android Donut

1.6

4

2009-9-15

Android Cupcake

1.5

3

2009-4-17

Bender

1.1

2

2009-2-2

Astro

1.0

1

2008-9-23

表 1-1 Android系统版本信息

3.1 版本说明

  下面说明一下这张表,表从下往上,是Android版本的更新信息,在最开始的时候Android的版本是内部使用,这两个预发布的内部版本,它们的代号分别是铁臂阿童木(Astro)和发条机器人(Bender)由于不是公开的,因此也没有详细的版本名。

  从Android 1.5 开始Google为发布的版本进行命名,以甜点为主。纸杯蛋糕(Cupcake)、甜甜圈(Donut),这种命名风格直到Android 8.0的奥利奥(Oreo)为止,我大胆的猜测,他喜欢的甜点名都用完了,而Android 9.0 是馅饼(Pie),之后就直接以数字命名了,我们从表中也能看得出来。

  由于Android的发展,一些老的版本不再维护了。目前Android开发者平台中,最老的版本是 Android 4.4(KitKat)。这里我们说一些有代表性的版本,

Android 6.0(Marshmallow)这个版本开始,有运行时权限的概;Android 8.0中对通知做了优化;Android 10.0的暗黑模式、桌面模式、手势导航;Android 12.0的蓝牙运行权限、功能使用、性能优化等。Android 13的照片选择器、跨设备复制粘贴、精细媒体权限控制;Android 14的锁屏自定义快捷方式、卫星通信支持、Ultra HDR图像格式;Android 15 应用归档功能、局部屏幕共享、系统级AI抠图工具;Android 16的预测性返回手势、量子安全加密、多设备协同计算加速。

  目前Android 16国内各大厂商已经在做适配了,相信不久之后就会有手机厂商打出基于Android 16的标识去推销自家手机产品,对比开发者来说要想体验Android 16 可以通过Android Studio去安装模拟器,不过需要版本比较新的AS,例如 Android Studio Meerkat |2024.3.1,不过你要是使用最新的Android Studio Narwhal | 2025.1.1 Patch 1,那就是肯定可以下载Android 16模拟器进行预览的。

  关于Android Studio的安装和配置,我之前写过一篇:Android Studio 安装配置教程 - Windows(详细版),你如果是刚了解Android,可以跟着安装配置一下,本文就到这里,我们后会有期!有问题欢迎评论区留言或者私信我。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
C语言变量命名
C语言变量命名

c语言变量名规则是:1、变量名以英文字母开头;2、变量名中的字母是区分大小写的;3、变量名不能是关键字;4、变量名中不能包含空格、标点符号和类型说明符。php中文网还提供c语言变量的相关下载、相关课程等内容,供大家免费下载使用。

410

2023.06.20

c语言入门自学零基础
c语言入门自学零基础

C语言是当代人学习及生活中的必备基础知识,应用十分广泛,本专题为大家c语言入门自学零基础的相关文章,以及相关课程,感兴趣的朋友千万不要错过了。

638

2023.07.25

c语言运算符的优先级顺序
c语言运算符的优先级顺序

c语言运算符的优先级顺序是括号运算符 > 一元运算符 > 算术运算符 > 移位运算符 > 关系运算符 > 位运算符 > 逻辑运算符 > 赋值运算符 > 逗号运算符。本专题为大家提供c语言运算符相关的各种文章、以及下载和课程。

362

2023.08.02

c语言数据结构
c语言数据结构

数据结构是指将数据按照一定的方式组织和存储的方法。它是计算机科学中的重要概念,用来描述和解决实际问题中的数据组织和处理问题。数据结构可以分为线性结构和非线性结构。线性结构包括数组、链表、堆栈和队列等,而非线性结构包括树和图等。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

263

2023.08.09

c语言random函数用法
c语言random函数用法

c语言random函数用法:1、random.random,随机生成(0,1)之间的浮点数;2、random.randint,随机生成在范围之内的整数,两个参数分别表示上限和下限;3、random.randrange,在指定范围内,按指定基数递增的集合中获得一个随机数;4、random.choice,从序列中随机抽选一个数;5、random.shuffle,随机排序。

630

2023.09.05

c语言const用法
c语言const用法

const是关键字,可以用于声明常量、函数参数中的const修饰符、const修饰函数返回值、const修饰指针。详细介绍:1、声明常量,const关键字可用于声明常量,常量的值在程序运行期间不可修改,常量可以是基本数据类型,如整数、浮点数、字符等,也可是自定义的数据类型;2、函数参数中的const修饰符,const关键字可用于函数的参数中,表示该参数在函数内部不可修改等等。

562

2023.09.20

c语言get函数的用法
c语言get函数的用法

get函数是一个用于从输入流中获取字符的函数。可以从键盘、文件或其他输入设备中读取字符,并将其存储在指定的变量中。本文介绍了get函数的用法以及一些相关的注意事项。希望这篇文章能够帮助你更好地理解和使用get函数 。

670

2023.09.20

c数组初始化的方法
c数组初始化的方法

c语言数组初始化的方法有直接赋值法、不完全初始化法、省略数组长度法和二维数组初始化法。详细介绍:1、直接赋值法,这种方法可以直接将数组的值进行初始化;2、不完全初始化法,。这种方法可以在一定程度上节省内存空间;3、省略数组长度法,这种方法可以让编译器自动计算数组的长度;4、二维数组初始化法等等。

618

2023.09.22

C# ASP.NET Core微服务架构与API网关实践
C# ASP.NET Core微服务架构与API网关实践

本专题围绕 C# 在现代后端架构中的微服务实践展开,系统讲解基于 ASP.NET Core 构建可扩展服务体系的核心方法。内容涵盖服务拆分策略、RESTful API 设计、服务间通信、API 网关统一入口管理以及服务治理机制。通过真实项目案例,帮助开发者掌握构建高可用微服务系统的关键技术,提高系统的可扩展性与维护效率。

76

2026.03.11

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
SQL 教程
SQL 教程

共61课时 | 4.3万人学习

Java 教程
Java 教程

共578课时 | 81.2万人学习

oracle知识库
oracle知识库

共0课时 | 0.6万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号