Android移动应用开发(txt+pdf+epub+mobi电子书下载)


发布时间:2020-06-28 15:47:09

点击下载

作者:肖正兴

出版社:中国铁道出版社有限公司

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

Android移动应用开发

Android移动应用开发试读:

前言

2007年11月5日,Google公司宣布成立了OHA(Open Handset Alliance,开放手机联盟)包括手机制造商、手机芯片厂商和移动运营商几类,主要包括中国移动、摩托罗拉、英特尔、高通和宏达电,并且开发名为Android的开放源代码的移动系统,到现在为止,使用Android系统的终端设备已超过10亿部,这让它占据了移动应用的半壁江山。本书旨在带领读者进入移动开发的领域。

本书以Eclipse为集成开发环境进行Android应用程序开发,结合笔者近年来在手机软件研发和教学中积累的经验,介绍Android平台移动互联网应用开发的相关知识。

本书共分为5个项目。

项目1介绍Android平台的基本架构和开发环境的配置,并通过编写第一个应用程序Hello World,熟悉Eclipse开发、调试环境的使用。

项目2以一个仿QQ登录界面案例介绍Android基本UI组件的使用,主要包括基本控件的使用和相应的事件处理。

项目3以应用商店案例讲解高级UI适配器组件和相应适配器的使用,主要包括下拉列表控件Spinner、列表视图ListView、网格视图GridView、画廊控件Gallery和选项卡TabHost,还有对应的各种Adapter的配合使用。

项目4以简易的日记本案例介绍Android系统自带的SQLite数据库的使用,实现对本地数据库的增加、删除、修改、查询的操作,并且与ListView控件配合使用。

项目5以天气预报案例介绍Android的HTTP网络通信编程,包括使用HttpClient进行网络访问、数据的解析和多线程的应用。

本书考虑初学者的学习规律和项目的实际开发过程,将实际应用项目抽取、简化成简单、实用的典型教学案例,以项目任务方式使得读者逐步递进学习,并可将现有代码进行适当扩展就能够生成新的应用。

本书由肖正兴任主编,李斌、张霞任副主编。本书的编写得到了深圳职业技术学院等院校的大力支持和帮助,杨勇生为教材案例项目的策划、开发和测试提供了实际的开发项目,中国铁道出版社的编辑为本书的策划和出版提供了宝贵的经验和支持,在此表示衷心感谢。同时,本书在编写过程中,参考了大量的相关资料,吸取了许多同人的宝贵经验,在此一并致谢。

由于编者水平所限,疏漏难免,敬请广大读者提出宝贵意见和建议。教材配套课件、习题答案及源代码均可从http://www.tdpress.com/51eds/下载。编者2018年2月项目1移动开发概览

项目要点

● Android环境介绍。

● Eclipse移动集成开发环境的配置。

● Eclipse移动集成开发环境的使用。

● 建立和管理Eclipse移动开发工程。

本项目主要介绍Android平台的基本架构和开发环境的配置,并通过编写第一个应用程序HelloWorld,熟悉Eclipse开发、调试环境的使用。

项目简介

本项目主要介绍Android的发展历史,搭建Android在Eclipse下的开发环境,通过第一个应用程序HelloWorld介绍Android项目的基本运行原理,并在Eclipse环境下进行项目开发和调试。

相关知识

1.Android概述

1)Android的概念

当今已经进入移动互联网阶段,这是50多年来的第5个发展周期。一个技术发展周期一般会持续十年,即“移动互联网”发展周期已经到来。

据摩根士丹利调查:移动互联网的发展速度快于桌面互联网,并且其规模将大得超乎想象,它代表着五大趋势的融合(4G+社交+视频+网络电话+日新月异的移动装置),在发展速度方面,通过移动装置接入互联网的用户已经超过通过桌面个人计算机接入互联网的用户。到2020年,通过各种移动设备连入互联网的设备将达到100亿台。

如图1.1所示,开放手机联盟(Open Handset Alliance)是Google公司于2007年11月5日宣布组建的一个全球性的联盟组织。联盟将会支持Google发布的Android手机操作系统或者应用软件,共同开发名为Android的开放源代码的移动系统。开放手机联盟包括手机制造商、手机芯片厂商和移动运营商等。目前,联盟成员数量已经达到65家。

Android平台具有以下特点。

