Android课程

关键词: 开发者 移动 应用 课程

Android课程(精选十篇)

Android课程 篇1

1 现状与存在的问题

1.1 现状

各高校开设Android应用开发相关课程的时间普遍不长,属于新设课程,对该课程的讲授普遍借鉴传统编程课程讲授方式,侧重Android系统结构、API调用和特性讲解,授课方式多以教师课堂案例讲解和学生模拟练习为主,以学生听懂为教学目标[1]。

1.2 存在的问题

以成都东软学院为例,由于成都东软学院属于国内较早开设Android应用开发课程的高校,相关课程大纲、培养方案和课程体系建设没有成功案例可供借鉴,虽然着重加强对学生实践能力的培养,但是课题体系和课程实施还是没有完全摆脱传统的以教师讲授为主,学生被动接受的模式。具体到《Android应用开发》这门课程,虽然采用案例式教学,但是每个案例都围绕具体知识点设计,存在案例无实用性、案例之间相互孤立等问题。这些虚拟的案例由于其不具有实用性,导致学生参与的积极性和主动性较低。案例之间的孤立性又导致学生即使掌握了每个知识点,但也很难把这些知识点融会贯通的使用。

2 教学构思与设计

针对上述问题,各个高校也都在进行课程改革探索,新疆农业职业技术学院的杨功元老师等人根据高职教育办学理念,结合课程性质,提出采取工学结合课程模式进行授课[2]。西南民族大学谭颖副教授等人提出“以学生兴趣为导向的《Android应用开发》课程改革研究”,该研究以学生兴趣为导向,实践层次化来提高学生课程学习积极性和学生的实际动手能力[3]。

本研究“《Android应用开发》课程教学改革应用研究”把课程实施按照TOPCARES-CDIO的工程教育理念指导,以实际项目为导向引导学生积极、主动的学习,不但掌握知识,还学会知识的应用。

3 教学实施与运行

《Android应用开发》课程实施过程分为教学内容组织、教学过程实施和教学考核三部分。通过对课程实施过程进行监督和控制来保证教学目标的达成。

3.1 教学内容组织

传统教学中,根据教学目标确定教学内容,由具体教学内容设计对应的教学案例。在这种情景下,教学案例围绕具体的知识点展开,是为了知识点的展示和使用来设计,而不是为解决实际问题而设计。在本次研究中,我们改变传统教学过程的教学内容分解化和教学案例孤立化的问题。通过对成都天府软件园部分软件企业访谈和对招聘网站相关职位技能要求进行分解,来确定通过对本课程学习后学生需要具备的技能指标,把这些技能指标映射到Android体系中的知识目标,再根据知识目标制定课程内容和课程实训项目。

3.2 教学过程实施

以往采用的案例教学法以每节课的知识点为中心,构建案例,通过讲解案例让学生掌握知识点。其优点是可以让学生快速了解知识点,缺点是由于案例围绕知识点设计,案例的实际操作性不高,知识点之间是隔离的,造成学生掌握了知识却不会运用知识。

在本次教学改革探索中,通过对学生使用频率较高APP应用进行分解,围绕APP的实现让学生掌握关联知识点。例如让学生以3-4人组成的小组共同完成一个微博客户端APP,对于微博客户端的功能,学生非常熟悉并且每天使用,学生参与积极性非常高。实现过程中,客户端与服务器交互用到网络编程、JSON解析和多线程的知识,微博列表展示使用到List View和Adapter的相关知识,页面呈现使用Android UI编程知识,发布微博或者评论功能用到网络编程知识。用户设置和登录功能使用了文件存储相关知识。通过一个实际项目的开发可以覆盖大部分的知识点。学生掌握知识的同时,学会运用知识。

由于这些实际项目在工作量和时间长度都比案例对学生的要求高,因此在项目实施过程中,需要加强对项目过程监控,设立时间点和里程碑,督促学生们的进度和对学生进行指导。这些项目的实施让学生的积极性和主动性大为提高,学生也更加容易理解知识点之间的关联性。

3.3 教学考核

课程最后的考核采用项目考核方式,学生通过4个专题项目,掌握Android应用开发基本知识后,需要学生团队完成一个课程项目。学生最终成绩由4个专题项目成绩和1个课程项目成绩构成。每个项目成绩=小组成绩*50%+个人成绩*50%。这样既充分考虑项目完成情况,也考虑个人在项目中的贡献度,有利于学生之间相互激励,共同进步。

4 教学反馈

根据三个学期的实施情况观察学生在Android应用开发课程学习过程中的积极性明显较高,课程成果也较改革前丰富。学生普遍反映课程学习目标明确,学习动力强。

5 结束语

针对《Android应用开发》这门课程特点,利用工程化思想改造授课过程,以项目为中心讲授课程,围绕项目的实现关联各个知识点,让学生掌握知识的同时,学会利用知识。

参考文献

[1]宋喜佳,杨亮,刘伟,等.基于CDIO理念的Android应用程序开发教学改革[J].计算机教育,2015(10):39-41.

[2]杨功元,李桂珍,李欣.“Android应用程序开发”课程建设探索[J].计算机教育,2012(16):85-88.

[3]谭颖,陈天乐,校景中,等.以学生兴趣为导向的《Android应用开发》课程改革研究[J].内蒙古师范大学学报(教育科学版),2016(8):154-157.

Android 课程设计报告 篇2

课程名称: 嵌入式技术课程设计 设计题目: 基于Android系统的小查询工具 学 院: 信息工程与自动化学院 专 业: 计算机科学与技术 年 级: 2010级 学生姓名: 指导教师: 日 期: 2013/7/8

教 务 处 制

课 程 设 计 任 务 书

信息工程与自动化 学院 计算机科学与技术 专业 2010 年级 学生姓名:

课程设计题目: 基于Android系统的小查询工具 课程设计主要内容:

通过本课程设计,使学生巩固软件工程的基本概念、原理,熟悉安卓应用开发环境和技术,学会完成一个移动终端应用软件的分析、设计、编码测试和安装,将理论与实际相结合,强化学生的项目开发和团队意识,提高学生分析能力和创新能力

基本理论

1、Android系统的开发方法及基本原理

2、JavaEE应用程序设计开发技术 实验方法与基本要求

要求学生掌握Windows环境下Android系统开发的一般方法,AndroidSdk 集成开发环境的构建及JavaEE应用程序的开发。整个设计过程必须由学生自己独立完成,课程设计按二人一组,分组进行全过程的设计。

设计内容

1、Windows环境下构建Android系统的开发环境

2、基于Android模拟手机,设计手机应用程序

3、将程序下载的Android手机上应用

设 计 指 导 教 师(签字): 教学基层组织负责人(签字):

年 月 日

目录

一、课程设计的目的及要求...................................3 1.1 课程设计的目的.......................................3 1.2 课程设计要求………………………………………………………………………3

二、Android应用程序开发背景....................................................................3 2.1开发背景...............................................3 2.2开发环境...............................................4

三、Android应用程序开发环境搭建............................5 3.1所需软件的下载…………………………………………………………………… 5 3.2相应软件的安装.........................................5

四、“小查询工具”的设计与实现„„„„„„„„„„„„„„„10 1.总体设计„„„„„„„„„„„„„„„„„„„„„„„ 10 1)界面设计„„„„„„„„„„„„„„„„„„„„„10 2)功能设计„„„„„„„„„„„„„„„„„„„„„12 2.详细设计„„„„„„„„„„„„„„„„„„„„„„„ 12 1)模块设计„„„„„„„„„„„„„„„„„„„„„12 2)编码实现„„„„„„„„„„„„„„„„„„„„„12 3.手机上运行截图„„„„„„„„„„„„„„„„„„„„ 14

五、总结与体会„„„„„„„„„„„„„„„„„„„„„„„16

基于Android系统的小查询工具设计

一、课程设计的目的及要求 1.1 课程设计的目的

1)复习、巩固Java语言的基础知识,进一步加深对Java语言的理解和掌握;搭建一个完整的安卓开发环境。

2)课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力,提高学生适应实际,实践编程的能力;

3)培养学生在项目开发中团队合作精神,创新意识及能力。

1.2 课程设计要求

1)通过Eclipse搭建一个完整的安卓开发环境。

2)在安卓开发环境上编写一个简单的安卓软件,并且能够在手机上运行。

二、Android应用程序开发背景 2.1开发背景

1.智能手机的市场

(1)功能多样化的智能手机挑战全球PC出货量

移动互联网时代的来临,直接促进了搭载智能操作系统、具有强大扩展性的智能手机、平板电脑等移动终端产业的蓬勃发展。来自美国最大的风险投资机构KPCB的数据显示,全球智能手机出货量正在以远高于台式电脑、笔记本电脑出货量的速度快速增长,该机构预计2013年全球智能手机出货量将达到4.13亿,超过台式电脑与笔记本电脑出货量的总和。

(2)智能手机的用户使用数量正在高速增长。据市场调研机构Gartner信息,2011年全球智能手机的总出货量将会达到4.68亿部,相比2010年实现了57.7%的增长,而谷歌Android操作系统将会在今年之内成为全球最大的智能手机操作系统。另外,全球市场调研机构IDC预计未来5年中国手机市场上,智能手机替代传统功能手机的趋势将日益明显,未来5年中国智能手机市场复合增长率将达到34.1%,人们对IT设备智能化的向往是这一增长率能够实现的主要因素,并且与其他国家相比,中国智

在path变量(已存在不用新建)添加变量值:%JAVA_HOME%bin;%JAVA_HOME%jrebin(注意变量值之间用“;”隔开)

检验环境变量是否配置成功:“开始”-->“运行”-->输入“javac”-->“Enter”,如果能正常打印用法说明配置成功!

选择目标工具所在的文件夹跳出安装工具的目录

勾选目录点击Next,即可开始安装;安装的详细目录:

安装完成后,可以在Preference处查找到:

4.安装SDK(SDK解压即可使用)

安装好以后,通过SDK下载开发所需的源文件包:

这个操作只有在联网的时候才能进行下载。

四、“小查询工具”的设计与实现

1.总体设计

1)界面设计

主界面:

02)功能设计

对于这次课程设计编写的小查询工具,我们需要它能够帮助我们完成的功能为:手机归属地查询、身份证信息查询、区号邮编城市查询。对于小查询工具的每个查询功能,当用户点击相应的功能时,它能够帮助用户查询用户所需要的信息。

2.详细设计

1)模块设计

I、主界面模块(选题模块)

该模块是查询软件的主界面,在该模块界面有三个功能:手机归属地查询、身份证信息查询、区号邮编城市查询。用户根据自己所要查询的信息,选择相应的功能就可以查询用户想知道的信息。II、手机归属地查询模块

