移动应用课程设置建议文本

移动应用课程设置建议书 2015年4月 (第一版)

Google校企合作专业综合改革项目专家组 前言 随着近几年移动互联网和物联网等产业的高速发展,与移动应用开发相关的课程建设和人才培养的需求越来越大。这其中,Android以其开源、免费和应用广泛的特点,获得很多学校认可,引入到课程教学、科研和人才培养工作中。Google顺应这个趋势,早在2010年开始,就以课程开发、师资培训、创新项目等形式,协助几百所学校进行移动应用人才培养。2014年,Google支持教育部高教司实施校企合作专业综合改革项目,其中一项工作就是推动移动应用课程建设。 2015年,Google继续支持教育部实施校企合作专业综合改革项目,扩大在移动应用课程体系建设项目上的投入。在此之前,来自一些学校反映,围绕Android技术,如果在课程开设上有一些建议可参考,则将对计划开设相关课程(方向)的学校很有帮助。为此,Google联合专家组,在移动应用开发、嵌入式、智能终端、物联网等四个方向上,拟定本课程设置建议文本,旨在公开共享,为正在开设或计划开设相关课程方向的学校提供参考和借鉴。如有不妥之处,望提出探讨,共同完善。 本文本命名为“移动应用课程设置建议书”,顾名思义,是围绕移动技术(Android)来展开讨论上述4个方向的课程设置。需要特别强调的是:本文本所列出的核心课程,大部分与Android 直接有关,个别课程因其重要性,虽无关但也一并列出。每个方向上还有其它和Android不直接相关的核心课程,本文本未列出或加以详细表述,特此说明。 本文本以“部分”对应每个方向上的课程设置建议,第一部分对应“移动应用开发方向”,第二部分对应“嵌入式方向”,第三部分对应“智能终端”方向,第四部分对应“物联网方向”。每一部分(方向)均包含人才培养目标、课程设置路径图、核心课程和知识点、课程建设效果衡量方法等内容。 此文本知识产权归开发者本人和所在学校所有,但开源共享,任何学校和个人均可自由免费用于教学目的。
在开发本课程设置建议文本过程中,Google 校企合作专业综合改革项目专家组各位老师起到了主导作用,专家组名单如下(依照姓名首字母拼音排序):

  • 刘宁,中山大学软件学院;
  • 杨剑锋,武汉大学电子信息学院;
  • 吴明晖,浙江大学城市学院计算机科学与工程学系;
  • 张齐勋,北京大学软件与微电子学院;
  • 郑灵翔,厦门大学信息科学与技术学院;
  • 周庆国,兰州大学信息科学与工程学院。
    作为2015年Google支持教育部开展校企合作专业综合改革项目之一部分工作,Google期待这个建议文本能够在帮助学校在移动应用课程和相关专业建设方向上起到积极作用。

Google中国教育合作项目部 2015年5月

目录

第一部分 移动应用课程设置建议书 —— 移动应用开发方向 7

  1. 建设背景 8
  2. 人才培养目标和任务 8
  3. 建设方案 8 3.1. 课程体系设计 9 3.2. 课程设置建议 9
  4. 课程设置 10 4.1. Android开发编程基础 10 4.2. 快速设计工具App Inventor 11 4.3. Android平台移动应用开发 12 4.4. 移动应用交互设计 13 4.5. 跨平台脚本开发技术 15 4.6. 移动应用开发综合实训 16
  5. 师资队伍 17 5.1. 专业背景 17 5.2. 工程背景 17
  6. 建设成果衡量 17 6.1. 课程设置 17 6.2. 教学内容 18 6.3. 教学方法与手段 18 6.4. 教学效果 18 附录1 Android开发编程基础 19 附录2 快速设计工具App Inventor 26 附录3 Android平台移动应用开发 27 附录4 移动应用交互设计 30 附录5 跨平台脚本开发技术 31 附录6 移动应用开发实训 33 第二部分 移动应用课程设置建议书——嵌入式系统方向 38 1 Android嵌入式系统课程群建设概况 39 1.1 建设背景 39 1.2 建设意义 39 2 嵌入式系统课程群建设规范目标 39 2.1 人才培养目标 39 2.2 人才培养任务 40 3 课程体系建设思路 40 3.1 课程体系建设 40 3.2 课程路线图 41 3.3 课程设置 41 4 课程的主要内容 42 4.1 课程知识点框架 42 4.2 平台基础课程设置及知识点 43 4.3 核心课程设置及知识点 44 5 实践环节及要求 45 5.1 实践环节 45 5.2 师资背景 47 5.3 专业资料 47 5.4 实验条件 47 5.5 实践基地 47 5.6 课程考核 47 6 课程建设成果衡量方法与指标 48 6.1 课程设置 48 6.2 教学内容 48 6.3 教学方法与手段 48 6.4 教学效果 49 第三部分 移动应用课程设置建议书——智能终端方向 58 1 智能终端方向建设背景 59 1.1 建设背景 59 2 人才培养目标和任务 60 2.1 智能终端课程建设人才培养目标 60 2.2 智能终端课程建设任务 60 3 智能终端方向课程建设方案 60 3.1 课程体系设计 60 3.2 核心课程内容 63 3.3 核心课程的主要内容 65 3.4 教学案例设计 71 3.5 教学队伍 71 3.6 实践设计 72 3.7 教学方式方法 73 3.8 课程建设特点 74 4 建设成果衡量 74 4.1 建设成果衡量方法 74 4.2 建设成果衡量指标 75 5 附录:Android系统定制课程参考设计 77 5.1 理论课时内容参考设计 77 5.2 理论课时的学时安排与授课方案 83 5.3 实验课时内容参考设计 83 6 附录:Android应用定制课程参考设计 85 6.1 理论课时内容参考设计 85 6.2 理论课时的学时安排与授课方案 97 6.3 实验课时内容参考设计 97 第四部分 移动应用课程设置建议书---物联网方向 100
  7. 应用背景和建设意义 101
  8. 人才培养目标和任务 101
  9. 课程体系和课程设置 102 3.1 课程群体系设置依据 102 3.2 课程群体系架构设置 102 3.3 课程教材及相关资料 103 3.4 教学队伍设置 104
  10. 核心课程群的主要内容 104 4.1.1 物联网工程导论 105
  11. 课程实践环节及要求 112 5.1 实践教学内容及教学方法 113 5.1.1 物联网工程导论 113 i. 无线传感网络 114 ii. 物联网网关技术 115 i. 物联网移动应用 116 ii. 物联网工程实训 117
  12. 课程建设成果衡量方法与指标 119 a) 课程设置 119 b) 教学内容 119 c) 教学方法与手段 120 d) 教学效果 120 编著者名单 121

第一部分 移动应用课程设置建议书 —— 移动应用开发方向

编著单位: 中山大学 浙江大学城市学院 郑州大学

  1. 建设背景 以移动信息技术为核心竞争力的移动信息产业已成为目前发展最快、市场潜力最大和前景最诱人的领域,大量新型移动平台与应用的涌现,使移动信息技术成为一门活跃的新兴学科,并在国民经济、社会生活和国防建设等各方面均发挥着越来越重要的作用。其迅猛的发展给移动应用开发人才培养提出了更高的要求,同时也为这些人才的职业发展提供了宽广的舞台。 在此大背景下,充分融合综合性研究型大学、普通高等院校和地方性大学特色,制定面向本科层次的移动应用开发课程体系建议,包括课程设置、相关课程说明及课程开设路线图,为开设此方向的高校提供有益的参考。
  2. 人才培养目标和任务 针对信息技术飞速发展的需要,面向以移动互联网应用开发为代表的新兴移动信息产业对技术人才的需求,培养具有良好的综合素质、强烈的创新意识,具有较强的认知能力、实践应用能力和创新能力,适应地方经济社会发展需求,在软件开发与信息服务上具有特长的高素质应用型创新人才。针对移动应用开发方向,本课程体系通过移动应用开发相关课程及综合项目实训,培养未来从事移动应用开发的专业技术与管理人才。
  3. 建设方案 本课程体系主要涵盖了移动开发的主要方面,包括应用开发、交互设计和跨平台脚本开发能内容,使学生具备移动开发能力,同时本课程体系强调学生动手能力,加强了工程训练(包括课程实验与移动应用开发实训)在教学计划中的比例。在课程体系中针对工程化教育和学生特点,以实际工程项目为背景,为学生量身订造暑期移动移动应用开发实训。学生在专业教师和教学助理指导下,以项目团队形式参与移动应用开发的全过程,分别担任团队中的不同角色,深入理解和掌握移动应用主流开发技术,积累移动移动应用开发经验。 针对移动应用开发特点和不同类型学生情况,本课程体系包括了移动开发基础课程、移动开发核心课程和移动开发实训三大部分。 移动开发基础课程,包括了Android应用开发所需的编程基础内容,主要讲授Java语言开发的基础知识。移动开发核心课程包括了作为移动开发者所必须掌握的基本内容,主要有Android平台移动应用开发、移动应用交互设计和跨平台脚本开发技术三门课程。在移动开发实训方面,本课程体系设置了移动开发综合实训,以团队综合项目开发形式,培养学生工程能力。另外,针对非计算机相关专业学生设置了移动开发入门课程。 3.1. 课程体系设计 专业 类 别 课程名称 学分 计算机相关专业 ➢ 移动开发基础课程 Android开发编程基础 2 + 1 ➢ 移动开发核心课程 Android平台移动应用开发 2 + 1 移动应用交互设计 2 + 1 跨平台脚本开发技术 2+1 ➢ 移动开发实训 移动应用开发综合实训 3 非计算机专业 ➢ 移动开发入门 快速设计工具App Inventor 2

3.2. 课程设置建议 针对移动开发课程特点,建议在大学一年级设置计算机入门课程,包括计算机导论、程序设计等课程,从而使学生较早具备一定计算机基础。从大学二年级开始,根据学生情况,建议开设相关基础课程,在大学三年级可以移动应用开发核心课程,通过核心课程的学习,为将来的移动应用开发综合实训和毕业设计做知识与技术上的准备。

  1. 课程设置 4.1. Android开发编程基础 1) 课程描述 本课程主要讲授Java语言基础与编程实践,使学生掌握较扎实的Java语言基础、面向对象程序设计的基本思想和应用程序的编制过程,为将来Android应用开发奠定扎实的基础。 课程涵盖Java基本语法、面向对象程序设计的基本思想和Java的高级特性,主要包括图形用户界面设计、异常处理、Java多线程、输入和输出流、Java网络编程技术和数据库编程技术等方面内容。 本课程的实验建议配置课程实验与实训项目两类。课程实验在实验课内由教学助理(TA)辅导下完成,内容主要是理论课程相关知识点的核心实验。实训项目在课外时间完成,主要内容是涵盖核心知识点,相对综合的大型实验项目。 2) 课程基本信息 2.1 先修课程 ➢ 计算机导论 2.2 教学方法 ➢ 理论课程与实验项目相结合; ➢ 师生间互动及启发性探索; ➢ 需要配置教学助理,负责批改作业、实验报告并指导实验过程。 2.3 课时配置建议 周学时:3 总学时:54 其中:理论环节 36 实验环节 18 3) 课程评分建议 课程参与情况 5% 作业及课程实验 10% 期中考试 30% 期末考试 40% 综合实验 15% 总 计 100% 4.2. 快速设计工具App Inventor 1) 课程描述 本课程通过快速设计工具App Inventor,帮助非计算机专业学生在快速有趣的实际操作学习中,了解软件/应用设计与开发的基本知识,学会快速规范地开发简单应用和使用可交互原型表达应用设计思想。 本课程可以作为高等院校设计类专业交互设计、界面设计等课程的一部分,也可以作为高等院校计算机通识课程的一部分。 本课程有两方面重点:1)软件应用设计,包括界面设计、交互设计中的一些基础原理和重要设计原则;2)软件程序开发,包括程序设计、软件工程中的一些重要基础概念。课程建议通过切实开发的应用成果(课程案例、课程设计),激发学生兴趣,激励他们积极向应用设计和软件开发这两个方向发展。 2) 课程基本信息 2.1 先修课程(无) 2.2 教学方法 ➢ 理论课程与实验项目相结合; ➢ 师生间互动及启发性探索; ➢ 需要配置教学助理,负责实验指导和实验报告。 ➢ 考虑到课程的入门性质以及授课对象的基础,本课程建议在实验室中进行。教师在使用App Inventor现场设计开发应用的过程中,穿插讲解应用设计和软件开发的相关知识。学生一边听课一边现场实际操作学习。课后留有思考题和作业,作业建议为开放性应用设计题目,预计学生每周需课外花费3~4学时用于复习并完成作业。 2.3 课时配置建议 周学时:2 总学时:36 其中: 实验环节 18 4.3. Android平台移动应用开发 1) 课程基本描述 本课程循序渐进介绍Android移动计算平台上的应用软件开发方法、技术与工具,针对Android应用程序的架构、核心服务和数据库存储等主题的课程设置与实验安排进行基本建议,并配以相关知识点和实验样例,方便进行课程的组织与规划。 本课程建议配置课程实验与综合设计项目两类。课程实验在实验课内由教学助理辅导下完成,内容主要是理论课程相关知识点的核心实验。综合实验在课外时间完成,主要内容是涵盖核心知识点,相对综合的大型实验项目。 2) 课程基本信息 2.1 先修课程 ➢ 数据结构 ➢ 面向对象程序设计 2.2 教学方法 ➢ 理论课程与实验项目相结合; ➢ 师生间互动及启发性探索; ➢ 需要配置教学助理,负责批改作业、实验报告并指导实验过程。 2.3 课时配置建议 周学时:3 总学时:54 其中:理论环节 36 实验环节 18 3) 课程评分建议 课程参与情况 5% 作业及课程实验 10% 期中考试 30% 期末考试 40% 综合实验 15% 总 计 100% 4.4. 移动应用交互设计 1) 课程基本描述 通过本课程的教学,使学生对UI设计的理念、流程、设计方法等有综合理解,并能独立完成界面的概念规划与视觉设计。 课程通过用户界面的分析描述方法,使学生了解从宏观把握设计方向的思路。结合实际案例学习UI界面中低保真原型的设计方法,包括框架、控件等的细节设计,学会用软件表达设计思维。学习UI界面高保真原型与视觉设计的设计方法,独立完成UI设计创作。结合实际应用问题,开展工程实验,培养学生具有问题需求分析能力,能够综合运用UI开发技术完成实验设计、实施,并对实验工程结果进行分析。结合移动应用交互设计技术和新应用场景,在课程中能够充分利用UI技术进行解决方案创新。 本课程建议配置课程实验与综合设计项目两类。课程实验在实验课内由教学助理辅导下完成,内容主要是理论课程相关知识点的核心实验。综合实验在课外时间完成,主要内容是涵盖核心知识点,相对综合的大型实验项目 2) 课程基本信息 2.1 先修课程 ➢ 面向对象程序设计; ➢ Android平台移动应用开发 2.2 教学方法 ➢ 理论课程与实验项目相结合; ➢ 师生间互动及启发性探索; ➢ 需要配置教学助理,负责批改作业、实验报告并指导实验过程。 2.3 课时配置建议 周学时:3 总学时:64 其中:理论环节 32 实验环节 32 3) 课程评分建议 平时成绩 20% 实验成绩 30% 综合设计成绩 50% 总 计 100%

本课程作业次数建议不少于5次。对于作业中的共性问题,教师须在课堂统一讲解,以帮助学生提高和进步。本课程设置6次课内实验,每次实验提前1周布置给学生,要求学生通过课外自学、查阅文献与资料、进行实验设计,以保证实验的效果。通过课内实验,加强学生工程问题需求分析能力、综合运用计算机科学、设计美学和工程技术完成实验设计与实施,并对实验结果进行分析的能力。 4.5. 跨平台脚本开发技术 1) 课程基本描述 本课程通过讲授以Javascript为基础的脚本开发技术及其在移动互联网中的应用,培养学生具有设计,开发基于脚本技术实施跨平台应用的能力。能够掌握采用脚本技术构建结构化程序的方法,掌握主流的脚本设计框架(以Backbonejs等为蓝本)。能够理解当前脚本技术在不同移动端上进行设计的方法。能够设计完成基于Javascript的跨平台解决方案(支持主流的Android,iOS,Windows Phone),方案涵盖Web Application(基于浏览器)和Hybrid Application构造技术。 本课程建议配置课程实验与综合设计项目两类。课程实验在实验课内由教学助理辅导下完成,内容主要是理论课程相关知识点的核心实验。综合实验在课外时间完成,主要内容是涵盖核心知识点,相对综合的大型实验项目。 2) 课程基本信息 2.1 先修课程 ➢ 数据结构 ➢ 面向对象程序设计 2.2 教学方法 ➢ 理论课程与实验项目相结合; ➢ 师生间互动及启发性探索; ➢ 需要配置教学助理,负责批改作业、实验报告并指导实验过程。 ➢ 本课程作业次数建议不少于8次。对于作业中的共性问题,教师须在课堂统一讲解,以帮助学生提高和进步。本课程设置6次课内实验,每次实验提前1周布置给学生,要求学生通过课外自学、查阅文献与资料、进行实验设计,以保证实验的效果。通过课内实验,加强学生工程问题需求分析能力、综合运用计算机科学和工程技术完成实验设计与实施,并对实验结果进行分析的能力。 2.3 课时配置建议 周学时:3 总学时:64 其中:理论环节 32 实验环节 32 3) 课程评分建议 平时成绩 10% 实验成绩 40% 期末成绩 50% 总 计 100% 4.6. 移动应用开发综合实训
1) 课程基本描述 本课程使用中等规模移动应用软件项目作为实训案例,由6~8人组成扮演不同开发角色的团队合作完成。通过模拟真实的软件生产环境,驱动学生认识、理解、并初步掌握现代软件工程的基本原理、活动、工具和最佳实践。即以真实的软件工程活动为中心,让学生体验现代软件生产的真实过程和生产环境;应用、深化和提高他们已学计算机技术和软件技术,初步建立起其软件从业人员职业素养,强调系统化、规范化、可度量的过程,重点是软件工程知识综合应用和实战能力的培养。 2) 课程基本信息 2.1 先修课程 ➢ 数据结构 ➢ 面向对象程序设计 ➢ Android平台移动应用开发 2.2 项目与团队规模 ➢ 项目规模 一个中等规模应用,包含约8~10个用例,涉及3~5项新技术。 ➢ 团队规模 每一团队由6~8名学生组成。 3) 课程评分建议 导师评分 40% 文档评价 10% 项目中期考核 20% 项目最终考核 30% 其他贡献 10% 总 计 110%

  1. 师资队伍 5.1. 专业背景 大部分授课教师在其学习经历中至少有一个阶段是计算机专业的学历,教师具有相关专业学习的经历。 5.2. 工程背景 授课教师应具备与自己所讲的程相匹配计算机技术能力(包括操作能力、程序设计能和解决问题的能力)、参加研究、工程设计实现;教师承担的课程数和授课学时数要限定在合理范围内,保证在教学以外有精力参加术活动、工程和研究实践,以及提升个人的专业能力。讲授工程与应用类课程的教师应具有适当的工程背景;培养应用型人才为主专业教师中,承担过工程性项目的教师需占有相当比例,应具有与企业共同工作经历。
  2. 建设成果衡量 6.1. 课程设置
  3. 课程定位 课程体系符合高技能人才培养目标和专业相关技术领域职业岗位(群)的任职要求;本课程对学生职业能力培养和职业素养养成起主要支撑或明显促进作用,且与前、后续课程衔接得当。
  4. 课程设计 以职业能力培养为重点,与行业企业合作进行基于工作过程的课程开发与设计,充分体现职业性、实践性和开放性的要求。 6.2. 教学内容
  5. 内容选取 根据行业企业发展需要和完成职业岗位实际工作任务所需要的知识、能力、素质要求,选取教学内容,并为学生可持续发展奠定良好的基础
  6. 教学内容组织 遵循学生职业能力培养的基本规律,以真实工作任务及其工作过程为依据整合、序化教学内容,科学设计学习性工作任务,教、学、做结合,理论与实践一体化,实训、实习等教学环节设计合理。
  7. 表现形式 选用先进、适用教材,与行业企业合作编写工学结合特色教材,课件、案例、习题、实训实习项目、学习指南等教学相关资料齐全,符合课程设计要求,满足网络课程教学需要。 6.3. 教学方法与手段
  8. 教学设计 重视学生在校学习与实际工作的一致性,有针对性地采取工学交替、任务驱动、项目导向、课堂与实习地点一体化等行动导向的教学模式。
  9. 教学方法 根据课程内容和学生特点,设计实验课程,引导学生积极思考、乐于实践,提高教学效果。 6.4. 教学效果
  10. 教学评价 校外专家、行业企业专家、校内督导及学生评价结果优良。
  11. 社会评价 学生实际动手能力强,实训、实习产品能够体现应用价值;课程对应或相关的职业资格证书或专业技能水平证书获取率高,相应技能竞赛获奖率高。

