面向开发者的历代安卓特性整理

Android 版本历史

Name Version Issue date API Level
Android 1.0 1.0 2008年09月23日 1
Android 1.1 1.1 2009年02月09日 2
Android Cupcake 1.5 2009年04月27日 3
Android Donut 1.6 2009年09月15日 4
Android Eclair 2.0~2.1 2009年10月26日 5~7
Android Froyo 2.2~2.2.3 2010年05月20日 8
Android Gingerbread 2.3~2.3.7 2010年12月06日 9~10
Android Honeycomb 3.0~3.2.6 2011年02月22日 11~13
Android Ice Cream Sandwich 4.0~4.0.4 2011年10月18日 14~15
Android Jelly Bean 4.1~4.3.1 2012年07月09日 16~18
Android KitKat 4.4~4.4.4 2013年10月31日 19~20
Android Lollipop 5.0~5.1.1 2014年11月12日 21~22
Android Marshmallow 6.0~6.0.1 2015年10月05日 23
Android Nougat 7.0~7.1.2 2016年08月22日 24~25
Android Oreo 8.0~8.1 2017年08月21日 26~27
Android Pie 9 2018年08月06日 28
Android 10 10 2019年09月03日 29
Android 11 11 2020年09月08日 30
Android 12 12 2021年10月?日 31

安卓彩蛋

版本 占比(截至2019年5月7日)

