2024年3月21日发(作者:)

《Android手机开发》教学内容探讨

【摘 要】android手机、平板设备在近几年得以迅速普及,从

而android应用开发人材也变得供不应求起来。本文在我们教学实

践的基础上,介绍了手机应用开发人材培养中教学内容的设置,这

些设置既注重了基础能力的培养,又为学生进一步的能力提升奠定

了基础。

【关键词】android;手机开发;教学内容

0 引言

android是google推出的一款基于linux的便携设备操作系统,

近几年来android因其开放性的优势和丰富的硬件选择得以迅速地

普及。据idc公布的数据,截至2012年11月份, 也就是android

发布5周年之际, 其市场份额已占全球智能机75%[1]。在应用软件

需求不断增长的形势下, android手机应用开发人才就变得供不应

求[2]。很多大学和企业在教学和人才培训方面都引入了android

开发课程,作为培养专业软件开发人才的软件学院,我院在2010

年开始为java课程体系的大三本科生开设android手机开发课程,

受到了学生们的欢迎。由于android涉及linux系统、java、xml

技术、数据库技术、网络协议等相关知识,我们在一学期的课程中

设置的主要内容是手机应用程序开发。

android是一个相对比较新的平台,而且是运行在智能手机、平

板电脑等手持设备上,跟电脑平台和互联网应用开发有所不同,这

给进入这一领域的开发人员设置了一个并不低的门槛。好在google

为开发者提供了一个开放性的系统架构,该系统架构从下到上分为

四层[3,4]:第一层为linux内核层,包括linux操系统和驱动程

序,提供系统的安全性、内存管理、进程管理、网络协议栈和驱动

模型等核心系统服务。第二层为android运行时环境、核心类库。

运行时环境由andoid核心库和dalvik虚拟机组成,核心类库包括

系统c库、多媒体库、3d处理、浏览器引擎libwebcore、和轻量

级数据库sqlite等。第三层为应用框架层,包含了大量的api供

开发者调用。第四层为应用层,主要是通过调用底层类库,使用java

开发的应用程序,这些应用程序包括电子邮件客户端、sms程序、

日历、地图、浏览器等,android程序员开发的应用也位于此层。

android的这个系统架构采用软件叠层的方式构建,降低了层与层

之间的耦合,从而保证了层与层之间相互分离,各层的分工明确。

作为各种资源受限的嵌入式系统,android应用程序的构成方式

与电脑平台上的应用程序有很大的不同。android应用程序主要由

4部分组成,也称为四大组件: activity、contentprovider、

service和broadcastreceiver。activity是android应用中负责

与用户交互的组件,包括用户界面和事件响应;contentprovider

是不同应用程序之间共享数据的标准api;service是没有界面、

在后台运行的程序,比如下载文件、播放音乐等;broadcast

receiver是一个全局事件监听器,用来监听系统广播的消息。多数

android应用还离不开多媒体处理和网络应用。因此,在内容设置

上,我们以四大应用组件为基础,以多媒体应用开发和网络应用为

扩展。

1 四大应用组件

android应用程序开发的一项重要内容就是用户界面的开发,一

个好的应用程序首先要提供友好的图形用户界面(gui),才能最终

吸引到用户。android四大组件中最重要的是activity,它负责系

统与用户的交互,也是大多数应用程序的入口。activity作为视图

的管理者,管理窗口(phonewindow)和各个ui组件。android提供

了大量的ui组件,使得开发者可以像搭积木一样组合出优秀的用

户界面。这些ui组件都是从view类中派生出来的,view类还派生

了一个viewgroup类,提供了gui上所有组件的布局方式。在界面

开发方式上,android还提供了在xml布局文件中控制组件属性的

方式,大大提高了开发的效率和程序的灵活扩展性。为了让ui组

件响应用户的按键、触摸等动作,android也提供了事件响应机制,

方便实现用户的交互操作。android还提供了一些特殊的activity,

比如listactivity、tabactivity、expandablelistactivity、

preferenceactivity等,它们都是从activity类中派生出来的,

用来提供专门扩展的功能。

contentprovider是android中不同应用程序之间共享数据的标

准api。当一个应用程序需要把自己的数据暴露给其它应用程序时,

该应用程序就可通过contentprovider来实现;其它应用程序就可

通过contentresolver来操作contentprovider暴露出来的数据。

一旦应用程序通过contentprovider暴露了自己的数据操作接口,

则不管该应用是否启动,其它应用程序都可通过该接口对它的内部

数据进行增、删、改、查等操作。通过contentprovider,开发者

可以很方便地访问图像、视频、音乐、通讯录、短信等系统数据。