在该模块中,当用户在输入框中输入一个正确的号码时,点击“开始查询”按钮,就可以查询到该手机号码的归属地。III、身份证信息查询模块

在该模块中,当用户在输入框中输入一个正确的身份证号码时,再点击“开始查询”按钮,就可以查询到该身份证号码所代表的人的生日、性别以及出生地址。IV、区号邮编城市查询模块

在该模块中,当用户在输入框中输入一个正确的区号或者邮编或者城市名称时,点击“开始查询”按钮,就可以查询到其对应的省份、城市、区号、邮编以及归属地。

2)编码实现:

各包内的JAVA源文件:

界面切换等活动的基本代码:

3.手机上运行截图

手机截图:

Android课程 篇3

关键词:Android;案例教学;应用

中图分类号:TP316-4 文献标识码:A 文章编号:1007-9599 (2012) 09-0000-02

一、引言

案例教学有其自身特点,主要通过模拟或者重现现实生活中的一些场景,让学生把自己纳入案例场景,通过讨论或者研讨来进行学习的一种教学方法。而《Android应用开发》课程,它可以通过软件本身自带的模拟器来演示课程教学中的大部分知识点,关于该课程的案例教学相对来说并不是很多,所以如何更好地发挥案例教学在《Android应用开发》教学中的作用值得研究。

二、教学现状

Android是Google与开放手机联盟合作开发的全球首个完全开放的手机平台,Android智能手机操作系统,以Linux为基础,以开源、免费为其主要特点,已经引起越来越多的企业和学术机构包括大学的广泛关注,并且很多大学已经在教学、科研、人才培养等方面开始逐步引入Android相关课程。

从2010年伊始,Google在中国和北京大学、同济大学、浙江大学、中山大学、武汉大学等9个地区的20多所高校通过课程合作的形式,把Android引入课堂教学。并有10所高校在Google资助下开发侧重点各有所偏重的实用课程。Google 推出这项旨在人才培养的合作计划,将帮助中国高校逐步建立起智能手机移动应用开发课程体系,培养更多符合产业发展要求的移动应用开发人才。进而促进智能手机产业、移动互联网产业和云计算在中国的发展。

由于Android相关课程近几年才逐渐进入全国高校的计算机相关专业的课程体系,所以其课程体系并非完善,很多高校正在尝试性的开设Android相关课程,而Android相关课程的教学研究也刚刚逐步开展,并且其教学方法处在研究和实践阶段,还没有形成统一的教学体系和规范。一个行之有效的教学方法显得尤为重要,也是目前教学过程中急需解决的问题,而案例教学作为一种教学方法,适用于操作类的知识和技能,较为适合《Android应用开发》课程的教学。

三、案例教学在《Android应用开发》课程中的应用

(一)合理的设计教学案例

确定案例教学应用于《Android应用开发》课程的基本思路和方法。通过调查研究该课程,掌握该课程的教学特点,注重学生的学习动机和学习兴趣,进而合理的设计教学案例。

例如在讲解Android的UI界面设计时,可以以设计手机拨号界面为例,讲解UI的布局,使用多种布局方式实现界面的设计,同时设置各个控件的属性,还可以实现单击按钮来触发事件,以及实现Activity的跳转、Intent对象传递数据等多个知识点,这样通过一个具体的、合理的并有实际意义的案例可以把多个知识点的内容连串起来,达到较好的教学效果。

在《Android应用开发》的课程教学中,合理的案例教學主要体现为:第一,任务驱动型案例的设计目标要明确,操作难度不要过大,激发学生的求知欲望;第二,任务驱动型案例要有层次感,充分考虑学生接收知识的能力,因材施教;第三,任务驱动型案例要具有趣味性,创建愉悦的学习氛围,引导学生自觉自愿的学习;第四,任务驱动型案例要有创新性和实用性,引导学生去思考、去探索;第五,任务驱动型案例要让学生积极参与,培养学生的创新意识和合作意识,并潜移默化的提高学生的软件工程素养。

合理的教学案例可以调动学生的学习积极性。《Android应用开发》的任务驱动型案例教学,在实施过程中,尤其是初学者,会有一定的困难,因此要改变学生的学习观念,调动其学习积极性,使其主动学习。让学生通过自己的“感受”产生问题,在教师的案例引导下“理解”产生问题的本质,学生在实践过程中学习理论知识、掌握操作技能,并将理论和实践结合在一起,从而大大激发学生学习的兴趣,增加了学生的创新意识。

合理的教学案例会达到事半功倍的效果,不论从教师的讲解还是从学生的理解角度来说,合理的任务都会使教师和学生从中受益。

(二)案例的实施

1.案例的引入

教学案例引入的成功与否,是影响课堂教学质量的关键。

恰当地引入教学案例,是教师科学教学理念的一种体现,它可以通过教师的教学智慧,使教学更加贴近学生生活,从而更好地实现教学目标。营造生动活泼的课堂互动氛围,激发学生乐学、好学、善学、巧学的积极心态,必须恰当地引入教学案例。

案例的引入同时要注意:以学生为认知的主体,以Android应用开发过程和方法为主线,注重课程的应用效果,制定合理的案例。通过案例,对学生进行启发式教学,激发学生的学习兴趣和学习成就感,充分调动学生学习的主动性和创造性。

2.案例的讨论

典型的案例讨论一般总是与下列问题的探讨联系在一起的:案例中的疑难问题是什么?解决问题的方法有哪些?如何进行实践操作?如何进行整体评价?

在本案例的教学过程中,要尽量将案例的实现与相应的教学内容联系起来,以揭示案例与所学原理之间的联系。教师通过启发、引导、组织、调控,促使学生积极参与,主动交流和展开研讨和探索。教师在展示案例后,要启发学生思考,让学生主动探究案例中存在的潜在问题,提出解决问题的正确思路和方法。这样即发挥了学生的自主性和独立性,又有利于培养学生分析、解决问题的综合能力和创新精神。在提出问题后,教师要引导学生对问题进行筛选,确定几个问题进行探讨。

例如,在讲解Activity组件时,首先提出问题,手机里的界面究竟是如何显示的(即该组件在Android里的作用),然后告诉学生是由Activity来实现的,是怎么实现的呢?确定问题后,组织学生讨论、分析。组织的形式可以多种多样,但分小组讨论效果最好。讨论时,各小组可以讨论同一个问题,如果课堂时间有限,则可各组确定一个讨论议题,讨论初步结束后,各组派代表发言,每组发言后,其他组的学生可以针对发言提出相关问题要求发言小组回答,最后,对于每个问题都得出一个大多数学生认可的结论。

继而教师对问题进行详细的分析,引出实例,最终解决问题:创建一个类,并要求该类要继承Activity,然后复写onCreate()方法,接下来设置该类要显示的布局文件(即手机显示界面),最后配置该组件。

教师的解答结合学生的结论,进行对比,看解决的方法是否一致,如果不一致,看哪种方法更为合理,这样不论是学生的学习兴趣还是教师的教学热情以及教学效果都会得到显著的提高。达到案例教学的要求。

3.案例的总结

案例讲解完,要做适当的总结,首先是学生对案例的总结:从案例中学到了哪些知识点,并且是有新的问题的产生等等,然后是教师的总结:重点重复知识点,并解决学生有可能提出的新的问题,最后,案例可能还要适当的修改,使其更为合理。

四、预期效果

(一)建立较完善的,适应《Android应用开发》课程教学案例。通过开展案例教学,教师的主导作用得以发挥,学生的主体性也得到了充分的体现,师生之间的互动形式也将丰富多彩。

(二)通过开展案例教学,能激发学生的学习成就感和主动学习的积极性。学生边学边做,能加深对书本上的概念和原理的理解;教师讲解与知识点紧密相关的案例,让该课程成为一门看得见摸得着的实实在在的生动课程;

(三)通过开展案例教学,提高学生的实践动手能力。在掌握基本知識与技能的同时,培养学生的自主学习意识和团队合作意识;达到训练综合运用知识、方法解决实际问题的能力。为学生信息素养的提高和创新能力的培养提供了更大的可能。还可通过协作学习的方式对某些问题进行交流、讨论、沟通,从而开阔了学生的思路,并有利于培养学生的团队合作精神和解决实际问题的能力。最终在教学过程中潜移默化的提高学生的软件工程素养。

五、结束语

总之,在《Android应用开发》课程教学中采用案例教学法好于传统的教学模式,目前,我们已经在部分专业学生的教学中进行了先期的尝试,并且取得了较好的效果。案例教学在该课程中的应用,有利于提高学生的综合素质,培养出符合时代发展要求的应用型人才。

参考文献:

[1]刘英魁,许爱中.浅析案例教学法在VFP 课程中的应用[J].河北广播电视大学学报,2006,12

[2]司海峰,王亚玲等.Java课程中引入案例教学之研究[J].教育科学,2008,2

[3]邱桂华,袁丽.案例教学在程序设计语言教学中的应用探讨[J].科协论坛,2008,8

[作者简介]

Android课程 篇4

关键词:Android,实战模式,应用程序,开发

1 Android简介

Android是一个以Linux为核心且开放源代码主要应用于便携设备的操作系统。Android的系统架构采用的是分层架构, 从高到低分别由应用程序层、应用程序框架层、系统运行库层和Linux核心层等四层构成。应用程序层提供一系列核心应用程序;应用程序框架层提供Android平台基本的管理功能和组件重用机制;系统运行库层由函数库和Android运行时构成;Linux内核提供由操作系统内核管理的底层基础功能

2 Android应用程序开发环境和开发特点

Android应用程序开发主要采用的是Eclipse集成开发环境。Android通过在Eclipse增设ADT插件 (Android Development Toolkit) 来构建Android应用程序开发环境, ADT的引入, 为Android应用程序的开发构建了一个强大完整的开发环境, 开发人员可以快速地建立Android工程、用户界面和基于Android API的组件, 还可以在Eclipse中使用Android SDK提供的工具进行程序调试, 或对apk文件进行签名。

Android应用程序的开发是基于组件的, Android系统通过利用组件来实现程序内或程序之间模块的调用。Android系统利用android Manifest.xml声明文件进行可共享组件的声明, 而后其他应用程序就可以直接调用这些经过声明的共享组件。同时, Android系统直接允许共享组件被Android系统实例化, 使其他程序就可以直接调用进程没用启动的共享组件。

3 实战模式及其特点

实战模式, 主要就是让学生参与到实际应用软件的设计开发中去, 让学生在软件的设计开发工作中学到更多有用的知识, 掌握更多实际应用技能, 得到更好的锻炼。

