Android是个什么东西?

36 篇文章 2 订阅

在这里插入图片描述

对于Android开发者来讲,Android中很多东西可能已经用的得心应手,可是有人问Android是什么的时候,突然有点蒙圈,不知该如何回答。如果在面试中遇到这种问题,求职者应该是滔滔不绝,面试官不喊停,求职者就能一直说下去。本文主要从消费者和开发者两方面初略阐述Android是什么。

消费者

对于普通消费者来讲,Android就是市场上安卓手机的操作系统,也就是非iPhone手机的操作系统。
Android系统手机品牌有很多,机型也很多,消费者基本上都能找到适合自己的手机。特别是一些大厂的手机都有自己的定制系统,消费者可以挑选自己喜欢的,而且Android手机软件生态也极其丰富,只有想不到,没有做不到。

早些年的时候,Android系统的手机都很便宜,市场上基本上没有需要卖肾才能买得起的手机。虽然便宜,但是手机操作起来的流畅性和ios相差很多,安装的软件一旦多一点就会有明显的卡顿;有的时候手机摄像头像素差不多,但是照片的质量和iPhone手机的照片有明显的差距;好多软件在用户没有授权的时候偷偷收集用户信息,窥探个人隐私;Android手机广告也是非常多的,好多东西门槛太低,乱七八糟的东西都有。

现在的Android旗舰级使用起来是相当的流畅,各种硬件也都有很大的升级,当然价格也是如此。如今的Android系统升级比较快,针对于以前的毛病都做了很好的优化,好多东西已经走在前面,但是由于定制化比较严重,导致一些应用在不同的手机上有明显的适配问题…。
讲着讲着就脱离了消费者的视角。

开发者

开发者可以从Android的发展历程,系统架构及应用组件来阐述Android是什么。

发展历程

安卓(Android)是一种基于Linux内核(不包含GNU组件)的自由及开放源代码的操作系统。主要使用于移动设备,如智能手机、平板电脑、电视、机车、穿戴、Chrome 操作系统设备等。Android操作系统最初由Andy Rubin开发,主要支持手机。截至到目前,Android系统市场份额第一,Android12预览版已经推出,Android 提供各种尖端工具和功能,可帮助超过25亿用户日常使用的手机、平板电脑、电视和汽车来构建应用。

2003年10月,Andy Rubin等人创建Android公司,并组建Android团队。Android最初是为数码相机制造的,因为缺乏投资,后来改成智能手机领域。

2008年9月,谷歌正式发布了Android 1.0系统,同年10月第一部Android手机发布。
2009年4月,Android 1.5 Cupcake(纸杯蛋糕)发布。
2009年9月,Android 1.6 Donut(甜甜圈)发布。
2010年5月,Android 2.2 Froyo(冻酸奶)发布。
2010年12月,Android 2.3 Gingerbread (姜饼)发布。

2011年8月2日,Android手机已占据全球智能机市场48%的份额,并在亚太地区市场占据统治地位,终结了Symbian(塞班系统)的霸主地位,跃居全球第一。

2011年9月,谷歌将会发布全新的Android 4.0操作系统 Ice Cream Sandwich(冰激凌三明治)。
2013年11月1日,Android4.4KitKat(奇巧巧克力)正式发布,从具体功能上讲,Android4.4提供了各种实用小功能,新的Android系统更智能,添加更多的Emoji表情图案,UI的改进也更现代。这个版本才是Android应用开发的起点。

2014年6月26日,Android 5.0Lollipop(棒棒糖)发布。Android 5.0 系统使用一种新的Material Design设计风格。这套设计图对 Android 系统的桌面图标及部件的透明度进行的稍稍的调整,并且各种桌面小部件也可以重叠摆放,加入了透明度的改进。界面加入了五彩缤纷的颜色、流畅的动画效果,呈现出一种清新的风格。采用这种设计的目的在于统一 Android 设备的外观和使用体验,不论是手机、平板还是多媒体播放器。之后发布的Android 5.1,Android 5.1新系统相对于Android5.0更加稳定了,同时支持多张SIM卡,加强了设备保护机制,增强了设备的WiFi能力。

2015年9月30日,Android 6.0Marshmallow(棉花糖)发布。Android 6.0整体设计风格依然保持扁平化的Material Design风格。Android6.0在对软件体验与运行性能上进行了大幅度的优化。据测试,Android6.0可使设备续航时间提升30%。

2016年8月22日,Android 7.0Nougat(牛轧糖)发布。Android 7.0 提供新功能以提升性能、生产效率和安全性。通过新的系统行为测试应用,以节省电量和内存。充分利用多窗口 UI、直接回复通知等功能。

2017年8月22日,Android 8.0 Oreo(奥利奥)发布。Android 8.0聚焦重点是电池续航能力、速度和安全,让用户更好地控制各种应用程序。具体体现在通知中心、.设置菜单、PinnedShortcuts、图标形状、后台限制。

2018年8月7日,Android 9.0 Pie(派)发布。从Android 9.0开始,谷歌统一推送升级。Android9.0深度集成了Project Treble模式,更加封闭;支持原生通话录音,提升了WiFi定位,加入了个性化自适应功能。Android 9.0改动体现在全面屏、全面通知栏、多摄像头、WIFI定位、神经网络、Material Design 2.0、Slice。

2019年9月3日,Android 10正式版发布正式发布,从该版本起,系统命名不再以实物命名,统一使用编号命名。Android 10主要有以下亮点:Foldables(折叠屏)、5G网络、通知中的智能回复、黑暗主题、手势导航、设置面板、分享快捷方式、用户隐私、相机和媒体、连接、ART优化、神经网络等。
2020年9月9日,Android 11发布。Android 11主要增强了聊天气泡,安全性和隐私性的保护,电源菜单,可以更好的支持瀑布屏,折叠屏,双屏和 Vulkan 扩展程序等。