为了节约电量, 当前activity不可见时,它运行的程序也进入

休眠状态。为了兼顾比如音乐播放、数据下载等耗时较长的应用,

android系统提供了service组件。service组件与activity相类

似,也代表着可执行程序。不过它没有用户界面,一直在后台运行。

开发者可以使用activity做前台界面,调用service实现相关功

能,activity还可以与service绑定,并与之通信。

broadcastreceiver是一个全局的监听器,通过它可以方便地实

现系统中不同应用程序之间的通信。这些应用程序包括用户开发的

程序和系统内建的程序,因此,broadcastreceiver可以响应系统

发生的改变,比如电池电量变化、系统时间日期改变、开关机等。

特别地,通过broadcastreceiver可以实现应用程序随系统自动启

动。

以上四大应用组件的共同特点是,它们都需要在

文件中进行配置。除这四大应用组件外,

android还有一个重要的组件:intent。intent是上述四大应用组

件之间信息沟通的桥梁。通过intent,各组件能够以统一规范的方

式进行数据交换。

在数据存储方面,除了四大应用组件之一的contentprovider,

android还有三种方式[5]。第一种称为shared preferences,它

采取的处理方式是键值对,适合于用作程序和系统中的信息配置文

件。第二种是文件存储,特别是sd卡上文件的读写。android系统

大部分操作与java的i/o流类似,只要设置相应的权限并获取sd

卡的路径即可。android还内置了一个轻量级的数据库sqlite,可

以调用sql语句实现对数据的增、删、改、查操作,对小规模的数

据存储具有较高的效率。

2 多媒体处理

android提供了imageview控件显示普通静态图片,也提供了

animationdrawable来开发逐帧动画,还可通过animation对普通

图片使用补间动画。图形、图像不仅对android系统的应用界面开

发非常重要,而且android系统上益智游戏、2d游戏都需要大量的

图形、图像处理。所谓游戏,本质就是提供更逼真的、能模拟某种

环境的用户界面,并根据某种规则来响应用户操作。为了提供更逼

真的用户界面,需要借助于图形处理。

android还提供了常见音频、视频的编码、解码机制,比如常用

的mediaplayer类,android支持的音频格式有mp3、wav、3gp等,

支持的视频格式有mp4、3gp等。借助于这些媒体支持类,我们可

以很方便地在手机应用中播放音频、视频等,这些多媒体数据既可

以来自于android应用的资源文件,也可以是来自外部存储器上的

文件,甚至是来自于网络的文件流。不仅如此,android也提供了

对摄像头、麦克风的支持,因此也可以十分方便地从外部采集照片、

音频、视频等多媒体信息。

3 网络应用

手机本身是作为客户端来使用的,它的计算能力和存储能力都是

有限的。它的主要优势是携带方便,可以随时打开,而且手机通常

总处于联网状态。因此网络支持对于手机应用的重要性是不言而喻

的。

在android中,除了java中使用的访问网络的方式,还可以通

过两种方式使用http进行网络通信:一种是使用

httpurlconnection实现,创建一httpurlconnection对象就可以

发送http请求,默认采用的是get方式,也可以调用

setrequestmethod()方法指定使用post请求方式。另一种是使

用httpclient实现,httpclient实现了对java中访问网络方法的

封装,有httpget类代表发送get请求,httppost类代表post请

求,httpresponse类代表处理响应。

4 结论

通过对本课程的学习,学生可以掌握android手机客户端应用程

序开发的基础知识,能够熟练进行应用程序界面开发和美化,能够

进行简单的单机游戏的开发,能够通过jsp页面跟服务器进行交互。

在此基础上,学生可以通过实训等方式,进一步提升自身的实力,

能够参与完成某些大型应用程序开发,在娱乐、餐饮、导航、沟通、

资讯、办公等方面为便携设备用户提供便捷服务。

【参考文献】

[1]idc: android has a heady 59 percent of world smartphone

share, iphone still on the way up[ol].

/2012/05/24/idc-q1-2012-world-smar

tphone-share/,

/story/tech/2012/11/02/android-on-

75-percent-of-smartphones/1678429/.

[2]邹兴,张磊.3g 智能终端软件开发实验教学改革的思考[j].

实验科学与技术,2012,6,10(3):84-86.

[3]李刚.疯狂android讲义.2版[m]. 北京:电子工业出版

社,2013,2.

[4]杨凤年,何文德,周景,刘华富.手持设备应用软件开发课程

教学方法研究[j].中国教育技术装备,2008,246:33-35.

[5]林永军.android课程实验教学系统的研究与设计[d]北京

邮电大学,2012,2.

[责任编辑:王静]