Android系统简介

Android安卓)是一个基于Linux内核的开放源代码移动操作系统,由谷歌(Google)成立的开放手持设备联盟持续领导与开发,主要设计用于触摸屏移动设备如智能手机和平板电脑与其他便携式设备。

可从Android开源项目获取源代码,Android系统及相关工具、sdk的源代码都托管在Google的git服务器android Git repositories上。程序员可以从Android开发者上获取工具和帮助文档,在github上也有一个android repositories,上面放了一些Sample项目

Android版本 (wiki:中文  en

平台版本 API级别 VERSION_CODE 发布日期 版本代号 Runtime 备注
Android 11.0 30   2020.2.19   ART(Android Runtime)  
Android 10.0 29 Q 2019.9.3   平台亮点
Android 9 28 P 2018.8.6

Pie(派) 

平台亮点
Android 8.1 27 O_MR1  2017.12.5 Oreo(奥利奥) 平台亮点
Android 8.0 26 O 2017.8.21 平台亮点

Android 7.1.1Android 7.1

25 N_MR1 2016.10.4 Nougat(牛轧糖) 平台亮点
Android 7.0 24 N 2016.8.22 平台亮点
Android 6.0 23 M 2015.10.5 Marshmallow(棉花糖) 平台亮点
Android 5.1 22 LOLLIPOP_MR1 2015.3.9 Lollipop(棒棒糖) 平台亮点
Android 5.0 21 LOLLIPOP 2014.11.3 ART 2.1.0
Android 4.4W 20 KITKAT_WATCH   Kitkat(奇巧巧克力)   仅限 KitKat for Wearables
Android 4.4 19 KITKAT 2013.10.31 Dalvik(JIT)及ART1.6.0 平台亮点
Android 4.3 18 JELLY_BEAN_MR2 2013.7.24 Jelly Bean(果冻豆) Dalvik(JIT) 平台亮点

Android 4.24.2.2

17 JELLY_BEAN_MR1 2012.11.13 平台亮点

Android 4.14.1.1

16 JELLY_BEAN 2012.7.9 平台亮点

Android 4.0.34.0.4

15 ICE_CREAM_SANDWICH_MR1 2011.10.9 Ice Cream Sandwich(冰淇淋三明治) 平台亮点

Android 4.04.0.14.0.2

14 ICE_CREAM_SANDWICH  
Android 3.2 13 HONEYCOMB_MR2   Honeycomb(蜂巢)  
Android 3.1.x 12 HONEYCOMB_MR1   平台亮点
Android 3.0.x 11 HONEYCOMB   平台亮点

Android 2.3.4Android 2.3.3

10 GINGERBREAD_MR1 2011.2.9 Gingerbread(姜饼) Dalvik(JIT) 1.4.0 平台亮点

Android 2.3.2Android 2.3.1

Android 2.3

9 GINGERBREAD   Dalvik(JIT)
Android 2.2.x 8 FROYO   Froyo(优格冰淇淋) Dalvik(JIT) 平台亮点
Android 2.1.x 7 ECLAIR_MR1   Eclair(闪电泡芙) Dalvik虚拟机 平台亮点
Android 2.0.1 6 ECLAIR_0_1  
Android 2.0 5 ECLAIR  
Android 1.6 4 DONUT   Donut(甜甜圈) 平台亮点
Android 1.5 3 CUPCAKE   Cupcake(纸杯蛋糕) 平台亮点
Android 1.1 2 BASE_1_1      
Android 1.0 1 BASE      

Android从诞生起,编译器将java代码编译成自己的字节码而并非java字节码(如.dex文件,即dalvik executable),并在运行时使用基于寄存器的Dalvik虚拟机(JVM虚拟机是基于栈的)对字节码解释执行

Android2.2开始,Dalvik虚拟机增加了即时编译(JIT)技术。在应用程序启动时,JIT通过进行连续的性能分析来优化程序代码的执行,在程序运行的过程中,Dalvik虚拟机在不断的进行将字节码编译成机器码的工作。

Android4.4,ART(Android Runtime)对外发布;Android5.0及之后的版本取代Dalvik虚拟机

ART能够把应用程序的字节码转换为机器码,是Android所使用的一种新的虚拟机。

它与Dalvik的主要不同在于:Dalvik采用的是JIT技术,而ART采用Ahead-of-time(AOT)技术。

ART引入了AOT这种预编译技术,在应用程序安装的过程中,ART就已经将所有的字节码重新编译成了机器码。应用程序运行过程中无需进行实时的编译工作,只需要进行直接调用。

因此,ART极大的提高了应用程序的运行效率,同时也减少了手机的电量消耗,提高了移动设备的续航能力,在垃圾回收等机制上也有了较大的提升。

为了保证向下兼容,ART使用了相同的Dalvik字节码文件(dex),即在应用程序目录下保留了dex文件供旧程序调用,然而.odex文件则替换成了可执行与可链接格式(ELF)可执行文件。

一旦一个程序被ART的dex2oat命令编译,那么这个程序将会指通过ELF可执行文件来运行。

因此,相对于Dalvik虚拟机模式,ART模式下Android应用程序的安装需要消耗更多的时间,同时也会占用更大的内部储存空间,用于储存编译后的代码。

截至2020.4.10,各版本Android系统的占比情况如下:

截至2020.4.10,各屏幕尺寸密度的设备占比:

截至2020.4.10,OpenGL ES的设备占比

注:支持某个特定的 OpenGL ES 版本还意味着支持所有级别低于该版本的版本(如:支持版本 2.0 也意味着支持版本 1.1)

Android架构图

硬件

Android的主要硬件平台为ARM架构中文   包括ARMv7及ARMv8-A ),在更高端版本的Android中也正式支持x86及x86-64的架构。非官方的Android-x86的项目在得到官方正式支持之前为x86架构提供支持。