①Android平台的源代码完全开放,便于开发人员更清楚地把握实现细节,便于提高开发人员的技术水平,有利于开发出更具差异性的应用。图1.1 开放手机联盟

②Android平台采用了对有限内存、电池和CPU优化过的虚拟机Dalvik,有效提升了Android的运行速度。

③Android平台具有良好的盈利模式(3/7开),产业链条的各方(运营商、制造商、独立软件生产商)都可以获得不错的利益。将移动终端的评价标准从硬件向软件转变,极大地激发了软件开发者的热情。

④Android的源代码遵循Apache v2软件许可,而不是通常的GPL v2许可,有利于商业开发。

⑤Android平台具有强大的Linux社区的支持。

Android曾经是一家创立于旧金山的公司的名字,该公司于2005年8月被Google收购,并从此踏上了飞速发展的道路。它已经发展成为一个平台、一个生态体系。现在,Android在移动领域得到广泛的应用。相比于Symbian的日落西山,以及苹果的封闭、Windows Phone的前途未卜,Android无疑代表了当前行业发展的主流趋势:开放平台取代了封闭平台,让参与者均能通过自己的努力而获益。从2008年9月公布1.0版本以来,经过近10年的跨越式发展,现在Android已经发展到了8版本。该版本重新设计通知,以便为管理通知行为和设置提供更轻松和更统一的方式。

随着采用Android系统的谷歌手机、平板电脑等产品逐渐扩大市场占有率,Android平台人才的缺口日益显现。据业内统计,目前国内的4G研发人才缺口有三四百万,其中Android研发人才缺口至少30万。现在不仅手机、平板电脑的企业对Android有大量的人才缺口,而且创维、TCL、康佳等彩电企业已经开发了基于Android系统的智能电视,Android已成为3C数码电子产品的大潮流。

2)为什么选用Android

技术流派的发展,一般就像波浪,分为浪峰和浪底,浪峰的时候技术成熟,但是程序员的价值无法得到体现,因为会的人多;浪底的时候,技术新,供参考的资料少,学习门槛高,但是程序员的价值能够得到体现。现在Android市场占有量和发展趋势一直向上,人才需求旺盛,而且自主创业点比较多。(1)各智能手机平台市场占有率

IDC调查了各种主流平台市场的占有率,如图1.2所示,截至2014年,可以看出,作为手机终端的霸主Symbian的占有率不断下降;Android在未来几年的涨幅最大,占有率不断上升;iOS因为主要针对苹果系统,并且其开发环境是封闭的,一旦其创新性出现断层,必然导致市场占有率的下降。(2)主流智能系统的比较

①Symbian——霸主地位已经旁落。Symbian是Nokia手机上的操作系统,在受到各种操作系统的冲击后,倒下了,由于其上面的开发语言为Visual C++,但是又不同于PC上的C++,导致开发门槛高,而且其转换到智能手机上的步伐偏慢,导致市场占有率不断下降。图1.2 智能手机市场占有率

②Android——Google公司推出,近年势头迅猛。Android最明智的地方在于两点:联合各大厂商,开放源代码;采用Java作为应用开发语言,使得Java程序员可以无缝转移到该开发领域,所以虽然其诞生时间不长,但是平台上的应用程序,已经超过了iOS上的应用程序。

③iOS——苹果公司,定位高端客户。iOS一直针对的是高端客户,但是其需要不断创新,才能保持其高端定位,现在各种智能终端从可使用性上已经和iOS无太大差别,并且其开发语言为一种特有的语言:ObjectC,是在C语言基础上加上了面向对象的特性,整个平台是封闭的。

④Windows Phone——微软+Nokia,全新系统。Windows Phone是Windows Mobile的后续版本,其最大诟病在于与Windows Mobile是完全不同的两个东西,没有向下兼容性。

⑤Meego——Nokia+Intel共同研发的一种系统。Meego是一种优秀的手机操作系统,非常流畅,但是Nokia并没有打算继续支持其后续版本,所以基本没有前景。

3)Android的系统架构

图1.3所示是Android系统架构图,从上而下,分别为应用层、应用框架层、类库层、Android运行时和Linux内核层。图1.3 Android系统架构图(1)Linux Kernel层

Android的核心系统服务依赖于Linux 2.6内核,如安全性、内存管理、进程管理、网络协议栈和驱动模型。Linux内核也同时作为硬件和软件栈之间的抽象层。(2)Android Runtime层

