安卓初步入门笔记

android代码名称:

    

版本号 版本名 中文名


API33  Android 13 / Android T/ Tiramisu / 提拉米苏 

API32  S_V2 / sv2 / Snow Cone / 刨冰 

API31  Android 12 / Android S / Snow Cone / 刨冰 

API30  Android 11 / Android R / Red Velvet Cake(红丝绒蛋糕) / RVCAPI29  Android 10 / Android Q (Android 系统将直接被称为 Android 10,不再使用甜品做代号)


API Q android Q
API 28 android 9.0 Pie 馅饼
API 27 android 8.1 Oreo 奥利奥
API 26 android 8.0 Oreo 奥利奥
API 25 android 7.1 Nougat 牛轧糖
API 24 android 7.0 Nougat 牛轧糖
API 23 android 6.0 Marshmallow 棉花糖
API 22 android 5.1 Lollipop 棒棒糖
API 21 android 5.0 Lollipop 棒棒糖
API 20 android 4.4W KitKat 奇巧巧克力棒
API 19 android 4.4 KitKat 奇巧巧克力棒
API 18 android 4.3 Jelly Bean 果冻豆
API 17 android 4.2 Jelly Bean 果冻豆
API 16 android 4.1 Jelly Bean 果冻豆
API 15 android 4.0.3 ~4.0.4 Ice Cream Sandwich 冰淇淋三明治
API 14 android 4.0 ~ 4.0.2 Ice Cream Sandwich 冰淇淋三明治
API 13 android 3.2 Honeycomb 蜂巢
API 12 android 3.1 Honeycomb 蜂巢
API 11 android 3.0 Honeycomb 蜂巢
API 10 android 2.3.3 ~ 2.3.7 Gingerbread 姜饼
API 9 android 2.3~ 2.3.2 Gingerbread 姜饼
API 8 android 2.2~ 2.2.3 Froyo 冻酸奶
API 7 android 2.1 Éclair 闪电泡芙
API 6 android 2.0.1 Éclair 闪电泡芙
API 5 android2.0 Éclair 闪电泡芙
API 4 android 1.6 Donut 甜甜圈
API 3 android 1.5 ICupcake 纸杯蛋糕
API 2 android 1.1
API 1 android 1.0

android架构:

点击查看原图

1、应用程序层


    就是程序员开发的那一层,就是平常用户用的那些app们。

2、应用程序框架

就是安卓操作系统所提供的各种API,程序员可以过调用这些API进行程序开发。

 a.丰富而又可扩展的视图(Views),可以用来构建应用程序, 它包括列表(lists),网格(grids),文本框(text boxes),按钮(buttons), 甚至可嵌入的web浏览器。
 b.内容提供器(Content Providers)使得应用程序可以访问另一个应用程序的数据(如联系人数据库), 或者共享它们自己的数据。
 c.资源管理器(Resource Manager)提供非代码资源的访问,如本地字符串,图形,和布局文件(layout files)。
 d.通知管理器(Notification Manager)使得应用程序可以在状态栏中显示自定义的提示信息。
 e.活动管理器(Activity Manager)用来管理应用程序生命周期并提供常用的导航回退功能。

3、系统运行库

a、程序库

Android包含一些C/C++库,这些库能被Android系统中不同的组件使用。它们通过Android应用程序框架为开发者提供服务。
    以下是一些核心库:
    主要包括基本的C库、以及多媒体库以支持各种多媒体格式、位图和矢量字体、2D和3D图形引擎、浏览器、数据库支持。
 1.Bionic系统C库。
 2.媒体库,基于PacketVideo OpenCORE。
 3.Surface Manager 顾名思义,用于管理Surface。
 4.Webkit,LibWebCore 浏览器,基于Webkit引擎。
 5.SGL 底层的2D图形引擎
 6.3D libraries 基于OpenGL ES 1.0 APIs实现
 7.FreeType 位图(bitmap)和矢量(vector)字体显示。
 8.SQLite 一个对于所有应用程序可用,功能强劲的轻型关系型数据库引擎。

b、Android 运行库

Android 包括了一个核心库,该核心库提供了JAVA编程语言核心库的大多数功能。
  每一个 Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。(安卓5.0之后改用ART虚拟机)
  Dalvik被设计成一个设备可以同时高效地运行多个虚拟系统。   
  Dalvik虚拟机执行(.dex)的Dalvik可执行文件,该格式文件针对小内存使用做了优化。
  同时虚拟机是基于寄存器的,所有的类都经由JAVA编译器编译,然后通过SDK中的 "dx" 工具转化成.dex格式由虚拟机执行。
  Dalvik虚拟机依赖于linux内核的一些功能,比如线程机制和底层内存管理机制。

4、Linux内核

Android 的核心系统服务依赖于内核 ,如安全性,内存管理,进程管理, 网络协议栈和驱动模型。
每个安卓版本API对应的Linux内核版本也都不相同。
Linux 内核也同时作为硬件和软件栈之间的抽象层。其外还对其做了部分修改,主要涉及两部分修改:
   a)Binder   
  (IPC):提供有效的进程间通信,虽然linux内核本身已经提供了这些功能,但Android系统很多服务都需要用到该功能,为了某种原因
  其实现了自己的一套。
   b)电源管理:为手持设备节省能耗。

Android开发语言

Java,分为3部分:

a) java语言:即其语法,其写代码的程式
b) java虚拟机:为了实现一次编译到处可以运行的原则,java在编译连接以后并没有产生目标机器语言,而是采用了Java bytecode
    这种Java共用指令,这时就需要一个虚拟机来执行改指令。
c) 库:跟我们常用的C语言一样提供一些常用的库
后两者结合就是Java Runtime Environment

参考文献:https://blog.csdn.net/salary/article/details/82177546

参考文献:https://www.cnblogs.com/skynet/archive/2010/04/15/1712924.html

参考文献:https://www.cnblogs.com/lijunamneg/archive/2013/01/18/2866953.html

发表评论 / Comment

用心评论~