#mermaid-svg-RmVjULyhiV8yOaNV .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-RmVjULyhiV8yOaNV .label text{fill:#333}#mermaid-svg-RmVjULyhiV8yOaNV .node rect,#mermaid-svg-RmVjULyhiV8yOaNV .node circle,#mermaid-svg-RmVjULyhiV8yOaNV .node ellipse,#mermaid-svg-RmVjULyhiV8yOaNV .node polygon,#mermaid-svg-RmVjULyhiV8yOaNV .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-RmVjULyhiV8yOaNV .node .label{text-align:center;fill:#333}#mermaid-svg-RmVjULyhiV8yOaNV .node.clickable{cursor:pointer}#mermaid-svg-RmVjULyhiV8yOaNV .arrowheadPath{fill:#333}#mermaid-svg-RmVjULyhiV8yOaNV .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-RmVjULyhiV8yOaNV .flowchart-link{stroke:#333;fill:none}#mermaid-svg-RmVjULyhiV8yOaNV .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-RmVjULyhiV8yOaNV .edgeLabel rect{opacity:0.9}#mermaid-svg-RmVjULyhiV8yOaNV .edgeLabel span{color:#333}#mermaid-svg-RmVjULyhiV8yOaNV .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-RmVjULyhiV8yOaNV .cluster text{fill:#333}#mermaid-svg-RmVjULyhiV8yOaNV div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-RmVjULyhiV8yOaNV .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-RmVjULyhiV8yOaNV text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-RmVjULyhiV8yOaNV .actor-line{stroke:grey}#mermaid-svg-RmVjULyhiV8yOaNV .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-RmVjULyhiV8yOaNV .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-RmVjULyhiV8yOaNV #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-RmVjULyhiV8yOaNV .sequenceNumber{fill:#fff}#mermaid-svg-RmVjULyhiV8yOaNV #sequencenumber{fill:#333}#mermaid-svg-RmVjULyhiV8yOaNV #crosshead path{fill:#333;stroke:#333}#mermaid-svg-RmVjULyhiV8yOaNV .messageText{fill:#333;stroke:#333}#mermaid-svg-RmVjULyhiV8yOaNV .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-RmVjULyhiV8yOaNV .labelText,#mermaid-svg-RmVjULyhiV8yOaNV .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-RmVjULyhiV8yOaNV .loopText,#mermaid-svg-RmVjULyhiV8yOaNV .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-RmVjULyhiV8yOaNV .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-RmVjULyhiV8yOaNV .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-RmVjULyhiV8yOaNV .noteText,#mermaid-svg-RmVjULyhiV8yOaNV .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-RmVjULyhiV8yOaNV .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-RmVjULyhiV8yOaNV .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-RmVjULyhiV8yOaNV .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-RmVjULyhiV8yOaNV .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-RmVjULyhiV8yOaNV .section{stroke:none;opacity:0.2}#mermaid-svg-RmVjULyhiV8yOaNV .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-RmVjULyhiV8yOaNV .section2{fill:#fff400}#mermaid-svg-RmVjULyhiV8yOaNV .section1,#mermaid-svg-RmVjULyhiV8yOaNV .section3{fill:#fff;opacity:0.2}#mermaid-svg-RmVjULyhiV8yOaNV .sectionTitle0{fill:#333}#mermaid-svg-RmVjULyhiV8yOaNV .sectionTitle1{fill:#333}#mermaid-svg-RmVjULyhiV8yOaNV .sectionTitle2{fill:#333}#mermaid-svg-RmVjULyhiV8yOaNV .sectionTitle3{fill:#333}#mermaid-svg-RmVjULyhiV8yOaNV .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-RmVjULyhiV8yOaNV .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-RmVjULyhiV8yOaNV .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-RmVjULyhiV8yOaNV .grid path{stroke-width:0}#mermaid-svg-RmVjULyhiV8yOaNV .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-RmVjULyhiV8yOaNV .task{stroke-width:2}#mermaid-svg-RmVjULyhiV8yOaNV .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-RmVjULyhiV8yOaNV .taskText:not([font-size]){font-size:11px}#mermaid-svg-RmVjULyhiV8yOaNV .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-RmVjULyhiV8yOaNV .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-RmVjULyhiV8yOaNV .task.clickable{cursor:pointer}#mermaid-svg-RmVjULyhiV8yOaNV .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-RmVjULyhiV8yOaNV .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-RmVjULyhiV8yOaNV .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-RmVjULyhiV8yOaNV .taskText0,#mermaid-svg-RmVjULyhiV8yOaNV .taskText1,#mermaid-svg-RmVjULyhiV8yOaNV .taskText2,#mermaid-svg-RmVjULyhiV8yOaNV .taskText3{fill:#fff}#mermaid-svg-RmVjULyhiV8yOaNV .task0,#mermaid-svg-RmVjULyhiV8yOaNV .task1,#mermaid-svg-RmVjULyhiV8yOaNV .task2,#mermaid-svg-RmVjULyhiV8yOaNV .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-RmVjULyhiV8yOaNV .taskTextOutside0,#mermaid-svg-RmVjULyhiV8yOaNV .taskTextOutside2{fill:#000}#mermaid-svg-RmVjULyhiV8yOaNV .taskTextOutside1,#mermaid-svg-RmVjULyhiV8yOaNV .taskTextOutside3{fill:#000}#mermaid-svg-RmVjULyhiV8yOaNV .active0,#mermaid-svg-RmVjULyhiV8yOaNV .active1,#mermaid-svg-RmVjULyhiV8yOaNV .active2,#mermaid-svg-RmVjULyhiV8yOaNV .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-RmVjULyhiV8yOaNV .activeText0,#mermaid-svg-RmVjULyhiV8yOaNV .activeText1,#mermaid-svg-RmVjULyhiV8yOaNV .activeText2,#mermaid-svg-RmVjULyhiV8yOaNV .activeText3{fill:#000 !important}#mermaid-svg-RmVjULyhiV8yOaNV .done0,#mermaid-svg-RmVjULyhiV8yOaNV .done1,#mermaid-svg-RmVjULyhiV8yOaNV .done2,#mermaid-svg-RmVjULyhiV8yOaNV .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-RmVjULyhiV8yOaNV .doneText0,#mermaid-svg-RmVjULyhiV8yOaNV .doneText1,#mermaid-svg-RmVjULyhiV8yOaNV .doneText2,#mermaid-svg-RmVjULyhiV8yOaNV .doneText3{fill:#000 !important}#mermaid-svg-RmVjULyhiV8yOaNV .crit0,#mermaid-svg-RmVjULyhiV8yOaNV .crit1,#mermaid-svg-RmVjULyhiV8yOaNV .crit2,#mermaid-svg-RmVjULyhiV8yOaNV .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-RmVjULyhiV8yOaNV .activeCrit0,#mermaid-svg-RmVjULyhiV8yOaNV .activeCrit1,#mermaid-svg-RmVjULyhiV8yOaNV .activeCrit2,#mermaid-svg-RmVjULyhiV8yOaNV .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-RmVjULyhiV8yOaNV .doneCrit0,#mermaid-svg-RmVjULyhiV8yOaNV .doneCrit1,#mermaid-svg-RmVjULyhiV8yOaNV .doneCrit2,#mermaid-svg-RmVjULyhiV8yOaNV .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-RmVjULyhiV8yOaNV .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-RmVjULyhiV8yOaNV .milestoneText{font-style:italic}#mermaid-svg-RmVjULyhiV8yOaNV .doneCritText0,#mermaid-svg-RmVjULyhiV8yOaNV .doneCritText1,#mermaid-svg-RmVjULyhiV8yOaNV .doneCritText2,#mermaid-svg-RmVjULyhiV8yOaNV .doneCritText3{fill:#000 !important}#mermaid-svg-RmVjULyhiV8yOaNV .activeCritText0,#mermaid-svg-RmVjULyhiV8yOaNV .activeCritText1,#mermaid-svg-RmVjULyhiV8yOaNV .activeCritText2,#mermaid-svg-RmVjULyhiV8yOaNV .activeCritText3{fill:#000 !important}#mermaid-svg-RmVjULyhiV8yOaNV .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-RmVjULyhiV8yOaNV g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-RmVjULyhiV8yOaNV g.classGroup text .title{font-weight:bolder}#mermaid-svg-RmVjULyhiV8yOaNV g.clickable{cursor:pointer}#mermaid-svg-RmVjULyhiV8yOaNV g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-RmVjULyhiV8yOaNV g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-RmVjULyhiV8yOaNV .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-RmVjULyhiV8yOaNV .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-RmVjULyhiV8yOaNV .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-RmVjULyhiV8yOaNV .dashed-line{stroke-dasharray:3}#mermaid-svg-RmVjULyhiV8yOaNV #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-RmVjULyhiV8yOaNV #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-RmVjULyhiV8yOaNV #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-RmVjULyhiV8yOaNV #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-RmVjULyhiV8yOaNV #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-RmVjULyhiV8yOaNV #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-RmVjULyhiV8yOaNV #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-RmVjULyhiV8yOaNV #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-RmVjULyhiV8yOaNV .commit-id,#mermaid-svg-RmVjULyhiV8yOaNV .commit-msg,#mermaid-svg-RmVjULyhiV8yOaNV .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-RmVjULyhiV8yOaNV .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-RmVjULyhiV8yOaNV .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-RmVjULyhiV8yOaNV g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-RmVjULyhiV8yOaNV g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-RmVjULyhiV8yOaNV g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-RmVjULyhiV8yOaNV g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-RmVjULyhiV8yOaNV g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-RmVjULyhiV8yOaNV g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-RmVjULyhiV8yOaNV .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-RmVjULyhiV8yOaNV .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-RmVjULyhiV8yOaNV .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-RmVjULyhiV8yOaNV .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-RmVjULyhiV8yOaNV .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-RmVjULyhiV8yOaNV .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-RmVjULyhiV8yOaNV .edgeLabel text{fill:#333}#mermaid-svg-RmVjULyhiV8yOaNV .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-RmVjULyhiV8yOaNV .node circle.state-start{fill:black;stroke:black}#mermaid-svg-RmVjULyhiV8yOaNV .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-RmVjULyhiV8yOaNV #statediagram-barbEnd{fill:#9370db}#mermaid-svg-RmVjULyhiV8yOaNV .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-RmVjULyhiV8yOaNV .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-RmVjULyhiV8yOaNV .statediagram-state .divider{stroke:#9370db}#mermaid-svg-RmVjULyhiV8yOaNV .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-RmVjULyhiV8yOaNV .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-RmVjULyhiV8yOaNV .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-RmVjULyhiV8yOaNV .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-RmVjULyhiV8yOaNV .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-RmVjULyhiV8yOaNV .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-RmVjULyhiV8yOaNV .note-edge{stroke-dasharray:5}#mermaid-svg-RmVjULyhiV8yOaNV .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-RmVjULyhiV8yOaNV .error-icon{fill:#522}#mermaid-svg-RmVjULyhiV8yOaNV .error-text{fill:#522;stroke:#522}#mermaid-svg-RmVjULyhiV8yOaNV .edge-thickness-normal{stroke-width:2px}#mermaid-svg-RmVjULyhiV8yOaNV .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-RmVjULyhiV8yOaNV .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-RmVjULyhiV8yOaNV .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-RmVjULyhiV8yOaNV .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-RmVjULyhiV8yOaNV .marker{fill:#333}#mermaid-svg-RmVjULyhiV8yOaNV .marker.cross{stroke:#333}:root { --mermaid-font-family: "trebuchet ms", verdana, arial;}#mermaid-svg-RmVjULyhiV8yOaNV {color: rgba(0, 0, 0, 0.75);font: ;}0%0%1%2%1%7%3%12%17%11%8%13%15%10%版本分布2.3.3~2.3.7 Gingerbread4.0.3~4.0.4 Jelly Bean4.1.x Jelly Bean4.2.x Jelly Bean4.3 Jelly Bean4.4 Jelly Bean5.0 Lollipop5.1 Lollipop6.0 Marshmallow7.0 Nougat7.1 Nougat8.0 Oreo8.1 Oreo9 Pie
Version Name API Runtime Proportion
2.3.3~2.3.7 Gingerbread 10 Dalvik 1.4.0 0.3%
4.0.3~4.0.4 Jelly Bean 15 Dalvik 0.3%
4.1.x Jelly Bean 16 Dalvik 1.2%
4.2.x Jelly Bean 17 Dalvik 1.5%
4.3 Jelly Bean 18 Dalvik 0.5%
4.4 Jelly Bean 19 Dalvik & ART 1.6.0 6.9%
5.0 Lollipop 21 ART 2.1.0 3.0%
5.1 Lollipop 22 ART 11.5%
6.0 Marshmallow 23 ART 16.9%
7.0 Nougat 24 ART 11.4%
7.1 Nougat 25 ART 7.8%
8.0 Oreo 26 ART 12.9%
8.1 Oreo 27 ART 15.4%
9 Pie 28 ART 10.4%

