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.
[责任编辑:王静]

发布评论