实战模式教学区别于任务式或是项目式驱动的教学模式。任务式或是项目式驱动教学模式以教师为主导, 教师在给定相应的任务或是项目后, 由学生自主完成, 在教师不监督的情况下, 学生有可能出现倦怠松懈问题而导致完成质量一般。实战模式是把学生置于实际或是模拟的设计开发环境, 压力来自于开发项目或是公司, 学生压力大动力也大, 学生在知识储备、技术技能和学习能力等方面都将得到很大的提高。

4 实战模式在Android课程教学中的应用

Android课程是一门高级程序设计课程, 它的前导课程包含了计算机应用基础、程序设计基础、JAVA语言、数据结构、数据库等课程。由于Android是以Java语言为程序设计语言的, 因此教学工作可以直接进入Android的应用项目开发教学。

那么如何把实战模式应用到Android课程的教学中去?

第一、是Android应用软件开发公司项目的引导, 这方面可以有参与和参考两个方向的选择。参与是加入到公司的开发项目中去, 这相当于“工学结合、校企合作、顶岗实习”模式的应用, 加入到公司软件设计开发项目中, 学生在可以参与项目得到锻炼的同时了解公司的项目开发过程、开发技术、工作技能要求等, 这对于学生未来迅速适应工作岗位有着很好的帮助。但这需要公司与学校的紧密配合, 需要公司对于学校教学工作的大力支持。参考的模式是教师与软件公司进行沟通协调, 取得公司相应实际开发项目说明书后, 形成相关设计开发任务并转赋予学生, 让学生根据项目文档进行实际项目的设计开发, 这种模式的优点在于学生通过项目书可以了解Android项目开发的方向, 及软件开发所需要的知识与技能, 对他们的学习与技能训练起到一定的指导作用。公司项目的引导, 无论是参与还是参考, 可以说是最贴近学生未来实际工作的情景模拟, 学生可以近距离了解他们将来所要做的东西, 明白他们现在需要准备的是什么, 这种方式可以让学生在走上工作岗位或是找工作时感觉到迷惘。

第二、让学生参加软件设计比赛。参加比赛, 是对学生的一次知识与能力、动脑与动手、创新能力与学习能力的大考验, 通过比赛可以让学生在这些方面都得到很好的锻炼。同时, 一般软件设计类的比赛都是团队参加, 这对于学生的团队管理能力、团队协作能力、项目管理能力、沟通协调能力都一定的锻炼作用。

第三、游戏软件开发的引导。很多计算机类专业的学生都非常喜欢玩电子游戏, 我们教师可以从学生的这个兴趣入手, 引导学生如何去开发自己喜欢的游戏。我们可以引导学生上Google Play寻找自己喜欢的游戏软件或是优秀的应用软件, 看看人家是怎么实现的, 交互是怎么做的, 流程是怎么控制的, Actor是怎么play的, 然后尝试着自己或是小组进行开发设计, 从而让学生具备更多的开发设计经验。

参考文献

[1]王向辉, 等, 编著.《Android应用程序开发》.清华大学出版社, 2010.3.[1]王向辉, 等, 编著.《Android应用程序开发》.清华大学出版社, 2010.3.

[2]明日科技, 编著.《Android从入门到精通》.清华大学出版社, 2012.7.[2]明日科技, 编著.《Android从入门到精通》.清华大学出版社, 2012.7.

Android课程 篇5

关于Android单元测试可以看Google官方给的教程:Best Practices for Testing(需要FQ)

一、创建Android Test Project

1、创建一个Android Project:Hello。并将其布局文件改成如下:

复制代码

1

2xmlns:tools=“schemas.android.com/tools”

3android:layout_width=“match_parent”

4android:layout_height=“match_parent”

5android:orientation=“vertical” >

6

7

8android:id=“@+id/text”

9android:layout_width=“match_parent”

10android:layout_height=“wrap_content”

11android:text=“@string/hello_world” />

12

13

14

15android:id=“@+id/edit”

16android:layout_width=“match_parent”

17android:layout_height=“wrap_content”

18android:hint=“请输入” />

19

20

复制代码

2、创建Hello对应的测试项目:File->New->Other->Android->Android Test Project,弹出”New Android Test Project”对话框,在“Project Name”中输入“HelloTest”,点击“Next”。

3、在”Select Test Target”中,选中你要测试的Android项目,然后点击Finish即可。

创建完Android Test Project后,打开HelloTest项目的AndroidManifest.xml文件,你会发现里面的配置会比HelloTest多,具体不同请看下面的代码:

复制代码

1

2

3package=“com.lsj.hello.test”

4android:versionCode=“1”

5android:versionName=“1.0” >

6

7

8

9

10

11

12android:name=“android.test.InstrumentationTestRunner”

13android:targetPackage=“com.lsj.hello” />

14

15

16android:icon=“@drawable/ic_launcher”

17android:label=“@string/app_name” >

18

19

20

21

22

复制代码

二、单元测试代码编写

1、创建完Android Test Project后,你会发现HelloTest自动帮你创建了com.lsj.hello.tests的包名。关于Android单元测试相关包、类、方法的命名方式如下:

包名:com.lsj.example————com.lsj.example.tests//对应包名+“.tests”

类名:Hello.java————HelloTest.java//对应类名+“Test”

方法名:Hello()————testHello()//“test”+对应方法名

2、在com.lsj.hello.tests包下建立MainActivityTest.java类,MainActivityTest继承自ActivityInstrumentationTestCase2,关于Android测试类可以看文章末尾的链接

3、编辑MainActivityTest,添加单元测试代码

复制代码

1 package com.lsj.hello.test;

2

3 import android.app.Instrumentation;

4 import android.test.ActivityInstrumentationTestCase2;

5 import android.view.KeyEvent;

6 import android.widget.EditText;

7 import android.widget.TextView;

8

9 import com.lsj.hello.MainActivity;

10

11 /**

12* ActivityInstrumentationTestCase2继承于TestCase, TestCase类位于junit.framework包下

13* 查阅Android API文档,可以发现Android的测试类全部继承自TestCase。 创建一个单元测试大致需要以下步骤:

14*

15*

16* 1、继承TestCase类或其子类

17* 2、定义要使用到的实例变量

18* 3、使用setUp()方法,在测试前的对变量和测试环境进行初始化

19* ....测试

20* 4、在测试完成后进行垃圾回收等善后工作

21*

22*

23* @author Lion

24*/

25 public class MainActivityTest extends