附录1 Android开发编程基础

  1. 理论教学内容 第1讲 序言 1、充分理解什么是程序、程序设计(程序设计分类)、程序设计语言; 2、了解程序设计语言的发展; 3、了解本课程的性质与任务; 4、掌握Java语言的特点。 第2讲Java开发环境 1、了解Java开发环境; 2、掌握J2SDK的安装,了解环境变量的设置方法; 3、了解path和classpath的作用;掌握在命令行窗口中如何编译和执行程序(掌握命令) 4、掌握集成开发工具的安装; 5、学会创建第一个Java应用程序并成功运行; 6、初步掌握编写Java程序的注意事项及Java程序注释方法。 第3讲Java语言基础 1、掌握关键字和标识符; 2、掌握基本数据类型和变量、常量的定义及变量的初始化; 3、掌握数据类型的自动转换和强制转换; 4、掌握算术运算符、关系运算符和逻辑运算符及用法,位运算符不做要求。 5、掌握Java的输入输出(初步) 重点:本讲为Java语言基本的基础知识,要求学生认真学习并通过实际动手编写程序理解掌握。 第4讲 Java程序控制结构 1、 语句和块 2、 掌握使用分支结构:if语句、嵌套if、阶梯if及switch语句; 3、 掌握使用循环结构:for语句、嵌套for、while语句、do…while语句; 4、 掌握使用跳转语句:break语句、continue语句、return语句; 难点:嵌套if、阶梯if及嵌套for程序的执行流程。 第5讲 方法 1、 理解方法; 2、 方法的声明; 3、 方法的调用; 4、 参数传递; 5、 方法的重载; 6、 递归 重点及难点:参数传递(基本数据类型做参数,对形参的改变不会影响到原来的实参)、方法的重载、递归方法的编写。 第6讲 数组 1、 介绍数组,理解数组; 2、 数组的声明和创建及初始化,包括一维数组和二(多)维数组; 3、 数组的应用; 4、 把数组作为参数传递给方法; 5、 使用数组进行简单的排序(冒泡排序、选择排序)和查找(顺序查找、二分查找); 6、 多维数组; 重点:数组的声明和创建及初始化; 难点:数组参数(数组做参数,对形参的改变会影响到原来的实参)、冒泡排序、选择排序和二分查找。 第7讲 基于对象编程 1、 理解面向对象的基本概念:类、对象、属性、方法; 2、 掌握类的的创建和使用; 3、 掌握对象的创建和使用; 4、 掌握修饰符public、private、static、final。 5、 掌握包的声明和引用,理解包的特性。 6、 理解类的封装特性。 难点:修饰符的使用;构造函数;关键字this的使用。 第8讲 继承 1、 理解继承如何增强软件的可重用性; 2、 超类(父类)和子类(包括概念、关系和使用); 3、 掌握访问控制符protected及带来的问题; 4、 掌握关键字 super的使用(与this相对)。 难点:关键字super的使用。 第9讲 多态 1、 理解多态; 2、 继承层次中对象间的关系; 3、 掌握抽象类的定义和实现; 4、 掌握接口的定义和实现,理解接口的特性;抽象类和接口的区别。 第10讲 图形用户界面设计 1、 GUI基本知识介绍 2、 绘制字符串 3、 颜色和字体控制 4、 常用图形的绘制 5、 GUI组件的使用(JLabel、JTextField、JPasswordField JButton) 6、 事件及事件处理机制 7、 GUI组件的使用(JTextArea、JCheckBox、 JRadioButton) 8、 GUI组件的使用(JComboBox、JList) 9、 焦点事件、鼠标事件、键盘事件,适配器类 10、 布局管理 11、 中间容器 12、 创建菜单 重点:常用组件的使用、事件处理机制 第11讲 异常处理 1、 异常和错误处理的基本概念 2、 Java的异常层次结构及异常分类 3、 基本的异常处理编程 重点:try…catch…finally 、 第12讲 多线程 1、 理解多线程 2、 多线程的生命周期 3、 线程的优先级和调度 4、 使用Thread类创建线程 5、 线程的常用方法 6、 线程同步 7、 线程联合 8、 线程守护 重点及难点: 多线程的生命周期、创建线程的两种方法、线程同步 第13讲 文件和输入输出流 1、 文件 2、 文件字节流 3、 文件字符流 4、 从键盘读取数据 5、 缓冲流 6、 数组流 7、 字符串流 8、 数据流 9、 管道流 10、 对象流 11、 序列化与对象克隆 12、 随机读写流 13、 文件锁 重点:文件、文件字节流、文件字符流、管道流、对象流 难点:管道流、对象流 第14讲 基于网络编程 1、 URL类 2、 读取URL中的资源 3、 显示URL资源中的HTML文件 4、 处理超链接 5、 InetAddress类 6、 套接字Socket 7、 使用多线程处理套接字连接 8、 UDP数据报 9、 广播数据包 重点及难点:套接字Socket 第15讲 数据库编程 1、 数据库 2、 SQL 3、 使用JDBC连接数据库的过程 4、 实现对数据的查询、删除、更新等操作 重 点:使用JDBC连接数据库的过程及四种方式
  2. 实验课教学内容 2.1. Java开发基础实验 1) 实验名称:基本数据类型、运算符 实验目的: 1、 实例说明Java基本语法; 2、 标示符、关键字、分隔符; 3、 基本数据类型、变量和常量、数据类型的转换 4、 操作运算符及表达式 5、 Java的输入输出(初步) 2) 实验名称:Java控制结构 实验目的: 1、掌握使用分支结构:if语句、嵌套if、阶梯if及switch语句; 2、掌握使用循环结构:for语句、嵌套for、while语句、do…while语句; 3、掌握使用跳转语句:break语句、continue语句、return语句; 3) 实验名称:方法的定义和调用及数组的定义 实验目的: 1、掌握参数传递(基本数据类型做参数,对形参的改变不会影响到原来的实参)、方法的重载、递归方法的编写。 2、掌握数组的声明和创建及初始化 4) 实验名称:面向对象编程 实验目的: 1、掌握类的的创建和使用; 2、掌握对象的创建和使用; 3、掌握修饰符public、private、static、final。 4、掌握包的声明和引用,理解包的特性。 5、继承层次中对象间的关系; 6、掌握抽象类的定义和实现; 7、掌握接口的定义和实现,理解接口的特性;抽象类和接口的区别。 5) 实验名称:文件的读写操作 实验目的:掌握输入流和输出流的创建和使用;掌握各种流的用途。 6) 实验名称:异常处理 实验目的:了解Java异常基础,会创建并处理有异常的Java程序;掌握异常机制的应用。 7) 实验名称:多线程的创建和使用 实验目的: 1、理解多线程。 2、掌握多线程的生命周期。 3、使用Thread类创建线程的方法。 4、掌握线程的同步。 2.2. Java实训项目 1) 项目名称:图形用户界面的设计 项目目标:主要学习图形用户界面中的创建和Java中常用事件处理。包括:理解Java事件处理机制。掌握常用Java事件如动作事件、选择事件、鼠标事件、焦点事件等的处理方法。掌握菜单及快捷菜单的设计方法及菜单事件的处理。 2) 项目名称:基于网络编程(创建局域网的聊天程序) 项目目标: 1、理解套接字Socket。 2、创建套接字连接的一般过程。 3、使用多线程创建套接字连接。 4、掌握UDP数据报。 3) 项目名称:简单的图书信息管理系统 项目目标: 1、掌握使用JDBC连接数据库的过程 2、实现对数据的查询、删除、更新等操作 附录2 快速设计工具App Inventor 第一部分 应用设计与软件开发尝试 ➢ Hello World:在手机上输出Hello World(1课时)。 知识点:手机应用、App Inventor、程序、源程序、可执行程序、源代码、block可视化程序。 ➢ 涂鸦板:用手指在图片上涂鸦(1课时)。 知识点:软件、应用、应用设计、软件开发。 第二部分 应用设计初步 ➢ 快乐问答:有趣的问答游戏(2课时)。 应用设计知识点:色彩感知、空间布局、界面热区、字型字体; 软件开发知识点:程序结构、顺序、选择。 ➢ 青春战痘:游戏,用手指点击随机在界面出现的痘痘。(2课时)。 应用设计知识点:声音感知、辨识、交互、线索; 软件开发知识点:事件、循环、嵌套。 ➢ 一个好汉三个帮(原型):下雨天,帮助我找到附近的好朋友,给我送伞(2课时)。 应用设计知识点:原型、信息层次、交互设计、流程、流程图; 软件开发知识点:模块、调用。 第三部分 软件开发初步 ➢ 打地鼠:打地鼠游戏(2课时)。 应用设计知识点:感知、认知、交互设计原则一; 软件开发知识点:程序正确性、程序调试、算法。 ➢ 班级短信群发器:可以给全班同学群发短信的应用(2课时)。 应用设计知识点:使用界面元素区分信息层次、用户体验。、交互设计原则二; 软件开发知识点:系统/应用集成、外部接口、软件测试。 ➢ 班级地图通讯录:在地图上显示的全班同学通讯录(2课时)。 应用设计知识点:隐喻、设计要素、设计一致性; 软件开发知识点:Web服务、Mashup、软件维护。 ➢ Wifi语音短信:在班级通讯录、短信群发器的基础上增加通过Wifi发短信的功能(使用Google Voice)。(2课时) 综合复习各应用设计知识点和软件开发知识点。 附录3 Android平台移动应用开发
  3. 理论教学内容 1.1. Android开发基础 ➢ Android综述(2 课时) 常见的移动操作系统; Android平台发展历程及前景展望;Windows/Linux平台下开发环境搭建; ➢ Android 编程基础 (2 课时) Android体系结构介绍;Android.jar包和内部结构简介;Android SDK介绍;Android NDK介绍;核心开发工具简介; ➢ Android 应用程序开发 (4 课时) “Hello World”程序开发;布局设计;Android模拟器运行;事件处理;断点设置和Android程序调试工具使用初步; ➢ Android 应用程序结构 (3 课时) Android 应用程序结构, Activity、Broadcast and Intent Receiver、Service简介;Android项目组成;安全与权限机制. ➢ Android基本组件 (3 课时) Android基本组件,包括UI 组件 (Android Views、ViewGroups, Layouts, LayoutParams) 和相关实例; menu, ListView, Dialog, toast, notification 和相关实例;Widget介绍. 1.2. Android 核心服务 ➢ UI 事件处理(2 课时) 事件监听简述; UI事件处理流程;触摸、键盘事件监听示例; ➢ 数据存储与共享 (4 课时) 持久化数据存储综述; SharedPreferences简介;SQLite数据库简介;文件管理简介; Content Provider机制介绍; ➢ Intent and Broadcast (2 课时) Intent基本概念与编程;Android中的Broadcast;Broadcast Receiver基本概念及编程; ➢ Service (2 课时) Service基本概念;Service的使用;Service生命周期;Service编程实例;Android进程与线程基本概念;进程间通信; ➢ 网络与多媒体编程(4课时) 网络编程基本概念;Http通信、Socket通信、Web Service编程; Android多媒体编程基本原理;Android动画编程初步; 1.3. Android开发高级主题 ➢ Widget 开发(3 课时) Widget基本概念;Widget剖析;Widget开发实例; ➢ 传感器编程 (4 课时) 智能手机传感器综述;传感器编程基本框架;GPS传感器应用程序开发实例;加速度传感器应用程序开发示例; ➢ Android应用程序优化 (3 课时) Android应用程序性能优化;UI优化;网络优化;相关主题介绍;
  4. 实验课教学内容 2.1. Android开发基础实验 实验内容: 1) Button事件处理 (1 课时) 2) Intent跳转实验(1 课时) 3) 利用Bundle 对象进行参数传递 (2 课时) 2.2. Android核心服务实验 实验内容: 1) 使用 SQLite Database 进行数据存储(2 课时) 2) 使用Android Service (2 课时) 3) 设计简易但功能完整的记事本应用Notepad application (2 课时) 4) 设计媒体播放器 Media Player (2 课时) 2.3. Android开发高级主题实验 实验内容 1) 设计并实现Widget (2 课时) 2) 设计路线记录器 (4 课时) 附录4 移动应用交互设计
  5. 理论教学内容 1.1. UI系统设计概论(4 课时) 1) 什么是UI设计 ?为何而设计? 2) UI设计的流程 3) UI设计不同阶段需要的软件配合 4) 案例赏析
    1.2. 网站或App调研分析 (4课时) 1) 同类网站或App的调研分析方法 2) 从战略层描述网站目标与用户群 1.3. 界面框架与布局设计(4 课时) 1) 界面框架类型分析与设计 2) 界面导航与布局设计 1.4. 界面控件设计(4 课时) 1) 界面中控件内容与形式的统一 2) 控件设计禁忌与规范 3) Axure、Photoshop软件的使用方法 1.5. 界面原型设计 (6 课时) 1) 界面框架与控件模块化的设计概念 2) UI界面低保真原型的制作流程 1.6. 界面视觉设计 (10 课时)
  6. 界面视觉设计方法,包括风格定位、色彩处理、图标设计
  7. 界面尺寸规范与设计禁忌
  8. 实验课教学内容

序号 项目名称 学时 类型 每组人数 学生任务 1 网站或App调研分析 5 验证型 2-3 了解UI设计及其设计原则、了解用户的操作习惯; 2 界面框架与布局设计 5 设计型 2-3 学会使用基本的UI控件及布局方法 3 界面控件设计 4 设计型 2-3 学会使用高级布局控件和应用程序整体UI设计 4 界面原型设计 6 设计型 2-3 UI界面低保真原型的制作; 5 界面视觉设计 12 设计型 2-3 对界面低保真原型进行视觉设计,达到独立完成GUI设计的目标;

附录5 跨平台脚本开发技术

  1. 理论教学内容 第一章 脚本语言基础(6 课时)
    1) Javascript脚本技术基础; 2) JavaScript基本语法; 3) 函数对象 4) 闭包 5) JavaScript执行环境分析;
    第二章 脚本语言的设计模式 (8 课时) 1) Javascript设计模式; 2) JavaScript面向对象设计方法; 3) 常用框架设计方法 4) 脚本语言的模块化设计方法; 5) 脚本程序的部署与打包方法; 第三章 前端设计进阶 (8课时) ➢ 浏览器脚本技术 1) BOM结构及执行环境 2) DOM结构 3) HTML标签语言 4) 动态JavaScript技术 ➢ 前端js框架设计 1) 前端UI设计 2) 前端框架事件模型 3) Http/Ajax交互 4) 数据解析,json数据格式 5) 前端框架设计 第四章 跨移动端混合应用开发技术 (10 课时) 1) 跨终端js交互设计 2) 移动端混合开发模式基础,理解脚本与本地代码互动机制; 3) Cordova框架; 4) 前端框架移动化; 5) 交互模式分析与界面设计;可替换式UI模式;响应式UI设计 6) 跨终端移动应用综合设计;
  2. 实验课教学内容 序号 项目名称 学时 类型 每组人数 学生任务 1 JavaScript基础实验 4 验证型 2-3 搭建开发环境,验证基本语法和基本程序设计方法; 2 面向对象设计实验 8 验证型 2-3 学会基本的模式设计方法,充分利用js函数模拟面向对象设计方法; 3 前端框架开源项目代码分析实验 4 验证型 2-3 分析大型框架的设计方法;理解js的模块化构造和管理技术;理解js的打包和优化方法 4 前端UI框架设计实验 4 设计型 2-3 掌握前端框架设计技术;UI设计技术;前端事件处理模型; 5 移动端混合应用开发--超级课程表 6 设计型 2-3 能够利用跨终端技术和前端框架完成一个完整的应用程序; 6 综合实验 6 设计型 2-3 充分利用js跨终端技术,结构服务器技术,构造全终端覆盖的跨平台应用解决方案;

附录6 移动应用开发实训

  1. 案例简介 《捕鱼达人之深海狩猎》项目将PC单机版的游戏转换成基于Android平台的手机游戏。该游戏场景中有不同种类的鱼来回游动,游戏玩家可以通过控制炮弹的威力和炮弹发射的方向向场景中的某一位置撒出大小不同的渔网。若渔网的捕捉范围内有鱼,这些鱼就会被捕捉,被捕捉的鱼会换算成游戏玩家得分并且不同种类的鱼分值不同。若在一定时间内游戏玩家得到的分值超过设定分值,则可以进入下一关游戏中;若在一定时间内所得分值小于设定分值,则游戏结束。 通过此项目实训,参训团队能够熟悉现代软件生产的过程,初步养成基本的软件开发职业素养,并可以提高Android编程开发和软件架构设计方面的能力。
  2. 过程与角色 实训划分为5个阶段,每阶段参训学生按照案例定义好的步骤参加培训,并完成给定的任务。参见实训流程图。 指导老师与负责教学助理(TA):统筹所有使用本案例的实训软件项目,定义项目,控制阶段进度,技术指导,并组织提供资源。其角色类同于软件组织中项目组之外的管理层。 实训生:组成项目团队,实施实训项目。每一个项目团队选出一名组长,项目组长控制整个项目的进度包括管理整个项目的文档,并进行协调组织。
  3. 阶段划分 阶段 实训启动 阶段1:项目启动 阶段2:实现用例 阶段3:整合用例 实训总结 时长 2天 4天 14天 8天 2天 实训内容 ➢ 了解实训 ➢ 组建团队 ➢ 了解实训项目 ➢ 学习与Android开发相关的流程、原理和技术等 ➢ 在指导下完成如下任务:  与Android开发相关的软件的下载、安装以及环境配置  实现并运行Hello World  了解项目的基本文件结构 ➢ 研究游戏规则并完成游戏规则文档 ➢ 分析游戏中的用例并完成用例文档 ➢ 初步了解并掌握AndEngine游戏引擎的使用方法 ➢ 学习架构设计和模式应用,并设计该项目的开发架构 ➢ 在指导下完成如下任务:  让鱼直线游动  让鱼曲线游动  让鱼能直线曲线游动  能够将路径序列化并且载入  炮台旋转,切换炮弹,控制射程,发炮  碰撞检测,得分 ➢ 学习并且完成游戏美术设计 ➢ 将阶段2实现的用例整合起来使其能够完整地运行 ➢ 设计并实现进入游戏的主界面和各个跳转页面 ➢ 整合所有界面得到完整的项目 ➢ 个人、团队实训总结 培训活动 ➢ 软件工程实训简介 ➢ Android编程入门 ➢ 谁是捕鱼达人(活动) ➢ AndEngine游戏引擎讲解 ➢ 如何使用设计模式更好地进行架构设计(研讨) ➢ Android开发经验交流 ➢ 论战-软件职场黄金技能 ➢ 实训总结大会
  4. 技能集 Android编程 技能 工具 范围 实训前要求 实训后期望 Java语言 Eclipse >2人 了解Java语言,用Java语言编写过程序,具备一定的程序开发经验,具有较强的学习能力 提高对Java语言的认识和程序开发的能力 Android平台的体系架构 无 所有人 无 对Android平台的体系架构有一定的了解 Android API Eclipse,Android SDK

    3人 无 对Android API核心开发包的组织结构和所提供的手机服务功能有一定的了解,初步掌握使用Android API进行Android开发的方法

  5. 游戏设计与开发 技 能 工 具 范围 实训前要求 实训后期望 AndEngine游戏引擎 AndEngine

    2人 有较强学习能力 知道游戏引擎的的原理和作用,能够学习和使用给定的游戏引擎进行游戏开发 架构设计 Rational Rose ≥1人 对UML和设计模式有初步的了解,使用过Rational Rose 对UML和设计模式有更进一步的认识,能够熟练使用UML与相应文档表达软件分析和设计 美术设计 Android OpenGL ≥1人 有一定审美以及设计能力 对Android OpenGL有一定了解,初步掌握使用OpenGL进行美术设计的方法

  6. 交付制品 ➢ 工程制品 1) 游戏规则说明文档、需求规格说明书、概要设计说明书、详细设计说明书、测试分析报告、测试计划 2) 代码:源程序库(生产代码、测试代码) 3) 用户文档:用户操作手册 ➢ 管理文档 1) 团队章程 2) 重要会议纪要 3) 软件配置管理计划 4) 项目开发计划 5) 总结性报告

第二部分 移动应用课程设置建议书——嵌入式系统方向

编著单位: 兰州大学 厦门大学 兰州交通大学 集美大学 青海大学

