Android简介及发展历程

Android简介 1.Android Android是Google(谷歌)公司发布的基于Liunx内核的,专门为移动设备开发的平台,其中包含了操作系统,中间件和核心应用等。Android是一个完全免费的手机平台,使用它不需要授权费,可以完全定制。另外,由于Android底层架构使用开源的Linux操作系统,同时开放了应用程序开发工具,使所有程序开发人员都可以再统一的、开放的平台上进行开发,从而保证了Android应用程序的可移植性。 由于Android使用Java作为其主要的程序开发语言,所以不少Java开发人员... 阅读详情

简介

Android是基于Linux系统的开源操作系统,是由Andy Rubin于2003年在美国加州创建,后被Google于2005年收购。在2008年的时候发布了第一部Android智能手机,随后Android不断发展更新,占据了全球大部分的手机市场。
Android每一个版本都会用一个按照A-Z开头顺序的甜品来命名,但从Android P之后Google改变了这一传统的命名规则,可能是没有那么多让人熟知的甜品代号供使用以及甜品名字并不能让人直观的了解到哪一个甜品有什么特性,于是Google直接采用数字来命令系统,并且加深了logo的颜色,不再使用甜品作为代号。

下面是Android各版本代号、图片及市场占有率

Platform VersionAPIVersion CodeLogoPublish Date各系统版本比率(2021-12)
12.031android 122021<1%
11.030android 112020(Q3)24.3%
10.029android 10201926.5%
9.028pie(红豆派)201818.2%
8.0/8.126/27Oreo(奥利奥饼干)201713.7%
7.0/7.124/25Nougat(牛轧糖)20166.3%
6.023Marshmallow(棉花糖)20155.1%
5.0/5.121/22Lollipop(棒棒糖)20143.9%
4.419/20Kitkat(奇巧)20131.4%
4.1/4.2/4.316/17/18Jelly_Bean(果冻豆)20120.6%
4.0.x14/15Ice_Cream_Sandwich (冰淇淋三明治)2011N/A
3.0/3.1/3.211/12/13Honeycomb(蜂巢)2011N/A
2.3.x9/10Gingerbread (姜饼)2010N/A
2.2.x8Froyo (冻酸奶)2010N/A
2.0/2.15/6/7Eclair (泡芙)2009N/A
1.64Donut (甜甜圈)2009N/A
1.53Cupcake (纸杯蛋糕)2009N/A

下面是截止到2021年12月份各版本市场占有率,最新数据可以在官网上查询,或者在Android Studio里面新建一个项目,当选择支持最低的SDK(Minimum SDK)版本的时候,就可以看到当前选择的SDK版本及以上的版本在市场上面的占有率。从图中可以看到Android每个系统版本都有一定的占有率,这就给手机应用开发者针对不同版本的适配带来很多麻烦;同时可以看出较新的系统版本占有率相当高,这就要求开发者尽早的针对新版本进行学习和适配,让我们的应用支持新的系统版本带给我们的新功能和特性。
系统版本市场占有率

Android平台架构

Android 是一种基于 Linux 的开放源代码软件栈,为各类设备和机型而创建。
下图所示为 Android 平台的主要组件。 官网地址

Linux内核层

Android平台的基础是Linux内核,例如Android Runtime(ART)依靠Linux内核来执行底层功能,如线程和底层内层管理。使用 Linux 内核可让 Android 利用主要安全功能,并且允许设备制造商为著名的内核开发硬件驱动程序。如蓝牙、相机、WiFi等驱动

硬件抽象层(HAL)

硬件抽象层 (HAL) 提供标准界面,向更高级别的 Java API 框架显示设备硬件功能。HAL 包含多个库模块,其中每个模块都为特定类型的硬件组件实现一个界面,例如相机或蓝牙模块。当框架 API 要求访问设备硬件时,Android 系统将为该硬件组件加载库模块。

Android Runtime

对于运行 Android 5.0(API 级别 21)或更高版本的设备,每个应用都在其自己的进程中运行,并且有其自己的 Android Runtime (ART) 实例。ART 编写为通过执行 DEX 文件在低内存设备上运行多个虚拟机,DEX 文件是一种专为 Android 设计的字节码格式,经过优化,使用的内存很少。编译工具链(例如 Jack)将 Java 源代码编译为 DEX 字节码,使其可在 Android 平台上运行。

ART 的部分主要功能包括:

  • 预先 (AOT) 和即时 (JIT) 编译
  • 优化的垃圾回收 (GC)
  • 在 Android 9(API 级别 28)及更高版本的系统中,支持将应用软件包中的 Dalvik Executable 格式 (DEX) 文件转换为更紧凑的机器代码。
  • 更好的调试支持,包括专用采样分析器、详细的诊断异常和崩溃报告,并且能够设置观察点以监控特定字段