26ActivityInstrumentationTestCase2{

27

28private MainActivity mActivity;

29private TextView mTextView;

30private EditText mEditText;

31private Instrumentation mInstrumentation;

32

33/**

34* 重写MainActivityTest的构造方法,注意super内必须为内的泛型类,否则会报错,

35* 根据Google官方给的示例,其构造函数为午餐,而且测试的时候发现有参的构造函数会导致单元测试失败。

36*/

37public MainActivityTest() {

38super(MainActivity.class);

39}

40

41@Override

42protected void setUp() throws Exception {

43/* 执行对变量和测试环境的初始化 */

44super.setUp();

45// 关闭touch模式,否则key事件会被忽略

46setActivityInitialTouchMode(false);

47

48mInstrumentation = getInstrumentation();

49

50// 获取被测试的MainActivity

51mActivity = this.getActivity();

52// 获取被测试的TextView控件

53mTextView = (TextView) mActivity.findViewById(com.lsj.hello.R.id.text);

54// 获取被测试的EditText控件

55mEditText = (EditText) mActivity.findViewById(com.lsj.hello.R.id.edit);

56}

57

58/**

59* 测试数据初始化是否为空

60*/

61public void testInit() {

62// 断言mActivity是否为空

63assertNotNull(mActivity);

64// 断言mTextView是否为空

65assertNotNull(mTextView);

66// 断言mEditText是否为空

67assertNotNull(mEditText);

68}

69

70/**

71* 测试文本框字符串是否相等

72*/

73public void testTextViewString() {

74// 断言mTextView显示的文本是否与String.xml中的hello_world相等

75assertEquals(

76mActivity.getResources().getString(

77com.lsj.hello.R.string.hello_world), mTextView

78.getText().toString());

79}

80

81/**

82* 测试输入

83*/

84public void testEditTextInput() {

85input();

86assertEquals(“hello”, mEditText.getText().toString());

87}

88

89/**

90* 模拟输入

91*/

92public void input() {

93/* UI组件的相关操作需要在UI线程上进行,所以用Activity的runOnUiThread方法 */

94mActivity.runOnUiThread(new Runnable() {

95@Override

96public void run() {

97mEditText.requestFocus();

98mEditText.performClick();

99}

100});

101/*

102* 由于测试用例在单独的线程上执行,所以此处需要同步application,

103* 调用waitForIdleSync等待测试线程和UI线程同步,才能进行输入操作。

104* waitForIdleSync和sendKeys不允许在UI线程里运行

105*/

106mInstrumentation.waitForIdleSync();

107// 调用sendKeys方法,输入

108sendKeys(KeyEvent.KEYCODE_H, KeyEvent.KEYCODE_E, KeyEvent.KEYCODE_L,

109KeyEvent.KEYCODE_L, KeyEvent.KEYCODE_O);

110}

111

112@Override

113protected void tearDown() throws Exception {

114/* 在测试完成后进行垃圾回收等工作 */

115super.tearDown();

116}

Android课程 篇6

对于这项拟议中的收购,我有两个问题。第一,我们为什么要考虑批准这项协议?第二,什么时候以及出于什么样的原因我们停止了对于垄断权力的担忧?

先说第一个问题,宽带互联网和有线电视都已经是高度集中的行业,少数几家公司拥有大多数的客户。

曾几何时,反垄断机构看到这种情况,极有可能会采取行动,削减康卡斯特的规模,不可能任其扩张。

康卡斯特的首席执行官表示不必担心,“因为我们的公司之间没有业务重叠,也不存在相互竞争,所以不会降低任何相关市场的竞争。”然而,这种说法明显是虚伪的。对于康卡斯特扩张的担忧并非是它减少了当地市场的客户竞争。

首先,当地市场几乎没有任何有效竞争。真正的问题在于,康卡斯特对内容提供商在使用其数字管道的条款方面,具有比现在更大的规定权力—这种迫使其业务上游达成苛刻协议的能力,将使业务下游的潜在竞争对手挑战其当地的垄断公司变得更加艰难。

关键的问题在于康卡斯特完全符合对旧时强盗式垄断者的描述。就像中世纪的军阀,镇守城堡,俯瞰莱茵河,向所有过路者征费。事实上,收购时代华纳会让康卡斯特增强其防御能力,这当然是一个坏主意。

有趣的是,在人们为支持这项收购而引用的陈词滥调中,似乎缺少了一个经常挂在嘴上的说法:我还没看到有人说,这笔交易能促进创新。也许是因为这样说会遭到嘲笑。

实际上,许多专家—本杰明·N·卡多佐法学院的苏珊·克劳福德在其新书《被俘获的观众》中直击这一案例,就提出巨型电信公司已经扼杀了创新,让美国越来越落后于其他发达国家。

而且,我们有充分的理由相信,不仅电信行业如此,垄断权力已经严重拖累了整个美国经济。

过去两党在支持强硬的反垄断执法上有着共识。然而,在里根时代,反垄断政策走向没落,并且从那时起,衡量垄断权力的各种指数,比如任意指定行业的销售集中在少数大公司的程度,一直在快速攀升。

起初,反对控制垄断权力的观点认为,兼并会带来经济效益上的所谓好处。后来,它成为了一种普遍的论调,世界已经发生了改变,那些关于垄断的旧式的担忧已经无足轻重。

难道我们不是生活在全球化竞争的时代吗?新技术的创造性破坏不是在不断推倒旧的工业巨头,创造新的巨头吗?但事实却是,许多商品和服务并不存在国际竞争:新泽西州的家庭不会成为韩国的宽带用户。同时,创造性的破坏已经被过分推销:微软可能是个走下坡路的帝国,但是它仍在依靠几十年前建立起来的垄断地位获得巨大的利润。

此外,垄断本身就是一个创新障碍。克劳福德很有说服力地论证了,电信巨头不受制约的权力已经消除了对于进步的激励:当你的客户无处可去的时候,为何还要升级你的网络或者提供更好的服?务?

同样的现象在阻碍整个经济的发展。人们对美国经济最近的表现感到不解,其中一个便是利润和投资的脱节。利润在GDP中的占比达到创纪录的高度,而公司没有利用这些利润进行再投资。相反,它们要么在回购股票,要么在积累大量资金。如果这些创纪录的利润中的很大部分代表垄断租金,人们就会看到这种情况。

换句话说,是到了要重新担心垄断权力的时候了,其实我们本该一直如此。而回归正轨的第一步就是,对康卡斯特的收购说“不”。

马克提要求了。

2月24日,西班牙巴塞罗那。身穿深灰色T恤的马克·扎克伯格(Mark Zuckerberg),出现在全球最大的通信展MWC的开幕演讲台上。“运营商该自己选择一部分基础服务免费提供给用户。我们正试着打造一个对互联网以及运营商更好的商业模式。”他对着台下数百位媒体记者和参展商说,试图说服运营商让全球2/3未联网人口用上互联网—特别是Facebook。

这是扎克伯格和他创建的社交网络王国,第一次出现在一个被通信运营商和手机硬件厂商所主导的展会上。三星租下了这里最大的场馆,操着一口浓重英国口音的主持人站在40台平板电视组成的巨幕前做着介绍。说着各种语言的媒体和参展商人员挂着印有华为字样的胸牌,在闷热的会场里穿梭。比起CES,硬件商更加重视MWC。在扎克伯格之前,另一些互联网及软件巨头也在这里出现过,比如Google、微软和Twitter。

这位即将过30岁生日的CEO有资格提出自己的要求,马克·扎克伯格现在已经成为移动产业的领袖级人物。Facebook1月发布的财报显示,截至2013年第四季度,全球共有9.45亿用户每月通过手机使用Facebook,占这个社交网络所有用户的3/4。移动广告也随之成为Facebook最大的收入来源,占其全部广告收入的53%。

但21个月前,这个全球最大的社交网络公司刚上市时,它并不被认为是一个重要的移动服务,它当时的移动广告收入也基本可以忽略不计。

移动互联网,本来是Google的天下。

Google从2003年起就开始部署移动市场,它不仅拥有一个让手机硬件世界变平的Android系统,还在不断尝试将自己的社交网络Google+塞进每一部Android手机。在Google一手建立起的移动世界,它占据了48%的移动广告市场份额。这个操作系统所向披靡,就在这次巴塞罗那通信展上微软和诺基亚推出了Android操作系统手机—这本来应该是这次会展中最大的新闻,但因为Facebook的出现而黯然失色。

就在扎克伯格抵达西班牙前的一周,这家公司宣布以190亿美元的惊人价格收购WhatsApp,一个轻量级手机通信应用。Facebook为此支付的现金和股票约合公司市值的1/10。为了在手机上获得一个重要入口,Facebook表现得不顾一切。

nlc202309021122

Facebook通过收购WhatsApp得到的东西也很可观:它拥有4.5亿活跃用户,其中七成以上每天都用它收发消息。除信息以外,这些用户平均每天还通过WhatsApp收发超过5亿张照片、2亿条语音信息和1亿段视频。创办五年的WhatsApp正随智能手机的普及而高速增长,其用户的半数是在过去一年里加入的,并且每天新增超过100万注册用户。收购后WhatsApp将会独立存在,而不是整合进Facebook现有的通信服务。

与Google通过Android平台最大化移动广告的收益不同,Facebook的移动战略是在主应用以外推出不同的独立应用—用一些看似分散的应用及服务来构建一个生态系统。在1月底的营收电话会议上,扎克伯格提到,将成立创意实验室,并支持小团队实践自己的想法。扎克伯格说,他这么做是因为“要想连接所有人”,就意味着让他们能在不同群体里分享不同内容。

Facebook工程总监乔斯林·戈德法因(Jocelyn Goldfein)今年年初接受采访时说,她根据应用反馈的数据发现“用户打开Facebook更多会去看别人更新的照片和状态。而打开独立的消息应用则会相互用短信联系”。多应用的移动社交应用策略同样被应用于Facebook之前的收购。分享社区Instagram以10亿美元加入Facebook以后依然保持独立运作。用户每天上传大量加了滤镜的照片,唯一区别是他们可以通过Facebook帐号来登录了,并且现在可以拍视频。Facebook现在可以通过帐号关联每个用户在不同服务上的数据,更准确地判断用户的喜好,从而为广告客户提供更精确的投放。照片和视频的加入也为Facebook提供了更丰富的广告载体。在刚刚过去的一年,Facebook拿下了全球移动广告市场15.8%的市场份额,这个数字超过了市场研究公司此前12.9%的预测,位居全球第二。虽然和排在第一的Google(48.76%)仍有较大差距,但Facebook显示出惊人的增长速度。Facebook在2012年正式进入这个市场,当时份额仅为5.34%,Google为52.25%。在Android官方应用商店Play Store全球下载前5名的应用里,有3个属于Facebook,还有1个是利用Facebook网络的社交游戏。

微软也打算这么干。

就在马克·扎克伯格准备发布开场演讲的那个早上,另一群媒体记者和参观者则涌向诺基亚展厅。诺基亚还能得到如此追捧的原因是它们将发布诺基亚Android手机。新推出的三款Android手机被称为诺基亚X。该系列手机配置不高,海外售价在89至109欧元之间。它们延续了诺基亚的聚碳酸酯外壳和重视色彩的视觉设计,不论硬件配置还是产品定位都和最低端的诺基亚Windows Phone手机Lumia 520相当。

已经没有多少人感慨诺基亚的命运了,只有一位Google Android软件工程师在Twitter上嘲讽说:“记得我们刚拿出Android的时候,鲍尔默还嘲笑说Android是个永远不可能成真的笑话。”

这句话也可以用来嘲笑微软。一家打出“Windows无处不在”这句广告标语的公司去支持另一个操作系统确实有点讽刺,不过转型也不失为一种可行的策略。不管是微软还是诺基亚,都曾试图以自有的操作系统平台打败Android,经过两家公司三年的全力投入,Windows Phone平台在智能手机市场的占有率缺依然不足4%。

诺基亚前CEO、未来的微软设备业务负责人斯蒂芬·埃洛普(Stephen Elop)直白地在发布会上说诺基亚拿掉了全部的Google服务,以微软服务取而代之。X手机预装的微软服务包括Skype通信服务、OneDrive网盘、Bing搜索、Outlook. com邮件等。埃洛普承诺会继续增加更多微软服务。除了微软服务,Facebook、Twitter这两个社交网络以及BBM通信服务也被预装在X手机上。诺基亚在发布现场演示了植物大战僵尸2游戏。讽刺的是如果用户购买定位更高的Windows Phone手机,根本没法玩这个游戏。

兼容丰富的Android应用毫无疑问是X手机得以诞生的重要原因,埃洛普许诺说,诺基亚自己的应用商店会提供数以万计的应用,如果用户找不到自己想要的应用,诺基亚会自动指向第三方应用商店,比如国内的豌豆荚和东欧流行的Yandex。这款手机也将开启微软Office办公软件、Xbox Live联网游戏平台、Bing搜索等服务的潜在市场。

它们最终拥抱了Android,但同时,它们也甩掉了Google。

没人在意操作系统了,Google的打法好像突然间遇到了大问题。

Google的打法本来极其清晰,用开放的Android统一手机硬件,使得苹果iOS系统的市场份额逐渐缩小—在2013年推向市场的10亿部智能手机中,Android系统7.8亿部、iPhone1.5亿部,两个平台占据了九成以上的市场。Google希望庞大的市场占有率所产生的用户都使用Google系的应用,最终占领移动互联网。

在中国以外地区销售的Android手机都会预装十余个Google应用,包括Google地图、Play应用商店、Gmail邮件、YouTube视频、Google搜索等。这些应用延续了Google一贯的互联网产品逻辑,产品做到八成熟就发售,再根据用户反馈快速升级。当iPhone和Windows Phone的用户期待着一年一次的大变样的时候,Android用户每隔数周甚至数日就会看到Google应用越变越好。Google甚至将键盘作为一个应用独立出来快速升级,并且在中国、韩国等非拉丁语系地区推出独立的版本。

nlc202309021122

所有这些应用都没有开源,是Google的私有应用,只能在装有Google移动服务(Google Mobile Services)的设备上才能正常工作。而手机预装Google移动服务的一个基本前提是厂商不能用其他应用取代Google自己的应用。换句话说,如果手机厂商想要自己的产品使用备受用户欢迎的Google地图、或者Play商店里上百万应用的支持,就必须安装Google+、Google Newsstand新闻、Play Books电子书等不那么受欢迎的服务。第三方移动应用也需要仰赖Google的云服务,比如餐厅应用需要访问Google地图、聊天应用如果想省电就需要用到Google在2013年推出的云通信服务(GCM)。拿掉GMS就意味着开发者需要耗费更多时间。

在相当长的一段时间内,Google的控制策略被证明是行之有效的,特别是对小公司而言。一位曾参与北美业务拓展的前海豚浏览器工作人员早先在接受《第一财经周刊》采访时说:“我们没法说服运营商用我们的浏览器换掉Google的产品,它们不可能为了浏览器放弃Play商店。”

但开源的Android,最终也让硬件设备变得同质化,随着移动互联网的发展,利润中心开始向表层应用转移。

而Google一直通过预装Google应用来控制Android OEM制造商的做法,也最终让这个问题显现出来。

因为任何一个使用Android系统的厂商都可以拒绝预装Google应用。

最初是亚马逊。

2011年发布的7英寸平板Kindle Fire是Android设备中的异类。199美元的定价甚至比华为等中国厂商同期的产品定价更低。比价格更重要的是,不管亚马逊创始人杰夫·贝索斯在发布会上的演讲还是官方产品介绍,都不说平板用了Android操作系统,只说自己的平板可以运行Android应用。

Kindle Fire的操作系统被亚马逊称为Fire OS。官方介绍是:“源自Android,增加了亚马逊独有的服务。”点亮Kindle Fire的屏幕,你首先看到的是自己之前看过的书和电影、听的音乐、用过的应用。所有的Google服务都被取代。Kindle阅读器取代了Play Books和Play Newsstand、亚马逊Instant Video取代了Play视频。在自身不足的服务上,亚马逊选择与其他公司合作,因此你可以在Kindle Fire上看到来自诺基亚的地图数据、来自微软的Bing搜索。

不过亚马逊付出最大的还是它的应用商店Amazon App Store。为了让第三方应用开发者更愿意支持自己的平台,亚马逊一方面在云端搭建了自己的推送服务、游戏后台,另一方面还启用了近乎疯狂地促销活动—每天将一款付费应用免费提供给Kindle Fire用户。

根据IDC公布的数字,亚马逊去年第四季度共售出580万部Kindle Fire平板,占市场份额的7.6%,成为仅次于苹果和三星的平板供应商。伴随硬件产品的成长,Amazon App Store也已经成为开发者,特别是付费应用开发者认真考虑的渠道。去年4月,移动应用信息追踪平台Distimo在对美国市场数百个移动应用的下载数据进行追踪后发现,Google Play Store的规模在美国大约为Amazon App Store的9倍。但付费应用的情况大不相同。两个商店排名前1000名的付费应用下载数量,Google Play Store只有亚马逊的两倍。如果按营收金额来计算,Google只有1.7倍。

“亚马逊有超过2亿绑定了信用卡支付的账户,这使得它的用户平均付费高于Google的用户。”VisionMobile创始人康斯坦丁努告诉《第一财经周刊》。

Kindle Fire为亚马逊提供了丰厚的回报,根据Consumer Intelligence Research Partners去年年底公布的一份研究,Kindle Fire用户一年平均在Amazon网站上的消费1223美元,比非Kindle Fire用户高出50%。

“既然亚马逊可以订制Android来驱动生态圈,微软/诺基亚就没有任何理由做不到。”移动产业分析公司IHS Suppli分析师伊恩·福格(Ian Fogg)认为,X手机的成败更多取决于微软的支持力度。

“我们内部打赌猜,最后到底是新Android卖得好,还是Lumia 520卖得好。”一位诺基亚市场部的工作人员告诉《第一财经周刊》。被微软收购前的最后一季财报里,诺基亚称最便宜的Windows Phone Lumia 520是其智能手机业务的主要增长来源。

他未来的同事,负责Windows Phone系统的微软员工无疑也会考虑同一个问题。就在X系列手机发布前一天,微软召开了一场小型发布会。负责Windows Phone业务的副总裁乔·贝尔菲奥利(Joe Belfiore)宣布说微软将降低Windows Phone操作系统对手机硬件的要求、支持中国和东南亚市场热衷的双SIM卡设计,并宣布与金立、富士康、中兴、华为、联想等公司建立合作关系,不过这些公司并没有公布具体的产品计划。他们在移动世界大会的展馆所展出的也都是Android手机。

“诺基亚的一些举动让我们兴奋不已,但另外一些就不那么让人兴奋了。”贝尔菲奥利在发布会上回应诺基亚即将推出Android手机的消息。微软不同团队间针锋相对的形式作风显露无疑。

埃洛普仍强调说Windows Phone依然是诺基亚和微软最主要的智能手机,X手机只是定位低端。但现实是Windows Phone最成功的产品就是低端的Lumia 520系列,定价与X手机差距不大。换句话说,X手机与Windows Phone唯一有起色的产品直接冲突。但早已知情的微软最高管理层并未试图砍掉X手机。消息宣布当月,时任微软CEO史蒂夫·鲍尔默(Steve Ballmer)来到北京,和诺基亚低端产品线的研发人员开了一系列会议,X手机正是其最主要的未来项目。

有权决定是否砍掉X手机的埃洛普将在收购完成后主管微软的硬件业务,是微软四个最重要的研发团队负责人之一,未来将直接向微软CEO汇报。熟悉发布会准备工作的一位诺基亚工作人员告诉《第一财经周刊》,由于不能确定收购完成时间,他们为发布会准备了两套标识,一套微软、一套诺基亚。如果不是因为收购在中国和印度受阻,这三款手机本将以微软的名义发布。

所有人都在用Android系统,但Google面临的麻烦还远不止于此。

Facebook在移动广告业务上的突飞猛进证明绕过操作系统的层级—各种跟系统结合紧密的服务及应用成为未来竞争制高点—这还只是一个开始。

把强大的云服务落在移动生态圈上,这可能是更严峻的竞争。

技术新闻网站Re/Code报道称亚马逊计划在今年3月推出基于Android开发的电视盒子,将亚马逊的在线电影和电视剧投放到用户的电视上。同时亚马逊也在积极扩张自己的研发力量。过去两年里,负责Kindle Fire平板研发的亚马逊子公司Lab126多次派招聘团队前往芬兰招聘工程师。

至少数十位曾在诺基亚参与智能手机软件或硬件研发的工程师加入Lab126。整个Lab126有上千人在硅谷,大部分在进行Android相关的软件和硬件研发,一位熟悉情况的工程师告诉《第一财经周刊》。大部分Android手机厂商都没有如此规模的研发力量。

去年4月,亚马逊以2600万美元收购智能语音助手应用Evi,它的功能与苹果的Siri语音助手相近,更适合随身携带的手机而非平板电脑。早先亚马逊还曾收购过一家名为Ivona的语音识别公司。这一切都让《华尔街日报》去年关于亚马逊正在开发两款智能手机的消息变得更为可信。

上月刚刚取代鲍尔默的新CEO萨提亚·纳德拉(Satya Nadella)是一位愿意为在线服务牺牲眼前利益的管理者。他在管理微软云计算业务时曾放开技术限制,支持与微软自生业务直接冲突的开源操作系统、开发工具和数据库。

在一个碎片化的Android战场上,Facebook、微软和亚马逊对Google的挑战已经开始了。

Android课程 篇7

CDIO工程教育模式是麻省理工学院和瑞典皇家工学院等四所大学经过四年的不断探索研究,于2004年创立并成立了以CDIO命名的国际合作组织。CDIO代表构思(Conceive)、设计(Design)、实现(Implement)和运作(Operate),它以产品的需求、设计、研发到产品的运行和维护的一体化存在周期为主线 ,让学生能够以自主性和实践性的有效方式寻求课程之间有机内在联系,从而实现工程课程的学习过程。它为学习者提供一种建构在工程基础之上、体现了真实世界的产品和系统的构思、设计、实现和运行过程的背景环境的工程教育模式。将工程师必须具备的工程基础知识、个人能力、人际团队能力和CDIO全过程能力以逐级细化的方式表达出来,使工程教育课程具有更加明确的方向性和系统性。

随着Android操作系统在智能终端的日益普及,推动了移动互联网技术的快速发展。在这种形势下,各大高校纷纷开设了Android系统相关的课程,作为一门新兴的软件应用程序开发课程,其教学方法的思想和实践也处于不断探索之中。课程的教学目标主要是培养学生开发Android应用程序和实际工程项目的能力,作为一门注重动手实践能力的课程,如何让学生灵活应用课程的基本理念和知识系统,建立起Android的实际工程应用是当前面临的重要难点。我们引入了CDIO工程教育理念,将一个综合案例进行多模块分解,将知识点融合在众多小案例中讲解,每个模块按照CDIO模型以不同侧重点独立完成,最后形成整体性的开发项目实例。学生在学习过程,特别是在完成各功能的实践中,深刻体会到CDIO工程实践的精髓。这样不断的迭代式开发,从小到大的累积知识和实践能力,建立起完整的工程开发理念。

2 CDIO的核心应用价值

科学教育与工程教育在内容与形式上有着明显的区别。科学教育的主要目是发现与探求物理世界的普遍规律,是追求形式化的逻辑确定性,而工程教育的主要任务是构建人类与周围环境的最大适应性,创造能够满足人类需求的物质存在。工程实践在实施过程中具有不确实性和风险性,在工程进程中各类偶然因素会随机突发出现,所以不存在忽略外在不可控因素的普适性真理,适用于某类工程项目的系统体系不能够简单地复制或移植到相似的其它活动中。在完成众多子系统的组成的复杂系统中,要求工程实践人员根据外在客观因素、人文环境等众多影响因子的条件下制定合理实施方案和掌握工程进度,没有放之四海皆准的工程真理。在工程行动过程中,随着不断演进的进度推移,将会出现某些非预期的不利或有益因素,这要求建构者不断的根据实际情况调整工程实现的策略与进程细节,以应对工程进展中的不确定性。

CDIO的重要特性在于强调探究式教学模式。它所提倡的学生主动参与,进一步探究发现,进而通过交流合作的连续性的学习过程,将教学活动变成充分展现以学生为主体的自我进化领域范畴。对于工程专业,基于以项目主导的自我探究式进化教学方式,将传统的学习过程转化为激起学生探索和寻求多种解决方法的愿景式学习需求。该模式培养了学生自主学习、发现问题、解决问题等创造性思维活动,是把知识与能力整合在一起“一体化”的人才培养思路。这种有别于以教师为中心的传统模式,重要的是解决工程实践中面对非确定性问题的挑战,能够激发起人类天生的团队意识与合作精神,通过不同特长的协作解决工程实践的现实难题。

在实践高校的工程教育中,以实现产品或系统的生命周期过程做为教学的主体框架,将知识、技能、思想和人文精神贯穿于整体的教学过程,反映了CDIO的检验标准以实践能力出发,将个人工程能力、人际处理能力及对产品的构建能力做为成果体现的重要组成部分。工程专业培养计划中应重点强调学科课程之间相互支撑,强调个人协调与组织能力的应用价值,实现一体化相互关联的教学整体。不但重视课堂内的实践教学活动,也注重课外的实训与经历,关注学生在不同外在环境下的随机处理过程,在复杂的外部世界中掌握核心操作的能力。

3 Android课程的CDIO工程模式应用

遵循CDIO工程教育理念,通过实例项目让学生进行自主学习,从实践开发中总结经验,积极吸收教材的理论知识,从而达到“学得活,做得出”的教学效果。教师主要充当“顾问”角色,当学生遇到困难疑惑时给予必要的帮助和指导。在教学中,我们引入了“手机订票系统”做为项目实例,将其分解成众多功能子模块,在完成每个模块的教学中,按照构思、设计、实施、运作的具体教学流程,取得了良好的教学效果。

1)构思阶段:

在每个功能模块完成之前,引导学生确定业务需求,发现问题并制定开发计划。如在完成用户查询功能时,先了解用户的功能需求和非功能需求,列出详细的清单记录,清除用户需求的模糊性、歧义性和不一致性,分析用户的数据要求,建立初步的逻辑模型。此阶段主要培养学生认识和把握现实工程需求的能力,纠正软件工程项目就是写代码的错误观念,利用文字、图形等UML元素将需求结果完整记录下来。这个总结的过程,使项目相关人员逐渐明确和统一了认识,达成了需求工程的一致性。

2)设计阶段:

设计过程主要引导学生解决子模块的设计思路、实现步骤、确定实现算法,形成具体设计方案及实施过程中需要解决的关键技术问题等。如在完成查询功能时,根据前期的需求分析,确定界面的总体性布局方案,控件的选取及用户使用的易操作性、速度响应能力等问题,这要求学生自主性的学习界面布局知识,控件应用知识,及图形界面监听机制等相关技术知识。通过这样的不断提出问题,带着问题主动寻求解决方案的探索式学习方式,会激发学生的学习热情,真正达到理解并灵活运用知识点的良好成效,让学生深刻体会到模块划分,接口设计等在软件开发过程中的重要性。

3)实施阶段:

模块的实施阶段是学生掌握和消化知识点的关键阶段。 通过具体案例实施方案,教师以明确的目的性引导学生学习完成功能所需要的知识内容,如在完成查询功能之前,教师应重点讲解图片视图、图片按钮、下拉列表、日期时间控件、手机菜单、对话框、进度条等控件知识,在学生前期自学的基础上,加深基础知识的理解和应用。学生在具体完成代码的过程中,教师应强化规范性作用,定义实施过程的边界,集中精力解决有限范围内遇到的现实难题。在学生进行编写和调试时期,教师通过提示编译错误、组织讨论,反复测试功能等辅助性工作,帮助学生完成自主学习的全过程。通过这个反复迭代式的深入学习,使学生在完成了功能实现后,深刻体会到软件工程开发过程的需要的开发技巧和思维方向性,建立起学习兴趣和完成后续其它功能的信心。 4