1 Android嵌入式系统课程群建设概况 1.1 建设背景 随着移动互联网的飞速发展,尤其是嵌入式系统的应用越来越广泛,覆盖了消费类电子、智能家电、工业控制、通讯网络、仪器仪表、汽车电子等多个领域。社会对嵌入式人才的需求越来越旺盛,对嵌入式专业人才的知识、能力和素质提出了更高的要求。如何建立起有效的“嵌入式系统”方向课程群是培养这样的符复合人才的关键,本项目建凝聚国内各层次高校,针对当前社会的需求,和产业界发展的实际情况,探索建立几支撑“嵌入式系统”方向人才培养的课程群。 Google启动了校企共建实用课程项目。此项目旨在整合 Google 技术与资源优势,使前沿的科学技术与高等教育相结合,支持大学课程建设,培养具有竞争力的国际化、实用型人才。 1.2 建设意义 嵌入式系统课程的特点是多学科交叉融合、实践性强,是计算机专业、自动化专业、电气工程专业的一门重要专业基础课。嵌入式系统的相关知识和技术发展日新月异,越来越多的硬件和功能不断涌现,这不但给学生的学习增加了难度,同时也要求教师不断补充新的知识,掌握相关技术,站在领域发展的前沿。培养学生的目标是“学以致用”,因此,针对嵌入式系统这门课程,需要从授课内容、教学方法、实践练习、科研训练等方面进行有效的改革,培养满足现代社会需求的高级工程应用型人才。 2 嵌入式系统课程群建设规范目标 2.1 人才培养目标 培养学生初步掌握嵌入式系统设计、嵌入式系统移植、Android应用开发,熟练掌握嵌入式系统软件开发方法和技术,使学生成为有较强实践经验的技术人才。嵌入式系统方向学生主要学习嵌入式系统的基础理论、分析和设计方法,受到嵌入式系统领域工程实践的基本训练,具备从事嵌入式系统设计、开发、调测和工程应用等方面的基本能力。 2.2 人才培养任务 课程群的建设需要按照嵌入式开发的知识结构,让学生逐步掌握嵌入式开发。课程之间需要保证知识的连贯性,并强调对学生职业能力的培养和职业素养的养成,针对不同环节,采用恰当的教学方法,有意识、有步骤地将职业能力的训练和职业素养的形成融入到实际的教学过程中。 3 课程体系建设思路 3.1 课程体系建设 嵌入式系统由硬件和软件两部分组成,其中硬件包括嵌入式处理器和外围设备等,软件包括嵌入式操作系统和各种应用程序等。本课程群主要是针对软件开发所设计,所需的知识架构分为编程语言、嵌入式系统、嵌入式处理器体系结构、嵌入式系统移植、Linux内核及驱动、应用程序等。 课程架构分为两个层次,基础课程与核心课程。基础课程是讲解嵌入式开发基础,包括编程语言、操作系统、嵌入式处理器架构等基础知识。核心课程是针对嵌入式开发所需掌握的课程,包括内核、驱动的开发、Android应用的开发等。学生在学习核心课程前,必须掌握好基础课程。 课程设置主要包括:Android 开发编程基础、嵌入式操作系统、ARM嵌入式系统开发与编程、嵌入式系统程序设计、Android底层开发实践。

3.2 课程路线图

3.3 课程设置 专业 类 别 课程名称 学分 学时 开课学期 计算机相关专业 ➢ 嵌入式开发基础课程 Android开发编程基础 2 + 1 54 大二春季学期 嵌入式操作系统 2 + 1 54 大三秋季学期 ARM嵌入式系统开发与编程 2 36 大三春季学期 ➢ 嵌入式开发核心课程 嵌入式系统程序设计 2+1 54 大四秋季学期 Android底层开发实践 3 54 大四秋季学期 4 课程的主要内容 4.1 课程知识点框架

4.2 平台基础课程设置及知识点

  1. Android 开发编程基础(课程划分及学时分配见附录一) Android 开发编程基础是通过课堂教学和实践教学相结合,使学生能够清楚的了解Android软件开发工作流程,并且深入理解面向对象概念,建立起应用程序的概念,最终能够掌握Android开发的基本方法及技能,培养利用JCreator、NetBeans等常用工具软件进行Java应用软件产品的分析、设计、编码、测试的综合应用能力,培养科学的思维方法,灵活运用知识的能力,实验操作能力,使学生具有较强的发现问题、分析问题、解决问题的能力,具有毕业后的直接上岗能力,并且毕业时已具备一定的Android应用开发经验。 知识点: (1) 掌握C语言编程基础; (2) 掌握C语言数据结构; (3) 掌握 Java开发环境; (4) 掌握Java语言编程基础; (5) 掌握Java数据结构; (6) 掌握面向对象设计模式; (7) 掌握汇编语言基础; (8) 掌握Android应用开发基础。 学时分配: 总学时:54 其中:理论环节36 实验环节18
  2. 嵌入式操作系统(课程划分及学时分配见附录二) 学习Andorid开发必须要对Linux的系统操作有所了解。嵌入式操作系统课程为了使学生初步了解Linux,能够掌握Linux操作系统下的基本应用,能够基本掌握作为系统管理员的职责任务,掌握Linux系统下网络的配置方法及ftp、DNS、www等服务器的配置和使用。 知识点: (1) 掌握操作系统基础知识及其主要功能; (2) 掌握Linux操作的特征、主要功能及其应用领域; (3) 掌握Linux常用命令的使用; (4) 熟练运用vi编辑器; (5) 掌握Linux用户和组管理; (6) 掌握设备管理和文件系统结构管理; (7) 掌握基本的shell程序的编写; (8) 熟练掌握NFS、samba、DNS、DHCP、Apache、FTP等服务器的配置; (9) 掌握Linux环境下网络安全配置。 学时分配: 总学时:54 其中:理论环节26 实验环节28
  3. ARM嵌入式系统开发与编程(课程划分及学时分配见附录三) ARM嵌入式系统开发与编程是嵌入式开发的入门课程,课程针对在ARM平台上移植、开发Android系统的学习。需要重视学生知识结构的拓展,培养学生应用课程中所学到的技术解决生产实践问题的能力,以及初步设计具体课题技术路线的能力,促进学生专业能力的发展,提高学生的实践和探究能力。课程的目的是为了提高学生对课程的学习兴趣,培养具有现代工程理念、理论知识扎实、实践能力强、有创新精神、符合社会需求的合格人才。 知识点: (1) 掌握搭建嵌入式开发环境; (2) 掌握编译uboot、kernel、文件系统; (3) 掌握ARM架构,了解ARM处理器特点; (4) 掌握ARM汇编的语法、指令等; (5) 掌握如何控制GPIO; (6) 掌握对UART控制; (7) 掌握编写LCD显示控制程序; (8) 掌握异常处理方法。 学时分配: 总学时:36 其中:理论环节21 实验环节15 4.3 核心课程设置及知识点
  4. 嵌入式系统程序设计(课程划分及学时分配见附录四) Android系统是基于Linux Kernel发展起来的嵌入式操作系统。要想深入了解Android系统,需要普及Linux Kernel的相关知识。嵌入式系统程序设计以培养学生对Linux编程能力为依据设计,课程的重点内容是进程、线程、信号、文件锁、socket、网络协议以及系统函数,并且讲解内核的配置与编译、驱动程序。 知识点: (1) 掌握嵌入式系统程序开发基础知识; (2) 掌握嵌入式系统文件操作包括系统调用、函数等; (3) 掌握嵌入式系统程序参数、环境变量用途; (4) 掌握对终端读写、与终端对话; (5) 了解进程,掌握对进程的控制; (6) 了解线程,掌握对线程的控制; (7) 掌握进程间通信; (8) 掌握数据库原理及接口分析; (9) 掌握网络应用服务开发原理; (10)掌握对Android底层内核源码的分析; (11)掌握Android内核启动过程。 学时分配: 总学时:54 其中:理论环节38 实验环节16
  5. Android底层开发实践(课程划分及学时分配见附录五) 《Android底层开发实践》是在学生掌握了Java程序设计、ARM嵌入式系统开发与编程之后的综合运用性的一门课程。通过此课程的学习,学生可以在安装Android系统的手机上进行基于Android的应用程序的开发。 知识点: (1) 掌握Android内核的配置编译; (2) 掌握编写Android驱动程序; (3) 掌握Android系统应用程序开发工具; (4) 掌握Android系统框架开发工具; (5) 掌握Android系统交叉编译工具; (6) 掌握Android系统内核开发工具; (7) 掌握Android系统Camera与WIFI实现; (8) 掌握完整的Android底层开发。 学时分配: 总学时:54 其中:理论环节26 实验环节28 5 实践环节及要求 5.1 实践环节 具有满足教学需要的完备实践教学体系,主要包括实验课程、课程设计、现场实习。积极开展科技创新、社会实践等多种形式实践活动,到各类工程单位实习或工作,取得工程经验,基本了解本行业状况。 5.1.1 Android 开发编程基础 本课程的实验是面向没有接触过Java的学生,实验课程是以Java编程基础为主,可以以简单的Android应用开发为例子,使学生更快掌握。实验需要涵盖Java基本语法、面向对象程序设计的基本思想和Java的高级特性等方面的知识点。实验的教学需要有教师和助教的辅助指导。(实验内容设置参见附录一) 5.1.2 嵌入式操作系统 本课程的实验是面向没有接触过Linux操作系统的学生,实验课程是以Linux命令及系统配置为主。实验需要Linux命令及网络配置等方面的知识点。实验平台使用Ubuntu操作系统进行讲解及学生操作。实验的教学需要有教师和助教的辅助指导。实验主要应该包括:Linux系统管理、Linux主要命令及网络配置等内容。(实验内容设置参见附录二) 5.1.3 ARM嵌入式系统开发与编程 本课程的实验是面向有一定Linux操作系统基础的学生,实验课程是以ARM体系架构及Android系统移植为主。实验需要涉及ARM开发板讲解、Kernel及文件系统移植等方面的知识点。实验平台使用“ARM + Android”实验平台进行讲解及学生操作。实验的教学需要有教师和助教的辅助指导。实验主要应该包括:ARM指令集、Android系统移植等。(实验内容设置参见附录三) 5.1.4 嵌入式系统程序设计 本课程的实验是面向有一定Linux操作系统基础的学生,实验课程是以培养学生Linux编程能力为主。实验需要涉及进程、线程、socket、网络协议以及系统函数等方面的知识点。实验的教学需要有教师和助教的辅助指导。实验主要应该包括:内核的配置与编译、内核模块实现等。(实验内容设置参见附录四) 5.1.5 Android底层开发实践 本课程的实验是面向有一定Linux操作系统基础以及了解Android的学生,实验课程是以Android驱动和应用开发为主。实验需要涉及字符设备、块设备、网络设备的驱动编写。实验平台使用“ARM + Android”实验平台进行讲解及学生操作。实验的教学需要有教师和助教的辅助指导。实验以综合的实验设计为主。(实验内容设置参见附录五) 5.2 师资背景 授课教师应具备与自己所讲的程相匹配计算机技术能力(包括操作能力、程序设计能和解决问题的能力)、参加研究、工程设计实现;教师承担的课程数和授课学时数要限定在合理范围内,保证在教学以外有精力参加术活动、工程和研究实践,以及提升个人的专业能力。讲授工程与应用类课的教师应具有适当的工程背景;培养应用型人才为主专业教师中,承担过工程性项目的教师需占有相当比例,应具有与企业共同工作经历。 5.3 专业资料 配备各种高水平的、最新的、充足的教材、参考书和工具书,以及各种专业和研究机构(如ACM和IEEE计算机协会)出版的各种图书资料,师生能够方便地利用,阅读环境良好,且能方便地通过网络获取学习资料。 5.4 实验条件 (1)实验设备完备、充足、性能优良,满足各类课程教学实验的需求。 (2)保证学生以课内外学习为目的的上机需求。 (3)实验技术人员数量充足,能够熟练地管理、配置、维护实验设备,保证实验环境的有效利用,有效指导学生进行实验。 5.5 实践基地 应以校外企事业单位为主,能够为全体学生提供从事计划规定实践的稳定实践环境;参与教学活动的人员对实践教学目标与要求有足够的理解。 5.6 课程考核 (1)成绩评定方式的主要构成及比例:采用百分制评分,增加实验成绩比例,期末成绩由平时成绩10%、实验成绩40%、考试成绩50%组成。其中,平时成绩由出勤、课堂表现、回答问题情况、作业的成绩组成,实验成绩由实验操作、实验报告成绩组成,考试成绩为试卷成绩。 (2)试卷题型及分值分布:针对具体课程设置,题型主要包括填空题、选择、简答题、综合题。试卷满分值为100分。 (3)考试形式与时间:闭卷、笔试,120分钟。 6 课程建设成果衡量方法与指标 6.1 课程设置
  6. 课程定位 课程体系符合高技能人才培养目标和专业相关技术领域职业岗位(群)的任职要求;本课程对学生职业能力培养和职业素养养成起主要支撑或明显促进作用,且与前、后续课程衔接得当。
  7. 课程设计 以职业能力培养为重点,与行业企业合作进行基于工作过程的课程开发与设计,充分体现职业性、实践性和开放性的要求。 6.2 教学内容
  8. 内容选取 根据行业企业发展需要和完成职业岗位实际工作任务所需要的知识、能力、素质要求,选取教学内容,并为学生可持续发展奠定良好的基础
  9. 教学内容组织 遵循学生职业能力培养的基本规律,以真实工作任务及其工作过程为依据整合、序化教学内容,科学设计学习性工作任务,教、学、做结合,理论与实践一体化,实训、实习等教学环节设计合理。
  10. 表现形式 选用先进、适用教材,与行业企业合作编写工学结合特色教材,课件、案例、习题、实训实习项目、学习指南等教学相关资料齐全,符合课程设计要求,满足网络课程教学需要。 6.3 教学方法与手段
  11. 教学设计 重视学生在校学习与实际工作的一致性,有针对性地采取工学交替、任务驱动、项目导向、课堂与实习地点一体化等行动导向的教学模式。
  12. 教学方法 根据课程内容和学生特点,设计实验课程,引导学生积极思考、乐于实践,提高教学效果。 6.4 教学效果
  13. 教学评价 校外专家、行业企业专家、校内督导及学生评价结果优良。
  14. 社会评价 学生实际动手能力强,实训、实习产品能够体现应用价值;课程对应或相关的职业资格证书或专业技能水平证书获取率高,相应技能竞赛获奖率高。

附录一:Android 开发编程基础课程划分及学时分配 序号 知识单元 课程内容 教学方法及实践内容 参考学时 1 序言 1.充分理解什么是程序、程序设计(程序设计分类)、程序设计语言; 2.了解程序设计语言的发展; 3.了解本课程的性质与任务; 4.掌握Java语言的特点。 1. 教师讲解基础知识 理论:2 2 Java开发环境 1.了解JAVA开发环境; 2.掌握J2SDK的安装,了解环境变量的设置方法; 3.了解path和classpath的作用;掌握在命令行窗口中如何编译和执行程序(掌握命令) 4.掌握集成开发工具的安装; 5.学会创建第一个java应用程序并成功运行; 6.初步掌握编写java程序的注意事项及Java程序注释方法。 1. 教师示范、指导学生独立完成JDK1.6 安装、设置工作。

  1. 学生搭建环境 理论:2 实验:2 3 Java语言基础 1.掌握关键字和标识符; 2.掌握基本数据类型和变量、常量的定义及变量的初始化; 3.掌握数据类型的自动转换和强制转换; 4.掌握算术运算符、关系运算符和逻辑运算符及用法,位运算符不做要求。 5.掌握Java的输入输出(初步) 1. 教师讲解、示范、指导
  2. 学生完成相关实验 实验: 基本数据类型、运算符 理论:2 实验:2 4 Java程序控制结构 1.语句和块 2.掌握使用分支结构:if语句、嵌套if、阶梯if及switch语句; 3.掌握使用循环结构:for语句、嵌套for、while语句、do…while语句; 4.掌握使用跳转语句:break语句、continue语句、return语句; 1. 教师讲解、示范、指导
  3. 学生完成相关实验 实验: Java控制结构 理论:2 实验:2 5 方法 1.理解方法; 2.方法的声明; 3.方法的调用; 4.参数传递 1. 教师讲解、示范、指导
  4. 学生完成相关实验 实验: 方法的定义和调用及数组的定义 理论:2 实验:2 6 数组 1.介绍数组,理解数组; 2.数组的声明和创建及初始化,包括一维数组和二(多)维数组; 3.数组的应用; 4.把数组作为参数传递给方法; 1. 教师示范、指导
  5. 学生掌握相关理论 理论:4 7 基于对象编程 1.理解面向对象的基本概念:类、对象、属性、方法; 2.掌握类的的创建和使用; 3.掌握对象的创建和使用; 4.掌握修饰符public、private、static、final。 1. 教师示范、指导
  6. 学生完成相关实验 实验: 面向对象编程 理论:2 实验:2 8 继承 1.理解继承如何增强软件的可重用性; 2.超类(父类)和子类(包括概念、关系和使用); 3.掌握访问控制符protected及带来的问题; 4.掌握关键字 super的使用(与this相对)。 1. 教师示范、指导
  7. 学掌握相关理论 理论:2 9 多态 1.理解多态; 2.继承层次中对象间的关系; 3.掌握抽象类的定义和实现; 4.掌握接口的定义和实现,理解接口的特性; 1. 教师示范、指导
  8. 学生掌握相关理论 理论:2 10 图形用户界面设计 1.GUI基本知识介绍 2.绘制字符串 3.颜色和字体控制 4.常用图形的绘制 5.GUI组件的使用 1. 教师示范、指导
  9. 学生掌握相关理论 理论:2 11 异常处理 1.异常和错误处理的基本概念 2.JAVA的异常层次结构及异常分类 3.基本的异常处理编程 1. 教师示范、指导
  10. 学生小组学习理解相关概念 实验: 异常处理 理论:2 实验:2 12 多线程 1.理解多线程 2.多线程的生命周期 3.线程的优先级和调度 4.使用Thread类创建线程 5.线程的常用方法 1. 教师示范、指导
  11. 学生小组学习理解相关方法 实验: 多线程的创建和使用 理论:2 实验:2 13 文件和输入输出流 1.文件 2.文件字节流 3.文件字符流 4.从键盘读取数据 5.缓冲流 6.数组流 7.字符串流 8.数据流 9.管道流 10.对象流 11.序列化与对象克隆 12.随机读写流 13.文件锁 1. 教师示范、指导
  12. 学生小组学习完成画布上画线实训 实验: 文件的读写操作 理论:2 实验:4 14 基于网络编程 1.URL类 2.读取URL中的资源 3.显示URL资源中的HTML文件 4.处理超链接 5.InetAddress类 6.套接字Socket 7.使用多线程处理套接字连接 8.UDP数据报 9.广播数据包 1. 教师示范、指导
  13. 学生掌握相关理论 理论:4 15 数据库编程 1.数据库 2.SQL 3.使用JDBC连接数据库的过程 4.实现对数据的查询、删除、更新等操作 1. 教师示范、指导
  14. 学生掌握相关理论 理论:4

附录二:嵌入式操作系统课程划分及学时分配 序号 知识单元 课程内容 教学方法及实践内容 参考学时 1 系统安装及管理 1.了解Linux发展历史 2.掌握Linux操作系统的主要特征 3.了解Linux操作系统中常用的符号 4.掌握Linux操作系统的安装 5.掌握软件包的安装 6.Linux进程管理 7.桌面环境介绍 1由教师讲解、指导 2学生会学Linux操作系统的安装 3学生掌握软件包安装及进程管理 实验: 安装Linux系统 理论:2 实验:2 2 用户和组的建立与管理 1 /etc/passwd与/etc/shadow文档绍 2 pwconv和pwunconv命令的使用 3 adduser创建用户 4 passwd修改用户密码 5 chsh、chfn、usermod 6 userdel删除用户 7 /etc/group文档介绍 8 groupadd、groupmod、gpasswd命令的使用 9 umask、setuid、setgid、sticky设定文件安全 1由教师讲解、指导 2学生掌握用户和组的建立 3 学生掌握用户和组属性更改、设置 4 学生掌握文件安全设置 5 学生能进行简单的用户环境设置 实验: Linux命令应用 理论:4 实验:4 3 文档的建立与修改 1 vi的启动与退出 2 vi长指令与短指令运用 3vi环境设置 4vi的高级应用ab、map、运行shell等方法 1由教师讲解、指导 2 学生会使用编辑器编辑网络配置文档 3 学生会应用vi高级应用进行环境设置 实验: Vi编辑及操作 理论:2 实验:2 4 网络管理基本应用 1 文件基础知识介绍 2 常用命令介绍 3 ls、mkdir、rmdir、fing、chmod、chgrp、cp等重要命令学习 4 文件权限及权限查看 5 ACL访问控制列表 6 分区类型及文件系统管理常用命令 7 磁盘管理常用命令 8 磁盘配额的设置 1由教师讲解、指导 2 学生掌握文件管理的基本命令 3 学生掌握文件权限设置 4 学生掌握磁盘管理和磁盘配额设置 实验: Linux命令及磁盘管理操作 理论:4 实验:4 5 网络程序开发 1 shell的基本概念 2 shell的发展与分类 3 shell的功能介绍 4 shell变量和环境 5 BSD常用功能 6 命令历史与命令重复 7 命令别名 8 管理道与重定向 9 shell脚本 10 shell脚本编写与运行 1由教师讲解、指导 2 掌握如何shell编程的语法 3掌握如何运行shell编程的运行 4 掌握管道与输入输出重定向 实验: Shell编写 理论:4 实验:4 6 网络配置及设备管理 1 ifconfig、route命令的使用 2 redhat-config-network命令配置网络 3 /etc/named.conf文档 4 setup命令配置设备驱动 5 redhat-config-xfee86配置显卡 6 其它设备的配置与管理 1由教师讲解、指导 2 学生掌握网络的基本配置 3 学生掌握显卡配置 4 学生掌握其它设备的配置与管理 实验: 网络配置及设备驱动配置 理论:4 实验:4 7 网络服务器规划、配置及管理 1.常用服务器软个包管理及安装 2.NFS服务器的配置与应用 3.SAMBA服务器的配置与应用 4.DHCP服务器配置与应用 5.DNS服务器配置与应用 6.Apache服务器的配置与应用 7.FTP服务器配置与应用 8.邮件服务器的配置与应用 9.防火墙规划与设计 1 由教师讲解、指导 2 掌握X windows环境下的各服务器配置 3.掌握命令状态下各服务器的规划与配置 4.掌握网络安全规划与设置 实验: 配置服务器 理论:6 实验:6

