从0系统学 Android--1.1认识 Android

我已经眨眼间工作了几年。我一直在努力让自己陷入困境,然后又回去学习Android系统。所以有这个阅读笔记。俗话说,我知道我是新手,所以请跟我学习Android游戏!

声明

本系列主要是指Android入门经典----《第一行代码》

默认的学习者将使用简单的Java语法! Android完全是从零开始!按照我的系统学习!

认识Android

2003年10月,Andy Rubin和其他人创立了Android。 2005年8月,谷歌收购了该公司。

1.1了解Android的全貌

自采访以来,Android发布了20多个版本。在过去几年的发展过程中。谷歌为Android王国建立了一个完整的生态系统。手机制造商,开发商和用户是相互依存的,促进了Android的蓬勃发展。

从开发人员的角度来看,了解操作系统。

1.1.1 Android系统架构

为了让您更好地了解Android系统的工作原理,让我们来看看它的系统架构。它可以大致分为四层:Linux内核层,系统运行时层,应用程序框架层和应用程序层。

1.Linux内核层

Android系统基于Linux内核。该层为Android设备的各种硬件提供底层驱动程序,如显示驱动程序,音频驱动程序,摄像头驱动程序,蓝牙驱动程序,WiFi驱动程序,电源管理等。

主要是一些低级别的驱动程序

2.系统运行时层

该层通过一些C/C ++库为Android系统提供主要功能支持。例如,SQLite库提供对数据库的支持,OpenGL | ES库提供3D绘图支持,Webkit库提供对浏览器内核的支持。

此级别还有Android运行时库。它主要提供了一些核心库,使开发人员能够使用Java语言编写Android应用程序。 Android运行时库还包括Dalvik虚拟机(5.0系统后来改为ART运行时环境),它允许每个Android应用程序在单独的进程中运行,并拥有自己的Dalvik虚拟机示例。与Java虚拟机相比。 Dalvik虚拟机专为移动设备量身定制,针对手机内存和有限的CPU性能进行了优化。

一些用C/C ++编写的库,以及支持我们的核心库和用Java运行的进程的虚拟机

3.应用程序框架层

它主要提供用于构建应用程序的各种API。 Android附带的一些核心应用程序是使用这些API实现的。开发人员还可以使用这些API来构建我们自己的应用程序。

4.申请层

手机上安装的所有应用都属于此层。

0x251D

architecture.jpg

最新架构

linux内核android平台的基础是linux内核。例如,android运行时依赖linux内核执行底层功能,比如线程和底层内存管理。使用linux内核可以让android利用关键的安全特性,并允许设备制造商为知名内核开发硬件驱动程序。硬件抽象层(HAL)提供了一个标准接口,用于将设备硬件能力显示到更高级别的Java API框架。hal包含多个库模块,每个库模块都实现特定类型硬件组件的接口。例如照相机或蓝牙模块。当framework api需要访问硬件时,android系统会加载该硬件组件的库模块。android运行时运行android 5.0或更高版本,每个应用程序都在自己的进程中运行,并且有自己的android运行时示例。art是通过执行dex文件在低内存设备上运行的多个虚拟机。dex文件是专为android设计的字节码格式,经过优化后只使用很少的内存。构建工具链(如杰克)将Java源代码编译成DEX字节码,以在Android平台上运行。art的一些主要特性:pre-(aot)和instant(jit)编译

优化垃圾收集(GC)

更好的调试支持,包括专用样本分析器,详细的诊断异常和崩溃报告,还包括一个核心运行时库,它提供Java API框架使用的Java编程语言的大部分功能。本机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,包括列表,网格,文本框,按钮,甚至可嵌入的Web浏览器

用于访问非代码资源(如本地化字符串,图形和布局文件)的资源管理器

通知管理器,允许所有应用在状态栏中显示自定义提醒

用于管理应用程序生命周期的活动管理器,提供公共导航返回堆栈

一种内容提供商,允许应用访问其他应用中的数据,例如“联系人”应用,或共享自己的数据。开发人员可以完全访问Android系统应用程序使用的框架API。系统应用

最新的architecture.png

1.1.2 Android发布版本

2008年9月,谷歌正式发布了Android 1.0系统。

2011年2月,android 3.0系统发布,专门为平板电脑设计,但失败了。

Android 4.0,2011年10月,这个版本不再区分手机和平板电脑。

在2014年的谷歌I/O大会上,最新修改的Android 5.0系统被推出。采用art运行时环境代替dalvik虚拟机,大大提高了应用速度,提出了材料设计的概念。还引入了安卓穿戴、安卓汽车和安卓电视系统。从而进入可穿戴设备、汽车、电视等领域。

2015年google i/o会议引入了6.0添加运行时权限功能。

在2016年谷歌I/O大会上推出了7.0系统,加入了多窗口模式

1.1.3 Android应用程序开发功能

1。四大组成部分

活动、服务器、广播接收器、内容提供商

活动:应用程序的外观。

服务器:在后面默默地运行…

广播接收器运行您的应用程序以接收来自任何地方的广播消息,例如:电话,文本消息等。同样,我们的应用程序也可以向外部发送广播消息。

可以在Content Provider应用程序之间共享数据。例如,阅读系统电话簿中的联系人。

2.丰富的系统控制

该系统提供了丰富的系统控制,可以轻松编写漂亮的界面。当然,我们也可以自己定义控件。

3. SQLite数据库

该系统附带一个轻量级,快速运行的嵌入式关系数据库,支持标准SQL语句,可以通过Android封装的API进行操作。

4.强大的多媒体

提供丰富的多媒体服务。如:音乐,视频,录音,拍照,报警。等等,所有这些都可以通过程序中的代码来控制。

5.位置定位

使用内置GPS导航到您的位置

继续更新.