4)运作阶段:

在每个模块功能完成之后,都要在AVD上运行演示,并在智能手机上实际测试。教师可以对学生工作进度进行检查,确保在每个不同的开发阶段都具有一个可以运行的Demo版本。按照需求分析的要求进度,在教学过程中贯穿着项目从简单功能到复杂功能的实现,按照CDIO的基础原则,利用迭代化的软件工程开发思想,逐渐使学生建立起从抽象到具体,从概念到实现等工程化思维方式,为以后走向社会实践打下牢固的理论基石。

4 结语

CDIO的教学实践过程中,重视营造工程教育文化,注重教育软环境建设,加强师生互动,两者在精神上也是融通的。CDIO工程教育模式是以学习结果为导向的工程教育认证与实践的影响为依据,它是培养学生到企业对产品进行构思、设计、实施和运作能力的工程教育模式。CDIO教育理念是欧美高校和教育机构研究实践的产物,作为一种普适性方法学,它同样适合中国的高等教育。同时我们也应在继承和消化其基本理念的基础上进行中国化和本校化。在充分考虑学生、教师、区域化产业布局等利益相关者诉求基础上,结合海南省IT行业的人才需求标准,针对三亚学院具体专业设置情况,我们对CDIO在软件工程能力培养上做了理念继承和实践创新工作。构建了具有海南区域性特色的CDIO能力培养体系,为海南省IT软件行业人才培养探索出具有一定可借鉴价值的教育模式路径。

摘要:CDIO工程教育理念以产品的需求、设计、研发到产品的运行和维护的一体化存在周期为主线,让学生以自主性和实践性探寻课程之间有机内在联系的迭代式学习方式。Android应用程序开发课程引入CDIO工程教育模型,学生按照构思、设计、实现和运作四个方面迭代式完成课程要求的内容,形成整体性的开发项目实例。这种从抽象到具体的逐步化实践步骤,使学生深刻体会到CDIO工程实践的精髓,建立起完整的工程开发理念。

关键词:CDIO,Android应用程序开发,工程教育,教学模型

参考文献

[1]李曼丽.用历史解读CDIO及其应用前景[J].清华大学教育研究,2008(10).

[2]顾佩华.CDIO大纲与标准[M].汕头:汕头大学出版社,2008.

Android课程 篇8

