Andr​​oid 手持系统的移动应用程序设计:第 2 部分

Programming Mobile Applications for Android Handheld Systems: Part 2

本课程综合介绍了安桌手持系统(如:智能手机和平板电脑)应用的设计与实现。本课程是“基于 Android 系统的移动云计算专项课程”的其中一门课程(共 8 门课程)

马里兰大学帕克分校

分享

Andr​​oid 手持系统的移动应用编程
  • 分类: 计算机
  • 平台: Coursera
  • 语言: 英语

本课程综合介绍了安桌手持系统(如:智能手机和平板电脑)应用的设计与实现。

课程概述

本课程由两部分组成(第一部分 和 第二部分),主要研究手持系统软件应用编程的基本原则、软件架构、用户体验和开发环境,通过学习学员们能够构建自己的安卓应用程序,经验丰富的程序设计师还可以掌握一系列强大的开发技能。

选修第二部分课程之前,大多数学生要先学习第一部分,第二部分主要研究安卓平台更高级的组件和概念:
通知使用者重要事件
处理并发
获取网络数据
利用多媒体和图形
将触摸和手势融入自己的APP
使用传感器

课上,我们将借助具有一定深度的、通过安卓平台实现的应用实例来生动地讲解这些概念。同学们可以通过图书馆项目和大型课程项目应用所学知识,运用安卓平台。

基于安卓系统的移动云计算(MoCCA)专项课程:创新与进步

我们自豪地宣布:全球已有数万学子参与选修了MoCCA专项课程。
上一轮课程,同学们得到了由合作伙伴Google提供的Nexus平板电脑,获得了Google App团队给与的反馈意见,完成高级课程的学员还有机会在Google Play(Google商店)上发布自己的作品。

本轮课程将以更加灵活的方式面向所有忙碌的学习者。每套移动应用编程课程均为期一个月,内容更加精简,便于理解和消化,每个期末都会布置一个有趣的小项目。另外,我们会加快重新发布整套课程的频率,便于大家在空闲时间选修,或者从之前中断的地方继续学习。

请注意: 只有顺序取得所有课程认证证书的学生才能参与毕业设计。 凡购买了全套课程的学生,待课程发布后,可在2年内无限重复学习。

对于已经学过MoCCA的学生: 如果你 已经 完成了2014年1月和9月发布的“安卓手持系统的移动应用编程”先前版本的课程,则可以继续参加2015年专项课程的学习和毕业设计, 不 需要重新选修本课程。
如果不确定自己是否具备相应资格,请咨询 专项课程帮助中心 或与 Coursera支持团队 联系。

什么是MoCCA专项课程?
本课程名为 基于安卓系统的移动云计算(MoCCA)专项课程,隶属于Coursera专项课程,旨在帮助学习者创建复杂的云端安卓应用程序。
其他4门课程分别由范德堡大学的Douglas Schmidt和Jules White博士主讲,同时附带一些编程作业和课程设计。

第三课:  安卓手持系统的移动服务编程:并发
第四课:  安卓手持系统的移动服务编程:通信
主讲人:Douglas Schmidt博士,范德堡大学计算机科学与工程学院副主任,计算机科学系教授
第三、四课主要研究系统编程,如:中间件服务和后台处理。
第五课: 安卓手持系统的云服务编程:Spring
第六课:  安卓手持系统的云服务编程:安全
主讲人:C. Jules White博士,范德堡大学计算机科学系助理教授
第五、六课主要研究安卓移动设备与云计算和数据存储资源的连接,从根本上说,就是在当下流行的云计算平台(如Google App引擎和亚马逊EC2)上将设备作为强大的云端服务的一种延伸。
虽然每套课程相互独立,但是选择完成全套MoCCA系列课程的学生将会对手持系统及其应用有一个更为完整和详尽的认识。

课程大纲