Android包括了一个核心库,该核心库提供了Java编程语言核心库的大多数功能。

每个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。Dalvik被设计成一个设备可以同时高效地运行多个虚拟系统。Dalvik虚拟机执行(.dex)的Dalvik可执行文件,该格式文件针对小内存使用做了优化。同时,虚拟机是基于寄存器的,所有的类都经由Java编译器编译,然后通过SDK中的dx工具转化成.dex格式由虚拟机执行。

Dalvik虚拟机依赖于Linux内核的一些功能,比如线程机制和底层内存管理机制。(3)Libraries层

Android包含一些C/C++库,这些库能被Android系统中的不同组件使用。它们通过Android应用程序框架为开发者提供服务。以下是一些核心库:

①系统C库:一个从BSD继承来的标准C系统函数库(libc),它是专门为基于embedded Linux的设备定制的。

②媒体库:基于PacketVideo OpenCORE。该库支持多种常用的音频、视频格式回放和录制,同时支持静态图像文件。编码格式包括MPEG4、H.264、MP3、AAC、AMR、JPG、PNG。

③Surface Manager:对显示子系统进行管理,并且为多个应用程序提供2D和3D图层的无缝融合。

④LibWebCore:一个Web浏览器引擎,支持Android浏览器和一个可嵌入的Web视图。

⑤SGL:底层的2D图形引擎。

⑥3D libraries:基于OpenGL ES 1.0 APIs实现,该库可以使用硬件3D加速(如果可用)或者使用高度优化的3D软加速。

⑦FreeType:位图(bitmap)和矢量(vector)字体显示。

⑧SQLite:一个对于所有应用程序可用、功能强劲的轻型关系型数据库引擎。(4)Application FrameWork层

开发人员也可以完全访问核心应用程序所使用的API框架。该应用程序的架构设计简化了组件的重用,任何一个应用程序都可以发布它的功能块,任何其他应用程序都可以使用其所发布的功能块(不过需遵循框架的安全性限制)。同样,该应用程序重用机制也使用户可以方便地替换程序组件。

隐藏在每个应用后面的是一系列的服务和系统,其中包括;

①丰富而又可扩展的视图(Views),可以用来构建应用程序,包括列表(lists)、网格(grids)、文本框(text boxes)、按钮(buttons)、甚至可嵌入的Web浏览器。

②内容提供器(Content Providers)使得应用程序可以访问另一个应用程序的数据(如联系人数据库),或者共享它们自己的数据。

③资源管理器(Resource Manager)提供非代码资源的访问,如本地字符串、图形和布局文件(layout files)。

④通知管理器(Notification Manager)使得应用程序可以在状态栏中显示自定义的提示信息。

⑤活动管理器(Activity Manager)用来管理应用程序生命周期并提供常用的导航回退功能。(5)Application层

Android会同一系列核心应用程序包一起发布,该应用程序包包括E-mail客户端、SMS短消息程序、日历、地图、浏览器、联系人管理程序等。所有的应用程序都是使用Java语言编写的。

4)Android项目管理(1)查看项目

在模拟器桌面,单击Launcher按钮,打开应用程序管理界面,单击其中的Android Application图标,即可启动项目应用程序。(2)删除项目

①如图1.4所示,采用应用程序管理器删除项目。

②如图1.5所示,采用DDMS删除项目。图1.4 应用程序管理器删除项目图1.5 DDMS删除项目(3)如图1.6所示,在LogCat窗口中可以查看项目运行的日志信息。图1.6 LogCat窗口

2.应用程序五大组件

Android应用程序主要包括五大组件,即Activity、Intent、BroadCastReceiver、Service、Content Provider。

1)Activity

Activity相当于手机屏幕的一个页面,上面可以放各种UI组件。一个应用包含多个Activity,Android使用堆栈存放多个Activity对象,并自动进行管理。Activity存在生命周期。

2)Intent

Intent是一个将要执行的操作的抽象描述(Google)。主要用于在不同Activity之间跳转,并且传递数据。主要动作类型包括Main、PICK、VIEW、EDIT等,对应的数据以URI表示。IntentFilter用于描述Activity能够操作哪些Intent对象。

3)BroadCastReceiver