国外, 可汗学院 (http://www.khanacademy.org /) 和TED-Ed (http:// ed.ted.com/) 依托全球著名的You Tube视频网站搭建起各具特色的微课程平台, 向世界各地的人们提供免费的高品质教育, 课程平台与手机客户端也已达到无缝对接。

国内, 根据中国互联网络信息中心 (CNNIC) 发布的《第34次中国互联网络发展状况统计报告》[1]:截至2014年6月, 手机网民规模5.27亿, 网民上网设备中, 手机使用率达83.4%。我国移动设备的拥有量已处于世界前列, 移动学习也逐渐引起了人们关注;微课程平台建设方面, 国家开放大学5分钟课程网、佛山微课、微课网等各种微课程平台也被大众所认知, 但国内课程平台建设多采用自建的资源服务器, 建设成本高, 资源更新迟缓, 交互性不强, 对移动设备应用支持不得力, 尤其对于资金薄弱地区和学校, 建立微课程平台, 无论硬件建设、维护还是技术支持, 都存在很大的困难, 本文依托国内最大视频网站优酷及其免费的开放平台, 设计微课程平台系统, 实现基于Android平台的微课程平台手机客户端, 试图为微课程平台建设及对应手机客户端开发带来启发。

1 微课程、微课程平台、Android手机客户端

1.1 微课程

微课程最早由美国戴维·彭罗斯于2008年秋首创;他把微课程称为“知识脉冲”, 就是片段化的学习内容, 这种片段化的学习内容可以按照学生的个性化学习需求组织, 成为聚焦于单一知识点的微课程[2]。国内率先提出微课程概念的是广东佛山教育局胡铁生, 他认为微课程是指按照新课程标准及教学实践要求, 以教学视频为主要载体, 反映教师在课堂教学过程中针对某个知识点或教学环节而开展教与学活动的各种教学资源有机组合。

1.2 微课程平台

微课程是以微视频为主要呈现方式的, 同时还包括与学习活动相关的微电子辅助支持资源, 如微教案、微课件、微练习、微反馈、微评价及微反思等, 它们共同构建成一种半结构化、主题突出的新型资源单元应用“生态环境”, 微课程平台是这一“生态系统”的具体实现[3]。

可汗学院依托You Tube视频网站, 以由易到难的进阶方式将相应的微视频课程衔接起来, 并设计和配置了相应的练习微课程平台, 其在线图书馆已收藏了3 500多部可汗教师的教学视频[4];TED-Ed是TED在You Tube上推出教育频道, 它将课程与视频、字幕、交互式问答系统等融合为一体, 其微视频已经吸引了8亿多人次的播放次数。Udemy是于2010年成立的在线教育平台, 至今发布了13 000多个课程, 包含2亿多名学生;其平台除了提供微大纲、微视频和微教案, 依据微课程设计是以学习者为中心的自主学习这一出发点, 设计了形成性评价与总结性评价等作为检验学习成效的方式。

1.3 基于Android平台的手机客户端

Android是一种基于Linux的自由及开放源代码的操作系统, 主要使用于移动设备, 如智能手机和平板电脑, 由Google公司和开放手机联盟领导及开发。2013年的第四季度, Android平台手机的全球市场份额已经达到78.1%。Android应用通常由一个或多个基本组件组成, Android的基本组件总共包括五大类。

(1) Activity——应用表示层 (基类Activity) 。

(2) Service——无可示界面, 可长时间运行于后台。Service与Activity的地位是相同, 区别在于:Service组件运行于程序后台, 一般用户不可见, 不需要与用户交互, 因此可以把Servic组件视为没有图形的用户界面。

(3) Broadcast Receiver——用户接收广播通知的组件。

(4) Content Provider——处理各应用程序之间数据的共享与通信问题。

(5) Intent——连接组件的纽带。

通常将手机应用大体上分为两类, 即单机应用和交互应用, 单机应用指的是仅需要手机终端的支持就可使用的应用, 如移动办公应用等。交互应用指的是除了手机终端外还需要其他终端或服务端支持的软件;微课程平台客户端择属于交互应用[5]。

2 系统的设计

2.1 系统框架的设计

微课程平台总体架构如图1所示。

微课程平台网站服务端由Apache Web服务器、数据库服务器和优酷开放平台组成, Web服务器和数据库服务器重点实现课程的组织架构, 同时实现微课程生态系统中微教案、微评价等资源存储访问, 微视频交由优酷开放平台实现专业管理, 以提高平台应用效率和运行稳定性。

Android智能终端用户通过手机客户端软件访问微课程平台, 选用JSON作为数据交换格式;PC浏览器用户及管理员通过PC端浏览器访问管理微课程平台, 通过HTTP POST方式与服务器交换数据。

2.2 功能模块的设计

Android手机客户端功能模块如图2所示。

由用户授权登陆、微课程集、课程搜索, 学习工具和帮助系统组成。核心微课程集中微课程由课程简介、学习模块和互动模块构成。课程简介由课程名称、主讲教师信息、 课程介绍、课程设置通知、课程分享和课程评价等部分组成。学习模块顶端学习进度时间轴给学习者直观的进度显示;下方为学习内容部分, 它是整个界面的核心, 也是呈现篇幅最大的区域, 包含课程章节、每节课的主题、时长学习内容呈现形式。互动模块由讨论、公告、学习成员三部分组成。课程讨论区域是用于学习者提问, 师生答疑, 师生间、学习者间交流的区域。课程公告区域是主讲教师用来发布课程的相关通知。学习成员可显示所修该课程的所有成员姓名, 点击进入成员列表, 可对学生姓名加以搜索, 还可对他们加以关注或发送消息。

3 视频开放平台、Anth2.0授权机制和JSON数据解析技术

3.1 优酷视频开放平台

所谓开放服务, 指把网络上的服务能力封装成一系列计算机易识别的数据接口开放出去, 供第三方开发者使用, 即Open API (open application programming interface) , 这样可提供多种多元化的应用服务来快速满足用户的各种需求, 进而提高用户黏性。优酷开放平台是基于优酷海量视频库的开发的发现、订阅、分享与交流平台。优酷开放平台提供几乎无限的存储空间以及随时在增长的服务带宽, 实现视频从上传、传播、播放到分享、聚合、交流的全部需求[6]。

优酷视频开放平台通过开放接口 (Open API) , 实现对用户、评论、视频、节目、专辑、搜索、人物和数据约束类数据的访问或控制;通过授权, 开发者可以无缝的将视频平台与自己的网站或手机客户端融合, 实现第三方开发应用。

3.2 Anth2.0授权机制

图3中步骤:A客户端发起授权请求, B授权页面等待用户授权, 如果授权成功, 则携带用户授权码跳转到指定的URL, C应用的服务器端获取用户授权码, 并向授权服务器申请令牌, D应用服务器获得令牌, 保存下来, 以便下次使用[6]。

Anth2.0授权验证流程简单更安全, 是未来最主要的用户身份验证和授权方式。如图3所示, 通过授权机制, 可获取用户信息、用户上传和分享的视频, 帮助用户实现上传视频、关注他人、评论视频等用户动作;是是否能对优酷开放平台进行访问的充要条件, 只有授权用户才有对视频平台使用权[7]。

3.3 Android JSON数据解析

调用优酷开放平台所提供的公共接口, 返回为JSON格式的数据, 必须对其解析, 才能获得符合android视图使用的数据。JSON (Java Script Object Notation) 是一种轻量级的数据交换格式。JSON建构有两种结构:对象和数组。对象:在js中表示为“{}”扩起来的内容, 数据结构为{key:value, k e y : v a l u e , . . . } 的键值对的结构, 在面向对象的语言中, key为对象的属性, value为对应值。数组在js中是中括号“[]”扩起来的内容, 数据结构为["java", "javascript", ...]。Android的JSON解析部分都在包org.JSON下, 主要类JSONObject:是JSON对象, 是基本单元, 其包含一对儿 (Key/Value) 数值Value的类型包括:Boolean、JSONArray、JSONObject、N u m b e r 、 S t r i n g等。其数值添加需先初始化一个JSONObject实例, 引用内部的put () 方法添加数值如, new JSONObject () .put (“JSON”, “Hello, World!”) ;其取值方法为对象.key获取属性值。

4 系统主要模块的实现

4.1 功能实现

在手机客户端编程实现时, 首先需在优酷开放平台申请应用的Appkey和Appsecret (应用在优酷平台的ID和密钥) ;主程序实现用户授权登录、视频播放、上传和评论等功能;视频播放、上传为程序的主核心, 其实现如下文。

4.1.1 视频播放的实现

优酷开放平台提供的SDK以libiary包的形式供第三方接入和使用优酷播放器, 设备中需要预先安装Youku Player应用, 在主程序的on Create函数中对Youku Player View实例进行初始化, 在on Initialization () 函数中获取Youku Player, 通过传入视频id进行播放。

视频播放器实例化代码1如下:

主程序初始化成功后播放视频代码2如下:

4.1.2 视频上传的实现

视频上传主要实现第三方Android应用程序上传视频文件到优酷。上传请求均位于非UI线程、不会阻塞UI操作, 可通过匿名内部类处理回调结果, 响应结果均返回JSONObject。上传实例化时, 调用参数client_id指手机客户端在优酷开放平台申请appkey, 参数client_secre指appsecret具体实现代码3如下:

4.2 客户端UI设计

作为手机应用或客户端, 友好美观的用户界面是手机操作系统和软件开发商角逐的热点, 微课程平台客户端参考目前市场主流的UI设计, 采取九宫格的主页面, 以List View实现次页面, 主色调简洁淡雅, 力求在页面上吸引用户注意力, 其主页面和次页面如图4。

5 结束语

本文通过对微课程平台可汗学院、TED-Ed和Udemy的研究分析, 依托国内最大优酷视频网站开放平台, 设计了集微视频、微教案和微评论等为一体的微课程平台系统, 实现了基于Android的手机客户端。通过平台与手机等智能终端紧密结合, 将使微课程学习更为便捷, 更适合移动学习。

参考文献

[1]中国互联网信息中心 (CNNIC) .第34次《中国互联网络发展状况统计报告》[R].http://www.cnnic.net.cn/hlwfzyj/hlwxzbg/hlwtjbg/201407/t20140721_47437.htm.

[2]梁乐明, 曹俏俏, 张宝辉.微课程设计模式研究_基于国内外微课程的对比分析[J].开放教育研究.2013

[3]胡铁生.“微课”:区域教育信息资源发展的新趋势[J].电化教育研究, 2011 (10) :62.

[4]百度百科.可汗学院[DB/OL]http://baike.baidu.com/view/5913590.htm?fr=aladdin.

[5]肖红, 王辉, 赵娅.基于“微课程”的移动学习平台构建[J].教育教学论坛, 2014 (40) :142-143.

[6]LeeJK.Web2.0andOpenAPI.NHN, KRNet2006

Android课程 篇9

关键词:Android,教学改革

随着移动互联网的飞速发展, 人们能够随时随地、快捷方便地从互联网上获取信息和服务, 移动设备已经成为了生活必需品, 各种常见的或是重要的信息化系统、互联网应用都被移植到移动设备上同步使用, 如何进一步在移动设备上开发各种应用, 已经成为很多企业关注的焦点。在移动设备市场上, Android操作系统占据了大部分的市场份额, 在招聘类网站上, Android开发工程师职位的需求量也很大。很多高校相继开设了Android应用开发课程, Android应用开发课是一门实践性非常强的课程, 在授课过程中如何提高学生的实践能力是值得我们探究的课题, 这也是应用型本科对教学的基本要求。本论文主要研究如何以实际项目为导向引导学生积极、主动的学习, 让学生不但掌握知识, 还会知识的综合应用。

1 传统教学模式分析

高校开设Android应用开发课程的时间普遍不长, 课程的讲授一般借鉴传统编程课程的授课方式, 多以课堂讲解和模拟练习为主, 虽然也强调对学生实践动手能力的培养, 在授课过程中也使用很多案例, 但每个案例都围绕具体的知识点设计, 存在缺乏实用性、缺乏联系等问题。由于案例缺乏实用性, 很容易导致学生参与的积极性、主动性不强, 案例之间的孤立性则容易导致学生即使掌握了每个知识点, 也很难把各个知识点融会贯通。

2 教学内容和案例的选择及组织

2.1 教学内容的选择

传统教学一般选择一本教材, 按教材知识点进行课堂设计, 由具体教学内容设计教学案例, 案例围绕知识点而展开, 为知识点而设计, 对实际应用考虑不多, 缺乏实用性。本次教学改革探索将打破这种模式, 让教材服务于教学, 而不是照本宣科。通过对一些企业相关岗位的技能要求的分析分解来确定学生学习本课程后所需要具备的技能要求, 将这些技能要求与Android体系中的知识目标对应起来, 再根据知识目标制定授课内容和实训案例。表1为技能要求与知识点对应表。

2.2 实践项目的选择

传统的教学方法中案例都是以每次授课的知识点为中心进行设计和构建的, 学生通过案例加深对知识点的理解, 优点很明显, 但是也存在不足, 按知识点设计的案例有可能实用性不够, 与其他知识点之间缺乏联系, 学生学会了知识点却不知道用在何处, 怎么使用。

在本次教学改革探索中, 我们将尝试在教学过程中选择一个综合的案例, 将其按知识点拆分, 当然一个案例要覆盖全部知识点是不可能的, 在选择这个主要案例的同时, 也需要选择一些小案例配合教学。主案例的选择非常重要, 必须是学生比较熟悉, 不太复杂并且能涵盖重要的Android知识点, 具有一定实用性的Android APP, 例如, 我们可以选择具有网络同步功能的Android记事本案例。实现过程中各个界面的呈现都使用到了Android UI编程知识, 记事展示列表使用了List View和Adapter相关知识, 记事的内容获取、编辑、保存使用了SQLite数据库编程知识, 个人用户登录, 网络与本地数据同步使用到了Android网络编程、多线程编程、线程通信以及Json数据解析相关知识。表2为项目功能与知识点对应表。

2.3 教学实施与运行

选择的案例会贯穿整门课程的学习, 比单一知识点案例要复杂, 学生实现起来工作量比较大, 时间也会比较长, 如果有不理解, 无法实现的中间节点, 会影响学生学习的积极性。因此, 可以组织学生成立学习小组, 4-6人每组, 相互之间可以讨论答疑。在实现过程中教师也应加强过程管理, 设立时间点和里程碑, 督促学生完成学习任务, 对学生进行指导。这样的案例不仅将重要的知识点串联起来, 还将不同的课程串联起来, 可以提高学生的积极性和主动性, 也更容易理解知识点之间的关联性, 同时还能把不同课程关联起来。

2.4 教学考核

Android课程的实践性很强, 以闭卷考试为主的传统考核方式已较难适应本门课程的要求, 为实现提高学生综合实践能力的教学目的, 课程的考核方式可以采用交作品的方式。教师给出三个或更多小项目作为选题, 每个小组选择一个项目完成。由小组共同完成的项目和平时课程案例的实现来共同构成学生成绩。成绩=小组项目*50%+课程案例*50%, 这样的成绩构成考虑了小组项目的完成情况, 也充分考虑了学生平时的学习态度和成果。

3 结束语

实践能力的培养是应用型计算机类人才培养的关键, 如何突破传统的学术型培养模式, 实现应用型人才培养模式, 是众多应用型高校积极探索的新方向。本文对Android应用开发课程的特点进行了细致说明, 对传统教学模式所存在的问题进行了分析, 有针对性地提出了符合本门课程的改革措施, 也取得了较好的成效。但课程教学改革是一个不断完善的过程, 涉及的内容也是多方面的, 只有不断改进教学观念和方法, 跟踪学科发展, 完善和充实教学内容、注重培养学生的实践动手能力, 才能适应社会对人才需求的发展, 培养出专业技术人才。

参考文献

[1]仲宝才, 袁睿.Android应用开发课程教学改革初探[J].电脑知识与技术, 2016 (12) :141-142.

Android课程 篇10

1991年美国麻省理工学院的Kevin Ashton教授首次提出物联网 (Internet of Things, Io T) [1]概念。2009年1月, IBM提出“智慧地球”。2009年8月温家宝在无锡视察时提出“感知中国”, 物联网开始在国内得到广泛关注和重视。物联网是通过智能感知、识别技术与普适计算等通信感知技术, 实现物品和物品之间的信息交换和通信, 被称为继计算机、互联网之后世界信息产业发展的第三次浪潮, 并被列为国家战略性新兴产业大力支持发展。

为了响应国家大力发展物联网产业的号召, 培养物联网产业人才, 教育部于2010年在全国35所高校批准设置物联网工程专业。物联网工程专业[2]作为一门新设置专业, 在培养方案、课程体系等方面仍不完善, 需要对其进行不断改进和研究。

Android[3]是于2007年1月1日由Google发布的基于Linux内核的智能移动设备操作系统。近年来, 由于Android具有开源、免费的特点, 吸引了越来越多的企业、机构的广泛关注, 使得Android在国内外得到了迅猛发展, 其人才需求也急剧增长。智能移动终端作为物联网的重要组成部分, 在信息发布、信息获取方面具有重要作用, 而Android平台是移动终端广泛采用的操作系统。为此, 各大高校的物联网工程专业纷纷开设Android相关课程来满足物联网专业的人才培养目标。

面向物联网工程专业的Android开发课程, 其课程内容并不完善, 其教学方法还处在一个研究和实践阶段, 因此如何结合物联网工程专业的实际和Android课程特点来改进教学模式、提高教学质量, 是一件迫在眉睫的事情。

1 Android程序设计课程的特点

1.1 新颖性

Android技术作为一个免费、开源的便携设备操作系统, 近年来得到了迅速发展, 并占据了较大市场份额, 市场对Android应用开发人员的需求也日益增加。针对这种需求, 许多高校陆续开设Android技术方面的课程, 为社会提供Android人才。Android系统出现时间较短, 且仍在更新发展之中, 而物联网专业也是一个新设置的专业。因此, 面向物联网专业的Android程序设计课程, 是面向一个新专业开设一个新课程, 具有很强的新颖性。

1.2 前导课程多

Android程序设计课程是在已有技术的基础上发展起来的, 它所涉及到的基础课程较多。首先, Android是基于Linux内核的智能设备操作系统, Linux操作系统是该课程的前导平台基础;其次, Android用户界面、配置文件界面使用XML (可扩展的标记语言) 语言进行绘制, 学生需要前期学习XML语言;再次, Android业务代码使用Java语言编写, 要求学生能够熟悉Java语言及其开发环境 (Eclipse) ;最后, Android平台数据存储会用到数据库网络, 通信会用到网络编程, 学生应具备数据库和网络的基础知识。总体来看, 学习Android程序设计对学生的基础要求较高, 需要学生掌握的基础技术较多。

1.3 开课难度大

高校开设Android程序设计课程的难度较大。

从课程自身出发:首先, 从教师要求方面看, Android程序设计是一门新兴课程, 大多数老师没有实际开发经验, 在授课时存在经验不足的问题;其次, 从学生要求方面看, Android程序设计涉及到的基础知识较多, 对学生要求高, 导致学生学习难度较大。

从课程与物联网专业结合角度出发:物联网专业是交叉学科, 需要教师掌握多学科的知识, 在讲授Android程序设计时, 需要结合Android在物联网中的应用背景进行教学, 提高教学的针对性, 这对教师在Android开放能力和物联网应用背景两个方面的综合素质提出了更高的要求。

1.4 开发环境搭建和配置复杂

任何应用程序在建立之前都需要先搭建开发环境。同样, Android开发环境的安装与配置是开发Android应用程序的第一步, 也是深入理解Android系统的一个良好途径。

普通程序设计开发直接在PC上运行, 较为简单。而Android程序设计的开发, 不仅需要程序编写环境, 还需要搭建Android运行模拟环境。具体Android开发需要安装Eclipse、ADT插件、JDK、SDK。安装完成以后还要进行适当配置 (环境变量配置、SDK的配置、模拟器的启动) , 其开发环境搭建和配置较为复杂。

1.5 实践性强

Android是第一个可以完全定制、免费、开放的移动终端操作系统平台。Android不仅能够在智能手机中使用, 还可以用在平板电脑、移动互联网终端、上网笔记本、便携式媒体播放器等电子设备上运行。同时, 物联网工程专业是一门实践性较强的专业, 重点培养学生的物联网工程实践能力。由此来看, 面向物联网工程专业的Android程序设计是一门实践性强, 重点培养学生动手实践能力的课程。

2“基于项目驱动”的教学模式改革

依据面向物联网工程专业Android程序设计课程的特点, 以及现有一些程序设计课程教学方法[4,5], 提出“基于项目驱动”的教学模式。基于项目驱动的教学模式的基本原理如图1所示。基于项目驱动的教学模式分为基础知识学习阶段、项目实训阶段。基础知识学习侧重理论学习, 而项目实训侧重实践能力培养。

2.1 基础知识学习阶段

在学习基于Android平台的智能手机软件开发技术之前, 必须让学生对Android平台有宏观上的认知, 主要采用教室课堂讲授的方式进行。

1) Android的发展历史