第五周:
教学目标:本节课,我们将进一步深入讲解安卓系统,重点研究它的高级功能,讨论利用用户通知(User Notifications)与用户进行交互,利用BroadcastReceiver倾听和回应事件,还有一讲是利用Alarms(闹钟)运行预定时间代码。
通过对这节课的学习,学员们应该能够:
了解如何利用本周讲解的关键技术支持更多的高级安卓应用。
第10讲 – 用户通知(User Notifications)
第11讲 – BroadcastReceiver类
第12讲 – Alarms(闹钟)
实验5 – Tweet(推特)app:构建一个显示Twitter数据的应用程序,利用BroadcastReceivers和用户通知(User Notifications)告知用户该应用程序的行为和状态。

第六周:
教学目标:本节课,我们将讨论如何利用Threads(线程), AsyncTask(异步任务) & Handlers(处理程序)来处理并发。还有一讲是解释如何通过网络访问和处理数据。
通过对这节课的学习,学员们应该能够:
了解如何利用本周讲解的关键技术支持更多的高级安卓应用。
第13讲 – Threads(线程), AsyncTask(异步任务) & Handlers(处理程序)
第14讲 – 网络化
实验6– 显示Tweet(推特)数据:构建下载和显示Tweet(推特)数据的应用程序。该应用可利用AsyncTask(异步任务)下载网络数据。

第七周:
教学目标: 本节课,我们将介绍呈现动态内容和与之交互的一系列技术,其中包括:图形和动画,处理来自用户的触摸输入以及多媒体录制与播放。
通过对这节课的学习, 学员们应该能够:
为自己的应用程序添加动画效果
创建能够响应标准手势和自定义手势的应用
显示和使用多媒体内容
第15讲 – 图形 & 动画I
第16讲 – 图形 & 动画II
第17讲 – 多点触控 & 手势
第18讲 – 多媒体
实验7 – 泡泡消除(Bubble Popper):编写一个能在设备屏幕上显示气泡(看似气泡的图形)并自带动画效果的应用程序,当用户触碰屏幕上的气泡时,气泡便会爆炸。该程序同样适用于手势输入,用户可以通过滑动手势改变气泡的方向和速度。

第八周:
教学目标:本节课,我们主要研究多种传感器,这些传感器如今已经成为大部分移动设备中的标准配置。 同时讨论如何利用传感器捕捉位置信息和利用地图显示信息。最后介绍一些结构数据的存储方法。
通过对这节课的学习, 学员们应该能够:
创建情境感知应用程序,其行为会随着使用环境的变化而变化。
设计可利用复杂结构数据集的复杂应用。
第19讲 – 传感器
第20讲 – 定位 & 地图
第21讲 – 数据管理
实验8 – 位置标记收集器:构建一个可以通过位置信息收集所到之处标记的应用程序。
迷你项目- 每日自拍:从零开始构建一个完整的应用程序,提醒用户每天自拍一次,然后收集并显示生成的照片集。

背景知识

本课程适用于已经熟悉Java编程,但是没有涉足移动应用开发的学生,相当于大学计算机科学相关学科大一、大二或同等水平。
如果之前没有接触过Java,但是熟知其他编程语言,你可以通过网络上的Java教程和在线课程补习Java知识。

如上所述,本课程的适用人群包括:具备一定的编程知识,愿意搜索、阅读和学习安卓开发人员文档的朋友。这既是顺利完成课堂学习的必要技能,根据我们的经验,这也是各级别安卓开发人员迈向成功的必要技能。

简而言之,这门课的确不适合初级程序员,如果背景知识有限,你可以考虑选修较少涉及编程高精内容的安卓入门级课程,如 “创新、严肃又好玩的安卓应用程序开发“, 主讲人:伊利诺伊大学香槟分校的Lawrence Angrave博士。

参考资料

本课程没有配套教材,但是我们强烈建议学员们搜索各类有关安卓系统的免费资源。
阅读 安卓系统开发人员博客实时了解安卓生态系统的变化和发展。
观看教程和 Google I/O 会议的其他报告
随着课程的推进,讲师和学习者也会分享一些补充资源。