在 Android 版本 5.0(API 级别 21)之前,Dalvik 是 Android Runtime。如果您的应用在 ART 上运行效果很好,那么它应该也可在 Dalvik 上运行,但反过来不一定。

Android 还包含一套核心运行时库,可提供 Java API 框架所使用的 Java 编程语言中的大部分功能,包括一些 Java 8 语言功能。

原生C/C++库

许多核心 Android 系统组件和服务(例如 ART 和 HAL)构建自原生代码,需要以 C 和 C++ 编写的原生库。Android 平台提供 Java 框架 API 以向应用显示其中部分原生库的功能。例如,您可以通过 Android 框架的 Java OpenGL API 访问 OpenGL ES,以支持在应用中绘制和操作 2D 和 3D 图形。

如果开发的是需要 C 或 C++ 代码的应用,可以使用 Android NDK 直接从原生代码访问某些原生平台库。

Java API框架

我们可通过以 Java 语言编写的 API 使用 Android OS 的整个功能集。这些 API 形成创建 Android 应用所需的构建块,它们可简化核心模块化系统组件和服务的重复使用,包括以下组件和服务:

  • 丰富、可扩展的视图系统,可用以构建应用的 UI,包括列表、网格、文本框、按钮甚至可嵌入的网络浏览器
  • 资源管理器,用于访问非代码资源,例如本地化的字符串、图形和布局文件
  • 通知管理器,可让所有应用在状态栏中显示自定义提醒
  • Activity 管理器,用于管理应用的生命周期,提供常见的导航返回栈
  • 内容提供程序,可让应用访问其他应用(例如“联系人”应用)中的数据或者共享其自己的数据

开发者可以完全访问 Android 系统应用使用的框架 API。 无论系统内置或者我们自己编写的App,都需要使用到这层,比如我们想弄来电黑名单,自动挂断电话,我们就需要用到电话管理(TelephonyManager) 通过该层我们就可以很轻松的实现挂断操作,而不需要关心底层实现。

系统应用层

每个 Android手机默认都会有一套用于电子邮件、短信、日历、互联网浏览和联系人等核心应用。这些应用与用户可以选择安装的应用一样,没有特殊状态。但一般没有root权限不能卸载这些系统应用。
我们自己开发的APP也是属于这一层,我们可以在自己的应用中使用一些系统应用的主要功能。例如我们的应用需要发短信,我们无需自己构建该功能,而是调用已安装的短信应用向指定的接收者发送消息。

作为普通的应用层开发者,我们一般只会与应用层和Java API系统框架能打交道;而底层开发者还需要涉及到原生C/C++库层进行NDK开发。

Android知识总结 Android应用开发是指使用Java或Kotlin等编程语言和Android Studio等开发工具来创建在Android操作系统上运行的应用程序的过程。这些应用程序可以在Android设备上或通过Google Play商店发布供其他用户下载和使用。开发人员可以使用各种API和库来访问设备硬件和系统功能,如摄像头、传感器、存储、网络连接等,以构建各种类型的应用程序,包括游戏、社交媒体、工具、商务应用等。 阅读详情

相关推荐

1.0 Kotlin-Android开发简介

Android简介 安卓是一种基于Linux内核(不包含GNU组件)的自由及开放源代码的操作系统。主要使用于移动设备,如智能手机和平板电脑,由美国Google公司和开放手机联盟领导及开发。 Android历程 2003年10月,Andy Rubin等人创建Android公司,并组建Android团队。 2005年8月17日,Google低调收购了成立仅22个月的高科技企业Android及其团队。安迪鲁宾成为Google公司工程部副总裁,继续负责Android项目。 2007年11月5日,谷歌公司正式向外界展

不一样的烟火 1630

android简介