附录三:ARM嵌入式系统开发与编程课程划分及学时分配 序号 知识单元 课程内容 教学方法及实践内容 参考学时 1 嵌入式系统概述 1. 嵌入式应用

  1. 嵌入式系统组成(举例说明)
  2. Arm版本与实现 1. 由教师讲解嵌入式系统概述 理论:2 2 搭建嵌入式开发环境 1. 在Linux下烧写Supperboot
  3. 基于Supperboot刷机(Android系统)
  4. 基于Supperboot刷机(Linux+QT)
  5. 编译Uboot
  6. Uboot命令使用
  7. 基于Uboot用fastboot烧写Android到SD卡
  8. 编译Linux内核
  9. 编译Busybox
  10. 配置nfs服务
  11. 挂载网络文件系统 1. 由教师示范、指导
  12. 学生小组协作搭建嵌入式开发环境 实验:搭建开发环境、编译uboot、kernel、文件系统 理论:2 实验:6 3 ARM架构 1. Arm处理器结构简介
  13. Arm处理器模式
  14. Arm寄存器
  15. Arm流水线、Cache、协处理器、TCM简介 1. 由教师讲解ARM架构 理论:2 4 ARM汇编 1. 内嵌汇编语法
  16. Arm汇编指令
  17. APCS规则
  18. Arm指令编码
  19. 程序的链接地址、位置相关、位置无关等概念 1. 由教师讲解ARM汇编
  20. 学生独立编程,熟悉汇编代码 实验: 分析汇编指令 理论:2 实验:2 5 GPIO 1. GPIO控制LED
  21. GPIO控制button 1. 由教师讲解GPIO工作原理
  22. 学生独立编程控制GPIO 实验: 编写GPIO控制代码 理论:2 实验:2 6 CLOCK时钟管理 1. 时钟管理体系 1. 由教师讲解时钟管理 实验: 分析时钟部分代码 理论:1 实验:1 7 UART 1. UART控制程序 1. 由教师讲解UART工作原理
  23. 学生独立编写控制程序 实验: 编写UART控制程序 理论:2 实验:2 8 LCD 1. Lcd显示控制程序
  24. 部分窗口显示 1. 由教师讲解LED显示原理
  25. 学生独立编写控制程序 实验: 编写LCD显示控制程序 理论:2 实验:2 9 MMU 1. MMU原理
  26. 段映射
  27. 页映射 1. 由教师讲解MMU原理 理论:2 10 异常/GIC 1. 异常模式
  28. 异常类型
  29. ARM对异常的处理方式(未定义异常、svc异常、中断异常)
  30. GIC中断控制器详解
  31. SGI中断控制程序 1. 由教师讲解异常及GIC中断控制器 实验: 分析中断控制代码 理论:2 实验:2

附录四:嵌入式系统程序设计课程划分及学时分配 序号 知识单元 课程内容 教学方法及实践内容 参考学时 1 文件I/O 1. 文件基本操作相关函数

  1. 文件共享
  2. 原子操作
  3. dup和dup2
  4. sync,fsync,fdatesync
  5. fcntl和ioctl
  6. 文件基本操作相关函数
  7. 临时文件 1. 教师讲解原理,并示范操作
  8. 学生理解相关概念 实验: 分析代码 理论:2 实验:2 2 文件、目录、系统数据文件和信息 1. 文件操作
  9. 目录操作
  10. 口令文件
  11. 组文件
  12. 系统标识
  13. 时间与日期例程监听SD卡 1. 由教师讲解原理,并示范操作
  14. 学生理解相关概念 理论:3 3 进程 1. 进程基本概念
  15. 程序的存储空间分布
  16. 进程资源管理
  17. 父子进程关系
  18. 解释器文件
  19. 进程时间 1. 教师讲解原理,并示范操作
  20. 学生理解相关概念 理论:3 4 进程关系及进程间通信 1. 终端相关概念
  21. shell内部命令处理
  22. 守护进程的特点及实现
  23. 系统日志
  24. 管道
  25. XSI IPC 1. 教师讲解原理,并示范操作
  26. 学生理解相关概念 理论:2 5 信号 1. 信号的概念
  27. 可重入函数
  28. 信号功能函数 1. 教师讲解原理,并示范操作
  29. 学生理解相关概念 理论:2 6 线程 1. 线程的概念
  30. 线程操作
  31. 线程控制
  32. 加锁规范 1. 教师讲解原理,并示范操作
  33. 学生理解相关概念 实验: 线程控制 理论:2 实验:2 7 高级IO 1. 非阻塞IO
  34. I/O多路复用
  35. 存储映射I/O 1. 教师讲解原理,并示范操作
  36. 学生理解相关概念 理论:2 8 MySQL数据库访问分析 1. 数据库原理及接口分析
  37. 数据访问 1. 教师讲解原理,并示范操作
  38. 学生理解相关概念 理论:2 9 SOCKET网络开发 1. 套接字的概念
  39. TCP传输
  40. UDP传输
  41. 多点通讯(广播,多播) 1. 教师讲解原理,并示范操作
  42. 学生理解相关概念 理论:2 10 网络应用服务开发原理 1. TCP/IP协议层分析
  43. OSI七层详解
  44. 以太网拓扑结构
  45. 创建原始套接字接口
  46. 实现简单的网络层和传输层 1. 教师讲解原理,并示范操作
  47. 学生理解相关概念 理论:2 11 Linux内核 1. Linux内核版本
  48. Linux内核实现的功能
  49. Linux内核源码简介
  50. Linux内核配置、编译
  51. 在Linux内核中添加自己的代码 1. 教师讲解原理,并示范操作
  52. 学生掌握内核配置、编译 实验: 进行内核配置、编译 理论:2 实验:2 12 添加系统调用 1. 系统调用原理
  53. 添加测试系统调用 1. 教师讲解原理,并示范操作
  54. 学生理解原理 实验: 添加测试系统调用程序 理论:2 实验:2 13 内核模块 1. Linux内核模块
  55. 模块参数 1. 教师讲解原理,并示范操作
  56. 学生掌握编译内核模块 实验: 编译内核模块并加载 理论:2 实验:2 14 proc文件系统 1. 只读型proc文件
  57. 读写型proc文件
  58. Seq_file文件 1. 教师讲解原理,并示范操作
  59. 学生理解 理论:2 15 内存管理 1. Buddy子系统和Slab子系统简介
  60. 在Linux内核中分配内存的方法 1. 教师讲解原理,并示范操作
  61. 学生理解内容 理论:2 16 字符驱动 1. 内存设备
  62. LED驱动
  63. 看门狗驱动
  64. PWM驱动
  65. 等待队列 1. 教师讲解原理,并示范操作
  66. 学生掌握编写字符驱动 理论:2 17 中断 1. 中断处理
  67. 外部中断
  68. WDT中断
  69. 中断下半部分
  70. 中断控制 1. 教师讲解原理,并示范操作
  71. 学生理解中断原理 理论:2 18 驱动 1. 输入设备驱动
  72. USB驱动
  73. 网络设备驱动 1. 教师讲解原理,并示范操作
  74. 学生掌握驱动编写 实验: 编写简单驱动程序 理论:2 实验:2

附录五:Android底层开发实践课程划分及学时分配 序号 知识单元 课程内容 教学方法及实践内容 参考学时 1 Android系统相关工具 1. 应用程序开发工具

  1. 框架开发工具
  2. 交叉编译工具
  3. 内核开发工具 1. 由教师示范、指导
  4. 学生独立安装工具并了解工具如何使用。 实验:搭建开发环境 理论:4 实验:6 2 Android系统相关环境库 1. Dalvik虚拟机
  5. JNI的架构
  6. Boot Loader 1. 由教师示范、指导
  7. 学生搭建环境 实验: 学生搭建环境 理论:2 实验:2 3 Android驱动程序讲解 1. Android驱动概述
  8. Android NDK编程 1. 由教师示范、指导
  9. 学生了解基础概念 理论:4 4 Android驱动程序设计 1. HAL_legacy和HAL对比
  10. HAL module 架构分析
  11. HAL实现流程
  12. Android系统Camera实现
  13. Android系统WIFI实现 1. 由教师示范、指导
  14. 学生了解Android系统中的HAL层 实验: Android系统Camera实现、WIFI实现 理论:4 实验:4

5 底层开发相关技术介绍 1. 底层开发相关技术概览

  1. 底层开发相关开发流程 1. 由教师示范、指导
  2. 学生了解开发流程 理论:2 6 基于Zynq的Android移植 1. 主机开发环境的搭建
  3. Linux内核的编译
  4. Android文件系统的编译
  5. SD卡的准备以及Android系统的启动 1. 由教师示范、指导
  6. 学生小组协作完成Zynq的Android移植 实验: 完成Zynq的Android移植 理论:2 实验:4 7 基于pcDuino的Android移植 1. pcDuino介绍
  7. 环境搭建
  8. 编译内核
  9. 编译Android
  10. 烧录镜像 1. 由教师示范、指导
  11. 学生小组协作完成pcDuino的Android移植 实验: 完成pcDuino的Android移植 理论:2 实验:4 8 Android LED驱动设计 1. 硬件原理
  12. Linux驱动设计
  13. Android HAL层驱动
  14. 硬件服务层
  15. App应用编写 1. 由教师示范、指导
  16. 学生小组协作完成LED驱动 实验 完成LED驱动 理论:3 实验:4 9 针对Android系统的内核跟踪与测试 1. 使用平台简介
  17. 测试环境的建立
  18. 测试工具
  19. Android内核调试与性能测试 1. 由教师示范、指导
  20. 学生了解Android系统的内核跟踪与测试 实验: Android系统的内核跟踪与测试 理论:3 实验:4

第三部分 移动应用课程设置建议书——智能终端方向

编著单位: 武汉大学 武汉科技大学 武汉理工大学 河南大学 湖北汽车工业大学

1 智能终端方向建设背景 1.1 建设背景 随着网络在中国的建设不断加速,主流的公共网络呈现出移动化、宽带化的特点;而移动网络的接入设备,也从传统的智能手机,逐渐扩展到移动智能终端、各种智能硬件;以物联网为代表,物物相联、人物相联成为未来的必然发展趋势。随着网络本身构建的丰富,接入硬件类型同样越来越多,对相关的开发要求也越来越高。从传统的定制化,逐步发展到需要与网络类型、应用需求、智能硬件的具体要求进行更深度的结合,以满足具体应用场景的需要。作为移动终端基础软件的操作系统,既需要提供高效的硬件管理和友好的用户接口,又需要为应用软件的开发提供良好的支撑环境,能够支持高容量、高质量、宽带、智能、多媒体等特征,是告诉发展的关键所在。 Android正在适应网络和硬件的发展,从智能手机到智能移动终端、可穿戴设备、智能家居、物联网、车载电子等,其应用范围越来越广泛。由于新的网络条件、新的应用场景、新硬件和新应用需求的不断出现, Android的开发方向也越来越多,开发要求呈现出不同层次的需要,对人才的需求也表现出多样化的需要。而如何培养Android的开发人才,则成为高校人才培养需要解决的重要问题。目前,在Android的移动应用开发、底层操作系统开发等方面已经初步进行了课程的建设,出现了一批具有代表性、能够成为课程建设示范的优秀课程,满足了Android发展的部分需要。 随着硬件和应用领域的扩展,智能终端已经从传统意义上以智能手机和平板电脑等为代表的终端扩展到具有更广泛意义上的终端类型;其主要特征表现为具有定制性的硬件基础平台,以及与定制性硬件平台所适应的定制性系统软件平台,从而服务于日益细分的应用场景。如可穿戴设备已经走进了人们的生活,车载电子、电动汽车能行业也是国家发展的重点领域,此外,智能终端等更是物联网上层数据云逻辑运行的数据获取和反馈控制的直接对象,对智能终端的研究和教学设置,具有及其重要的实际意义。 作为主流的智能终端操作系统,Android得到了广泛的应用,并由于其开放性而成为定制性系统软件的主要原型对象;而进行Android系统的定制,则需要大量的人才,这正是高校相关课程的主要目标。 智能终端课程将结合谷歌对Android的推广需求和教学需要,针对智能终端方向的技术的发展趋势,紧跟Android的发展方向,以Android平台的特征为核心,以基于Android的开发为导向,结合Android产业链的各类上下游企业的技术服务特点,提出了建立Android智能终端方向的课程建设规范,从新的角度来进行Android智能终端课程建设的设计,为Android的开发培养出大量的优秀人才。 2 人才培养目标和任务 2.1 智能终端课程建设人才培养目标 智能终端课程建设的人才培养目标为:结合谷歌对Android的推广需求和教学需要,针对智能终端相关技术的的发展趋势,建立起智能终端课程建设的体系结构,为高校智能终端相关课程、Android系统定制相关内容的课程建设提供课程设计的指导,从而更加有效的开展高校智能终端相关方向的人才培养。 2.2 智能终端课程建设任务 Android智能终端方向课程建设的任务如下:

  1. 对既有的Android课程建设经验进行总结与分析
  2. 对Android的课程建设方向进行分析,并为智能终端方向确立相应的课程知识点范围
  3. 从智能终端课程建设的角度,进行课程建设规范的拟定,形成正式的智能终端课程建设指南 3 智能终端方向课程建设方案 3.1 课程体系设计 3.1.1 智能终端课程建设在Android课程建设中的定位 从Android的应用场景进行分析,可以将相关的内容分为如图3 1所示的4个方向,分别为:
  4. 嵌入式硬件。以智能硬件的设计与开发为主,在硬件基础上关注驱动程序的移植、优化。
  5. 操作系统软件。以操作系统本身的研发为主,重点关注于操作系统对底层硬件的支持,操作系统的优化,操作系统向上提供的支撑。
  6. 移动应用软件。主要是直接面向用户,进行软件的开发;其着重点在于UI设计、应用创新等。
  7. 物联网。通过不同的网络协议,将各种不同的接入设备连接起来;其着重点在于互联互通。

图3 1 与Android相关的开发方向

从上述方向可以发现,已经可以完全覆盖从硬件到系统软件到应用软件,最后由物联网实现连通的全部内容,形成了全面有序的结构。 与Android相关的课程建设与4个方向相关联:与Android相关的硬件平台及其系统软件支持,与Android相关的智能终端及其操作系统级开发,与Android应用相关的移动应用开发,与Android相关的物联网方向,如图3 2所示。其中,4个方向关注的内容分别为:

  1. 嵌入式系统方向。该方向为与Android相关的硬件平台及其系统软件支持,主要教学内容是与嵌入式系统相关的处理器体系结构、指令集、硬件构成,以及与此相关的驱动程序、操作系统移植等。
  2. 智能终端。该方向为与Android相关的智能终端、操作系统级开发及其平台之上的应用软件开发,主要教学内容是覆盖不同智能终端的Android系统定制等系统级开发和应用软件开发。结合智能终端如可穿戴设备、车载电子等应用场景进行技术归类和思维引导。
  3. 移动应用开发。该方向为与Android应用相关的移动应用开发,主要教学内容为以Android终端的最终用户为目标,进行应用的设计与开发,强调设计方法与实现的方法。
  4. 物联网。该方向为与Android相关的物联网方向,主要教学内容为以各种接入设备为节点,将其通过网络连接在一起,构建出完整的物联网应用基础环境。

图3 2 与Android相关的课程建设方向 3.1.2 智能终端方向课程体系

序号 课程名称 建议 学分 课程性质 前置课程 建议 开设学期 专业 1 嵌入式系统 3 专业必修 计算机组成原理 4、5或6 计算机及相关专业 2 嵌入式操作系统 3 专业必修 程序设计基础(C语言) 嵌入式系统 操作系统 计算机组成原理 5或6 计算机及相关专业 3 Android程序设计 2 专业必修 或 专业选修 Java 数据结构 3、4、5或6 计算机及相关专业 4 车联网技术 2 专业选修 计算机网络 无线传感网 嵌入式系统 5或6 计算机及相关专业 5 汽车电子 2 专业选修 嵌入式系统 5或6 计算机及相关专业

3.2 核心课程内容 3.2.1 前置课程内容 智能终端方向课程的主要前置课程主要如下图3 3所示:

图3 3 前置课程 3.2.2 智能终端方向课程的主要课程内容 智能终端方向以面向Android的智能终端为目标,主要教学内容关注于Android系统本身的各种开发与优化。由于Android应用的范围较为广泛,智能终端方向的教学子方向和教学内容结构如图3 4所示。

图3 4 智能终端方向课程建设

基本教学子方向有六个,分别是可穿戴计算、车载电子、智能移动终端、嵌入式智能终端和其他智能终端,关注到目前发展的热点应用方向。与之形成交叉的是若干教学内容层次,包括智能终端硬件急促、智能终端网络、驱动程序移植与优化、操作系统内核与代码优化、节能/调度策略等、操作系统GUI、智能终端应用等。这些教学内容既是基本的教学内容,具有一定的独立性;同时也可以与具体的子方向相结合,形成交叉性的教学内容。这就使得课程设计既可以以既有的教学设计为基础,进行课程建设,又能够具有实际的应用方向,体现出理论教学、实验教学和实践教学的综合性。

3.3 核心课程的主要内容 3.3.1 基本课程结构 核心课程的主要内容可以分为三个部分,分别是与具体应用方向相关的内容、具体硬件平台相关的内容、Android系统定制或应用开发相关的内容。基本教学内容如下图3 6所示。

图3 5 智能终端课程基本内容

其中,应用方向概述主要介绍与课程所在领域相关的内容;整体架构部分主要介绍与具体应用领域相关的软硬件架构;硬件基础平台部分介绍具体的智能终端硬件构成。上述三部分是与具体课程的开设情况相关。也可以不与具体的应用方向关联,直接针对一般的智能终端进行设计。例如,以开设较多的嵌入式系统相关课程为例,如对原有课程进行改造,则可以在应用方向部分对智能终端及其应用进行介绍;然后阐述其软硬件的架构;接下来介绍某种或者某类平台的硬件构成。 Android系统定制主要介绍与Android系统层面开发相关的内容。开发实例则是以Android系统定制部分所介绍的内容为基础,进行综合性案例开发过程的介绍。根据课程内容的安排,也可以将案例融合到Android系统定制部分当中。 Android应用开发框架主要关注于在基本硬件平台基础之上的Android应用开发。在基本硬件平台基础上,介绍如何针对相应的智能终端硬件平台,进行应用的定制与开发。 Android系统定制与Android应用定制在具体课程内容的安排,具有三种关系。在课时允许时,可以同时开设,贯穿Android系统的系统级开发与应用级开发;在课时受限时,根据具体课程设计情况,选择Android系统定制或者Android应用定制作为课程内容。 3.3.2 Android系统定制的主要内容 Android系统定制部分的主要内容,主要涵盖了如下图3 6所示的部分。其中系统开发案例A是指通过综合性实验来进行案例介绍;系统开发案例B则是通过将案例进行切分,融合到各个知识点内容当中

图3 6 Android系统定制基本内容

3.3.3 Android应用定制的主要内容 Android应用定制部分的主要内容,主要涵盖了如下图3 7所示的部分。其中应用开发案例A是指通过综合性实验来进行案例介绍;应用开发案例B则是通过将案例进行切分,融合到各个知识点内容当中。由于在智能终端方向上,与硬件平台具有较为密切的关系,需要针对平台进行定制,因此在Android应用定制的内容当中,可以适当的结合Android系统级开发中的内容,进行扩展与优化方面的介绍。