授课形式

Videos
每节课包含视频演示,每段视频长约5-10分钟。

视频提问
教学视频中会包含若干问题,这些问题不计成绩,只为确保学生能够掌握所学内容。 视频提问与视频内容相互对应,并附带其他补充信息、“发人深思”的讨论和”FLASHBACK(闪回)”提问,同学们可以挑战自我,思考之前课上讲过的内容。

测验
每周安排一次测验(问题/任务),有助于学生掌握这一周的教学内容。

实验练习
每周的教学视频都会附带一个实验练习,其中包括编写一个部分完整的源代码并执行程序测试。学生们将在自己的电脑上运行测试程序,以确定是否能够顺利完成实验。对于某些实验来说,大家还要检验其他学员的作业并打分。
每课都包含多个安卓源代码示例,强烈建议大家全部下载,方便课上和以后参阅。这些源代码已
在githubhttps://github.com/aporter/coursera-android上公开发布

迷你项目
期末时,同学们还要结合课上所学合作设计一个别致的、响应性良好的应用程序。

常见问题

如果我已经通过了2014版课程,是否必须重新选修才有资格参与毕业设计?
如果你已经通过了2014版课程,并取得认证证书,说明你已经完成了整套课程的第一部分和第二部分,不需要重新选修这两门课。
但是,如果你 没有 通过,或者 未 取得认证证书,则要重新选修第一和第二部分课程。
如有疑问,请 咨询 专项课程帮助中心 或与 Coursera支持团队联系。

课程的教学目标是什么?
通过学习,学员们应该能够利用安卓平台的组织、模式和编程机制高效开发自己的安卓应用。
利用开发工具,如安卓系统开发人员工具箱中的各种工具,创建、理解、调试和优化安卓应用。
分析总结作用于手持设备的关键力量和限制条件,了解如何在设计和构建安卓应用的过程中进行合理调节。
知道如何寻找其他信息资源,帮助自己理解和解决安卓系统的相关问题。

选修这门课,我能学到的最酷的东西是什么?
学习编写自己和全球一半人的手持设备上都在运行的应用软件。

我需要了解哪些计算机语言?
熟悉Java语言就够了,”先修知识”版块提到过,如果不了解Java语言,但是熟知其他编程语言,你可以在开课前通过Java教程补习相关知识。

不具备安卓编程或Java编程经验的学生,能否选修这门课?
本课程适合熟悉Java编程和具备部分安卓应用编程经验的学员,如果你的Java编程知识有限,请上网在众多的Java免费教程中选择一个作为补习材料。

使用其他编程语言而非Java的学生可以选修这门课吗?
恐怕不行,Java是安卓系统的主要编程语言。

我需要购买安卓设备吗?
不需要,计分练习全部使用安卓模拟器完成。

课上会用到Eclipse或Android Studio吗?
我们的视频全部使用Eclipse,不过Android Studio现在已经度过测试期,我们鼓励大家使用。

必须按顺序选修系列专项课程中的全部课程吗?
不用,如果你只想选择系列课程中的某几门或者不按顺序选修全部课程,我们同样欢迎,你依然可以学到很多东西。但是,如果按顺序选修全部课程,您会对手持系统、应用程序和服务及其与云端的融合有一个更深入、更完整的认识。

如何将这门大型在线公开课(MOOC)与马里兰大学的其他课程进行比较/对比?
这门大型在线公开课很大程度上是基于Adam Porter教授在马里兰大学(UMD)所教授的“手持系统编程”课程——“CMSC436”,但是UMD课程中的测验、编程作业和意见反馈更具挑战性,所以课时是这门课的两倍。而且,UMD课程所面对的学生相对较少,教授和助教可以给予学生更多的个人指导,而大型在线公开课(尚)未设立助教一职。所以,同学们要扮演一部分讲师的角色,这非常重要,我们一起学习,互相受益。