android - 以Linux为基础的操作系统 Android(['ændrɔid])是一个以Linux为基础的半开源操作系统,主要用于移动设备,由Google和开放手持设备联盟开发与领导。 Android 系统最初由安迪·鲁宾(Andy Rubin)制作,最初主要支持手机。2005年8月17日被Google收购。2007年11月5日,Google与84家硬件制造商、软件开发商及电

u010968028的专栏 1947

1、Android概述

安卓(Android)是一种基于Linux的自由及开放源代码的操作系统。主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。Android操作系统最初由Andy Rubin开发,主要支持手机。 2005年8月由Google收购注资。2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。随后Goog...

w00347190的博客 1302

Android入门介绍

Android 第一课

weixin_53431933的博客 828

QT使用openssl实现RSA加解密

使用openssl生成公私钥,随后用QT对相应的信息进行RSA加解密

weixin_42098322的博客 3867

vesta软件_分子动力学计算实战:利用 OVITO 软件找弗伦克尔缺陷和位错环分析

今天继续和大家分享这篇纯分子动力学(MD)的 Nat. Comm. 文章(DOI:10.1038/s41467-018-07102-3)。上期推文(从一篇 Nat. Comm. 学习经典分子动力学基本知识和相关软件基本操作 (一)),我们借用该文章的 fig.1 简单介绍了如何用文中所提到的 LAMMPS 软件来实现材料中级联碰撞过程。但是,想完整的展示类似该文章的 fig.1,单纯利用...

weixin_39524842的博客 5982

安卓简介和发展历程

系统简 Android一词的本义指“机器人”,同时也是Google于2007年11月5日  Android logo相关图片(36张) 宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成。 Android一词最早出现于法国作家利尔亚当(Auguste Villiers de l'Isle-A

u014651861的专栏 733

FreeRTOS全攻略:从入门到精通

本文聚焦 FreeRTOS,从基础概念出发,阐述其开源、轻量级等优势。着重介绍 FreeRTOS 入门知识,涵盖内存管理、任务操作、同步互斥机制等核心内容。其中,空闲任务与钩子函数保障系统基础运行与功能扩展;队列、信号量、互斥锁和事件组等机制,分别从数据传递、资源访问控制、优先级问题解决及多任务同步等方面,为开发者提供高效的任务间协作与资源管理方案,助力开发者掌握 FreeRTOS 核心技术,为嵌入式项目开发筑牢基础。

邓邓子的博客 6357

Android简介及发展历程(1)

学习技术是一条慢长而艰苦的道路,不能靠一时激情,也不是熬几天几夜就能学好的,必须养成平时努力学习的习惯。所以:贵在坚持!最后如何才能让我们在面试中对答如流呢?答案当然是平时在工作或者学习中多提升自身实力的啦,那如何才能正确的学习,有方向的学习呢?有没有免费资料可以借鉴?为此我整理了一份Android学习资料路线:这里是一部分我工作以来以及参与过的大大小小的面试收集总结出来的一套BAT大厂面试资料专题包,主要还是希望大家在如今大环境不好的情况下面试能够顺利一点,希望可以帮助到大家。

2401_84545618的博客 580

MFC属性网格控件(CMFCPropertyGridCtrl)完全指南:构建专业属性编辑界面

本文详细介绍了MFC中的CMFCPropertyGridCtrl控件的使用方法。主要内容包括:控件基础用法(初始化、添加属性、事件处理)、高级设置(自定义外观、创建属性类型、动态更新)、派生类实现(自定义绘制、搜索过滤功能)、界面集成技巧(对话框布局、属性编辑器)以及实际应用示例。文章重点讲解了如何通过继承和自定义实现复杂功能,并提供了性能优化、多语言支持等最佳实践方案。该控件适用于需要大量参数配置的应用程序,能够创建类似Visual Studio属性窗口的专业界面。

专注现代C++实战,从核心语法到高性能编程,助力开发者深入掌握系统级编程精髓。 154

Valgrind 从入门到精通:内存调试和性能分析

Valgrind 提供了强大的 API,允许开发者编写自定义的检查工具。通过扩展 Valgrind,可以针对特定场景实现更精准的检测。

大模型大数据攻城狮的专栏 1217

Android简介及发展历程(1),android程序设计基础

9.0 | 28 | pie(红豆派) || 8.0/8.1 | 26/27 | Oreo(奥利奥饼干) || 7.0/7.1 | 24/25 | Nougat(牛轧糖) || 6.0 | 23 | Marshmallow(棉花糖) || 5.0/5.1 | 21/22 | Lollipop(棒棒糖) || 4.4 | 19/20 | Kitkat(奇巧) || 4.1/4.2/4.3 | 16/17/18 | Jelly_Bean(果冻豆) |

2401_84152223的博客 751

[系统安全] 四十七.恶意软件分析 (3)动态分析经典沙箱Cape的安装和基础用法详解

系统安全将更好地帮助初学者了解病毒逆向分析和系统安全。前文详细介绍恶意代码静态分析经典工具Capa的基础用法,以及批量提取静态特征和ATT&CK技战术,主要是从提取的静态特征Json文件中提取关键特征。这篇文章将详细讲解动态分析沙箱Cape,其是一个开源的自动恶意软件分析系统,通过自动运行和分析恶意软件,全面分析和提取恶意软件的关键特征。本文先介绍Cape沙箱的安装和基础用法,后续随着深入再分享。基础性文章,希望对您有帮助!

杨秀璋的专栏 6736

Android简介及发展历程,2024金九银十面试季

*其实上面说了这么多,钱是永远赚不完的,在这个知识付费的时代,知识技能提升才是是根本!我作为一名8年的高级工程师,知识技能已经学习的差不多。**在看这篇文章的可能有刚刚入门,刚刚开始工作,或者大佬级人物。像刚刚开始学Android开发小白想要快速提升自己,最快捷的方式,就是有人可以带着你一起分析,这样学习起来最为高效,所以这里分享一套高手学习的源码和框架视频等精品Android架构师教程,保证你学了以后保证薪资上升一个台阶。这么重要的事情说三遍啦!

2401_84152232的博客 945

DeerFlow 系列教程 第十一篇 | Sandbox 沙箱与 Memory 记忆——安全执行与持久认知

用户请求│▼Lead Agent├── 系统提示词组装│ ├── <memory> 段 ← Memory 系统注入用户记忆│ ├── <skill_system> 段│ └── <subagent_system> 段│├── 工具调用│ ├── read_file ├── Sandbox 系统提供隔离执行│ ├── write_file├── 路径虚拟化 + 安全验证│└── 对话结束│▼│├── 过滤消息(去除工具调用中间步骤)├── 检测纠正/强化信号。

weixin_43674738的博客 161

Python控制TEMI1000/TEMI1500测试温箱

该温箱是我司从昆山振弘检测设备有限公司采购的TEMI 1000,但是控制器用的是韩国的,关于控温箱这个项目,可参考的资料仅有一份官方的manual,里面包含一些命令格式。只要你有温箱,就应该可以向厂家索取该文档。该温箱的通讯接口只有一个RS232接口,要想实现远程控制,需要有串口转USB的线;类似于下图所以,想依靠python来与之进行通信,还是要通过python 的pyserial库,关于怎么安装pyserial,过于简单,这里不做赘述,可自行百度。

xgh1951的博客 1万+

2024年Android简介及发展历程(1),腾讯三面结束多久hr面

其实Android开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。当然我也为你们整理好了百度、阿里、腾讯、字节跳动等等互联网超级大厂的历年面试真题集锦。这也是我这些年来养成的习惯,一定要学会把好的东西,归纳整理,然后系统的消化吸收,这样才能极大的提高学习效率和成长进阶。碎片、零散化的东西,我觉得最没有价值的。就好比你给我一张扑克牌,我只会觉得它是一张废纸,但如果你给我一副扑克牌,它便有了它的价值。

2401_84520182的博客 787

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

2024年Android简介及发展历程(2),2024年最新阿里面试题和答案java

上查询,或者在Android Studio里面新建一个项目,当选择支持最低的SDK(Minimum SDK)版本的时候,就可以看到当前选择的SDK版本及以上的版本在市场上面的占有率。Android每一个版本都会用一个按照A-Z开头顺序的甜品来命名,但从Android P之后Google改变了这一传统的命名规则,可能是没有那么多让人熟知的甜品代号供使用以及甜品名字并不能让人直观的了解到哪一个甜品有什么特性,于是Google直接采用数字来命令系统,并且加深了logo的颜色,不再使用甜品作为代号。

2401_84520182的博客 659

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

JavaAndroid(1、Android操作系统简介)

目录 1、Android操作系统简介 01、系统简介 1.1 Android 名词 1.2 Logo 02、发展历程 03、发行版本 04、体系架构 05、应用组件 06、平台优势 1、Android操作系统简介 学习目标 系统简介 发展历程 发行版本 体系架构 系统结构 应用组件 平台优势 01、系统简介 1.1 Android 名词 Android 一词的本意指”机器人“,同时也是Google

weixin_53585549的博客 878

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Android高级进阶二 Android OpenGL | ES介绍

最新版本:Android高级进阶二 Android OpenGL | ES介绍         Android支持3D图像开发,使用的是开源的OpenGLES库,接下来我们将在一系列的文章中介绍 Android 3D图像开发。 1、什么是 OpenGL?         详看:Android高级进阶一 OpenGL介绍 2、OpenGL 的发展历程   1992年7月 发布了 O

另一度空间的专栏 803
上一篇: kotlin面向对象编程
下一篇: Android开发环境搭建
Android开发猿
博客等级 码龄11年 72粉丝 34原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值