屏幕尺寸和密度 占比(截至 2020 年 8 月 30 日)

ldpi mdpi tvdpi hdpi xhdpi xxhdpi Total
Small 0.1% 0.1% 0.2%
Normal 0.4% 0.3% 17.0% 41.1% 25.9% 84.7%
Large 1.8% 2.0% 0.7% 2.6% 2.1% 9.2%
Xlarge 3.5% 1.9% 0.5% 5.9%
Total 0.1% 5.7% 2.3% 19.6% 44.3% 28.0%

Vulkan 版本(截至 2020 年 8 月 30 日)

Vulkan 版本 分发率
47.0%
Vulkan 1.0.3 25.0%
Vulkan 1.1 28.0%

OpenGL ES 版本(截至 2020 年 8 月 30 日)

OpenGL ES 版本 分发率
GL 2.0 12.28%
GL 3.0 16.57%
GL 3.1 8.77%
GL 3.2 62.38%

Android架构

Android 软件栈

Android系统架构图

历代版本特性

参考

4.0~4.4 Jelly Bean API14~19

  1. NFC 功能
  2. IR 红外发射器
  3. 遥控器
  4. 打印框架
  5. 存储访问框架 浏览文件
  6. 低功耗传感器 [步测器和计步器、]
  7. 共享短信提供程序
  8. 全屏沉浸模式
  9. 动画场景的转场 TransitionManager
  10. 透明系统 UI 样式
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DWBUwwVu-1631938193295)(https://developer.android.com/images/kk-home.jpg)]
  11. 增强的WebView 【HTML5、CSS3、JavaScript引擎 (V8)】
  12. 屏幕录制 SurfaceView.setSecure()可屏蔽录制
  13. 自适应分辨率切换 【在播放过程中无缝更改分辨率】DASH通用加密
  14. HTTP直播流式传输 (HLS)隐藏式字幕
  15. DSP音频隧道 音频监控 音量增强器 用于改善 AV 同步的音频时间戳
  16. Wi-Fi CERTIFIED Miracast™
  17. RenderScript Compute GPU 加速 NDK直接使用RenderScript
  18. OpenGL ES 2.0 【支持主显示器、外部显示器(例如HDMI)、以及HWComposer 1.3支持一个虚拟显示器】
  19. 无障碍功能
  20. 权限 【INSTALL_SHORTCUT(安装快捷键)、UNINSTALL_SHORTCUT(卸载快捷键)、TRANSMIT_IR(红外线发射器)】

5.0~5.1 Lollipop API21~22 (最富雄心的 Android 版本!)

  1. ART取代 Dalvik
  2. Material Design
  3. 64位NDK Android 5.0 引入了对 64 位系统的支持
  4. 通知 【浮动通知、锁屏通知、抬头通知、添加新的元数据、不再需要 RemoteViews】
  5. Android TV 输入框架 (TIF)
  6. 概览空间
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sYwdjgNn-1631938193296)(https://developer.android.com/images/versions/recents_screen_2x.png)]
  7. 高级连接 BLE并发 多网络功能 NFC应用ID
  8. OpenGL ES 3.1安卓扩展包(AEP)
  9. 音频增强 低延迟音频输入 音频流混音(多大八个声道,包括 5.1 和 7.1 声道进行混音) 浏览来自其他应用的媒体 文本语音转换合成 USB 音频外设 Opus 音频编解码
  10. 增强的相机和视频 允许采集YUV 和 Bayer RAW 等原始格式 4K支持
  11. 屏幕采集共享
  12. 新的传感器 倾斜检测器 心率传感器 互动复合传感器(唤醒,拿起,扫视等特殊手势识别)
  13. Chromium WebView 【新增WebRTC、WebAudio、WebGL】
  14. 用于开发省电应用的工具
    新增的 Job Scheduling API 允许您通过将作业推迟到稍后或指定条件下(如设备充电或连入 WLAN 时)运行来优化电池寿命。
    新增的 dumpsys batterystats 命令可生成电池使用情况统计信息,您可通过它了解整个系统的耗电情况,以及了解您的应用对设备电池的影响。您可以查看耗电事件历史记录、每个 UID 和系统组件的近似耗电情况以及其他信息。
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eahZDBJ5-1631938193297)(https://developer.android.com/images/versions/battery_historian.png)]

6.0 Marshmallow API23

  1. 运行时权限
  2. 低电耗模式和应用待机模式
  3. 取消支持 Apache HTTP 开启方式
    android{
    useLibrary ‘org.apache.http.legacy’
    }
  4. OpenSSL 库转向使用 BoringSSL 请勿链接到并非 NDK API 组成部分的加密库,如 libcrypto.solibssl.so
  5. 硬件标识符访问权 WifiInfo.getMacAddress()方法和BluetoothAdapter.getAddress() 必须拥有 ACCESS_FINE_LOCATIONACCESS_COARSE_LOCATION 权限
  6. 通知 改用Notification.Builder
  7. 音频管理器变更 不再支持通过 AudioManager 类直接设置音量或将特定音频流静音。
  8. 文本选择 浮动工具栏 startActionMode(Callback, ActionMode.TYPE_FLOATING)
  9. 浏览器书签变更 此版本移除了对全局书签的支持。
  10. Android 密钥库变更 从此版本开始,Android 密钥库提供程序不再支持 DSA。但仍支持 ECDSA。
  11. WLAN 和网络连接变更
    您的应用只能更改由您创建的 WifiConfiguration 对象的状态。
    使用多网络 API(如 openConnection()bindSocket() 和新增的 bindProcessToNetwork() 方法)来确保通过所选网络传送网络流量。
  12. 相机服务变更 在此版本中,相机服务中共享资源的访问模式已从之前的“先到先得”访问模式更改为高优先级进程优先的访问模式。
  13. APK验证 该平台现在执行的 APK 验证更为严格。如果在清单中声明的文件在 APK 中并不存在,该 APK 将被视为已损坏。移除任何内容后必须重新签署 APK。
  14. USB连接 默认情况下,现在通过 USB 端口进行的设备连接设置为仅充电模式。 注意提醒用户

7.0~7.1 Nougat API24~25

  1. 电量优化
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9KdrJLr3-1631938193298)(https://developer.android.com/images/android-7.0/doze-diagram-1.png)]
  2. 后台优化
  3. 权限更改 应用私有目录被限制访问
  4. 虚拟文件 禁止file://URI授权content://URI推荐FileProvider
  5. 无障碍改进
  6. 屏幕缩放 最小sw320dp
  7. 阻止应用动态链接非公开NDK库 对API23以下的,暂时开放libandroid_runtime.so、libcutils.so、libcrypto.so 和 libssl.so
  8. 分屏显示
  9. OpenGL ES 3.2 API
  10. Vulkan API
  11. 使用硬件支持的密钥库
  12. 夜间模式
  13. 流量保护模式

8.0 Oreo API26

  1. 通知栏分类
  2. 圆点角标
  3. 通知背景
  4. 后台限制
    后台服务限制:处于空闲状态时,应用可以使用的后台服务存在限制。
    广播限制:除了有限的例外情况,应用无法为隐式广播注册接收器。
  5. 画中画
  6. 自适应图标
  7. 蓝牙升级
  8. 智能文本选择与智能共享(是否可以扩展自己的选项进去)
  9. WLAN感知
  10. 取消屏幕纵横比限制
  11. 字体 可下载字体、xml 定义字体
  12. 自适应 TextView、统一布局边距
  13. 广色域
  14. 多显示器支持[多屏互动]
  15. 可声明应用类别

8.1 Oreo(Go 版本) API27

  1. 内存优化 改进了整个平台的内存使用情况,可确保应用可以在内存不超过 1GB 的设备上高效运行。
  2. 灵活的定位选项 新的硬件功能常量,可让您通过 Google Play 向正常内存或低内存设备分发应用。
  3. Neural Networks API 为设备上的机器学习框架提供加速计算和推断功能,这些机器学习框架包括 TensorFlow Lite以及 Caffe2,等等。
  4. 自动填充框架更新
  5. 通知 现在,应用每秒只能发出一次通知提示音。低内存 Android 设备不支持 NotificationListenerService 和 ConditionProviderService,这些设备在调用 ActivityManager.isLowRamDevice() 时会返回 true。
  6. EditText 更新 从 API 级别 27 开始,EditText.getText() 方法会返回 Editable;以前,它会返回 CharSequence
  7. 程序化安全浏览操作 您的应用可以在 WebView 实例尝试转到 Google 已归类为已知威胁的网址时检测到该行为。

9.0 Pie API28

  1. Wi-Fi RTT 配合支持RTT的AP进行室内定位,精准度1至2米。使用场景:“打开这盏灯”、“此产品是否有特别优惠?”
  2. 显示屏缺口支持 DisplayCutout
  3. ImageDecoder 取代 BitmapFactory
  4. AnimatedImageDrawable 用于绘制和显示 GIF 和 WebP 动画图像。
  5. 短信的用户画像
  6. 全面屏的全面支持
  7. 通知栏的多种通知
  8. 多摄像头的更多画面
  9. GPS定位之外的WiFi定位
  10. 网络还有神经网络
  11. **Material Design迎来2.0时代 **
  12. 数字化健康
  13. 自适应功能
  14. 统一生物识别身份验证对话框
  15. APK Signature Scheme v3
  16. 窗口变更详情
  17. 旋转 按钮手动触发旋转
  18. 文本 文本预先计算、Smart Linkify
  19. DEX 文件的 ART 提前转换

10. Android 10 API29

  1. 限制非SDK接口
  2. 手势导航
  3. NDK 共享对象不得包含文本重定位、Bionic 库和动态链接器路径变更、系统二进制文件/库会映射到只执行内存(不可读取)
  4. 安全 系统默认会为所有 TLS 连接启用 TLS 1.3;SHA-1 哈希算法的证书在 TLS 连接中不受信任;KeyChain 行为变更和改进:从 Android 10 开始,KeyChain 对象会在调用 KeyChain.choosePrivateKeyAlias() 时信任颁发机构和密钥规范参数,以向用户显示证书选择提示。需要注意的是,此提示不包含不符合服务器规范的选项。
  5. WLAN 直连广播
  6. WLAN 感知功能
  7. SYSTEM_ALERT_WINDOW Android 10(Go 版本)设备上运行的应用无法获得 SYSTEM_ALERT_WINDOW 权限。
  8. 以旧版 Android 系统为目标平台的应用的警告
  9. 移除了 SHA-2 CBC 加密套件 这些加密套件不如使用 GCM 的类似加密套件安全
  10. HTTPS 连接变更 如果在 Android 10 上运行的应用将 null 传递给 setSSLSocketFactory(),则会出现 IllegalArgumentException。
  11. android.preference 库已弃用
  12. ZIP 文件实用程序库变更
  13. 摄像头变更 android:resizeableActivity
  14. 电池用量跟踪 从 Android 10 开始,只要在发生重大充电事件之后拔下设备电源插头,SystemHealthManager 就会重置其电池用量统计信息。
  15. Android Beam 已弃用 弃用了一些相关的 NFC API。

11.0 Android 11 API30

  1. 隐私设置
  2. 接触史通知
  3. 安全性 SSLSocket 实现基于 Conscrypt。
  4. Scudo Hardened Allocator Android 11 在内部使用 Scudo Hardened Allocator 为堆分配提供服务。
  5. 应用使用情况统计信息
  6. 针对 5G 的模拟器支持
  7. JobScheduler API 调用限制调试
  8. 文件描述符排错程序 (fdsan)
  9. 非 SDK 接口限制
  10. V1 版 Google 地图共享库已移除
  11. 分享内容 URI 如果您的应用与其他应用分享内容 URI,相应 intent 必须至少设置以下 intent 标记中的一个,以便授予对 URI 的访问权限:FLAG_GRANT_READ_URI_PERMISSIONFLAG_GRANT_WRITE_URI_PERMISSION
  12. 废弃 Display#getSize 和 getMetrics

12.0 Android 12 API31

  1. 滚动效果 在 Android 11 及更低版本中,滚动事件会使视觉元素发光。在 Android 12 及更高版本中,发生拖动事件时,视觉元素会拉伸和反弹;发生快速滑动事件时,它们会快速滑动和反弹:

    新的滚动行为会影响拖动和快速滑动动画。
  2. 前台服务通知用户体验延迟 ,系统可以为某些前台服务延迟 10 秒显示前台服务通知。此更改使某些短期任务在显示通知之前完成。
  3. 沉浸模式下的手势导航改进
  4. 网络 intent 解析
  5. 限制性应用待机模式存储分区 系统根据使用应用的时间新近度和频率来确定应用的资源请求的优先级。
  6. 电源管理限制 如果系统将您的应用放在受限存储分区中,会受到以下限制:
    - 您每天可以在 10 分钟的批处理会话中运行作业一次。在此会话期间,系统会将您应用的作业与其他应用的作业分组在一起。
    - 与系统将您的应用放在限制较少的存储分区中相比,您的应用可以运行较少的加急作业
    - 您应用的不精确的闹钟每天传送一次。您在调用 set()、setInexactRepeating()、setAndAllowWhileIdle() 或 setWindow()方法时创建不精确的闹钟。
    - 您的应用每天可以及时接收五条高优先级 Firebase Cloud Messaging (FCM)消息。所有后续 FCM 消息都按普通优先级传送,因此如果设备在节能模式下,这些消息可能会延迟。
  7. Display#getRealSize 和 getRealMetrics:废弃和沙盒
  8. 改进了刷新率切换
  9. 麦克风和摄像头切换开关
  10. 麦克风和摄像头指示标志
  11. 应用无法关闭系统对话框
  12. 不受信任的触摸事件被屏蔽 为了维持系统安全并保持良好的用户体验,Android 12 会阻止应用使用触摸事件,使用触摸事件时叠加层会以不安全的方式遮掩应用。
  13. 权限软件包可见性
  14. 移除了 Bouncy Castle 实现 Android 12 移除了之前废弃的加密算法(包括所有 AES 算法)的许多 BouncyCastle 实现。系统改用这些算法的 Conscrypt 实现。
  15. 剪贴板访问通知
  16. Passpoint 更新
  17. 更新后的非 SDK 接口限制

安卓可知可会,面向开发者的历代安卓特性整理(未完结)相关推荐

  1. 万物Linux皆可刷安卓,万物皆可Win,开发者成功在安卓手机刷入Win10系统

    原标题:万物皆可Win,开发者成功在安卓手机刷入Win10系统 [PConline 资讯]ARM版本Windows 10的推出,意味着这款称霸个人电脑多年的操作系统拥有了更大的舞台,也给开发者们的想象 ...

  2. 历代安卓版本回顾(使用者角度+开发者角度)长期更新!!!

    转载请注明出处:http://www.cnblogs.com/cnwutianhao/p/6676121.html 序言 Android 用甜点作为它们系统版本的代号的命名方法开始于 Andoird ...

  3. 面向开发者的机器学习(一)| 机器学习简介

    精选30+云产品,助力企业轻松上云!>>> 本系列为面向开发者的机器学习教程. 1 简介 机器学习是一门为了预测某个值而对系统应用算法来学习数据中模式的科学.利用足够的数据,在所有输 ...

  4. HarmonyOS 2.0:正式开源,年底面向开发者发布智能手机 Beta 版本

    北京时间 9 月 10 日,华为开发者大会 2020(Together)今天在东莞松山湖拉开帷幕.在大会的主题演讲中,华为带来了 HarmonyOS 2.0.EMUI 11.HMS.HUAWEI Hi ...

  5. Zeal 面向开发者的离线文档查看工具

    作者:极客小俊 一个专注于web技术的80后 我不用拼过聪明人,我只需要拼过那些懒人 我就一定会超越大部分人! 原创技术文章 个人博客: cnblogs.com Zeal 国外一款面向开发者的离线文档 ...

  6. 面向开发者的 Android 8.0 Oreo 详细介绍

    无需原生开发基础,也能完美呈现京东商城.<混合开发京东商城系统,提前布局大前端>课程融合vue.Android.IOS等目前流行的前端和移动端技术,混合开发经典电商APP--京东.课程将各 ...

  7. 编程的技术|艺术|术术——面向开发者编程

    同学们好,我叫梁峻墅.今天想和大家分享的话题是:编程的技术|艺术|术术.这里的"术术"你可以理解为哲学. 面向开发者编程,与大家平常经常说的面向过程编程,面向对象编程等不太一样.我 ...

  8. WasmEdge 0.9.1 发布:更佳 networking 支持与开发者体验、安卓支持

    WasmEdge 0.9.1 发布! 更好的 networking 支持与开发者体验.安卓支持 WasmEdge 0.9.1 发布了!此版本集成了高性能 networking.JavaScript 流 ...

  9. 《程序员必读之软件架构》 [豆瓣评分 7.30] 强调实践、注重实效、轻量级、面向开发者的软件架构指南...

    image 下载地址...... 1.网站地址或点击阅读原文 https://51dr.cn/book/detail/41205 2.回复关键字 41205直接获取下载链接 好书推荐.视频分享,公众号 ...

最新文章

  1. 顺序表应用3:元素位置互换之移位算法
  2. opentack-openstack组件及功能(1)
  3. MODBUS通讯协议详解(基于485)
  4. rabbitmq导出队列_消息队列BCMQ在大云运维管理平台BCDeepWatch中的应用
  5. 定时任务 Wpf.Quartz.Demo.3
  6. Inno Setup 操作XML
  7. 互联网项目架构经验分享
  8. 22. PHP 日期和时间
  9. 10g添加用户 oracle_oracle10g下新建/删除用户
  10. PC端品优购电商项目源码
  11. android nv21 nv12,android - 将NV21转换为NV12并旋转90度通过libyuv? - 堆栈内存溢出
  12. frontpage 2010.2003绿色版
  13. MyBatis实现级联查询及逆向生成
  14. 魔兽世界mysql闪退_魔兽世界怀旧服闪退怎么办
  15. 腾讯云HiFlow场景连接器7月最受欢迎新应用模版推荐
  16. 中国没有真正意义上的海滩比基尼(图)
  17. PHP万能小偷程序源码
  18. 关于构建网络安全知识库方向相关知识的学习和思考
  19. python解常微分方程组
  20. 几倍的杠杆炒股比较适合?

热门文章

  1. 免费测试自己的肤质情况,会有专业的人士指导你!
  2. Mac入门--通过homebrew下载过慢问题
  3. 华东解析|交通部给共享单车的紧箍咒
  4. 【入门-R爬虫抓取数据】文本挖掘之数据爬虫
  5. (vue + SpingBoot)前后端分离实现Apple登录的过程
  6. 敬业签安卓手机便签文本中英文翻译功能如何使用?
  7. Ubantu切换输入法快捷键设置
  8. 如何用python使用递归实现1加到100
  9. 基于Canvas的九宫格抽奖,就是仿csdn的APP做的,能过审不?
  10. 葡萄牙Sapo Mail青蛙邮箱 免费16GB电子邮箱