每周的课程教材何时发布?
每周的全部课程教材(如:教学视频、测验、短文、编程作业等)将于每周五美国东部时间中午12点(UTC/GMT格林威治标准时间:下午5点)发布。

学习课堂内容最有效的方式是什么?
我们的建议是反复观看教学视频,探寻图形和实例当中不同层次的含义。同时,我们也鼓励大家阅读其他课外资料,参与在线讨论(理想状态是和当地的同学组成讨论组),使课程内容更加丰富,更具参与性。

课程推荐使用哪种网络浏览器?
Coursera建议使用Chrome和Firefox浏览器,还有一个适用于Coursera大型在线公开课的 移动应用程序 。

课程是现场直播吗?我住在世界的另一边!
课程以录像形式播出,大家可以利用空闲时间观看视频、完成编程作业和测验。

去哪里下载视频中播放的幻灯片?
待视频发布后,PDF版幻灯片会随即在线发布。

选修这门课需要准备什么?
有电脑,能上网,可以运行安卓系统开发人员的免费工具,有时间阅读、写作和参与讨论。

我应该阅读哪些资料为顺利完成这门课做准备?
课程没有配套教材,如果你想早作准备,请访问 安卓系统开发人员网站

开课前尝试观看视频,却得到错误信息。
你可以点击 课程网页顶端的“视频预览”来预览部分视频

如何获得参与完成毕业设计的资格?上次课程发布至今,该要求是否有所变化?
和以前一样,顺利完成全套系列课程并获得认证证书的学生才有资格参与完成毕业设计。
但是这一次,考虑到编程作业是课堂学习的重要组成部分,而且以往学生们面对多项资格要求时也比较困惑,所以我们把编程作业设置为规定任务,以此简化准入标准。

本课程曾是2014年更大型系列课程的组成部分。 为什么分成两门课?
根据调查反馈、完成数据和对其他课程的研究,我们发现学生们的日程安排非常紧凑,较短的课程有助于他们更加灵活地安排时间。
虽然课程一分为二,但是内容总量保持不变,所以我们可以肯定,教学内容的学习标准和含金量并不会降低。

如果我已经通过了老版课程,作为专项课程的组成部分,我是否还要重新选修?
这取决于:你是否取得上一版课程的优秀认证证书。如果已经取得,则无需重新选修这门或下一门课程。

但是,如果你没有取得经过认证的优秀证书,则需要重新选修,这类情况包括:
完成课程并获得未经认证的结课证书
完成课程并获得经过认证的 普通 (非优秀)证书

这是否意味着专项课程的总成本更高了?
是的,因为要学习的课程更多,所以总成本比以前更高。但是,和许多其他大学课程相比,支付这些费用便能学习官方课程、获得官方证书还是相当划算的,所以我们认为收费还是合理的。而且,如果你报名参加只是想了解课程内容,我们的课程同样向各位免费开放。

我对这些变化仍有疑问,应该和谁联系?
请咨询专项课程帮助中心或联系Coursera支持团队

(课程中文简介转自网易公开课)

声明:MOOC中国收录之课程均源自下列机构,版权均归他们所有。本站仅作报道并尊重其著作权益,感谢他们对MOOC事业做出的贡献!(排名不分先后)
  • Coursera
  • edX
  • OpenLearning
  • FutureLearn
  • iversity
  • Udacity
  • NovoEd
  • Canvas
  • Open2Study
  • Google
  • ewant
  • FUN
  • IOC-Athlete-MOOC
  • World-Science-U
  • Codecademy
  • CourseSites
  • opencourseworld
  • ShareCourse
  • gacco
  • MiriadaX
  • JANUX
  • openhpi
  • Stanford-Open-Edx
  • 网易云课堂
  • 中国大学MOOC
  • 学堂在线
  • 顶你学堂
  • 华文慕课
  • 好大学在线CnMooc

Copyright © 2008-2015 MOOC.CN 慕课改变你,你改变世界