图3 7 Android应用定制基本内容

3.3.4 核心课程主要教学内容

序号 课程名称 主要课程内容 1 嵌入式系统 本课程通过介绍嵌入式系统,让学生能够对智能终端的硬件设备具有基本的了解,熟悉嵌入式系统的体系结构,了解主流的嵌入式指令集,以特定的硬件平台来熟悉嵌入式系统的硬件接口并能够编程进行操作。本课程的主要章节结构如下:

  1. 嵌入式系统概述 本章主要介绍嵌入式系统的基本情况,嵌入式系统的发展,嵌入式系统的产品范围,以及嵌入式系统的发展趋势等内容。
  2. 嵌入式体系结构 本章以ARM体系结构为主,介绍目前主流的嵌入式体系结构,包括其片上的架构、处理器模式、主要的寄存器等。
  3. 指令集 本章介绍ARM指令集,分别介绍ARM指令和Thumb指令,具体对指令设计及其主要指令进行分析。
  4. 硬件平台 本章主要介绍某种具体的硬件平台,包括其引脚、各个类型的接口及其使用方法等。
  5. 案例介绍 本章以第3章和第4章的内容为基础,通过一个较为完整的案例来介绍给定硬件平台的情况下,如何来实现对硬件资源的了解、并通过指令来进行控制。

2 嵌入式操作系统 本课程主要以Android为示范,来介绍嵌入式系统中所使用的操作系统,主要内容涵盖了嵌入式操作系统内核、存储管理、设备管理等,也介绍嵌入式系统的系统级开发,包括Android系统软件的开发环境、驱动移植、操作系统移植等。本课程的主要章节结构如下:

  1. 嵌入式操作系统概述 本章介绍嵌入式操作系统的概念,主要特点,与桌面操作系统的主要区别,并介绍主流的嵌入式操作系统。
  2. Bootloader 本章介绍嵌入式操作系统中的Bootloader,包括其基本概念、作用 。
  3. 硬件抽象层 本章介绍硬件抽象层(Hardware Abstraction Layer)。
  4. 嵌入式操作系统内核与驱动程序 本章介绍嵌入式操作系统(Android)的内核设计、文件系统和驱动程序等。
  5. 嵌入式操作系统级开发环境 本章介绍为基于ARM的硬件平台和Android进行底层开发所需要的开发环境。
  6. 嵌入式软件调试 本章主要介绍系统环境下的嵌入式调试环境
  7. 系统级开发案例 本章通过案例来具体介绍以Android为基础的操作系统级别的开发方法。 3 Android程序设计 Android是移动计算领域的基础软件平台,本课程针对以Android操作系统为基础进行嵌入式应用开发方法的讲授。课程以基于Android操作系统的开发为主要内容,涵盖了Android开发的主要方面。课程还提供了与各部分内容对应的实验,以及综合性实验。通过课程学习,学生将掌握Android开发理论和技术,包括Android操作系统的基本理论, Android开发环境和开发流程,Android组件及其应用方法,Android数据与存储管理,Android移动多媒体程序设计,Android网络程序设计等。
  8. Android平台概述 本章是Android平台概述,主要是Android的基本内容。
  9. Android的基本框架和组件 本章介绍Android的基本框架和组件。
  10. Android开发环境 本章介绍Android开发环境。
  11. Android应用界面设计 本章介绍Android应用界面设计。
  12. Activity的使用 本章介绍Activity的使用。
  13. Android Service组件 本章介绍Android Service组件。
  14. Intent与Broadcast Receiver 本章介绍Intent与Broadcast Receiver。
  15. Android数据管理 本章介绍Android数据管理。该部分介绍Android上提供的存储方式以及每种方式适应的开发背景。
  16. Android上的LBS服务 本章介绍Android上的LBS服务。
  17. Android网络程序设计 本章介绍Android网络程序设计。
  18. Android系统级扩展与优化 本章介绍基础的Android系统级扩展与优化内容。 4 车联网技术 本课程主要介绍车联网相关技术,通过本课程的学习,学生能够了解车联网的基本概念、车联网中所使用的网络技术、智能终端、智能终端操作系统,并能够熟悉进行车联网应用开发的方法。
  19. 车联网技术概述 本章主要介绍车联网的基本概念,车联网的发展等。
  20. 车联网系统架构 本章主要介绍车联网的系统架构,包括车联网系统的主要层次结构及其构成。
  21. 车联网关键技术 本章主要介绍车联网中所使用的主要关键技术,包括传感器技术、车辆定位技术等。
  22. 车载智能终端软硬件平台 本章主要介绍车联网中车载智能终端的软硬件平台。
  23. 车联网应用开发 本章主要介绍车联网系统中以智能终端为基础的应用开发。 5 汽车电子 本课程主要介绍汽车电子相关技术,通过本课程的学习,学生能够了解汽车电子的基本概念、汽车电子中所使用的网络技术、智能终端、智能终端操作系统,并能够熟悉进行车载系统的应用开发的方法。
  24. 汽车电子概述 本章主要介绍汽车电子的基本概念,汽车电子的发展等。
  25. 车载智能终端硬件平台 本章主要介绍汽车电子所使用的车载智能终端硬件平台。
  26. 车载智能终端软件平台 本章主要介绍汽车电子所使用的车载智能终端软件平台。
  27. 车载智能终端软件开发 本章主要介绍汽车电子所使用的车载智能终端软件开发方法。
  28. 车载智能终端软件开发案例 本章通过案例来具体详细的介绍车载智能终端软件开发过程。 注:具体课程教学内容可根据实际教学情况进行定制。 3.4 教学案例设计 教学案例分成两个类别,分别如下: 序号 课程名称 教学案例设计内容 1 知识点案例 1. 与各个知识点相对应,针对在课程中出现的知识点,进行教学案例的设计,为对应的知识点提供具体的案例定制,体现该知识点的内容和特点
  29. 案例之间可以相对独立
  30. 案例应有完整的描述,至少包括: (1) 案例名称 (2) 案例基本描述 (3) 案例实现指导文档 (4) 案例源代码 2 整体案例 1. 与课程整体内容对应,进行教学案例的设计,为整个课程提供一个完整的案例定制,体现课程的内容和特点
  31. 案例能够涵盖主要的若干知识点
  32. 案例应有完整的描述,至少包括: (1) 案例名称 (2) 案例基本描述 (3) 案例实现指导文档 (4) 案例源代码 3.5 教学队伍 教学队伍由具备高级职称的教师作为课程组负责人,具有如下的教师分工: 序号 类别 分工 备注 1 负责人 1. 课程体系/课程的整体设计
  33. 课程主讲教师 专任教师 2 课程主讲 1. 参与课程体系设计
  34. 具体课程的设计或者参与设计
  35. 课程的主讲 专任教师或 聘任教师 3 实践设计 1. 负责或参与课程的实践设计
  36. 主持课程的实践 实践包括了实验和课程之外的相关实践工作 4 实验设计 1. 课程实验的设计
  37. 课程实验的指导
    5 实验指导 1. 课程实验的指导
    6 网络辅导 1. 在线辅导和答疑
  38. 在线资源的建设 可由研究生(助教)担任 3.6 实践设计 3.6.1 课程设计 提供若干可供选择的课程设计题目。建议课程设计的时间不少于1周。每个题目的基本设计内容设计如下:
  39. 题目
  40. 设计内容
  41. 设计要求;
  42. 软件环境;
  43. 硬件环境;
  44. 参考资料;
  45. 设计报告要求。 3.6.2 课程实习/生产实习/毕业实习 课程应安排不少于10天的生产实习,用于实践。生产实习的安排大纲参考如下:
  46. 生产实习目标
  47. 项目名称
  48. 项目时间
  49. 生产实习对象
  50. 项目计划
  51. 项目内容介绍

3.7 教学方式方法 在课程教学过程中,既要发挥教师“教”的重要作用,更要发挥学生“学”的主体作用,让“教”与“学”充分融合,调动学生学习的主观能动性,引导学生主动的思考。 教学融合的教学方式。课程教学内容的介绍由浅入深,在此基础上让学生进行自由充分;学习过程由简到繁,由学生进行自主的分析以提高学习效率,同时由教师亲自示范和讲解,形成学生学习与教师教学之间的有机结合,提高学习效率。 互动式课堂教学方式。在教学过程中,为课堂讨论设计出讨论题目,由学生以个人或者团队方式进行主题发言。主题发言需要学生在课前查阅大量的资料,进行细致的准备。课堂上则需要回答教师或者其他学生的提问。从而形成教师与学生、学生与学生之间积极有效的互动。 邀请业界专家学者进行教学。邀请来自兄弟院校、业界的专家学者参与到课程教学当中,进行Android系统等方面的讲解,从而使得学生能够从兄弟学校学者和业界专家那里获得基于Android的智能终端开发的知识。 科学的考核方式。为了培养具备理论与实践相结合的能力的学生,提高学生的创新能力,考核方式既注重理论,也注重实践;既注重考试,也注重平时成绩;既注重课堂学习,也注重创新。课程的一般建议考核方式如下,根据具体的课程设计进行调整: (1) 考试:50%; (2) 实验考试:20%; (3) 平时实践:20%; (4) 课堂讨论:10%; (5) 创新实践(参考性考核指标):20%。 (6) 对于积极参与科研项目的学生,符合第二课堂评分要求的,给予第二课堂学分。 教学效果跟踪与反馈。在教学过程中开展教学效果的调查,了解学生对课程内容的掌握情况。通过对调查结果的分析,总结中教学中需要改进的地方,从而对课程教学进行不断的完善。 通过课程门户提供丰富的网络资源。网络是当前获取信息的主要手段。为相关课程建立专门的课程门户网站。通过课程门户来提供丰富的网络资源,为学生学习创造良好的条件。

3.8 课程建设特点 智能终端方向课程建设的特点为: (1) 实践与理论结合 智能终端方向具有丰富的课程内容和应用内容。在进行课程建设时,首先强调坚实的理论基础,然后以理论的理解为依托,提供了完整的实践方案设计。实践方案与课程的具体知识点和整体内容均由良好的结合,从而形成理论与实际结合,融会贯通。 (2) 与具体的应用结合 智能终端方向在实际的行业等方面具有丰富的应用基础。智能终端方向的课程建设突出了与实际应用的结合。通过课程内容与实践设计,将工程应用与高校教学相结合,既培养了扎实的基础理论和基本的实践能力,也加深了学生对应用领域的具体理解。 (3) 案例化教学 智能终端方向的课程设计,强调案例设计与在教学中的应用。通过案例来具体化课程内容,从而能够让学生更好的理解和掌握知识内容并以此为依据进行实践。 4 建设成果衡量 4.1 建设成果衡量方法 4.1.1 课程设置

  1. 课程定位 课程设置符合专业人才培养目标,构成专业培养方案的重要环节,与前、后续课程衔接得当,对培养学生的职业能力培养和职业素养养成起主要支撑或明显促进作用。
  2. 课程设计 以专业能力培养为中心,将智能终端方向的理论与技能培养体现在课程当中,与行业企业合作进行基于工作过程的课程开发与设计,充分体现职业性、实践性和开放性的要求。 4.1.2 教学内容
  3. 教学内容设置 根据应用领域和专业能力培养的需要,来进行教学内容的设置,使之既满足专业岗位的能力和素质要求,又能够与学生的发展需要相契合,具有可持续发展的潜力。
  4. 教学内容组织 教学内容以学生综合素质的培养为中心,符合知识学习的一般规律,理论与实践能够有效的进行融合,教学目标明确,教学资源与教学内容相互结合,教学环节设计合理。
  5. 实践体系设计 实践体系设计符合教学目标的要求,实践环节具有一致性,课程除正常的实验外,还设置了课程设计、生产实习、毕业实习等相关的实习实训环节。
  6. 教学资源 教材适应教学的需要,提供较为完善的课件、讲义、习题、案例、导学和实习实训项目资料等;在此基础上能够自行或者合作编写课程的教材,提供课程网站。 4.1.3 教学方法与手段
  7. 教学方法 强调理论与实践的结合,创新教学理念,在保证课堂教学的基础上,通过“翻转课堂”、“MOOC”、“微课”等多种形式扩展教学,形成课堂内外教学的有机结合。
  8. 教学手段 根据课程内容和学生特点,丰富教学手段,引导学生积极思考、乐于实践,提高教学效果。 4.1.4 教学效果
  9. 教学评价 校外专家、校内督导及学生的评价;实训、实习产品能够体现应用价值;专业学科竞赛获奖率高。
  10. 社会评价 学生实际动手能力强,就业企业的评价高,课程对应或相关的职业资格证书或专业技能水平证书获取率高。 4.2 建设成果衡量指标 建设成果衡量指标如下: 序号 衡量点 衡量指标 衡量标准 1 课程设置 1.1课程定位 课程设置符合专业人才培养目标,构成专业培养方案的重要环节,与前、后续课程衔接得当,对培养学生的职业能力培养和职业素养养成起主要支撑或明显促进作用。 1.2课程设计 以专业能力培养为中心,将智能终端方向的理论与技能培养体现在课程当中 1.3校企合作 与行业企业合作进行基于工作过程的课程开发与设计 建有校企合作基地 2 教学内容 2.1教学内容设置 根据应用领域和专业能力培养的需要,来进行教学内容的设置,使之既满足专业岗位的能力和素质要求,又能够与学生的发展需要相契合,具有可持续发展的潜力。 2.2教学内容组织 完备的教学大纲、教学日历 2.3实践体系设计 具有: 课程设计、生产实习、毕业实习环节 或其他实践方式

    2.4教学资源 具有: 课件、讲义、习题、案例、导学和实习实训项目资料 编写或者合作编写教材 建有课程网站 3 教学方法与手段 3.1教学方法 具有可观测的教学方法描述 发表相关的教学论文或者提供相关的报告 3.2教学手段 具有可观测的教学手段描述 4 教学效果 4.1教学评价 校外专家评价 校内督导评价 学生评价 代表性实训、实习产品 国家、省和校级创新项目 学生取得创新成果 专业学科竞赛获奖 4.2社会评价 就业企业的评价 职业资格证书或专业技能水平证书获取

5 附录:Android系统定制课程参考设计 5.1 理论课时内容参考设计 5.1.1 第1章Android移植与驱动开发基础 本部分主要介绍嵌入式系统中Android移植与驱动开发的基本内容,主要包括对驱动的介绍,对Android与Linux关系的介绍,Linux内核的体系结构,与Android相关的Linux内核内容,如何对Linux内核源代码进行分析。 1.1 什么是驱动 本节介绍驱动的主要概念。在本节中,通过对驱动的基本概念的介绍,来引入驱动的概念,并以此为基础引入嵌入式系统中的Android驱动程序概念。 1.2 Android与Linux关系 本节主要介绍Android与Linux的关系。Android是以Linux为基本内核的操作系统平台,但是Android与Linux并不是完全的等价关系。因此,需要对两者之间的关系进行阐述。 1.3 Linux内核概述 本节对Linux内核的基本情况进行概述。首先是Linux内核的体系结构;其次是Linux内核的主要特点,及其与嵌入式系统之间的相关性;最后介绍Android系统所采用的Linux内核中相关联的内核特征。 1.4 Linux内核源代码分析方法 本节介绍如何对Linux内核源代码进行分析。首先阐述源代码的目录结构,然后介绍要分析Linux源代码需要使用哪些工具;然后引入Linux内核源代码中高级语言与汇编语言进行源代码混合编程的情况;最后介绍Linux内核源代码分析的具体方法。 5.1.2 第2章Android移植与驱动开发概述 本部分在上述内容的基础上,对Android移植与驱动开发进行概述,目的是从整体建立起Android移植与驱动开发的整体框架,然后在后续章节中再进行详细的阐述。 2.1 Android移植与驱动开发简介 该部分对Android的系统开发做综述性质的介绍,主要介绍 Android的系统架构,Android源代码的开发环境,Android源代码的获取和提交,Android源代码结构,源代码编译,系统的运行等内容。 2.2 Android内核与驱动程序 该部分主要介绍Android的内核结构与驱动程序。以Android的Linux内核为基础,介绍Android的内核构成、存储管理、进程调度等操作系统中关键模块的原理;介绍Android的驱动程序特点。 首先是对Android内核原理进行详细阐述。以Android的内核为基础,介绍Android的设计,包括Android的内核设计、Android的存储管理、程序管理、网络通信、系统安全等。目的是使开发者对Android内核有全面深入的了解,为系统开发打好基础。 然后介绍Android驱动程序。分析Android下驱动程序的特点。在移动计算环境下,设备种类非常丰富,因此开发者需要了解Android平台下驱动程序的特点,为驱动程序的开发/移植做好准备。 2.3 Android的底层库与环境 该部分主要介绍Android底层库与环境,包括了Android底层库和程序的结构,Andoird底层提供的工具和工具库,Java虚拟机和Java环境等。 首先介绍底层库和程序的结构。主要介绍本地实现的基本结构与增加本地程序和库的方法,目的是使开发者学习和掌握Android底层库的内容。 然后介绍Andoird底层工具和工具库。主要介绍标准C/C++库bionic,C语言工具库libcutils,init可执行程序,Shell工具和C++工具库libutils等底层工具和工具库。 最后对Android的Java虚拟机和Java环境进行介绍。主要介绍Dalvik虚拟机和核心库,Android的Java程序环境,JNI的使用,系统服务的Java部分等内容。 2.4 Android的移植概述 该部分主要介绍如何进行Android的移植,包括了Android内核的移植和Android驱动程序的开发/移植相关方法的介绍。 5.1.3 第3章Android源代码分析 本部分介绍如何对Android源代码进行具体的分析。 3.1 开发环境的搭建 本节介绍如何搭建linux开发环境,并对环境变量进行设置,以及如何安装Linux的编译工具。 3.2 Android源代码分析 本节介绍如何获取Android源代码,Android源代码的结构,如何对Android源代码进行分析,以及如何在已经搭建好的开发环境下对Android源代码进行编译。 3.3 Android内核编译 本节介绍如何对Android内核进行编译。首先是如果获取Goldfish、MSM和OMAP内核代码,然后介绍编译Android内核的具体方法。 3.4 模拟器 本节介绍如何在Linux开发环境下对模拟器进行使用,以及相关的adb工具的使用方法。 5.1.4 第4章 驱动移植的目标 本部分对Android驱动移植的目标进行分析。 4.1 驱动开发的具体工作 本节对驱动工作需要进行的具体工作进行分析,为之后的开发工作奠定基础。 4.2 Android移植的任务 本节对Android移植的任务、内容和驱动开发的任务进行介绍。 4.3 Android对Linux的改造 本节分析Android所采用的Linux内核的具体修改,包括所修改的文件;并分析如何为Android构建基于Linux的内核。同时,本节也会介绍在内核空间与用户空间之间的接口。 4.4 驱动程序类别 本节介绍Android驱动程序的类别。包括了字符设备驱动程序,块设备驱动程序和网络设备驱动程序。 5.1.5 第5章 HAL层 本部分对HAL层进行分析,包括对其基本概念的介绍,对其源代码和使用方法的分析,对传感器与HAL层关系的分析等。 5.1 HAL层概念 本节对HAL层基本概念进行分析,并对HAL层的源代码进行高层分解与分析。 5.2 HAL的使用方法 本节介绍如何使用HAL来达到软硬件隔离的目标。 5.3 传感器与HAL层的关系 本节介绍Android所支持的传感器如何在HAL层进行工作,分解与分析器代码。 5.1.6 第6章 面向处理器的驱动解析 本部分介绍针对不同的处理器,其驱动的特点。 6.1 Goldfish驱动解析 本节介绍Goldfish处理器下各种驱动的分析。 6.2 MSM驱动解析 本节介绍MSM处理器上的内核,并对主要设备驱动进行解析。 6.3 OMAP驱动解析 本节介绍OMAP处理器上的内核,并对主要设备驱动进行解析。 5.1.7 第7章 Android多媒体框架 该部分主要对Android多媒体程序设计进行介绍。课程首先引入Android多媒体技术,介绍Android系统中的多媒体关键技术;然后分别对Android多媒体中的SDK多媒体组件和第三方多媒体核心OpenCore进行阐述;最后讲解如何利用Android多媒体中的SDK多媒体组件进行开发。 7.1 Android多媒体技术基础 该部分将对Android的多媒体技术进行整体上的初步介绍,包括Android多媒体在整个Android系统中的位置、Android多媒体技术的设计、基本架构等。 7.2 Android SDK多媒体组件 该部分主要对这些组件进行了介绍,包括了Android MediaPlayer,Android MediaRecorder,Android VideoView,Android SurfaceView等,同时还对Android多媒体的底层代码进行分析和介绍。 7.3 OpenCore 该部分介绍Android多媒体框架中的OpenCore。OpenCore是由第三方提供的、为Android多媒体框架实现的核心。所有Android平台的音视频采集,播放的操作都是通过OpenCore来实现的。 5.1.8 第8章 显示系统驱动移植与开发 本部分对显示系统及其驱动进行分析和介绍。 8.1 显示系统概述 本节对Android显示系统进行分析。 8.2 显示系统驱动程序分析 本节对显示系统的FrameBuffer驱动程序和硬件抽象层进行分析。 8.3 显示系统驱动程序的实现 本节介绍显示系统驱动程序的具体实现方法。 5.1.9 第9章 输入系统驱动移植与开发 本部分对Android输入系统驱动的移植与开发进行分析和介绍。 9.1 输入系统介绍 本节介绍输入系统的基本情况。 9.2 驱动移植与开发 本节介绍如何进行输入系统驱动的移植与开发。 5.1.10 第10章 振动器系统驱动移植与开发 本部分对振动器系统驱动的移植与开发进行分析和介绍。 10.1 振动器系统结构 本节对振动器的系统结构进行介绍。 10.2 振动器系统驱动移植与开发方法 本节对振动器系统驱动实际的实现方法进行介绍。 5.1.11 第11章 音频系统驱动移植与开发 本部分对Android音频系统驱动的移植与开发进行分析和介绍。 11.1 音频系统结构 本节介绍音频系统的结构与层次。 11.2 音频系统驱动移植与开发方法 本节介绍音频系统驱动移植与开发方法。 5.1.12 第12章 视频输出系统驱动移植与开发 本部分对Android视频输出系统驱动的移植与开发进行分析和介绍。 12.1 视频输出系统结构 本节介绍视频输出系统结构。 12.2 视频输出系统驱动移植与开发方法 本节介绍视频输出系统驱动移植与开发方法。 5.1.13 第13章 传感器系统 本部分对Android传感器系统的移植与开发进行分析和介绍。 13.1 传感器系统结构 本节介绍传感器系统的结构。 13.2 传感器系统移植方法 本节介绍传感器系统的移植方法。 5.1.14 第14章 相机系统 本部分对Android相机系统的移植与开发进行分析和介绍。 14.1 相机系统结构 本节介绍相机系统的结构。 14.2 相机系统移植方法 本节介绍相机系统的移植方法。 5.1.15 第15章 网络系统 本部分对Android网络系统的移植与开发进行分析和介绍。 15.1 Android网络系统 本节介绍Android网络系统的结构,包括Wifi,LAN与蓝牙。 15.2 网络系统移植方法 本节介绍网络系统的移植方法。 5.1.16 第16章 电话系统 本部分对Android电话系统的移植与开发进行分析和介绍。 16.1 电话系统基础 本节介绍电话系统的结构。 16.2 电话系统移植 本节介绍电话系统的移植方法。 5.1.17 第17章 Android系统扩展开发与性能优化 17.1 NDK开发工具 该部分主要介绍如何利用原生的C/C++(NDK)和Python、Lua等脚本语言(Android Scripting Environment)来开发Android应用,对Android开发进行拓展。 首先是AndroidNDK简介。这里对Android NDK的基本情况进行介绍。然后介绍NDK开发环境的系统和软件需求,如何进行NDK开发环境的搭建以及如何在搭建好的开发环境中进行NDK程序开发。接下来主要介绍Android的脚本环境,如何安装Android脚本环境以及如何编写Android脚本程序。 17.2 Android程序性能优化方法 该部分主要介绍Android程序性能优化方法,包括性能优化基本知识,性能评测与分析方法,性能优化方法和Android的高效程序设计方法。将系统移植、驱动开发与应用开发联系在一起。 5.2 理论课时的学时安排与授课方案 智能终端方向的课程可设计为2学分或者2学分以上,按每学分16学时计,一般在32学时以上。其中,2学分(32学时)的参考学时安排及其授课方案如下: 表5 1 2学分(32学时)的学时安排与授课方案 序号 内 容 学 时 1 课程内容概述 1 2 整体架构概述 1 3 硬件平台 6 4 Android移植与驱动开发基础 1 5 Android移植与驱动开发概述 1 6 Android源代码分析 1 7 驱动移植的目标 1 8 HAL层 2 9 面向处理器的驱动解析 1 10 Android多媒体框架 2 11 显示系统驱动移植与开发 1 12 输入系统驱动移植与开发 2 13 振动器系统驱动移植与开发 2 14 音频、视频系统驱动移植与开发 2 15 传感器系统、相机系统 2 16 网络系统、电话系统 2 17 Android系统扩展开发与性能优化 2 18 综合案例 2 合计 32