2021年2月20日,Android 12推出首个开发者预览版。3月4日, Android 12 开发者预览版 1.1 版本公布。Android 12在沉浸模式下的手势导航,前台服务通知延迟,对 Netlink MAC 地址的限制,不受信任的触摸事件被屏蔽、应用无法关闭系统对话框,限制非 SDK 接口等方面有所改进。当然也有可能涉及到TV,具体详情等待正式发布。

系统架构

Android 系统架构包含以下组件:
在这里插入图片描述

  • 应用框架。应用框架最常被应用开发者使用。若作为硬件开发者,开发者 API需要非常了解,因为很多此类 API 都可以直接映射到底层 HAL 接口,并可提供与实现驱动程序相关的实用信息。

  • Binder IPC。Binder 进程间通信 (IPC) 机制允许应用框架跨越进程边界并调用 Android 系统服务代码,这使得高级框架 API 能与 Android 系统服务进行交互。在应用框架级别,开发者无法看到此类通信的过程,但一切似乎都在“按部就班地运行”。

  • 系统服务。系统服务是专注于特定功能的模块化组件,例如窗口管理器、搜索服务或通知管理器。应用框架 API 所提供的功能可与系统服务通信,以访问底层硬件。Android 包含两组服务:“系统”(诸如窗口管理器和通知管理器之类的服务)和“媒体”(与播放和录制媒体相关的服务)。

  • 硬件抽象层 (HAL)。HAL 可定义一个标准接口以供硬件供应商实现,这可让 Android 忽略较低级别的驱动程序实现。借助 HAL,开发者可以顺利实现相关功能,而不会影响或更改更高级别的系统。HAL 实现会被封装成模块,并会由 Android 系统适时地加载。

  • Linux 内核。开发设备驱动程序与开发典型的 Linux 设备驱动程序类似。Android 使用的 Linux 内核版本包含一些特殊的补充功能,例如低内存终止守护进程(一个内存管理系统,可更主动地保留内存)、唤醒锁定(一种 PowerManager 系统服务)、Binder IPC 驱动程序,以及对移动嵌入式平台来说非常重要的其他功能。这些补充功能主要用于增强系统功能,不会影响驱动程序开发。
    详细的解释说明还需开发中自行下功夫,这里点到为止。

应用组件

Android开发四大组件分别是:活动(Activity): 用于表现功能。服务(Service): 后台运行服务,不提供界面呈现。广播接收器(BroadcastReceiver):用于接收广播。内容提供商(Content Provider): 支持在多个应用中存储和读取数据,相当于数据库。

  • 活动
    Activity是所有程序的根本,所有程序的流程都运行在Activity 之中,是Android 当中最基本的模块之一。Activity用户操作的可视化界面,为用户提供了一个完成操作指令的窗口,为用户提供交互的入口。阐述的时候可以从Activity数据通信和Activity生命周期开始,内容太多,这里就不解释了。

  • 服务
    Service 是android 系统中的一种组件,它跟Activity 的级别差不多,但是他不能自己运行,只能后台运行,并且可以和其他组件进行交互。Service 是没有界面的长生命周期的代码。Service是一种程序,它可以运行很长时间,但是它却没有用户界面。开启Service有两种方式:
    1.started(启动):当应用程序组件(如activity)调用startService()方法启动服务时,服务处于started状态。
    2.bound(绑定):当应用程序组件调用bindService()方法绑定到服务时,服务处于bound状态。

  • 广播接收器
    在Android 中,Broadcast是一种广泛运用的在应用程序之间传输信息的机制。而BroadcastReceiver 是对发送出来的Broadcast进行过滤接受并响应的一类组件。可以使用BroadcastReceiver 来让应用对一个外部的事件做出响应。BroadcastReceiver通过NotificationManager 来通知用户这些事情发生了。BroadcastReceiver 既可以在AndroidManifest.xml 中注册,也可以在运行时的代码中使用Context.registerReceiver进行注册。只要是注册了,当事件来临的时候,即使程序没有启动,系统也在需要的时候启动程序。各种应用还可以通过使用Context.sendBroadcast将它们自己的Intent Broadcasts广播给其他应用程序。

  • 内容提供
    Content Provider 是Android提供的第三方应用数据的访问方案。
    (1)android平台提供了Content Provider使一个应用程序的指定数据集提供给其他应用程序。其他应用可以通过ContentResolver类从该内容提供者中获取或存入数据。
    (2)只有需要在多个应用程序间共享数据是才需要内容提供者。例如,通讯录数据被多个应用程序使用,且必须存储在一个内容提供者中。它的好处是统一数据访问方式。
    (3)ContentProvider实现数据共享。ContentProvider用于保存和获取数据,并使其对所有应用程序可见。这是不同应用程序间共享数据的唯一方式,因为android没有提供所有应用共同访问的公共存储区。
    (4)开发人员不会直接使用ContentProvider类的对象,大多数是通过ContentResolver对象实现对ContentProvider的操作。
    (5)ContentProvider使用URI来唯一标识其数据集,这里的URI以content://作为前缀,表示该数据由ContentProvider来管理。

对于普通面试,四大组件是一定会问的,引入自己熟悉的详细讲。

  • 文中内容大多来自于Android中文官网,百度百科,CSDN等。
  • 本文主要对问题提供思路,不针对具体细节进行解析,是否正确待定。
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值