BroadCastReceiver主要用于对外部事件进行响应。通过NotificationManager通知用户事件发生了。通过在AndroidManifest.xml中定义,或者通过context.RegisterReceiver()注册。各种应用还可以通过Context.sendBroadcast()把自己的IntentBroadcast广播给其他应用。

4)Service

Service是指后台运行的应用程序,如音乐播放器的后台播放。

5)Content Provider

Content Provider用于在不同应用之间交换数据,一个应用通过实现Content Provider的抽象接口,从而把自己的数据暴露给其他应用调用,而其他应用程序无须关心数据存储的具体细节。任务1配置Eclipse移动集成开发环境

1.任务说明

Android SDK所支持的操作系统包括Windows 7、Mac OS X 10.4.8 or later(x86 only)和Linux(tested on Linux Ubuntu Dapper Drake)。

搭建Android开发环境步骤分为:安装JDK 6、安装Eclipse 3.7、安装ADT 2.2、安装SDK、配置AVD。

2.实现过程

1)安装JDK 6

首先,到http://www.oracle.com/technetwork/java/archive-139210.html下载Java SE 6,如图1.7所示,然后按照默认配置安装。

2)安装Eclipse 3.7

①如图1.8所示,进入地址http://www.eclipse.org/downloads/packages/release/indigo/sr2。

②如图1.9所示,进入Eclipse IDE for Java Developers中Windows 32-bit版本下载界面,单击按钮。图1.7 Java SE 6下载界面图1.8 Eclipse下载页面图1.9 Eclipse IDE

③如图1.10所示,单击“保存”按钮。

④解压运行eclipse.exe。图1.10 文件下载界面

3)安装ADT 2.2

①启动Eclipse,如图1.11所示,选取Help|Install New SoftWare…,单击Add…按钮。图1.11 安装新软件

②如图1.12所示,单击Local…按钮,输入https://dl-ssl.google.com/android/eclipse/,单击OK按钮。图1.12 添加站点

③如图1.13所示,选择Developer Tools复选框,单击Next按钮,开始安装。图1.13 选择开发工具集

④安装成功后,即可在Eclipse中看到图标。

4)安装SDK

Software Developer Kit(SDK)的作用是提供Android开发所需要的类库的支持,现在最新版本是7.0,比较流行的版本是2.2,本书使用2.2版本作为教学的SDK版本。

第一次运行Eclipse,要求指定SDK的路径,这里分成SDK已经存在和SDK还没有两种情况。(1)SDK已经存在

如图1.14所示,SDK已经安装好了。

①如图1.15所示,单击Browse…按钮,指定SDK的路径。

②单击Apply…按钮,如图1.16所示,显示出当前SDK所支持的Android版本。

③单击OK…按钮,显示图1.17所示的窗口。

④如图1.18所示,选择Use existing SDKs单选按钮,选择指定的SDK的路径,单击Finish…按钮。图1.14 选取SDK位置图1.15 指定SDK的路径图1.16 SDK支持的版本图1.17 Android开发欢迎窗口图1.18 选择存在的SDK(2)SDK不存在

①如图1.19所示,单击Eclipse任务栏中的按钮。图1.19 配置SDK入口

②如图1.20所示,选择需要安装的SDK版本,这里可以选择2.2版本,其中Tools必须全部选上,否则无法编译和运行。单击Install按钮,等待安装结束,可能需要较长时间,请耐心等待。图1.20 选择SDK

5)配置AVD

①如图1.21所示,单击图标,显示已经配置好的Android虚拟机(AVD),可以根据需要,为不同的SDK配置不同的AVD。图1.21 配置AVD

②单击New…按钮,显示Create new Android Virtual Device(AVD)对话框,如图1.22所示,根据需要选择目标Device,Target是SDK的版本和相关的内存、SDK容量。AVD的作用就是模拟一台实际的手机配置,以便运行相应的Android程序。图1.22 创建新的虚拟机

③单击OK…按钮,如图1.23所示,可以看到新增配置已经显示在列表中。图1.23 虚拟机列表

④选中一个AVD配置,单击Start…按钮,如图1.24所示,显示Launch Options对话框,可以更改启动参数。图1.24 Launch Options对话框

⑤单击Launch…按钮,如图1.25所示,可能启动会较慢,请耐心等待。Android开发环境对内存的需求量比较大,至少1GB内存,2GB以上会比较流畅。图1.25 虚拟机启动界面

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载