您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 企业文化 > 第一章Android结构介绍和环境配置
Android结构介绍和环境配置第1页第1章Android结构介绍和环境配置【本章导读】本章主要介绍的是Android系统的发展历程和基本特性,让读者对Android系统有一个初步的了解;然后简单的介绍Android内部的基本构造与分层结构,在开发环境配置中详细叙述开发Android所需要的基本环境的构建过程;通过一个简单例子叙述Android程序的构建过程;在本章的最后,叙述了Android的程序调试功能。【本章要点】Android概述;Android开发环境配置;第一个例子——HelloWorld;Android调试及ADB的使用。Android是一个以Linux为基础的半开源操作系统,主要应用于移动设备和智能手机,由Google和开放手持设备联盟持续开发与领导,用户发展及其迅速。2016年凯度国际的数据显示,2-4月,Android在欧洲五大市场(英、德、法、意、西)共拿走76%的份额,比去年同期增长了5.8%。同时,在苹果统治之力最强的美国,Android也继续发力,将市场占有率从62.4%提升至67.6%。而iOS则从33.2%降至30.7%。在世界最大的智能机市场中国,Android系统也表现不错,其占有率已经达到惊人的78.8%,而去年同期该数字只有74%。本章主要介绍Android平台的起源、特点以及开发平台的配置和基本调试过程。1.1Android概述本节介绍Android平台起源、特点、发展历程和Android系统基本架构,使读者对Android平台有一个初步的感性认识。1.1.1Android的起源Android是AndyRubin在2003年,提出并创建的一家手机操作系统公司,以4千万美元卖给了Google公司。Google公司于2007年11月05日宣布了基于Linux平台的开源移动操作系统——Android。它是一个开放式的手机软件平台,主要由操作系统、中间件、用户界面和应用软件组成。它采用软件堆层(SoftwareStack,又名软件叠层)的架构,主要分为三部分:底层以Linux内核工作为基础,由C语言开发,只提供基本功能;中间层包括函数库Library和虚拟机VirtualMachine,由C++开发。最上层是各种应用软件,包括通话程序,短信程序Android结构介绍和环境配置第2页等,应用软件则由各公司自行开发,以Java作为编写程序的一部分。不存在任何以往阻碍移动产业创新的专有权障碍,号称是首个为移动终端打造的真正开放和完整的移动软件。1.1.2Android特性Android平台的5大特性:1)开放性提到Android的优势,首先想到的一定是其真正的开放,其开放性包含底层的操作系统以及上层的应用程序等,Google与开放手机联盟合作开发Android的目的就是建立标准化、开放式的移动单机软件平台,在移动产业内形成一个开放式的生态系统。Android的开放性也同样会使大量的程序开发人员投入到Android程序的开发中,这将为Android平台带来大量新的应用。2)平等性对用户来说在Android系统上,所有的应用程序完全平等。系统默认自带的程序与自己开发的程序没有任何区别,程序开发人员可以开发个人喜爱的应用程序来替代系统程序,构建个性化的Android手机系统,这些功能在其它的手机平台是没有的。Android系统挣脱了运营商的束缚,在以往手机应用往往受到运营商制约,使用什么功能接入什么网络,几乎都受到运营商的控制。Android终端具有很好的网络特色,将让用户离互联网更近,用户可以更加方便地连接网络,减少了运营商的制约。对开发者来说,Android平台提供给第三方开发商一个十分宽泛、自由的环境,不会受到各种条件和规则的阻扰,极大的促进了丰富多彩的软件会诞生。3)无界性Android平台的无界性表现在应用程序之间的无界,开发人员可以很轻松地将自己开发的程序与其他程序进行交互,比如应用程序需要播放声音的模块,而正好你的手机中已经有一个成熟的音乐播放器,此时你就不需要再重复开发音乐播放功能,只需要简单的加几行代码即可将成熟的音乐播放功能添加到自己的程序中。4)方便性在Android平台中开发应用程序是非常方便的,如果你对Android平台比较熟悉的话,想自己开发一个功能全面的应用程序并不是什么难事。Android平台为开发人员提供了大量的应用库及方便的工具,同时也将GoogleMap等强大功能集成了进来,只需要简单的几行调用代码即可将强大的地图功能添加到自己的程序中。5)硬件的丰富性由于平台的开放,众多的硬件制造商推出了各种各样、千奇百怪的产品,但这些产品功能上的差异并不影响数据的同步与软件的兼容,例如原来在诺基亚手机上的应用程序,可以很轻松的被移植到摩托罗拉手机上使用,且联系人、短信等资料更是可以方便地转移。硬件丰富性方便性无界性平等性开放性Android特性图1-1Android平台特性Android结构介绍和环境配置第3页1.1.3Android发展历程关于Android系统的历史,首先我们就要先来说说Android系统这个名字的来历。Android这一次最先出现在法国作家利尔亚当在1886年发飙的科幻小说《未来夏娃》中,作者将外表像人类的机器起名为Android,这也就是Android小人名字的由来。知道了Android名字的来历我们再来看一下Android系统的来历。Android系统一开始并不是由谷歌研发出来了,Android系统原来的公司名字就叫做Android,谷歌公司在2005收购了这个仅成立22月的高科技企业。Android系统也开始由谷歌接手研发,Android系统的负责人以及Android公司的CEO安迪·鲁宾成为谷歌公司的工程部副总裁,继续负责Android项目的研发工作。现Android已经成为目前最受欢迎的移动操作系统之一,是目前唯一可以与IOS系统抗衡的手机操作系统,在全球范围内有着广泛的用户。首先简单介绍一下Android版本的更新历程:Android1.1操作系统是谷歌发布的第一款Android系统,发布时间为2008年9月。Android1.5操作系统的代号是Cupcake(纸杯蛋糕),发布时间为2009年4月30号。Android1.6操作系统的代号是Donut(甜甜圈),发布时间为2009年9月15日。Android2.0/2.0.1/2.1操作系统的代号均为Eclair(松饼),发布时间为2009年10月26日。Android2.2/2.2.1操作系统的代号为Froyo(冻酸奶),发布时间为2010年5月20日。Android2.3操作系统的代号为Gingerbread(姜饼),发布时间为2010年12月7日。随后Android系统开始进入平板设备,谷歌在2011年中发布了Android3.0/3.1/3.2操作系统,这三个版本统称为Honeycomb(蜂巢)。Android4.0操作系统的系统代号为IceCreamSandwich(冰激凌三明治),发布时间为2011年10月19日。Android4.1操作系统的代号为JellyBean(果冻豆),发布时间为2012年6月28日。Android4.2操作系统的代号为JellyBean(果冻豆),发布时间为:2012年10月30日。Android4.4操作系统的代号为KitKat(奇巧),发布时间为:2013年9月3日。Android5.0/5.操作系统的代号为Lollipop(AndroidL),发布时间为:2014年6月25日。Android6.0操作系统的代号为Marshmallow(AndroidM)在Google2015年的I/O大会上被正式发布。Android的未来前景不能说是一缕平地,虽然距离完美还是有一定的距离,但是相信在把握住发展方向之后,在不久的将来追赶甚至超越也不是没有可能,经历了从1.1到6.0这个过程,我们见证了Android的成长与壮大,见证了机器人成长为高达的奇迹,然而接下来还会有什么好戏等着我们呢?让我们拭目以待。1.1.4Android系统基本架构Android是由五部分组成,分别是:LinuxKernel、AndroidRuntime、Libraries、ApplicationFramework、Applications。第二部分将详细介绍这5个部分。Android结构介绍和环境配置第4页图1-2Android系统基本架构1、LinuxKernelAndroid基于Linux2.6提供核心系统服务,例如:安全、内存管理、进程管理、网络堆栈、驱动模型。LinuxKernel也作为硬件和软件之间的抽象层,它隐藏具体硬件细节而为上层提供统一的服务。如果你学过计算机网络知道OSI/RM,就会知道分层的好处就是使用下层提供的服务而为上层提供统一的服务,屏蔽本层及以下层的差异,当本层及以下层发生了变化不会影响到上层。也就是说各层各尽其职,各层提供固定的SAP(ServiceAccessPoint),专业点可以说是高内聚、低耦合。如果你只是做应用开发,就不需要深入了解LinuxKernel层。2、AndroidRuntimeAndroid包含一个核心库的集合,提供大部分在Java编程语言核心类库中可用的功能。每一个Android应用程序是Dalvik虚拟机中的实例,运行在他们自己的进程中。Dalvik虚拟机设计成,在一个设备可以高效地运行多个虚拟机。Dalvik虚拟机可执行文件格式是.dex,dex格式是专为Dalvik设计的一种压缩格式,适合内存和处理器速度有限的系统。大多数虚拟机包括JVM都是基于栈的,而Dalvik虚拟机则是基于寄存器的。两种架构各有优劣,一般而言,基于栈的机器需要更多指令,而基于寄存器的机器指令更大。dx是一套工具,可以将Java.class转换成.dex格式。一个dex文件通常会有多个.class。由于dex有时必须进行最佳化,会使文件大小增加1-4倍,以ODEX结尾。Dalvik虚拟机依赖于Linux内核提供基本功能,如线程和底层内存管理。3、LibrariesAndroid包含一个C/C++库的集合,供Android系统的各个组件使用。这些功能通过Android的应用程序框架(applicationframework)暴露给开发者。下面列出一些核心库:系统C库--标准C系统库(libc)的BSD衍生,调整为基于嵌入式Linux设备;Android结构介绍和环境配置第5页媒体库--基于PacketVideo的OpenCORE。这些库支持播放和录制许多流行的音频和视频格式,以及静态图像文件,包括MPEG4、H.264、MP3、AAC、AMR、JPG、PNG;界面管理--管理访问显示子系统和无缝组合多个应用程序的二维和三维图形层;LibWebCore--新式的Web浏览器引擎,驱动Android浏览器和内嵌的web视图;SGL--基本的2D图形引擎;3D库--基于OpenGLES1.0APIs的实现。库使用硬件3D加速或包含高度优化的3D软件光栅;FreeType--位图和矢量字体渲染;SQLite--所有应用程序都可以使用的强大而轻量级的关系数据库引擎。4、ApplicationFramework通过ApplicationFramework提供开放的开发平台,Android使开发者能够编制极其丰富和新颖的应用程序。开发者可以自由地利用设备硬件优势、访问位置信息、运行后台服务、设置闹钟、向状态栏添加通知等等,开发者可以完全使用核心应用程序所使用的框架APIs。应用程序的体系结构旨在简化组件的重用,任何应用程序都能发布他的功能且任何其他应用程序可以使用这些功能(需要服从框架执行的安全限制)。这一机制允许用户替换组件。所有的应用程序其实是一组服务和系统,包括:视图(View)--丰富的、可扩展的视图集合,可用于构建一个应用程序。包括包括列表、网格、文本框、按钮,甚至是内嵌的网页浏览器;内容提供者
本文标题:第一章Android结构介绍和环境配置
链接地址:https://www.777doc.com/doc-2115145 .html