5.3 实验课时内容参考设计 实验根据课程所安排的内容进行设计,与前述教学内容对应的参考实验设计下: 实验1: 查看Android系统下的驱动程序文件; 实验2: 下载Linux内核源代码; 实验3: 使用工具浏览Linux内核源代码; 实验4: 分析Android内核结构; 实验5: 分析Android存储管理等; 实验6: 安装vmware虚拟机; 实验7: 安装unbuntu系统; 实验8: 配置ubuntu系统; 实验9: 安装交叉编译器; 实验10: 获取Android源代码; 实验11: 编译Android源代码; 实验12: 编译Android内核; 实验13: 编译uboot; 实验14: SD卡烧写Bootloader; 实验15: SD卡烧写Android系统 实验16: 为Android构建Linux内核; 实验17: 分析内核空间与用户空间接口; 实验18: 分析HAL层源代码; 实验19: 分析HAL层传感器相关代码; 实验20: 分析Goldfish下staging驱动; 实验21: 分析Goldfish下Ashmem驱动; 实验22: 分析Goldfish下Pmem驱动; 实验23: 分析Goldfish下Alarm驱动; 实验24: 分析Goldfish下USB Gadget驱动; 实验25: 分析Goldfish下设备驱动; 实验26: 分析MSM下的设备驱动; 实验27: 分析OMAP下的设备驱动; 实验28: 分析Android多媒体中OpenMax IL层接口; 实验29: 实现OpenMax IL; 实验30: 分析FrameBuffer驱动; 实验31: 分析显示系统HAL; 实验32: 实现显示系统驱动; 实验33: 实现触摸屏驱动; 实验34: 实现键盘驱动; 实验35: 实现振动器驱动程序; 实验36: 实现音频驱动; 实验37: 实现视频输出系统驱动; 实验38: 实现传感器系统驱动; 实验39: 实现相机系统驱动; 实验40: 实现网络系统驱动; 实验41: 实现电话系统驱动; 实验42: NDK开发环境搭建; 实验43: NDK程序开发实例; 实验44: Android脚本环境安装; 实验45: Android脚本编写实例; 实验46: Android程序性能评测与分析实例; 实验47: Android界面优化; 实验48: Android多媒体优化实例; 实验49: 针对实验平台移植Android系统。

6 附录:Android应用定制课程参考设计 6.1 理论课时内容参考设计 6.1.1 第1章 Android平台概述 该部分主要是概述Android的基本内容,包括智能手机系统软件平台的发展历程、Android的发展历史、Android的特点、Android的系统架构、Android与其他相关平台的比较。具体包括:

1.1 智能手机系统软件平台的发展历程 随着无线网络的不断发展和硬件性能的不断提升,用户需求也发生了巨大的变化,这就需要适合于新的应用环境的面向智能手机的新型系统软件。而这种趋势是将操作系统进行进一步提升,从而产生了平台化趋势。这是Android本身的研发背景。Android正是新的智能手机软件平台的典型代表。 Android的发展历史 Android是由Google在Linux的基础开发出的嵌入式系统软件平台,在其开发过程中经历几次版本的变迁;每次版本变迁Android都增加了新的特性。目前最新的版本是Android 2.2。 Android的特点 Android提供了对移动设备的完整支持,是开源开放的系统。Android 具有全面的计算服务和丰富的功能支持,不仅能够应用于智能手机,而且具备了扩展到其他移动设备上的能力。 Android的系统架构 Android提供了一个分层的环境,自顶至下分为:Android应用程序层;应用程序框架层;系统库层;Android运行时库;Linux内核层等五个层次。Android系统架构旨在使学习者了解Android的基本构成。 Android与其他相关平台的比较 Android能够在众多的智能手机平台中脱颖而出,是由于它具有比较优势。该部分主要是通过对比,介绍Android相对其他平台的优势。 注:可以展示几款基于Android的手机,并展示手机上的应用。

1.2 Android开发环境 进行Android开发需要了解Android开发环境的搭建。该部分主要介绍在Windows和Linux平台上搭建Android开发环境的过程。通过该部分的学习,可以自己顺利的搭建起开发环境,做好进行Android开发前的准备。 Android开发准备 向开发者介绍进行Android开发时,对系统的要求;同时也介绍Android的软件开发包以及一些从事Android开发的注意事项。 Windows开发环境搭建 介绍Windows下基于Java的开发环境的搭建。包括了JDK安装、Eclipse安装和Android安装的方法及其基本使用方法。 Linux开发环境搭建 介绍Linux下基于Java的开发环境的搭建。包括了JDK安装、Eclipse安装和Android安装的方法及其基本使用方法。

1.3 Android SDK 该部分主要介绍Android SDK的基本概念,Android SDK当中包含的内容,Android SDK的用途,Android SDK相关的文档。具体包括: Android SDK概述 介绍什么是Android SDK,对SDK做一个概念上的说明;同时,介绍如何获得SDK包,使得开发者能够对Android SDK有初步的基本了解。 Android SDK内容 介绍Android SDK为开发者提供的内容,包括Android SDK的目录结构,SDK提供的工具,SDK相关的文档及其使用方法等。并初步的介绍SDK的核心开发包和可选开发包。

1.4 Android程序设计基础 该部分主要介绍进行Android程序设计所需要掌握的一些基本知识,基本内容包括:Android内核,Android应用程序结构,Android基本组件和Android Market。具体包括: Android内核 Android由Linux改进而来,又与Linux有较大的差别。这里主要介绍Android内核的架构和其基本特点,使开发者能够对底层的Android机制有基本了解。 注:此处对Android内核仅做简单介绍,详细部分将在“7 Android系统”中进行介绍。 Android应用程序结构 为了进行Android开发,开发者需要掌握Android应用程序的结构,对Android应用程序有整体上的了解,从而帮助开发者学习和了解Android应用程序开发的方法。主要介绍Android应用程序中的关键构成:Activity 活动组件,Intent Receiver 接受处理组件,Service 服务组件,Content Provider 内容提供组件。 Android基本组件 主要介绍Android中使用的基本组件,包括了对前一部分提到的核心组件的进一步详细介绍,与Andoird开发中的用户人机界面的基本组件和相关的控件,具体包括了视图组件(View),视图容器组件(Viewgroup),布局组件(Layout)和布局参数(LayoutParams)等以及一些具体的控件。 Android Market Android Market给开发者提供了自由上传的工具。开发者所自行开发的Android软件可以经由Android Market发布并被购买,给开发者提供良好的软件发布平台,因此,此处介绍与Android Market相关的内容,包括如何创建Android Market帐号,如何使用Android Market等。
6.1.2 第2章 Android多媒体程序设计 该部分主要对Android多媒体程序设计进行介绍。课程内容从多媒体技术基础开始,介绍多媒体技术的基础知识,并对移动多媒体的特点进行分析;在此基础上,引入Android多媒体技术,介绍Android系统中的多媒体关键技术;然后分别对Android多媒体中的SDK多媒体组件和第三方多媒体核心OpenCore进行阐述;最后讲解如何利用Android多媒体中的SDK多媒体组件进行开发。

2.1 多媒体技术基础 多媒体是计算机的重要应用领域。移动多媒体则是多媒体在移动计算领域的具体应用。该部分主要是对多媒体中的音频、视频、图像等多媒体的基本媒体形式进行介绍,包括一些基本的算法和标准;并对移动多媒体的特点及其在智能手机领域的应用特点进行介绍。该部分目的是使开发者能够对多媒体技术具有一定的了解,从而更好的学习和掌握移动多媒体的内容。具体包括: 多媒体技术概述 主要介绍多媒体的定义及其表现形式。多媒体是利用计算机技术对多种媒体形式的组合,既包含了声音和图像,也可以包含其他的媒体形式。多媒体技术包括了音频、视频的编解码,图像压缩/解压缩,媒体同步,多媒体网络等关键技术,是Android多媒体程序设计的基础内容。 移动多媒体 主要介绍移动多媒体的定义、表现形式及其特点。移动多媒体是多媒体技术在移动领域中的应用。由于与传统的桌面应用领域相比,移动终端具有显示范围小、硬件资源有限等特点,其关键技术也具有独特之处。

2.2 Android多媒体技术基础 移动多媒体是多媒体在移动计算领域的拓展。随着智能手机硬件的不断发展、网络带宽的提高和用户需求的变化,为智能手机用户提供移动多媒体相关的服务正在成为该领域的主要应用之一。该部分将对Android的多媒体技术进行整体上的初步介绍,包括Android多媒体在整个Android系统中的位置、Android多媒体技术的设计、基本架构等。 Android多媒体支持 主要介绍Android系统中对多媒体提供的支持,在Android整体架构中,多媒体部分的地位及其与Android其他部分的关系。 Android多媒体技术 主要介绍Android多媒体技术的构成。该部分主要从整体上对Android的多媒体技术进行阐述,包括了Android SDK多媒体组件、Android 多媒体框架和OpenCore各自的主要特点及其之间的关系。

2.3 Android SDK多媒体组件 Android SDK为多媒体开发提供了组件。该部分主要对这些组件进行了介绍,包括了Android MediaPlayer,Android MediaRecorder,Android VideoView,Android SurfaceView等,同时还对Android多媒体的底层代码进行分析和介绍。 Android 多媒体组件 主要介绍Android MediaPlayer,Android MediaRecorder,Android VideoView,Android SurfaceView等Android SDK多媒体组件的实现原理,对其代码结构进行较为详细的分析,并对其各自的特点进行总结和对比。 Android多媒体的底层代码分析 主要包括了Android多媒体中的libmedia的框架部分,多媒体部分的JNI代码和多媒体部分的Java框架代码。

2.4 OpenCore 该部分介绍Android多媒体框架中的OpenCore。OpenCore是由第三方提供的、为Android多媒体框架实现的核心。所有Android平台的音视频采集,播放的操作都是通过OpenCore来实现的。该部分的内容具体包括: OpenCore结构 主要介绍OpenCore的结构和OpenCore与Android多媒体框架的关系。OpenCore由不同的层次构成,为Android多媒体框架提供基础的多媒体API的核心实现。OpenCore是一个基于C++的实现,定义了全功能的操作系统移植层,各种基本的功能均被封装成类的形式,各层次之间的接口多使用继承等方式。 OpenCore OSCL 主要介绍OpenCore的OSCL(Operating System Compatibility Library,操作系统兼容库)。OSCL中包含了一些操作系统底层的操作,是为了更好地在不同操作系统间进行移植。该库中包含了基本数据类型、配置、字符串工具、IO、错误处理、线程等内容,类似一个基础的C++库。 OpenCore PVMF 主要介绍OpenCore PVMF(PacketVideo Multimedia Framework,PV多媒体框架)。PVMF在框架内实现一个文件解析(parser)和组成(composer)、编解码的NODE,也可以继承其通用的接口,在用户层实现一些NODE。 PVPlayer Engine 主要介绍OpenCore的PVPlayer引擎,是用于PVPlayer的引擎。PVPlayer提供媒体播放器的功能,完成各种音频(Audio)、视频(Video)流的回放(Playback)功能。 PVAuthor Engine 主要介绍OpenCore的PVAuthor引擎,是用于PVAuthor的引擎。PVAuthor提供媒体流记录的功能,完成各种音频(Audio)、视频(Video)流的以及静态图像捕获功能。 文件格式处理和编解码 主要介绍OpenCore对多媒体文件格式处理和编解码。在多媒体方面,文件格式的处理和编解码(Codec)是很基础的两个方面的内容。多媒体应用的两个方面是媒体的播放(PlayBack)和媒体的记录(Recording)。在媒体的播放过程中,通常情况是从对媒体文件的播放,必要的两个步骤为文件的解析和媒体流的解码。在媒体的记录过程中,通过涉及到视频、音频、图像的捕获功能。对于将视频加音频录制成文件功能,其过程与播放刚好相反,首先从硬件设备得到视频和音频的媒体流,然后对其进行编码,编码号的流还需要被分层次写入到文件之中,最终得到组成好的文件。 OpenCore的代码结构 主要以开源Android的代码为例来介绍OpenCore的代码结构,OpenCore的代码默认在external/opencore/当中,包含了多个库、相关工具和文件;同时,对OpenCore的编译结构进行分析,厘清其库的层次关系;对libopencorecommon.so、libopencoreplayer.so、libopencoreauthor.so库的结构进行分析。

2.5 使用组件进行Android多媒体开发 该部分主要介绍如何使用组件进行Android多媒体进行移动多媒体程序的开发,将对Android的多媒体框架进行详细的阐述;并对Android MediaPlayer,Android MediaRecorder,Android VideoView,Android SurfaceView等组件的使用方法进行介绍。具体如下: Android多媒体框架 主要介绍Android多媒体框架的构成,对该框架进行分析。Android多媒体框架将Android上与多媒体相关的组件集合在一起,提供丰富的功能。同时,第三方也可以提供相关的组件为Android开发所用。该部分将初步介绍Android多媒体框架中组件与OpenCore的关系。 Android MediaPlayer MediaPlayer是Android多媒体架构中最为重要的组成部分。Android的MediaPlayer包含了Audio和video的播放功能,在Android的界面上,Music和Video两个应用程序都是调用MediaPlayer实现的。此处主要介绍MediaPlayer的基本内容,分析以开源的Android为例的MediaPlayer的代码,如何使用MediaPlayer为Android开发视频播放程序。 Android MediaRecorder MediaRecorder是Android多媒体架构中与MediaPlayer相对应的,包含了Audio和video的记录功能,在Android的界面上,Music和Video两个应用程序都是调用MediaRecorder实现的。此处主要介绍MediaRecorder的基本内容,分析以开源的Android为例的MediaRecorder的代码,如何使用MediaRecorder为Android开发多媒体音视频采集的程序。 Android VideoView Android VideoView是由Google提供的、Android内置的音视频播放控件。VideoView可以支持多种媒体格式,并且Google持续在Android的不同版本中对VideoView进行了改进。此处主要介绍VideoView的实现机制及其在开发程序时的使用方法。 Android SurfaceView Android SurfaceView也是为多媒体服务的,用于需要在另外的线程绘制界面、需要迅速的更新界面或者渲染UI界面需要较长的时间的情况。此处主要介绍SurfaceView的实现机制及其在开发程序时的使用方法;同时,也会介绍VideoView与SurfaceView的差异性。 6.1.3 第3章 Android数据管理 3.1 Android数据存储概述 该部分介绍Android上提供的几种存储方式以及每种方式适应的开发背景,使得开发者可以对Android的数据存储有整体上的了解。Android采用多种的数据存储方式来应对移动计算中的不同应用背景,在Android中,可供选择的存储方式有SharedPreferences、文件存储、SQLite数据库方式、内容提供器(Content provider)。

3.2 Android基本存储方式 该部分介绍了Android提供的最基本的数据存储方式:SharedPreferences。介绍如何使用SharedPreferences存取数据,数据的存储位置和格式,以及如何设置数据文件的访问权限。

3.3 Android文件存储 该部分主要介绍Android提供的利用文件形式进行数据存储的方式。Shared Preferences存储方式非常方便,但是其只适合存储比较简单的数据。Android中提供了openFileInput 和 openFileOuput 方法读取设备上的文件。该部分将对如何使用Android提供的方法进行文件存取进行介绍。

3.4 Android数据库 该部分主要介绍如何在Android上使用数据库进行数据的存取。在Android中,Android主要提供了SQLite数据库。此处将对SQLite数据及其在Android上的开发方法进行介绍。具体包括: SQLite数据库概述 主要介绍SQLite数据库管理工具,创建数据库和表的方法,SQLite数据库中的模糊查询,分页显示记录的方法,SQLite数据库中的事务。 Android中的SQLite开发方法 主要介绍Android提供的SQLiteOpenHelper类,Android的自动升级数据库, SimpleCursorAdapter类与数据绑定,数据库与应用程序的关联,SQLite的日志系统等内容。

3.5 内容提供器(Content provider) 在Android中,Android提供的内容提供器(Content provider)用来存储和检索数据,通过它可以让所有的应用程序访问到。该部分主要介绍Android提供的内容提供器(Content provider); 如何创建和使用内容提供器(Content provider)。 6.1.4 第4章 Android上的LBS服务 4.1 LBS服务的基本原理与应用 LBS(Location-Based Services)基于位置的服务,又称定位服务或位置服务。LBS是融合了GPS定位、移动通信、导航等多种技术,提供与空间位置相关服务的一项综合应用业务。该部分主要将LBS的基本概念介绍给开发者。

