Android模块化开发项目式教程(Android Studio)
上QQ阅读APP看书,第一时间看更新

模块1 Android系统开发环境

项目1-1 Android系统开发环境搭建

学习目标

■ 了解Android的发展历程。

■ 认识Android平台的系统架构及特征。

■ 了解Android SDK的组成与作用。

■ 掌握搭建Android系统开发环境的方法。

项目描述

搭建Android Studio的开发环境。

知识储备

1.1.1 Android的发展历程

Android 的本意是指“机器人”,Android 系统的 Logo(标志)是一个机器人,如图1-1所示。它是Google公司于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称。该平台是由操作系统、中间件、用户界面和应用软件等部分组成的。

图1-1 Android标志

Android系统最早是由Andy Rubin(安迪·鲁宾)等人创建的Android公司研发,2005年8月17日,Google公司收购了这家仅成立22个月的高科技企业及其团队,Andy Rubin成为了Google公司的工程部副总裁,继续负责Android项目的研发工作。

2007年11月5日,Google公司正式向外界展示了这款名为Android的操作系统,同时宣布建立一个全球性的联盟组织。该组织由34家手机制造商、软件开发商、电信运营商以及芯片制造商共同组成,并与84家硬件制造商、软件开发商及电信运营商组成开放手持设备联盟(Open Handset Alliance)。该联盟共同开发改良Android系统,并支持Google公司发布的手机操作系统以及应用软件。

2008年9月,Google公司正式发布了Android 1.0版本,这也是Android系统最早的版本。2009年4月30日,Google公司发布了Android 1.5版本,从Android 1.5版本开始,Google公司将Android的版本以甜点的名字来命名。该命名是按照首字母顺序排序的,即纸杯蛋糕、甜甜圈、松饼、冻酸奶、姜饼、蜂巢、冰激凌三明治、果冻豆、奇巧巧克力、棒棒糖、棉花糖、牛轧糖等。Android迄今为止发布的主要版本及发布时间如表1-1所示。

表1-1 Android主要版本及发布时间

续表

2017年3月22日,Google公司发布了最新的Android 8.0操作系统。目前,采用Android平台的手机厂商主要包括Google Nexus、HTC、Samsung、Motorola、华为、联想、中兴、小米等。

1.1.2 Android系统的特征

Android作为一种开源的操作系统,其在手机操作系统领域的市场占有率已经超过了70%,并成为当今智能手机中的主要操作系统之一。Android 之所以能受到市场的广泛欢迎,是因为其具有如下五大主要特征。

1.开放性

Android平台具有开放性,开放的平台允许任何移动终端厂商加入到Android联盟中来。显著的开放性可以使其拥有更多的开发者。随着用户和应用的日益丰富,一个崭新的平台也将很快走向成熟。

开放性对于Android的发展而言,有利于积累人气,这里的人气包括消费者和厂商,而对于消费者来讲,最大的受益正是丰富的软件资源。开放的平台也会带来更大的竞争,如此一来,消费者将可以用更低的价位购得心仪的手机。

2.挣脱束缚

在过去很长的一段时间,特别是在欧美地区,手机应用往往受到运营商制约,使用什么功能接入什么网络,几乎都受到运营商的控制。自从 iPhone 上市,用户可以更加方便地连接网络,运营商的制约减少。随着EDGE、HSDPA这些2G至4G移动网络的逐步过渡和提升,手机随意接入网络已成为常态。

3.丰富的硬件

由于Android的开放性,众多的厂商会推出千奇百怪、各具功能特色的多种产品。功能上的差异和特色,却不会影响到数据同步、甚至软件的兼容。就像你从诺基亚Symbian系统手机一下改用苹果iPhone,不仅可将Symbian中优秀的软件带到iPhone上使用,联系人等资料更是可以方便地转移。

4.开发商

Android 平台提供给第三方开发商一个十分宽泛、自由的环境,不会受到各种条条框框的制约,因此,会有许多新颖别致的软件诞生。但也有其两面性,如何控制血腥、暴力、色情方面的程序和游戏传播正是留给Android的难题之一。

5.Google应用

如今叱咤互联网的Google公司已从过去的搜索巨人到如今全面向互联网渗透,Google服务如地图、邮件、搜索等已经成为连接用户和互联网的重要纽带,而Android平台手机将无缝结合这些优秀的Google服务。

