认识Android

妖精的绣舞 提交于 2020-03-13 22:01:11

 Android:

  1. Google于2007年11月5日宣布,基于Linux平台搭建的开源手机操作系统的名称。
  2. Logo是一个绿色(#A4C639)机器人,有时Logo会用纯文字来表达。
  3. 版本迭代:
  • 1.1:2008年9月发布的Android第一版
  • 1.5( Cupcake,纸杯蛋糕,2009年4月30日):支持拍摄/播放影片,蓝牙耳机浏览器,复制/贴上,虚拟键盘,屏幕旋转,来电照片显示 ;
  • 1.6( Donut,甜甜圈,2009年9月15日): 支持CDMA网络,文字转语音 , Virtual Private Network , 更多的屏幕分辨率;
  • 2.0:2009年10月26日, 支持HTML5,数码变焦;
  • 2.2/2.2.1( Froyo,冻酸奶,2010年5月20日):性能提升,3G网络共享 , Flash
  • 2.3.x(Gingerbread,姜饼,2010年12月7日): 感应器 , 前置摄像头;
  • 3.0/3.1/3.2( Honeycomb,蜂巢,2011年2月2日/2011年5月11日/ 2011年7月13日):优化平板 ,USB输入设备(键盘鼠标等);
  • 4.0( Ice Cream Sandwich,冰激凌三明治,2011年10月19日 ):全新的UI,Chrome Lite浏览器,离线功能,隐身浏览模式,截图,图片编辑;
  • 4.1( Jelly Bean,果冻豆,2012年6月28日 ):更快动画帧速,增强通知栏,智能语音搜索和Google Now,语言和输入法扩展;
  • 4.2( Jelly Bean,果冻豆,2012年10月30日 ):Photo Sphere全景拍照功能,锁屏状态下支持桌面挂件和直接打开照相,可扩展通知;
  • 4.4( KitKat,奇巧巧克力,2013年11月01日 ): 更加整合了自家服务,力求防止安卓系统继续碎片化、分散化;
  • 5.0/5.1( Lollipop,棒棒糖,2014年10月15日/2015年03月10日 ): 使用Material Design设计风格,支持多种设备,全新的通知,放弃Dalvik,采用64位ART虚拟机,多任务视窗,设备识别解锁,语音指令,面部解锁,浮动通知; 
  • 6.0( Marshmallow,棉花糖,2015年9月30日 ):应用权限管理,指纹识别,支付,浏览器调用App,电置管理;
  • 7.0( Nougat,牛轧糖,2016年8月22日 ): 多窗口模式(同时显示两个App),Data Saver流量监控,Lambda,锁屏或桌面壁纸,通知栏直接回复,DayDream VR,Google Assistant深度学习;

  • 8.0( Oreo,奥利奥,2017 年 8 月 22 日 ): TensorFlow Lite 机器学习工具,画中画(视频缩放窗口),图标小红点,自动填写(保存账号密码),病毒扫描程序Protect;
  • 9.0( Pie,派,2018 年 5月 9日 ): 黑暗模式,WI-FIRTT室内导航,所用应用默认使用HTTPS,新增157个Emojis表情, 夜灯和DND模式 ,多摄像头支持, 日历事件和天气信息显示在锁定屏幕上 , 后台应用程序无法访问相机和麦克风 , 一次最多可连接5个蓝牙设备;
  • 10.0( Q,2019年5月8日 ): 强制全局的暗黑模式 ,折叠屏幕, 5G网络, 线上系统更新。

4,体系架构

Android 是一种基于 Linux 的开放源代码软件栈,主要应用于ARM平台,但不仅限于ARM,通过编译控制,在X86等体系结构的机器上同样可以运行。

与其他操作系统一样,Android也采用分层的架构设计,从高到低分别是系统应用层(System Apps),Java API 框架层(Java API Framework),Android系统运行层(包括Android Runtime和原生态的C/C++库 Native C/C++ Libraries)、硬件抽象层(Hardware Abstraction Layer)、Linux内核层(Linux Kernel)。如下图所示:

下面由下至上分别介绍各层

 1、Linux内核层

Android是基于Linux内核的(Linux内核提供了安全性、内存管理、进程管理、网络协议和驱动模型等核心系统服务),Linux内核层为各种硬件提供了驱动程序,如显示驱动、相机驱动、蓝牙驱动、电池管理等等。

2、硬件抽象层(Hardware Abstraction Layer)

Android的硬件抽象层,简单来说,就是对Linux内核驱动程序的封装,向上提供接口,屏蔽低层的实现细节。HAL 可定义一个标准接口以供硬件供应商实现,这可让 Android 忽略较低级别的驱动程序实现。

3、Android系统运行层

这一层包括Android Runtime和原生态的C/C++库。

通过C或者C++库为Android系统提供主要的特性支持,例如Surface Manager管理访问显示子系统和从多模块应用中无缝整合2D和3D的图形,WebKit提供了浏览器支持等。可以使用 Android NDK 直接从访问某些原生态库。

Android运行时,其中包括了ART虚拟机(Android 5.0之前是Dalvik虚拟机,ART模式与Dalvik模式最大的不同在于,在启用ART模式后,系统在安装应用的时候会进行一次预编译,在安装应用程序时会先将代码转换为机器语言存储在本地,这样在运行程序时就不会每次都进行一次编译了,执行效率也大大提升。如果您的应用在 ART 上运行效果很好,那么它应该也可在 Dalvik 上运行,但反过来不一定。),每个Java程序都运行在ART虚拟机上,该虚拟机专门针对移动设备进行了定制,每个应用都有其自己的 Android Runtime (ART) 实例。此外,Android运行时还包含一套核心运行时库,可提供 Java API 框架使用的 Java 编程语言大部分功能,包括一些 Java 8 语言功能。

4、Java API 框架层

这一层主要提供了构建应用程序时可能用到的各种API,开发者通过这一层的API构建自己的APP,这一层也是APP开发人员必须要掌握的内容。

5、系统应用层

所有安装在手机上的系统应用都属于这一层,用户自己开发的应用也属于这一层。

5,4大组件

(1)Activity:

  • 一个Activity代表一个界面;
  • Activity之间使用 Intent 进行通讯;
  • 必须在AndroidManifest.xml配置文件中声明。

(2)Service:

  • service用于在后台完成用户指定的操作;
  • 有两种启动方式:startService()与bindService();
  • 需要在应用程序中配置声明service。

(3)broadcast receiver:

  • 接收系统广播或者软件广播,过滤感兴趣的数据,可以启动Activity或者Service来执行相应的操作;
  • 需要注册,有动态注册和静态注册,动态注册生命周期同对应的Activity相同,静态注册则跟系统同步;
  • Android在8.0以后,删除了静态注册( 部分没有删除,如开机的广播 ),防止关闭App后广播还在,造成内存泄漏。现在静态注册的广播需要指定包名,并且,无论是静态注册广播还是动态注册广播,在接收广播的时候都不能拦截广播,否则会报错。

(4)Content Provider:

  • 指定数据集提供给其他应用程序。其他应用可以通过ContentResolver类从该内容提供者中获取或存入数据;
  • 只有需要在多个应用程序间共享数据是才需要内容提供者。例如,通讯录数据被多个应用程序使用,且必须存储在一个内容提供者中。它的好处是统一数据访问方式;
  • 开发人员不会直接使用ContentProvider类的对象,大多数是通过ContentResolver对象实现对ContentProvider的操作;
  • ContentProvider使用URI来唯一标识其数据集,这里的URI以content://作为前缀,表示该数据由ContentProvider来管理。

 

 

 

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!