4.2 Android的LBS服务基础 Android拥有众多的与LBS有关的服务,包括Google搜索服务、Google地图服务等多项可与Android进行协同的LBS内容。该部分主要介绍Google各项LBS的基本概念,并将介绍Android对LBS服务的支持。

4.3 Android的LBS开发支持 Android提供了LBS开发所需要的API,通过这些API,Android程序能够获得手机当前的位置,例如可以通过GPS来获取位置信息。在这些位置信息基础上,结合Google搜索、Google地图等,可以提供各种基于位置的服务。

4.4 Android的LBS开发方法 该部分介绍如何进行Android的LBS程序开发,包括了如何设计LBS程序的UI、如何进行数据库设计、如何实现基于位置的服务功能等LBS程序开发的全部过程。具体包括: LBS程序的设计 主要介绍在Android上进行LBS程序设计时,如何根据需求来对LBS程序进行高层的设计。 LBS程序UI设计 主要介绍如何为LBS程序设计用户接口。 数据存储实现 主要介绍如何在LBS程序中设计数据库,包括数据库及表结构的设计或者采用其它Android存储方式的设计。 程序的实现 主要介绍如何对LBS程序进行实现,包括工程创建、功能实现、测试完善等。 6.1.5 第5章 Android网络程序设计 5.1 Android蓝牙 该部分主要介绍Android的蓝牙相关的开发,如何使用蓝牙进行Android程序开发,包括了对蓝牙技术的介绍,Android平台上蓝牙设备的打开和关闭,Android平台上蓝牙设备的搜索,基于蓝牙的通信方式以及如何使用Android API进行Android蓝牙开发。

5.2 Android Wi-Fi 该部分主要介绍Android上对Wi-Fi的支持,主要包括对Wi-Fi技术的介绍,Android提供的相关API介绍,使用Wi-Fi API进行开发的方法。

5.3 Android Internet程序设计 该部分主要介绍Android与Internet相关的程序开发,主要包括了Android的网络组件,Android的Http访问,Android的Socket通信,Android Widget开发等。具体如下: Android的网络组件 主要介绍Android上的基本网络组件,包括可装载网络数据的组件,WebView组件等,以及使用这些组件进行网络开发的方法。 Android的Http访问 主要介绍Android上如何访问Http资源,采用的Http访问方式,并介绍Android提供的Http访问类以及如何使用WebService。 Android的Socket通信 主要介绍什么是基于Socket的通信,Android上的Socket通信基础内容以及如何在Android上进行Socket通信相关的开发。 Android Widget开发 Widget是Android提供的小工具,允许程序显示一些常用而又重要的信息在用户的屏幕上,标准的Android系统映像包含了指针时钟、音乐播放器和其他工具如Google搜索栏。此处主要介绍什么是Widget,Android上使用的Widget分类,以及如何开发Widget。 6.1.6 第6章 Android 动画与OpenGL开发 6.1 Android上的2D动画 该部分主要介绍Android开发中的2D动画的原理与开发方法,包括了对2D动画基本概念、帧(Frame)动画的介绍、Android AnimationDrawable, Android 补间(Tween)动画等。具体包括: 2D动画基本概念 主要介绍二维绘图功能,并对2D动画的概念做介绍,使得开发者对2D动画有整体概念上的认识。 Android AnimationDrawable 主要介绍什么是帧(Frame)动画,什么是Android AnimationDrawable,帧(Frame)动画与Android AnimationDrawable的关系,如何使用Android AnimationDrawable进行动画的开发。 Android 补间(Tween)动画 主要介绍什么是Android 补间(Tween)动画,Android 补间(Tween)动画的基本原理,如何使用Android 补间(Tween)动画进行Android动画开发。同时,将对Android AnimationDrawable和Android 补间(Tween)动画进行区分比较。

6.2 OpenGL基础 OpenGL是个专业的图形程序接口,是一个功能强大,调用方便的底层图形库,支持OpenGL的软件具有很好的移植性。该部分主要介绍OpenGL的基本原理,包括其发展情况、基本内容和基本程序设计方法。通过这些基本内容的介绍,使得开发者了解OpenGL及其开发方法,为进行Android上的OpenGL开发打好基础。

6.3 Android OpenGL应用开发 该部分主要介绍如何在Android上使用OpenGL进行程序开发,在Android上进行开发,使用的是OpenGL ES即OpenGL的嵌入式版本。具体包括: OpenGL ES概述 主要介绍什么是OpenGL ES,它与OpenGL之间的关系;如何构建OpenGL ES的基本开发框架。 2D图形绘制 主要介绍在Android上如何使用OpenGL ES进行2D图形的绘制,包括了2D图形中的多边形绘制,图形颜色和图形的旋转。 3D图形绘制 主要介绍在Android上如何使用OpenGL ES进行3D图形的绘制,包括了旋转立方体,纹理映射,光照和事件,粒子系统,蒙版和变形等 6.1.7 第7章 Android系统开发 7.1 Android系统开发综述 该部分对Android的系统开发做综述性质的介绍,主要介绍 Android的系统架构,Android源代码的开发环境,Android源代码的获取和提交,Android源代码结构,源代码编译,系统的运行等内容。

7.2 Android内核与驱动程序 该部分主要介绍Android的内核结构与驱动程序。以Android的Linux内核为基础,介绍Android的内核构成、存储管理、进程调度等操作系统中关键模块的原理;介绍Android的驱动程序特点。主要包括: Android内核原理 以Android的内核为基础,介绍Android的设计,包括Android的内核设计、Android的存储管理、程序管理、网络通信、系统安全等。目的是使开发者对Android内核有全面深入的了解,为系统开发打好基础。 Android驱动程序 Android下驱动程序的特点。在移动计算环境下,设备种类非常丰富,因此开发者需要了解Android平台下驱动程序的特点,为驱动程序的开发/移植做好准备。

7.3 Android的底层库与环境 该部分主要介绍Android底层库与环境,包括了Android底层库和程序的结构,Andoird底层提供的工具和工具库,Java虚拟机和Java环境等。 具体包括: 底层库和程序的结构 主要介绍本地实现的基本结构与增加本地程序和库的方法,目的是使开发者学习和掌握Android底层库的内容。 Andoird底层工具和工具库 主要介绍标准C/C++库bionic,C语言工具库libcutils,init可执行程序,Shell工具和C++工具库libutils等底层工具和工具库。 Android的Java虚拟机和Java环境 主要介绍Dalvik虚拟机和核心库,Android的Java程序环境,JNI的使用,系统服务的Java部分等内容。

7.4 Android的移植 该部分主要介绍如何进行Android的移植,包括了Android移植开发平台的搭建,Android内核的移植和Android驱动程序的开发/移植。该部分以实验为主。具体包括: Android移植开发平台的搭建方法 对Android进行移植,需要采用具有交叉编译能力的开发平台。此处介绍Android移植开发平台的搭建方法,为后续的移植/开发做准备。 Android内核与驱动移植/开发方法 介绍Android移植开发平台的搭建方法;介绍Android内核的移植方法,面向不同的硬件平台时,如何对Android内核进行修改;介绍如何对驱动程序进行分析和移植。 6.1.8 第8章 Android扩展开发与性能优化 8.1 NDK开发工具 该部分主要介绍如何利用原生的C/C++(NDK)和Python、Lua等脚本语言(Android Scripting Environment)来开发Android应用,对Android开发进行拓展。具体包括: AndroidNDK简介 在前述内容中,主要是以Java为开发语言。这里对Android NDK的基本情况进行介绍。 NDK开发环境安装和配置 主要介绍NDK开发环境的系统和软件需求,如何进行NDK开发环境的搭建以及如何在搭建好的开发环境中进行NDK程序开发。 Android脚本环境 主要介绍Android的脚本环境,如何安装Android脚本环境以及如何编写Android脚本程序。

8.2 Android程序性能优化方法 该部分主要介绍Android程序性能优化方法,包括性能优化基本知识,性能评测与分析方法,性能优化方法和Android的高效程序设计方法。具体包括: 性能优化基本知识 主要介绍进行Android开发时,编写Android程序时获得高效代码的基本方法,包括编写代码的规范、编写时的注意事项等。 性能评测与分析方法 主要介绍完成Android程序开发后,如何对程序的性能进行评测,并在评测结果基础上对性能进行分析,例如分析程序的计算性能、资源消耗等。这是进行性能优化的基础。 性能优化方法 主要介绍如何根据性能评测与分析结果,找出程序的性能瓶颈,并对程序代码进行改进,以提高程序性能。 高效程序设计方法 主要介绍在进行Android开发时,常用的高效程序开发技术,通过实例展现此类技术的应用对Android程序性能的改进。 6.2 理论课时的学时安排与授课方案 智能终端方向的课程可设计为2学分或者2学分以上,按每学分16学时计,一般在32学时以上。其中,2学分(32学时)的参考学时安排及其授课方案如下: 表6 1 2学分(32学时)的学时安排与授课方案 序号 内 容 学 时 1 课程内容概述 1 2 整体架构概述 1 3 硬件平台 6 4 Android平台概述 2 5 Android多媒体程序设计 2 6 Android数据管理 4 7 Android LBS 2 8 Android网络程序设计 4 9 Andorid动画与OpenGL 4 10 Android系统级开发 2 11 Android扩展与性能优化 2 12 综合案例 2 合计 32 6.3 实验课时内容参考设计 第1章 Android平台概述实验 实验1: Windows操作系统下的Android开发环境搭建; 实验2: Linux操作系统下的Android开发环境搭建; 实验3: Android SDK的简单实例分析; 实验4: Android SDK文档的获取和指定条目的分析; 实验5: Android内核代码分析试验;*可选 实验6: Android应用工程创建; 实验7: Intent等关键组件实例; 实验8: Android应用界面布局实例; 实验9: Android Market帐号的创建与使用;

第2章 Android多媒体程序设计实验 实验10: OpenCore代码分析; 实验11: 内置媒体图片获取; 实验12: 利用Camera的拍照程序设计开发; 实验13: 使用Android MediaPlayer API播放音视频; 实验14: 使用Android MediaRecorder API记录音视频; 实验15: 使用Android VideoView API播放音视频; 实验16: 使用Android SurfaceView API播放音视频; 实验17: Android录音程序设计开发; 实验18: Android多媒体播放器设计开发; 实验19: 在线播放器设计开发; 实验20: 3GP影片播放器设计开发;

第3章 Android数据管理 实验21: 使用SharedPreferences存取数据实例; 实验22: 使用文件存取数据实例; 实验23: 基于SQLite数据库的联系人管理开发实例; 实验24: 内容提供器(Content provider)的创建和使用实例;

第4章 Android上的LBS服务 实验25: 基于Google Map的LBS程序设计实例;

第5章 Android网络程序设计 实验26: 基于蓝牙的程序开发实例; 实验27: 基于Wi-Fi的程序开发实例; 实验28: 基于网络组件的开发实例; 实验29: 基于Socket的开发实例; 实验30: Android Widget开发实例;

第6章 Android 动画与OpenGL开发 实验31: Android AnnimationDrawable动画开发实例; 实验32: Android 补间(Tween)动画开发实例; 实验33: OpenGL ES的基本开发框架构建; 实验34: 2D图形绘制实例; 实验35: 3D图形绘制实例;

第7章 Android系统开发 实验36: Android源代码获取; 实验37: 底层工具和工具库使用实例; 实验38: 建立Android移植开发平台; 实验39: Android内核驱动的开发/移植; 实验40: 驱动程序移植;

第8章 Android扩展开发与性能优化 实验41: NDK开发环境搭建; 实验42: NDK程序开发实例; 实验43: Android脚本环境安装; 实验44: Android脚本编写实例; 实验45: Android程序性能评测与分析实例; 实验46: Android界面优化; 实验47: Android多媒体优化实例;

第9章 综合应用开发实验 实验48: Android多媒体播放套件开发,该套件包含:UI、录音、录像、音视频播放、图像浏览等功能。

第四部分 移动应用课程设置建议书——物联网方向

编著单位: 厦门大学 兰州大学 北京大学 集美大学 闽南师范大学 莆田学院 厦门理工学院

  1. 应用背景和建设意义

物联网是信息技术发展到一定阶段的必然产物,是新一代信息技术的重要组成部分,它将互联网扩展到物体之间,形成物物相连的互联网(Internet of Thing,简称IOT)。考虑到物联网的巨大潜能,越来越多的国家将发展物联网列为重要的战略部署,在全球掀起物联网的热潮。与此同时,随着移动互联网的快速发展,智能手机和平板电脑的快速普及,移动终端成为人们获取信息联接世界的重要手段。同样,可以预见的是随着移动互联网的发展,在物联网世界中,移动终端将拥有重要的一席之地。从目前主流的移动终端操作系统看,Android已占据了绝大部分的市场份额,这使得基于Android系统的智能移动硬件平台,将成为移动互联网与物联网融合一个重要平台,实现人—机—物三者之间无缝的交互和联接。

  1. 人才培养目标和任务

物联网工程应用的多样性,要求在人才培养上必须注重培养宽口径人才,既要重视基础训练,又要培养应用系统综合开发能力。首先为了迎合市场对物联网人才的需求,在人才培养方向上,一方面应重视学生动手能力的培养,在教学中引入贴近工业实际应用的实践项目。另一方面,由于物联网涉及的方向非常广阔,在教学中也应注重基础训练,培养学生的创新能力与创新意识,使其能在面对未知领域时能举一反三,活学活用。

  1. 课程体系和课程设置 3.1 课程群体系设置依据 在课程体系设置上,物联网方向的课程体系可以根据物联网的体系结构来进行设置,物联网从架构上看可分为感知层、传输层、应用服务层等三层架构。每一层架构,分别负责不同的功能,各层分工协作形成一个有机融合的物联网系统。由于物联网应用广泛,系统需根据具体的应用选择不同的技术实现,因而物联网所涉及的知识范围相对比较广泛。

物联网方向的课程体系设置应立足于物联网的层级架构结合物联网与移动互联网的最新发展,采用整体到部分,再由部分到整体的方法,先分解再综合的方式来构建。课程体系可以大致分为入门课程、专业基础课程、核心课程和统合课程四类。入门课程让学生了解物联网的整体架构,然后再通过专业基础和核心课程让学生理解物联网的各个组成部分,最后通过综合课程,让学生融会贯通理解掌握物联网整体与部分的关系。在课程讲授过程中建议应理论联系实际,将课程内容和物联网实际应用与最新发展,特别是基于Android系统的移动应用相结合,使学生了解所学知识理论的实际意义。

3.2 课程群体系架构设置

物联网的复杂层级架构意味着它所涉及的知识方面将会比较庞杂,相关的基础课程涵盖计算机科学与技术、电子与信息系统、通信工程以及自动化等专业的知识,学校应根据自身的特点合理设置课程。综合考虑学生的接受能力和教学过程的需要,建议在大学一年级设置入门课程:物联网工程导论。从而使学生较早接触了解物联网概念,并能指导学生对相应课程进行选修。从大学二年级开始,建议陆续开设相关的专业基础课程,在专业基础课程设置中,建议适当考虑与物联网的特点和知识点相结合较为密切的学科,其大致需要覆盖到以下内容:编程基础、数据结构、操作系统、计算机组成与体系结构、计算机网络、数据库原理与技术、 Web信息系统、电路与电子技术、单片机原理、微机与接口、通信原理、数字信号处理等。在大学三年级可以重点安排物联网的核心课程,通过核心课程的学习,为最后的综合课程和毕业设计做知识与技术上的准备。课程设置体系如下图所示:

3.3 课程教材及相关资料 在教材和资料选择上,由于Android和物联网技术发展相对较快,特别是Android的API版本更新速度很快,在教材的选择上应该选择具有最新的教材、并结合Google公司提供的网上文档和视频材料,给学生讲解。对于参考书、期刊出版物、在线数据库等文献资料,也应该选择能反应学科前沿的资料提供给教师和学生,方便他们检索、借阅和查看。同时教材要与课程培养目标相适应,根据课程需要及时进行相应的调整。 3.4 教学队伍设置 在职教师应具有物联网方向的相关专业背景,掌握物联网方向的最新研究动态和理论知识,为了在教学中体现实践性教学的重要性,促使理论教学和实践教学正确定位和有机结合,使实践教学更快更好地开展,同时可以支持在职教师在完成教学任务的同时尽量参与从事相应企业的物联网项目的开发工作,并将具体的项目经验及时运用到实践教学当中,通过这样互补促进,在利于教学的同时,也提高了在职教师的专业实践能力和技术开发能力,为今后的课程进一步改革和提升提供基础。

  1. 核心课程群的主要内容 核心课程群主要包括了物联网工程导论、无线传感网络课程、物联网网关、物联网移动应用开发及物联网综合实训。要使物联网课程更好的推进同时也要考虑到技术革新的速度,因而对于教材的选用、教学手段及教学队伍的建设都提出了新的要求。 4.1 核心课程内容设置

核心课程群的设置应面向移动应用,根据物联网层次架构进行设计。主要课程建议包括传感器技术与无线传感器网络,物联网网关技术、物联网移动应用和物联网工程实训等课程。这些课程分别涉及感知层、传输层、应用层,在设置上应注意课程间的联系,并通过物联网工程实训课程让学生理解和掌握整个物联网的架构。同时考虑到移动互联网的飞速发展,课程应特别注意与移动互联网的结合,目前以Android系统为主要操作系统的移动终端占据了市场的大部分份额,因而在互联网同物联网的结合部分,可以充分考虑使用Android系统作为物联网开发的基础平台。

4.1.1 物联网工程导论 物联网工程导论是物联网方向课程体系中开设的第一门专业基础课,建议本课程理论部分向学生介绍物联网的基本概念、结构体系、实际的应用领域等,实验部分的内容可以根据物联网感知层、传输层和应用层分别设置验证性实验。通过本课程的学习,应使学生掌握物联网的基本概念、全面了解物联网的关键技术,对典型的物联网应用系统有基本的认识,从而建立起物联网系统同移动互联网之间的宏观概念,了解物联网方向课程体系中各课程之间的相互联系,为后续其他专业课程的学习打下基础。 课程主要的知识点包括:物联网的应用、物联网系统结构、传感器数据采集方法与技术、传感器网络、嵌入式网关、物联网通信技术、数据存储与分析、人机接口与移动终端等,物联网工程导论课程的知识点分布如下:

知识点设置

入门部分 本部分内容主要侧重于介绍现阶段物联网国内外的发展现况、物联网产业的发展、物联网的基本概念、物联网的体系构造、并了解物联网涉及的核心技术。

数据采集部分 本部分主要介绍传感器及智能设备的相关知识点,传感器部分主要包括传感器的工作原理、传感器的种类、如何使用传感器以及输出信号的方式,智能设备的介绍主要包括嵌入式设备的介绍、嵌入式的关键技术特点、传感器网络节点的设置等。

数据传输部分 本部分此部分内容主要侧重于数据传输部分,对于刚入学的学生来说比较抽象,所以可以在课程中安排课时对对计算机网络及移动通讯技术进行初期的讲解,通过这部分讲解后再介绍物联网的主要无线网络技术、物联网通信技术基础、物联网的网络协议及应用。 数据处理部分 本部分主要阐述应用层,对物联网的应用方向进行介绍,考虑到移动互联网的飞速发展,建议应在课程中重点突出移动应用方面的特点,重点结合Android系统在移动应用方面的优势来对具体的应用案例进行分析讲解,同时也让学生对于Android系统在移动应用方面有一个初步的了解。 综合应用部分 本部分建议选取物联网的典型案例进行演示介绍,比如智能农业,智能家居等。

物联网导论相应课时设置为:周学时3,总学时数36。 其内容设置如下表所示:

序号 目录 章节内容 学时 1 物联网概述 1. 物联网的定义、特征、应注意的问题; 2.物联网的系统结构;

  1. 移动互联技术在物联网的应用;
  2. 物联网的发展前景; 3 2 传感器技术 1. 传感器概述;
  3. 传感器分类;
  4. 传感器的应用;
  5. 传感技术的发展趋势; 3 3 近距离无线通信技术 1. 无线通信系统概述;
  6. 物联网中常用的通信技术;
  7. 侧重介绍WiFi、ZigBee、蓝牙、NFC区别及适用场合 3 4

射频识别技术 1. 自动识别技术的基本概念;

  1. 常见的自动识别技术及特征比较;
  2. RFID的基本原理;
  3. RFID的应用及研究趋势; 3 5