1.1.3 Android系统架构

Android系统架构可分为4层,从上到下分别是应用程序层、应用程序框架层、核心类库层和Linux内核层,如图1-2所示。其中,核心类库层包括系统库和Android运行时的环境。

图1-2 Android系统架构图

1.应用程序层

应用程序层(Applications)是用 Java 语言编写的运行在 Android 平台上的程序。比如Google默认提供的E-mail客户端、SMS短信、日历、地图、浏览器和联系人管理等程序。同时,开发者也可以利用Java语言编写属于自己的应用程序,由用户自行使用。

2.应用程序框架层

应用程序框架层(Application Framework)是编写Google公司发布的核心应用程序时所使用的API框架,开发者可以访问核心应用程序所使用的API框架来开发自己的应用程序,并且任何一个应用程序都可以发布自身的功能模块,而其他应用程序则可以使用这些已发布的功能模块。基于这样的重用机制,用户就可以方便地替换平台本身的各种应用程序组件。Android应用程序框架层所提供的主要API框架如下。

Activity Manager:活动管理器,用来管理应用程序生命周期,并提供常用的导航退回功能。

Window Manager:窗口管理器,用来管理所有的窗口程序。

Content Providers:内容提供器,它可以让一个应用访问另一个应用的数据,或者共享它们自己的数据。

View System:视图系统,用来构建应用程序,如列表、表格、文本框及按钮等。

Notification Manager:通知管理器,用来设置在状态栏中显示的提示信息。

Package Manager:包管理器,用来对Android系统内的程序进行管理。

Telephony Manager:电话管理器,用来对联系人及通话记录等信息进行管理。

Resource Manager:资源管理器,用来提供非代码资源的访问,如本地字符串,图形及布局文件等。

Location Manager:位置管理器,用来提供使用者的当前位置等信息,如 GPRS定位。

XMPP Service:即时通信服务。

3.系统库和Android运行时

系统库(Libraries)主要是提供Android程序运行时需要的一些类库,这些类库一般是使用C/C++语言编写,主要有以下9个类库。

libc:C语言的标准库,系统最低层的库。C语言标准库通过Linux系统来调用。

Surface Manager:主要管理多个应用程序同时执行时,各个程序之间的显示与存取,并且为多个应用程序提供了2D和3D图层的无缝融合。

SQLite:关系数据库。

OpenGLEState:3D效果支持。

Media Framework:Android系统多媒体库。

FreeType:位图及矢量库。

WebKit:Web浏览器引擎。

SGL:2D图形引擎库。

SSL:位于TCP/IP协议与各种应用层协议之间,为数据通信提供支持。

Android运行时(Android Runtime)包括核心库和Dalvik虚拟机,Dalvik是一种基于寄存器的 Java 虚拟机,主要完成对生命周期的管理、堆栈的管理、线程的管理、安全和异常的管理以及垃圾回收等重要功能。

4.Linux内核(Linux Kernel)

Android核心系统服务依赖于Linux 2.6内核,如安全性、内存管理、进程管理、网络协议栈和驱动模型等都依赖于该内核。Linux内核也是作为硬件与软件栈的抽象层,而 Android更多的是需要一些与移动设备相关的驱动程序,如 Display 显示驱动、Camera 摄像头驱动、bluetooth蓝牙驱动、M-Systems驱动、Binder(IPC)驱动、USB驱动、键盘驱动、WiFi驱动、Audio驱动、电源管理等。

1.1.4 Android Studio开发工具介绍

最早Android开发者所用的开发工具都是Eclipse、ADT、SDK这3个组件的整合。2013年5月16日,Google公司推出了新的Android开发工具Android Studio,并对开发者控制台进行了改进,增加了5个新的功能,包括优化小贴士、应用翻译服务、推荐跟踪、营收曲线图、试用版测试和阶段性展示。随着Android Studio正式版的推出和完善,Google已宣布,为了简化Android的开发力度,将重点建设Android Studio开发工具,并停止支持Eclipse等其他集成开发环境。

Android Studio基于IntelliJ IDEA,类似Eclipse ADT,它提供了如下功能。

