Android是一个开源的,基于Linux的移动设备操作系统,主要使用于移动设备,如智能手机和平板电脑。Android是由谷歌及其他公司带领的开放手机联盟开发的。
概述Android
Android是Google开发的基于Linux平台的、开源的、智能移动设备操作系统。Android包括操作系统、中间件和应用程序,由于源代码开放,Android可以被移植到不同的硬件平台上。
Android是通过Java虚拟机来执行,并且系统需要占用大量内存来换取执行速度,再加上不定期的内存自动回收机制,从而直接导致了卡顿现象的出现。
Android开源,任何手机厂商和个人都能免费的获取Android操作系统的源码,并且可以自由地使用和定制。目前全球智能手机操作系统70%以上的份额
围绕Android系统形成了移植开发和上层应用程序开发两个不同的开发方面。手机厂商从事移植开发工作,上层的应用程序开发可以由任何单位和个人完成,开发的过程可以基于真实的硬件系统,还可以基于仿真器环境。
Android应用开发的特色
1、4大组件:Activity活动、Service服务、广播接收器Broadcast Receiver和内容提供者Content Provider
2、丰富的系统控件方便用户自定义界面的开发
3、SQLite是Android系统自带的轻量级、速度很快的嵌入式关系型数据库,支持SQL标准,同时允许使用Android封装好的API进行操作
4、强大的多媒体服务,例如音乐、视频、录音、拍照等
5、地理位置定位,每个手机都内置有GPS
6、权限的作用是保护Android用户的隐私。Android应用必须请求权限才能访问敏感用户数据
Android系统架构
Android是一个开放的软件系统,它包含了众多的源代码。Android从小到上可以分为Linux内核层、系统运行库层、应用框架层和应用层4层架构。
Linux内核层是由C语言实现的,主要为Android设备的各种硬件提供了底层的驱动,例如显示驱动、音频驱动、电源管理等
系统运行库层通过c/c++库为Android系统提供了主要的核心支持库,运行时库包含了ART运行环境,主要提供了一些核心库,能够允许使用Java语言编写Android应用;使得每个Android应用都能运行在独立的进程中,它针对手机内存和CPU性能有限等情况作了优化处理
应用框架层由Java语言实现的,主要提供了构建应用时可能用到的各种API,Android自带的核心应用就是使用这些API完成的,开发者也可以使用这些API构建自己的应用程序。对于Android应用开发而言,应用框架层次以下的内容是不可见的,仅考虑系统API即可。
应用层由Java语言实现,是安装手机上的应用程序,例如系统自带的联系人、短信等应用。
Android除了软件本身的代码之外,还提供了一系列工具来辅助系统开发,这些主要的工具包括:
1、aapt即Android Asset Packaging Tool,用于建立zip兼容的压缩包文件zip、jar、apk,也可用于将资源编译到二进制的assets。 „
2、adb即Android Debug Bridge调试桥。使用adb工具可以在模拟器或设备上安装应用程序的.apk 文件,并从命令行访问模拟器或设备。也可以用它把Android模拟器或设备上的应用程序代码和一个标准的调试器连接在一起。 „
3、android工具是一个脚本,用于创建和管理Android Virtual Devices即AVDs
4、AIDL工具即Android接口描述语言工具。AIDL工具可以生成进程间接口的代码,诸如Service可能使用的接口。 „
5、AVDs即Android虚拟设备主要用于配置模拟器,模拟出类似的设备效果 „
6、DDMS即Dalvik调试监视器服务。这个工具集成了Dalvik,能够在模拟器或者设备上管理进程并协助调试。可以使用它杀死进程,选择某个特定的进程来调试,产生跟踪数据,观察堆heap和线程信息,截取模拟器或设备的屏幕画面,还有更多的功能。 „
7、dx工具用于将.class 字节码bytecode转换为 Android 字节码(保存在.dex文件中)这个字节码文件是给Android的Java虚拟机运行用的。 „
9、Emulator模拟器是一个运行于主机上的程序,可以使用模拟器来模拟一个实际的Android系统的运行,使用模拟器非常适合调试和测试应用程序。 „
10、Hierarchy Viewer层级观察器工具允许调试和优化用户界面。它用可视的方法把视图view的布局层次展现出来,此外,还给当前界面提供了一个具有像素栅格grid的放大镜观察器。 „
11、mksdcard帮助创建磁盘映像disk image,可以在模拟器环境下使用磁盘映像来模拟外部存储卡(例如 SD 卡)。 „
12、Monkey是在模拟器或设备上运行的一个小程序,它能够产生随机的用户事件流,例如:点击 click、触摸touch,还包括一系列系统级事件。可以使用Monkey给正在开发的程序做随机的但可重复的压力测试。 „
13、sqlite3工具能够方便地访问SQLite数据文件,这是一个 sqlite 标准命令行工具。 „
14、Traceview工具可以将Android应用程序产生的跟踪日志trace log转换为图形化的分析视图。
Android发展史
Android操作系统最初由Andy Rubin开发,主要支持手机。
2005年8月由Google收购注资,而Android公司仅成立了22个月。2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。随后Google以Apache开源许可证的授权方式,发布了Android的源代码。
第一部Android智能手机发布于2008年10月。
2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。
2013年的第四季度Android平台手机的全球市场份额已经达到78.1%。
2013年09月24日谷歌开发的操作系统Android在迎来了5岁生日,全世界采用这款系统的设备数量已经达到10亿台。
名称 | 平台版本号 | API等级 |
Android R | 11.0 | 30 |
Android Q | 10.0 | 29 |
Android Pie | 9.0 | 28 |
Android Oreo奥利奥 | 8.0-8.1 | 26-27 |
Android5是版本改动最大的一次,使用ART运行环境替代了Dalvik虚拟机,提升了应用的运行速度,同时提出了Material Design概念来优化应用的界面设计。