无线传感网络 1. WSN的概念、特点、发展趋势;

  1. WSN对物联网的作用;
  2. WSN的系统结构,重点突出系统结构中的节点、拓扑网络跟通信协议;
  3. 具体应用领域; 3 6 物联网定位技术 1. 定位技术的概念;
  4. 在物联网中的应用;
  5. 实现定位的几种技术; 3 7 物联网工程与嵌入系统 1. 嵌入式系统的基本概念;
  6. 嵌入式系统的系统结构;
  7. 处理器和操作系统;
  8. 嵌入式系统在物联网中的应用; 3 8 物联网工程软件开发及算法 1. 介绍物联网涉及的软件开发;
  9. 物联网中间件;
  10. 物联网大数据分析及应用; 3 9 Android系统在物联网中的应用 1. Android系统的概述;
  11. Android的特点及优势;
  12. Android在物联网中的应用及发展趋势; 3 10 物联网信息安全 1. 物联网面临的安全问题、特征、需求;
  13. 如何构建物联网的安全体系; 3 11 物联网应用案例展示 1. 国内外典型的物联网工程应用;
  14. 详细介绍若干贴近生活的物联网应用; 6

4.1.2 无线传感网络

物联网课程体系中“无线传感网络”属于非常重要的专业课程。本课程侧重于无线传感网络的构建,以及物联网相关的协议及组网介绍。主要内容包括传感器技术与应用,无线传感器网络的基本概念,网络协议和算法,常见的物联网协议(例如ZigBee、BlueTooth、WiFi、6LowPAN等),常见的组网方式,网络结构设计、测试与优化技术等。通过课程的学习应使学生掌握传感网的原理与应用技术,同时通过一个基于Android系统的无线传感网络的设计案例,来使学生能有更形象的了解,为物联网技术学习打下坚实的基础。

无线传感网络相应课时设置为:周学时3,总学时数48 其内容设置如下表所示:

序号 目录 章节内容 学时 1 无线传感网络概述 1. 物联网与传感网的基本概述和特点;

  1. 传感器与传感网络的关系;
  2. 无线传感网络体系结构:网络结构、节点结构、节点限制、WSN协议栈;
  3. 介绍本课程的教学安排; 3 2 物联网传感及检测技术 1. 常用传感器简介;
  4. 微传感器及MEMS技术;
  5. 传感器的接口技术;
  6. 物联网的几种常见的检测技术;
  7. 检测系统的基本构成及测量误差估计和处理; 6 4 无线传感网络关键技术 1. 物理层关键技术;
  8. 信道接入技术:接入技术概述及典型的MAC协议;
  9. 网络拓扑控制技术:拓扑概述及协议; 4. 数据融合技术; 6 3 无线传感网中的物体标识与定位 1. 条码技术,RFID与条码比较; 2. RFID的原理及特征、组成、工作频率与分类;
  10. 无线测距定位技术的基本方法及定位算法; 6 5 数据通信与路由 1. 介绍数据中心式路由、集群结构式路由、位置信息路由;
  11. 无线传输路由与常用协议; 3. ZigBee、WiFi、蓝牙技术; 6 6 传感网的操作系统 1. 传感网络特点及对操作系统的需求;
  12. 常用的操作系统概述;
  13. 操作系统的设计难点和目标; 3 7 无线传感网络中间件技术 1. 中间件技术概述;
  14. 典型的无线传感器网络中间件,如Impala、TinyDB等; 3 8 无线传感网络信息安全技术 1. WSN中几种常见的威胁;
  15. WSN网络节点安全;
  16. 安全密钥管理机制;
  17. 加密技术及安全技术发展趋势; 3 9 无线传感网络的设计与测评 1. WSN协议框架设计;
  18. WSN路由设计;
  19. WSN协议评测机制;
  20. WSN协议运行与验收; 6 10 基于Android平台的无线传感网络的应用 1. 智能家居中的应用;
  21. 智能建筑中的应用;
  22. 智能农业中的应用; 6

4.1.3 物联网网关技术

在物联网系统中网关承担着重要的作用,是感知层信息向上层传送和处理的关键路径。在大多系统中物联网网关由嵌入式系统承担。本课程与传统嵌入式课程的区别在于,本课程更关注网关节点与传感器节点交互的方法,数据的预处理,以及它与服务器的交互等方面的知识介绍。且由于Android系统的飞速发展,以Android系统为核心的物联网网关技术正在兴起,课程设置时建议应充分考虑这个发展趋势。 课程主要知识点应该包括:嵌入式系统组成,嵌入式操作系统构建,嵌入式程序设计与调试方法,物联网常见接口的原理、驱动及应用程序设计(例如串口、I2C、SPI、GPIO等),嵌入式系统多线程编程,嵌入式网络编程,嵌入式WEB开发,嵌入式数据库应用等。

物联网网关技术相应课时设置为:周学时3,总学时数42 其内容设置如下表所示:

序号 目录 章节内容 学时 1 信息处理技术 1. 信息与信息处理技术基础;

  1. 智能信息处理的主要技术; 3 2 嵌入式开发基础 1. 嵌入式系统的概念; 2. 嵌入式系统的体系结构; 3.嵌入式系统的设计流程; 3 3 嵌入式操作系统 1. 嵌入式操作系统简介;
  2. 掌握Linux操作系统的安装;
  3. 掌握基本的Linux命令与makefile的学习;
  4. 建立交叉编译环境; 3 4 嵌入式Linux开发 1. u-boot简介;
  5. u-boot的网卡驱动移植;
  6. Linux内核配置系统;
  7. 基于busybox的根文件系统的制作、配置NFS;
  8. 内核的裁剪; 6 5 嵌入式系统应用编程 1. 介绍了Linux环境下C语言的编译及调试;
  9. 嵌入式接口编程(包括I/O、I2C、SPI、GPIO等);
  10. 嵌入式进程进行管理,掌握; 6 6 计算机网络 1. 计算机网络的分类与组成;
  11. 计算机网络体系结构;
  12. 应用层常用协议; 3 7 嵌入式Linux的网络编程 1. Linux的网络编程简介;
  13. TCP、UDP等通信协议;
  14. 在Linux下嵌入式Web服务器移植; 6 8 Android系统网络通信 1. 基于TCP协议的网络通信;
  15. 基于UDP协议的网络通信;
  16. 线程间的通信及多线程的通信 6 9 无线传感网络 1. 传感器节点;
  17. 节点硬件电路设计;
  18. 几种广泛使用的无线网络通信技术; 3 10 物联网智能网关综合应用 通过几个实例,介绍物联网智能网关应用系统的一般设计方法和应用方向。 3

4.1.4 物联网移动应用

在物联网系统中移动终端是人与物交互的重要接口,在本课程中除了要介绍基于Android的应用开发外,重点应介绍Android与物联网交互与控制的方式,数据可视化的方法,数据通信的处理等。 主要知识点应该包括:Android体系结构、Android基本组件及其生命周期,UI布局、多线程与消息传递、数据存储、Android网络编程、Android蓝牙编程、Android传感器编程、Android LBS编程等。

物联网移动应用相应课时设置为:周学时3,总学时数36 其内容设置如下表所示:

序号 目录 章节内容 学时 1 Android综述 1. 常见的移动操作系统;

  1. Android平台发展历程及前景展望;
  2. Windows/Linux平台下开发环境搭建; 3 2 Android编程基础 1. Android体系结构介绍;
  3. Android.jar包和内部结构简介;
  4. Android SDK介绍;
  5. Android NDK介绍;
  6. 核心开发工具简介; 3 3 Android应用程序开发 1. “Hello World”程序开发;
  7. 布局设计、Android模拟器运行;
  8. 事件处理、断点设置和Android程序调试工具使用初步; 3 4 Android应用程序结构 1. Android 应用程序结构, Activity、Broadcast and Intent Receiver、Service简介;
  9. Android项目组成;安全与权限机制. 3 5 Android基本组件 1. 熟悉Android基本组件,包括UI 组件 (布局管理器、TextView、AdapterView等)
  10. 其他组件(Toast、Menu、ActionBar等) 3

6 Android的事件处理 1. 介绍监听事件处理;

  1. 回调事件处理及消息的传递机制;
  2. 并了解Activity、Broadcast and Intent Receiver、Service等的功能特点; 3 7 数据存储与共享 1. SharedPreferences和SQLite数据库的存储方式和位置;
  3. 实现使用ContentProvider达到数据共享; 3 8
    Service 和Broadcast
    1. 讲解Service基本概念、Service的使用、Service生命周期;
  4. 跨进程调用service;
  5. 介绍 Android中的Broadcast Receiver基本概念及工作机制; 3 9 Android的网络应用 1. 基于TCP协议的网络通信;
  6. 使用HTTP访问网络资源;
  7. 使用Web Service进行网络编程; 3 10 传感器应用开发及GPS应用开发 熟练掌握Android的几种常用的传感器,并了解如何通过Android的API实现GPS应用开发。 3 11 Android无线通信应用开发 讲授Android系统下WiFi及WiFi Direct的编程,蓝牙通信, GSM的短信收发。 6

4.1.5 物联网工程实训

本课程是一门综合应用实践课程,具体课程安排详见5.1.5,其主要目的是通过物联网的实际应用案例,让学生能够对前期课程所学知识与物联网实际系统之间的联系有感性认识,通过课程的学习,提高学生的工程素养。课程设置建议根据学校的特色,选择一个具体的物联网应用场景展开,其内容可在前期主要核心课程的基础上扩展,综合考虑规模和难度。

  1. 课程实践环节及要求

实践环节着重培养学生的动手能力,这部分主要结合了前期基本的专业课程的知识,对学生提出物联网方向更有针对性的训练,如何将实践环节同理论教学部分结合的更加紧密,就需要在教学方法和相应的学时数来配合。在实践课中将通过基于Android平台,对核心课程的理论部分,进行扩展性的练习,提升学生发现问题,解决问题的能力,同时掌握移动互联网同物联网之间的组网应用。下文对物联网导论和核心课程的实践内容、教学方法及实践基地提出了相应的建议。 5.1 实践教学内容及教学方法 5.1.1 物联网工程导论

本课程的实验针对的是刚入门的学生,对具体技术的要求不应过高。实验课程应以激发学生对物联网的学习兴趣为主,并涵盖理论课程的知识点。 建议实验应采用Arduino之类的开发板和Android实验设备,并使用图形化的编程界面,以降低学习难度。以项目为导向,利用简单的工具,完成一个小型的物联网应用案例,促进学生对物联网系统的理解,并提高学习兴趣。

实验课时配置:总学时:16 , 周学时 :2 实验内容安排如下:

序号 目录 实验内容 学时

1

实验开发板介绍 1. 介绍一款可以构建简单物联网的开发板;

  1. 讲解基础的数字逻辑知识;
  2. 在PC上安装相应的IDE;
  3. 参照示例程序讲解基础的编程语法;
  4. 通过图形化编程在开发板上实现最简单的应用开发;

2 2 开发板管脚及串口通信 1. 了解开发板管脚的功能;

  1. 实现简单的功能组合,使开发板和PC端进行串口通信,实现蜂鸣器、电机、显示屏和蓝牙等模块的应用等。 2 3 实验传感器介绍 1. 介绍几款常见的传感器模块;
  2. 通过智能设备处理传感器采集的数据;
  3. 开发板同传感器进行连接,实现对传感器传回的数据进行读取。 4 4 App Inventror 入门 1. 介绍App Inventor的环境界面及开发环境的搭建
  4. 基本组件的介绍
  5. 开发一个简单的App 4 5 物联网移动应用训练 将开发板同Android系统蓝牙功能进行串口通信,来实现在开发板上的某些特定功能; 4

i. 无线传感网络

本课程的实验应重点让学生理解不同协议和组网方式的几种典型应用,掌握几种不同类型典型传感器的原理及使用方法,并实现基于Android平台的无线传感网络的搭建。课程建议根据教学内容来设计相关的实训项目。 课程实验主要内容应该涉及到无线网络频段特性与接收功率实验、无线网络协议与无线组网实验、网络拓扑监测实验、节点数据采集与处理实验、节点数据收发实验、综合实验等。通过这样的实验内容设置是为了让学生能够学习到传感器的应用的同时也能够掌握接口电路设计、传感器信息采集和传感器信号分析。 本课程实验条件则需要有能支持ZigBee、BT4.0、WiFi、6LoWPAN等网络协议的可烧入Android系统的实验箱并配备有常用的物联网传感器,而常用传感器应该包括:温湿度传感器、光线传感器、人体红外传感器、模拟温度传感器、光敏二极管传感器、三轴陀螺仪传感器、三轴加速度传感器、酒精传感器、空气质量传感器、可燃性气体传感器等。

实验课时配置:总学时:30 , 周学时 :3 实验内容安排如下:

序号 目录 实验内容 学时 1 实验平台介绍 介绍课程所用的实验平台的功能特征和平台参数; 3 2 传感技术应用 介绍实验平台所涉及的传感器,并通过实验平台实现对传感器数据的采集; 3 3 无线传感网络操作系统 安装WSN操作系统,熟悉操作系统的图形界面; 3 4 数据通信关键技术 掌握无线通信芯片的工作原理,掌握点对点通信接口电路并掌握应用编程; 3 5 Zigbee无线网络通信 对Zigbee模块进行介绍,了解zigbee的协议规范,完成对应的Zigbee的网络实验; 3 6 WiFi无线网络通信 对WiFi模块进行介绍,了解IEEE 802.11标准,并完成相应的组网实验; 3 7 蓝牙无线网络通信 了解BLE4.0的协议栈,实现协议栈的组网实验; 3 8 Android传感器编程实验 介绍Android传感器API,掌握Android系统常用传感器的编程,实现环境信息的感知、设备方向及移动状态的感知。 6 9 无线传感网络应用综合实验 完成综合的实验项目; 9

ii. 物联网网关技术

在面向物联网网管技术这门核心课程,首先需要对嵌入式系统具有一定的了解,教学实验应主要以开源的嵌入式Linux或Android系统为主,以课程项目为导向,让学生在嵌入式实验平台上完成一个覆盖相关知识点的物联网嵌入式网关小项目。 本课程实验所需设备至少应能支持Linux、Android系统,并配有丰富的接口和较好的可扩展性,易于连接物联网节点,能够作为网关成为物联网节点,承担与物联网服务端通信以及服务端与节点间的数据交换中介的功能。

实验课时配置:总学时:33 , 周学时 :3 实验内容安排如下:

序号 目录 实验内容 学时 1 实验平台介绍 1. 实验的课程安排;

  1. 介绍实验平台的具体功能和实验参数; 3 2 搭建嵌入式开发环境 1. 搭建开发环境;
  2. 编译Uboot
  3. 基于Uboot用fastboot烧写Android到SD卡
  4. 编译Linux内核
  5. 编译Busybox、配置nfs服务
  6. 挂载网络文件系统; 6 3 嵌入式基础实验 1. 输入输出IO控制;
  7. 定时器计数器实验;
  8. 定时器中断实验;
  9. 串口实验;
  10. ADC实验; 6 4 无线传感网络技术实验 1. 建立网络、加入网络;
  11. 自组织网络、网络拓扑、监控;
  12. 数据采集、点对点通讯实验; 6 5 Android网络通信实验 1. 使用SeverSocket、Socket来建立基于TCP/IP 协议的网络通信;
  13. 使用DatagramSocket、Datagrampacket、MulticastSocket 来建立UDP协议的网络通信 3 6 智能网关综合实验 设计一个基于Android系统的智能网关 9

i. 物联网移动应用

课程实验应以Android为基础展开,综合利用移动终端与物联网节点,通过一个小项目完成移动终端对物联网节点的访问控制,实验内容覆盖课程的主要知识点。

实验课时配置:总学时:33 , 周学时 :3 实验内容安排如下:

序号 目录 章节内容 学时 1 Android开发基础实验 1. Button事件处理 ;

  1. Intent跳转实验;
  2. 利用Bundle 对象进行参数传递; 6 2 数据存储与共享实验 1. 使用 SQLite Database 进行数据存储;
  3. 开发ContentProvider、使用ContentProvider管理联系人; 3 3 Android网络应用实验 1. 使用ServerSocket创建TCP服务器端; 2. 使用Socket进行通信,实现 WiFi模块同系统的通信; 3. 实现外设蓝牙模块同Android系统的通信; 4. 加入多线程; 6 4 传感器应用实验 1. 温度传感器;
  4. 压力传感器;
  5. 方向传感器; 6 5 GPS开发 1. 通过模拟器发送GPS信息;
  6. 获取定位数据; 6 6 Google Map服务 1. 获取Map API Key;
  7. 在地图上定位; 6

ii. 物联网工程实训

物联网工程实训的具体呈现形式可以根据具体需求和就业方向确定,例如:智能家居、智能农业、智能楼宇等。通过实训应让学生进一步理解物联网系统的各个组成部分及相互之间的关系,并掌握物联网系统主要的开发方法。 物联网实训平台应包括物联网应用中的多种常见传感器、具有一定规模的传感网络、控制网络、无线通信网络,集成WEB服务器,可以使用移动终端接入访问。软硬件应有足够的开放程度,能够提供相关软件的源代码,硬件的数据手册,能够让学生根据项目需要修改。实训平台应以开放式,创新式平台为主。

实验课时配置:总学时:36 , 周学时 :3 实验内容安排如下:

序号 目录 章节内容 学时 1 实训要求讲解 向学生介绍实训开展的方式,以及最终的实训成绩的评判标准。 3 2 系统架构设计 通过指导学生构造系统的指示图,了解系统的主要架构,对后面的系统开发有个指示性的计划图。 3 3 开发工具及环境编译 针对实训题目进行硬件选择和配置,并且构建开发工具的环境。 3 4 无线传感网络的选择 根据项目特点,选择相应的通信方式,并进行无线传感网络的组网。 3 5 智能网关的设计 实现Linux系统在网关设备的移植,并实现节点同网关的数据传输。 6 6 移动端Android应用的设计 搭建Android开发环境,进行移动应用开发。 6 7 系统模块整合 对系统的各个模块进行整合调试。 6 8 系统功能的测试 对整个物联网系统进行功能测试,对采集数据精度及最后功能的实现 6

b) 实验条件及实践基地建设

实验课需要配备足够数量的可开展物联网相关实验的设备(至少每次实验应保证2人一台实验设备),并保证良好的运行状态,同时实验室的电脑应安装有必要的实验软件,并保证良好的网络条件。 校内外实践基地应具有良好的实验条件,能够展示物联网的具体应用场景,并提供学生动手实验的机会。基地应配有足够数量,具备相关资质的指导人员。通过实践基地的建设,应能够为学生提供更好的实践条件,提升其项目实践能力和科研能力。实践基地应可以提供具体一定技术难度的实际项目,让学生能将项目同自己的毕业设计相结合,有利于提高学生毕业设计的总体水平。

  1. 课程建设成果衡量方法与指标

a) 课程设置

  1. 课程定位 课程体系符合高技能人才培养目标和专业相关技术领域职业岗位(群)的任职要求;本课程对学生职业能力培养和职业素养养成起主要支撑或明显促进作用,且与前、后续课程衔接得当。
  2. 课程设计 以职业能力培养为重点,与行业企业合作进行基于工作过程的课程开发与设计,充分体现职业性、实践性和开放性的要求。 b) 教学内容
  3. 内容选取 根据行业企业发展需要和完成职业岗位实际工作任务所需要的知识、能力、素质要求,选取教学内容,并为学生可持续发展奠定良好的基础
  4. 教学内容组织 遵循学生职业能力培养的基本规律,以真实工作任务及其工作过程为依据整合、序化教学内容,科学设计学习性工作任务,教、学、做结合,理论与实践一体化,实训、实习等教学环节设计合理。
  5. 表现形式 选用先进、适用教材,与行业企业合作编写工学结合特色教材,课件、案例、习题、实训实习项目、学习指南等教学相关资料齐全,符合课程设计要求,满足网络课程教学需要。 c) 教学方法与手段
  6. 教学设计 重视学生在校学习与实际工作的一致性,有针对性地采取工学交替、任务驱动、项目导向、课堂与实习地点一体化等行动导向的教学模式。
  7. 教学方法 根据课程内容和学生特点,设计实验课程,引导学生积极思考、乐于实践,提高教学效果。 d) 教学效果
  8. 教学评价 校外专家、行业企业专家、校内督导及学生评价结果优良。
  9. 社会评价 学生实际动手能力强,实训、实习产品能够体现应用价值;课程对应或相关的职业资格证书或专业技能水平证书获取率高,相应技能竞赛获奖率高。

编著者名单 合作院校 教师名称 第一章 移动应用开发方向 中山大学 刘宁 浙江大学城市学院 吴明晖 郑州大学 刘成明 第二章 嵌入式系统方向 兰州大学 周庆国 厦门大学 郑灵翔 兰州交通大学 伍忠东 集美大学 杨光松 青海大学 韩亮 第三章 智能终端方向 武汉大学 杨剑锋 武汉科技大学 胡威 武汉理工大学 夏又新 河南大学 陈立家 湖北汽车工业大学 周海鹰 第四章 物联网方向 厦门大学 郑灵翔 兰州大学 周庆国 北京大学 张齐勋 集美大学 邢海涛,杨光松 闽南师范大学 林宣治,王灵芝, 闫格 莆田学院 陈玮,黄朝辉 厦门理工学院 陈旭辉

results matching ""

    No results matching ""