① 基于Gradle的构建支持。

② Android专属的重构和快速修复。

③ 提示工具以捕获性能、可用性、版本兼容性等问题。

④ 支持ProGuard和应用签名。

⑤ 基于模板的向导来生成常用的Android应用设计和组件。

⑥ 功能强大的布局编辑器,可以让用户拖拉UI控件并进行效果预览。

从2014年12月8日Google公司发布Android Studio 1.0版本开始,到2016年9月, Google公司已发布了Android Studio 2.2版本,并已完全替代了Eclipse,成为Android的开发工具。因此,本书中的所有案例都是在Android Studio开发工具环境下完成的。

1.1.5 Android SDK

软件开发工具包(Software Development Kit,SDK),一般是一些被软件开发工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。

Android SDK就是用于进行Android开发的工具包,它不仅提供了开发所必需的调试、打包和测试运行的工具,还提供了详尽的帮助文档和简单易懂的示例程序。Android SDK不需要安装,下载后,直接将SDK压缩包解压后的文件复制到SDK安装路径的文件夹即可。

1.Android SDK的目录结构

在Android SDK的目录中通常包含有10个文件夹,其清单如下。

① add-ons:该文件夹保存的是Android开发所需要的第三方文件;

② build-tools:该文件夹保存的是编译工具;

③ docs:该文件夹保存的是Android SDK帮助文档,包括开发指南和API等,在此目录下可打开index.html页面来进行查看,在该页面中,可单击Develop超链接进入到开发者页面,查看API参考文档、API指南和开发训练文档等;

④ extras:该文件夹保存的是附件文档,如extras/google子目录下保存了Android手机的USB驱动程序;

⑤ platforms:该文件夹保存的是系列Android平台版本,即SDK的真正文件;

⑥ platforms-tools:该文件夹保存的是与平台调试相关的工具;

⑦ samples:该文件夹保存的是Android官方提供的实例;

⑧ system-images:该文件夹保存的是系统镜像;

⑨ temp:该文件夹用于保存临时文件,如下载文件会临时存放于此目录中;

⑩ tools:该文件夹保存的是独立于Android平台的开发工具。

此外,还有AVD Manager.exe(AVD管理器)和SDK Manager.exe(SDK管理器)两个文件。

2.主要开发工具

(1)Android模拟器。

Android 模拟器是一个可以运行在开发者计算机上的虚拟设备,它可以在计算机上模拟出安卓手机的运行环境,让开发者不需要物理设备即可预览、开发和测试Android应用程序。常用的Android模拟器可以是Android SDK自带的模拟器,也可以是第三方Android模拟器,如Genymotion就是一款专业的Android虚拟环境模拟软件。

Android模拟器有一个屏幕,用于显示Android自带的应用程序和开发者开发的应用程序,在Android模拟器中不仅为应用程序提供了导航和控制键,而且还允许应用程序通过Android平台服务调用其他程序、访问网络、播放音频和视频、保存和传输数据、通知用户等。同时, Android模拟器同样具有强大的调试能力,例如能够记录内核输出的控制台、模拟程序中断(比如接收短信或打入电话)、模拟数据通道中的延时效果和遗失等。

在Android Studio开发环境中启动Android模拟器的方法如下。

① 通过Android Studio工具栏上的AVD Manager(AVD管理器)按钮可打开虚拟设备对话框,然后,打开Android Studio模拟器;

② 安装第三方Android模拟器软件,在Android Studio工具栏上会出现第三方Android模拟器的按钮,单击此按钮即可。

(2)Android调试桥。

Android调试桥(Android Debug Bridge,ADB)是Android SDK提供的一个用来管理模拟器和真机的通用调试工具。它的主要功能如下。

运行Android设备的shell(命令行);

管理Android模拟器或者设备的端口映射;

在计算机或Android设备之间上传或者下载文件;

将本地apk文件安装到Android模拟器或者设备上。

(3)DDMS。

DDMS(Dalvik Debug Monitor Service)是Android开发环境中Dalvik虚拟机调试监控服务。使用它可以监视Android系统中的进程、堆栈信息,查看LogCat日志、屏幕截屏、广播状态信息,模拟电话呼叫、SMS短信,以及管理模拟器文件等。