ARM架构,过去称作高级精简指令集机器(英语:Advanced RISC Machine,更早称作Acorn精简指令集机器,Acorn RISC Machine),是一个精简指令集(RISC)处理器架构家族,其广泛地使用在许多嵌入式系统设计。

ARM处理器非常适用于移动通信领域,符合其主要设计目标为低成本、高性能、低耗电的特性。

Application Profile为Cortex-A 系列,Real-time Profile为Cortex-R 系列,Microcontroller Profile为 ARM Cortex-M 系列

Android手机使用是ARM Cortex-A系列

架构 位数 处理器家族
ARMv7-A 32 ARM Cortex-A5, ARM Cortex-A7, ARM Cortex-A8, ARM Cortex-A9, ARM Cortex-A12, ARM Cortex-A15, ARM Cortex-A17
ARMv8-A 32 ARM Cortex-A32
64/32 ARM Cortex-A35,ARM Cortex-A53, ARM Cortex-A57,ARM Cortex-A72,ARM Cortex-A73
64 ARM Cortex-A34
ARMv8.2-A 64/32 ARM Cortex-A55,ARM Cortex-A75,ARM Cortex-A76,ARM Cortex-A77
64 ARM Cortex-A65, ARM Cortex-A65AE

32位 vs 32

32位架构 64/32位架构

字节序:可配置大小端序(默认小端序)

指令编码长度:32位

通用寄存器:15个32位整数寄存器;R15是程序计数器(在较老的架构设计中为26位定址) ,R14作为链接寄存器(link register)

浮点寄存器:最多32个64位寄存器

字节序:可配置大小端序(默认小端序)

指令编码长度:AArch64/A64(64位)、AArch32/A32(32位);兼容ARMv7用户空间

通用寄存器:31个64位整数寄存器

浮点寄存器:32个128位寄存器

Android 4.4的建议是至少需要512MB的RAM,Android 7.1最低要求为1GB的RAM,最好是2GB及以上;而对于“低RAM”设备,340MB是必需的最低容量

Android 4.4 需要32位的ARMv7, MIPS或x86的架构处理器(后两者是非官方的),以及与OpenGL ES 2.0兼容的图形处理器(GPU)一同使用

Android支持OpenGL ES 1.1、2.0、3.0、3.1、3.2,从Android 7.0开始支持Vulkan (API)

刘海屏、全面屏

https://www.jianshu.com/p/f04f066a626d 

Android开发

https://www.cnblogs.com/nebie/p/9145627.html

https://www.androiddevtools.cn/#

1. JDK

2. Android SDK

platform-tools

windows版本:platform-tools-latest-windows.zip

mac版本:platform-tools-latest-darwin.zip

linux版本:platform-tools-latest-linux.zip

②  build-tools

③  tools

platforms

⑤ emulator(模拟器)

⑥ gradle-plugin(gradle插件)

3. NDK

最新版本:https://developer.android.com/ndk/downloads

老版本:https://developer.android.com/ndk/downloads/older_releases 

4. apache-ant

5. gradle

6. IDE

Android Studio

Eclipse + ADT插件

SDK管理器

sdkmanager:命令行SDK管理工具

https://developer.android.com/studio/command-line/sdkmanager

Android SDK Manager

https://developer.android.com/studio/intro/update.html#sdk-manager

NVIDIA CodeWorks for Android

https://developer.nvidia.com/codeworks-android

https://docs.nvidia.com/gameworks/content/developertools/mobile/codeworks_android/codeworks_install.htm

原文地址:https://www.cnblogs.com/kekec/p/12560787.html