Android作为一种新兴技术, 要让学生们了解Android的发展历程, 以及现在的发展状况。采用播放视频或图片等方式, 向学生展示Android的魅力, 激发学生的学习兴趣。

2) Android的体系结构

Android是基于Linux内核的软件平台和操作系统, 采用了软件堆栈 (Software Stack) 的架构, 从下至上包括4个层次, 如图2所示。第一层是Linux内核层, 提供由操作系统内核管理的底层功能, 是硬件和其他软件堆栈之间的一个抽象隔离层。第二层是中间件层, 由函数库和Android运行时构成。第三层是应用框架层, 提供了Android平台基本的管理功能和组件重用机制。第四层是应用程序层, 提供了一些核心的用用程序, 包括邮件客户端、浏览器、通讯录等。

3) Android的特征

在内存和进程管理方面, Android具有自己的运行时和虚拟机;在界面设计上, 提供了丰富的界面控件;Android提供轻量级的进程间通讯机制Intent, 使用跨进程组件通信和发送系统级广播成为可能;Android提供了Service作为无用户界面、长时间后台运行的组件;Android支持高效、快速的数据存储方式;Android支持位置服务和地图应用;Android支持Widget插件;Android NDK支持使用本地代码 (C或C++) 开发应用程序的部分核心模块。

在学生具备以上基础知识以后, 再通过项目实训阶段, 培养学生的智能手机软件开发能力。

2.2 项目实训阶段

项目实训阶段, 主要采用“设定目标———分解目标———解决目标———综合训练”路线进行, 在实验室开展, 边讲解边操作。

设定目标:即项目选取, 是尤为重要的环节, 应该遵循既要包含基本的教学知识点, 又要难度适中, 能调动学生的积极性和主动性, 在教学中还要注重师生共同参与的原则进行选取。下面就以“基于Android的微博客户端设计”作为例子进行介绍。

分解目标:当选定目标之后, 老师把完成的系统向学生展示, 对整个系统进行详细分解, 把一个项目分解为多个子任务。把要实现整个界面的所有涉及的知识都一一列出。例如, 登陆界面:1) 界面布局;2) 界面绘制;3) XML文件;4) Activity;5) 给组件添加监听事件。

解决目标:目标分解后, 要考虑如何实现每个子任务。首先演示和讲解开发工具如何使用, 在讲解中适当的留出时间让学生自己搭建环境, 并帮助学生解决环境搭建过程中遇到的问题;接着, 按顺序讲解每个子任务开发中涉及到的关键知识点, 并用代码段举例。比如, 登陆界面涉及到“用户名”的显示, 涉及到控件Text View, 老师就讲解Text View的用法, 并给出Text View典型用法的代码, 让学生掌握其编程方法。子任务所涉及到的知识讲解完成后, 回到子任务的目标并实现。解决目标阶段, 是核心阶段。在该阶段, 将让学生掌握Android开发过程中的核心知识点。在每个学习阶段, 教师可以留一些小程序作为作业, 加强学生对相关知识的掌握。

综合训练:这个过程主要是对前三个过程的巩固。老师再选定一个类似的题目, 然后交由学生自主去完成, 加强巩固前面学习的知识。综合训练最好集中进行, 并以此来考察学生的学习效果。

3 考核方式

Android程序设计是一门实践性较强的课程, 检验教学效果的手段不应单纯是卷面成绩, 而应考察学生能否将所学知识能够灵活应用到实际项目中, 能否通过所学的知识解决实际问题。在考核方式上, 改变传统的试卷考核方式, 采用多元化的考试方式。学生成绩由三部分组成, 即平时成绩、卷面成绩和上机考试成绩。平时成绩主要是出勤、作业、平时的表现, 占20%;卷面成绩主要是对Android基础知识的考察, 占30%;上机考试主要是对Android程序设计能力的考察, 以及平时在机房训练的成果的考察, 占50%。通过改革考核方式, 引导学生重视实践操作, 锻炼和培养学生编程实践能力。

4 总结

教学实践表明, 实施该教学方法后, Android程序设计课程收到了很好的教学效果, 学生学习的积极性、主动性得到了提高, 学生的动手能力、综合素质得到了加强和锻炼, 达到了“教中做、做中学”的效果。当然在教学过程中也发现了一些问题, 如学生轻视理论知识学习等。这些都需要在以后的教学过程中认真总结, 把这些经验教训更好应用到以后的教学中, 同时也为物联网工程专业其他实践性强的课程的教学改革提供借鉴。

参考文献

[1]刘云浩.物联网导论[M].北京:科学出版社, 2010.

[2]谢秋丽, 黄刚.基于物联网人才培养与教学实践的研究[J].软件导刊, 2011, 3 (2) :44-46.

[3]王向辉, 张国印, 赖明珠.Android应用程序开发[M].北京:清华大学出版社, 2012.

[4]王春婷.浅谈任务驱动教学法在计算机教学中的应用[J].太原大学教育学院学报, 2011, 29 (2) :103-105.

注:本文为网友上传,旨在传播知识,不代表本站观点,与本站立场无关。若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:66553826@qq.com

上一篇:android学习路线 下一篇:Android监控