在Android Studio开发环境中可通过选择菜单【Tools】→【Android】→【Android Device Monitor】,打开DDMS控制台的窗口,如图1-3所示。

其中,在设备管理器中,将显示多个模拟器中所有还在运行的进程,通过它可以同时监控多个Android模拟器,另外,单击该面板中的【Screen Capturer】按钮,可以截取模拟器的屏幕。在模拟器控制器中,可以模拟各种不同网络情况,模拟电话呼叫、SMS短信和发送虚拟地址坐标(用于测试GPS功能)等。在LogCat面板中,将显示日志信息,可以快速定位应用程序产生的错误。

图1-3 DDMS控制台窗口

项目实施

Android开发环境的安装分为两个步骤:即JDK的安装与配置和Android Studio安装。

1.JDK的安装与配置

(1)JDK的安装。

在安装Android开发环境时,首先需要安装支持Java程序开发和运行的Java开发工具包(JDK),而且在JDK中包含完整的JRE,所以只要安装JDK后,JRE也将自动安装到操作系统中。现以在Windows 64位操作系统中安装JDK8为例,介绍安装JDK的具体步骤。

① 首先到Oracle公司的官方网站(http://www.oracle.com/index.html)下载JDK 8版本软件(注意:Android Studio要求JDK版本为JDK 7或更高版本)。如果您的计算机是Windows 64位操作系统,就选择下载jdk-8u144-windows-x64.exe软件;如果您的计算机是Windows 32位操作系统,那么就选择下载jdk-8u144-windows-i586.exe软件。

② 双击 jdk-8u144-windows-x64.exe 文件,在弹出的欢迎对话框中,单击【下一步】按钮,将弹出自定义安装对话框;在该对话框中,可以选择安装的功能组件。这里我们选择默认设置,如图1-4所示。

③ 单击【更改】按钮,将弹出“更改文件夹”对话框,在该对话框中将JDK的安装路径更改为C:\Java\jdk1.8.0_144,如图1-5所示。单击【确定】按钮,将返回到自定义安装对话框中。

图1-4 JDK自定义安装对话框

图1-5 更改JDK安装路径对话框

④ 单击【下一步】按钮,开始安装JDK。在安装过程中会弹出JRE的“目标文件夹”对话框,这里需要更改JRE的安装路径为C:\Java\jre8,如图1-6所示。

⑤ 单击【下一步】按钮,安装向导会继续完成安装进程,安装完成后,会弹出图1-7所示的对话框,单击【关闭】按钮即可。

图1-6 JRE安装路径

图1-7 JDK安装完成对话框

(2)JDK的配置与测试。

JDK安装完成后,还需要在系统的环境变量中进行配置。下面以在Windows 7系统中配置环境变量为例来介绍JDK的配置与测试。具体操作步骤如下。

① 在桌面的“计算机”图标上单击鼠标右键,在弹出的快捷菜单中选择【属性】命令,在弹出的“属性”对话框的左侧单击【高级系统设置】超链接,将弹出“系统属性”对话框,在该对话框中选择【高级】选项卡。

② 在“系统属性”对话框的“高级”选项卡中,单击【环境变量】按钮,将弹出“环境变量”对话框,单击“系统变量”栏中的【新建】按钮,创建新的系统变量。

③ 在弹出的“新建系统变量”对话框中,分别输入变量名“JAVA_HOME”和变量值(即JDK 安装的路径),这里为 C:\Java\jdk1.8.0_144,如图1-8所示,读者需要根据自己的安装路径进行修改。单击【确定】按钮,关闭“新建系统变量”对话框。

④ 在“环境变量”对话框中双击 Path 变量对其进行修改,在原变量值最前端添加“.;%JAVA_HOME%\bin;”变量值(注意:最后面的“;”不能丢掉,它是用于分割不同的变量值),如图1-9所示。单击【确定】按钮完成环境变量的设置。

图1-8 “新建系统变量”对话框

图1-9 设置Path环境变量值

⑤ 查看是否存在CLASSPATH变量,若存在,则在该变量的变量值中添加如下值:

.; %JAVA_HOME%\lib; %JAVA_HOME%\lib\tools.jar

若不存在,则创建该变量,并设置上面的变量值。

⑥ JDK 安装成功后,要确认环境变量配置是否正确,可在 Windows 系统中选择【开始】→【运行】命令(没有【运行】命令可按<Windows>+<R>组合键),然后在运行对话框中输入cmd并单击【确定】按钮启动控制台。在控制台中输入Java –version,如果能正确显示当前JDK的版本为1.8.0_144就说明环境变量配置正确。

2.Android Studio安装

① 首先到 Android Studio 中文社区(官网)的网站(http://www.android-studio.org/)上下载android-studio的安装包。

② 以 android-studio-bundle-141.2456560-windows.exe 安装包为例,双击 Android Studio的安装文件,进入安装界面,单击【Next】按钮,将弹出选择安装插件的对话框。

③ 在选择安装插件的对话框中会出现4个选项,第1个选项是Android Studio主程序,为必选项。第2个选项是Android SDK,会安装Android 5.0版本的SDK,也勾选上。第3个和第4个选项是虚拟机和虚拟机的加速程序,如果你要在计算机上使用虚拟机调试程序,也勾选上,如图1-10所示。完成后单击【Next】按钮。然后,按照安装向导选择“I Agree”按钮。

图1-10 选择安装插件对话框

④ 在选择Android Studio和SDK的安装目录对话框中,单击【Browse】按钮,可修改Android Studio和SDK的安装目录,如图1-11所示。完成后单击【Next】按钮。

图1-11 选择Android Studio和SDK的安装目录对话框

⑤ 在设置虚拟机硬件加速器可使用的最大内存对话框中,可选择默认设置2G,也可以根据计算机的配置,选择自定义,如配置比较低可选1G,否则选择过大会影响其他软件运行。完成后单击【Next】按钮,进入自动安装模式对话框。单击【Install】按钮,程序就开始进行自动安装了。

⑥ 当安装成功后,会弹出安装完成的对话框,单击【Finish】按钮。

⑦ 打开Android Studio后,进入相关配置界面,用于导入Android Studio的配置文件,如图1-12所示。如果是第一次安装,选择最后一项(不导入配置文件),然后单击【OK】按钮。

图1-12 导入Android studio的配置文件对话框

⑧ 启动Android Studio,在第一次打开Android Studio时,系统会自动重新下载SDK, (此时需要连接互联网),然后再进入Android Studio的起始页界面,如图1-13所示。在起始页界面上有7个选项,分别如下所示。

选项1:创建一个Android Studio项目。

选项2:打开一个Android Studio项目。

选项3:从版本控制系统中导入代码。支持 CVS、SVN、Git、Mercurial,甚至GitHub。

选项4:导入非Android Studio项目,如Eclipse Android项目。

选项5:导入官方样例,会从网络上下载代码。

选项6:配置。

选项7:帮助文档。

图1-13 Android Studio的起始页界面

当出现Android Studio起始页界面时就说明Android Studio开发环境安装成功,开发者可选择第1项创建一个新的Android Studio项目,如选择第6项:【Configure】→【Project Defaults】→【Project Structure】,可查看或修改SDK和JDK的位置。

如果要更新Android SDK,可选择第6项:【Configure】→【SDK Manager】进入SDK管理器对话框,如图1-14所示。选择要安装的Android版本,单击【Apply】按钮即可。

图1-14 SDK管理器对话框

项目总结

通过本项目的学习,读者应掌握Android系统的基本概念和Android开发环境的安装。

① Android系统架构由应用程序层、应用程序框架层、核心类库层和Linux内核层组成。

② Android的开发工具——Android Studio。

③ Android开发环境的安装分为JDK的安装与配置和Android Studio安装两部分。

项目训练——Android开发环境的安装

请按照项目实施的步骤完成Android开发环境的安装。

练习题

1-1-1 Android是什么系统?Android系统由哪些部分组成?

1-1-2 Android应用程序是用什么高级语言编写的?

1-1-3 Android设备驱动程序位于Android系统架构中的哪一层?

1-1-4 Android的核心类库包括哪些?

1-1-5 Android Studio要求JDK版本至少要是多少?

1-1-6 ADB是什么?它有什么作用?

1-1-7 DDMS是什么?它有什么作用?

1-1-8 Android模拟器有什么作用?在Android Studio中如何启动Android模拟器?