Android教学(共12篇)
Android教学 篇1
1 概述
随着移动互联[1]的飞速发展和智能手机市场占有率的不断提高,移动应用开发渐成热门,其中Android[2]已成为主流移动终端操作系统[3],Android相关人才供不应求,这也促使了An-droid手机开发相关类课程走进了大学课堂,但对这类课程的教学模式的探讨和研究目前仅处于起步阶段。本文根据笔者近几年的教学实践,从学生的认知和接受能力出发对这门课程的教学模式进行探讨。
2《Android手机开发》课程现状分析
目前高校Android手机开发相关课程开设时间不长,无经验可依,教学中或多或少存在一些问题。
首先,重难知识点模糊不清,对该类课程重要知识点的选取,不同层次的院校、IT企业和研发人员理解不一,降低了学生的学习热情。
其次,实践教学环节有待拓展和深化。《Android手机开发》实践性极强[4],但受传统教学模式影响和无先例可循,未能深层次地进行校企合作,与实际开发有一定差异。
课程体系也存在一定的问题。《Android手机开发》属新开设课程,课程体系不够科学,授课教师的教学方法和对这门课程的认知水平也有待提高。
上述存在的问题促使我们必须进行《Android手机开发》课程教学[5]的改革。
3《Android手机开发》教学的改进建议
为了提高学生的Android智能手机软件的开发能力,笔者从多方面对《Android手机开发》的课程教学进行探讨。
3.1 优化Android课程体系
在Android手机开发课程教学过程中,要充分考虑课程体系知识的连贯性和系统性;还要及时掌握Android知识的最新技术并有选择性地将其纳入课程体系,教学内容要强调实践性,提高学生的实践能力。
修订后的《Android手机开发》课程体系当以Android应用为基本架构,教学内容囊括Android编程基础、四大组件[6](Ac-tivity、Service、Broadcast Receiver和Content Provider)开发、动画、图像、多媒体应用、Web编程等要素,涵盖Android开发相关的所有知识点,同时引导学生利用SDK内的开发组件和API,快速开发Android应用程序。
3.2 补充网络学习资源
课时是有限的,有些知识的学习在课堂上难以铺展开,这时补充网络学习资源能填补课堂教学的不足,并且可拓宽学生的知识面。
行之有效的网络Android资源有如下几种。
1)技术论坛或博客。教师在网上搜索一些有关Android开发类的论坛或博客,或自己建立技术博客,将一些疑难问题的解决方案记录下来供学生浏览学习。
2)网络视频课。很多名校提供免费的视频公开课,师生可主动去搜寻与Android相关的视频课,并进行共享,以供学生有选择地自主学习。
3)教学资源平台。学院已为学生构建了一个网络教学资源的平台,这个平台整合了各类学习资源,学生从中能够获得专业课学习资料,并了解专业发展方向。
3.3 教学做有机融合
教学过程在配有多媒体的实验室中进行,教学做有机融合、同步进行,教师采取任务引入的方式开始教学,引导学生主动学习,提高学生的分析问题和动手能力。
为了更好地实现教学做一体化,应该打破传统教学方式,按重难点梳理知识点顺序,挑选一些与实践联系紧密的小案例,在案例开发中掌握相关知识,以便学生在学中做,做中学,更好地掌握Android开发技术。
具备一定的专业素养后,筛选出一些有实际应用的项目,依照企业开发流程将它们按功能分解成若干模块,模块与任务挂钩,鼓励学生完成开发任务。在开发过程中遇到问题时,师生可一起探究问题的解决方案。
项目分解化繁为简,能降低解决问题的难度,能激发学生的学习兴趣,任务驱动能适应现代化职业教育,能触发学生分析问题和解决疑难的能力。
3.4 实践教学层次化
Android教学强调实践性,应增加实践教学时间,遵循项目驱动教学法,将企业项目开发的流程融入教学中,并根据实践教学阶段的不同,设计了从模块、案例教学到完整项目开发这样的分层渐进的教学流程。
1)组建项目团队。在实训前,按照学生的动手能力组建若干个团队,每个团队4到5人,每个团队成员都必须参与实践环节,并在实践中互相帮助,同时依照企业开发流程,每个团队都有项目负责人,每个成员都有任务分工。
2)模块教学。教师要明晰每个实践教学阶段的任务和目标,结合学生的学习能力和核心知识点来安排实践教学内容,将Android知识框架分解为相关的、细化的模块。对于每个模块,学生完成了相关知识点的学习后,要完成相应的实践任务。比如,学生在完成Android用户界面的学习后,应能编写出含有界面控件,菜单及事件处理的简单的Android应用。
3)案例教学。当学生已有一定基础后,尝试让学生编写一些简单实用的Android案例,这些案例有一定的综合性,可让学生课后完成,也为以后的课程设计做好准备。
4)课程设计。安排专门的实训周,要求学生以团队为单位开发一个小项目。教师可挑选一些有一定实用性的项目让学生参考,如网上订餐系统、智能通讯录管理系统、五子棋游戏、网络相册等等。项目的需求分析、设计、编码和测试发布均由各小组独立完成,教师需及时了解各团队的开发进度并对他们遇到的技术问题提供必要的辅助。
3.5 考核方式多元化
Android课程特色决定了必须打破传统的考核模式,轻分数,重技能。考核应以实践考核为主,强调动手能力。据此,我们做出两点变化。第一,教师根据小案例开发结果给出平时成绩;其次,取消期末考试,以课程设计替代,以演讲答辩的形式进行,从软件质量、文档质量和答辩表现中给出期末成绩等级。
4 结束语
本文从课程体系、教学方法、网络资源的获取、考核方式等多方面对《Android手机开发》课程进行了探讨,强调学以致用,着重培养学生的实践能力,为学生今后从事Android开发打下良好的基础。
摘要:分析Android手机开发相关课程的背景,研究Android手机开发课程的教学模式,教学做有机融合,实践教学项目驱动、分层渐进,改变传统的考核方式,增强学生开发Android应用的热情,提高学生的实践能力。
关键词:Android,教学模式,项目驱动,考核方式
参考文献
[1]刘成明,李玮玮.Android手机开发课程的案例教学法[J].计算机教育,2014(14):37-40.
[2]王向辉,张国印,赖明珠.Android应用程序开发[M].北京:清华大学出版社,2013:181-225.
[3]杨功元,李桂珍,李欣.Android应用程序开发课程建设探索[J].计算机教育,2012(16):85-88.
[4]蔡少霖.基于实战模式的Android课程教学模式研究[J].无线互联科技,2013(2):234.
[5]周红波.案例教学在《Android应用开发》课程中的应用研究[J].计算机光盘软件与应用,2012(9).
[6]王颖《.Android软件开发》课程项目教学法研究[J].电脑编程技巧与维护,2013(16).
Android教学 篇2
关于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教学 篇3
[摘 要]针对“Android程序设计”课程建设问题,审视了目前国内高校Android应用程序开发人才培养要求,提出了课程范式性的教学内容与教学模式,以期实现学生能力与社会和企业有效接轨,使学生在知识储备、技术技能和学习能力等方面得到显著提升,使教师教学质量不断提高,确保课程的教学工作符合国家培养卓越人才的要求,适应日益增长的社会需求。
[关键词]卓越工程师;Android程序设计;课程教学改革
[中图分类号] G423.07 [文献标识码] A [文章编号] 2095-3437(2016)02-0125-03
随着移动互联网的发展,人们对移动互联网设备越来越依赖,其中最流行的小型设备即是智能通讯手机和平板电脑。[1]而Android作为新兴便捷的移动设备的操作系统正迅速在移动互联网领域传播,并占据了移动互联市场一半以上份额,跃居全球第一,这对Android应用程序开发人才提出了更大的需求。[2]因此,此类人才的供应也就成为各高校新的人才培养计划。结合“卓越工程师教育培养计划”,国内各高校纷纷开设了移动互联专业或Android应用开发系列课程,“Android程序设计”课程是其人才培养的重要支撑内容。我们通过对高校Android应用开发系列课程开设情况的调研,特别对企业的人才需求做了大量的调查走访和相关实践研究工作,站在卓越工程师培养视角下,探索构建了适合社会需求的“Android程序设计”教学内容与教学模式,这对其他高校开展工程实践要求高、创新意识强的“Android程序设计”课程教学模式具有重要的借鉴意义。
一、教学内容与模式改革的迫切性
目前,“Android程序设计”教学内容和教学方法是国内各个高校关注的一个热点问题。Android系统是Google公司发布的一个开放源代码的手机平台,以Linux为核心,以开源、免费为主要特点,它易学、易用、并且功能强大,降低了开发嵌入式应用程序的难度。[3]但由于“Android程序设计”课程近几年才引入高校教学的课程体系中,其教学内容和模式的研究与实践还处于初级阶段,没有形成统一的教学体系和规范[4],而我国的大学教育是着眼于国际市场供需状况的,适应市场发展趋势的,因此课程教学内容与模式改革迫在眉睫。
国内外针对Android应用开发课程教学,大多停留在授课培训和填鸭式教学的模式,而对Android应用开发课程教学研究的论文虽然很多,却仅仅停留在理论研究方面,对于Android本身这门课程学习的教学内容和模式的研究几乎没有,可行性、可操作性教学模式的研究甚少。[5]研究论文多,说明Android操作系统是移动终端开发的热门,且具有极大的开发潜力。因此,探索卓越工程师培养视角下“Android程序设计”教学内容和教学模式,对于国内其他高校Android应用开发系列课程体系也具有重要的意义和价值。结合国家“卓越工程师教育培养计划”对于深化我国高等工程教育改革的要求,我们根据本门课程实际,丰富完善了课程教学内容和模式,进而不断适应满足Android应用程序开发人才的市场需求,为培养高层次工程创新人才的相关课程教学内容和模式改革提供参考。
二、教学内容与教学模式改革的理念与架构
图1 课程内容与教学模式的逻辑结构图
根据“Android程序设计”课程对高等教育质量适应性的特征,遵循“卓越工程师教育培养计划”要求,借鉴国内外现代大学“Android程序设计”课程教学的成功经验,在开设“Android程序设计”教学实践研究工作的基础上,探索课程内容更新重点和规律、前置课程与所学课程有序有效统筹、理论教学与实验教学合理衔接,建设有专业特色的课程案例库和深入推进教学与科研紧密结合的教育模式等,构建了“Android程序设计”课程教学内容与教学模式的逻辑结构图,具体内容见图1。
从图中的逻辑结构可以看出,前置课程与所学课程有序有效衔接是重点,是扫除学生学习“Android程序设计”课程基础知识障碍的关键一环,能让学生学习此门课程时感到水到渠成,为创新人才的培养起到入门作用。适时更新“Android程序设计”课程内容是前提,是满足不断变化的市场需求的基础,能够使学生不仅具有扎实的基础知识,更能了解本学科前沿知识和发展态势。理论教学与实验教学合理衔接是关键,有利于学生将理论与实践融会贯通,使学生打牢理论基础知识,同时也有助于提高教学效果,激发学生兴趣。建设富有专业特色的课程案例库,是夯实基础,增加教学立体化效果的重要手段,能有效地调动学生的学习热情,提升动手能力和探索精神。推进教学与科研训练有机结合,培养学生实践动手能力和创新意识,提升学生的团队协作能力、项目管理能力、沟通协调能力,从而有利于创新人才的培养。
三、教学内容与教学模式改革的对策
1.把握课程内容更新重点和规律,前置课程与所学课程有序有效衔接
“Android程序设计”核心内容知识点的选择上国内各大高校基本一致,但都忽略了Android发展的前沿领域新知识,以及Android本身的知识点与学生所学前置课程知识点的结合程度,应将其两方面都纳入课程内容中。实际上Android更新非常快,每年都有版本的更新,目前已经从Android1.0到Android4.4.2,应用领域也从单纯的智能手机到了目前的智能家居,对于学生了解Android的版本更新以及应用领域发展,激发学生的学习热情起到了一个积极的推动作用。Atkins曾经在物理化学学习上指出:“相关领域的新发现为物理化学家提供了新的兴趣。”在实际改革中,各门课程的教学也应该很好地理解和接受Atkins关于物理化学课程改革的观点。在讲授课程各章节时,可从基本知识点出发,适当介绍学科前沿领域的新知识,使其融会基础知识与前沿知识,从而使学生不仅具有扎实的基础知识,而且能了解学科前沿的基本点,为创新人才的培养起到入门作用。例如:在讲授Android的用户界面时,不仅介绍界面布局,还介绍经过这几年的发展,Google公司怎样重新界定了用户界面,以及Java在用户界面定义上与Android的区别。同时,教师通过了解学生所学习的先行课程,整合和更新课程的基本内容,使课程教授内容与学生所学先行课程的前置知识有一个接口,使学生学习此门课程时水到渠成,激发和保障他们对“Android程序设计”课程的学习兴趣。
2.理论教学与实验教学合理规划,注重培养学生实践动手能力
“Android程序设计”课程理论教学与实验教学应合理衔接,理论教学与实验教学内容合理搭配、学时科学统筹,对课程的授课效果至关重要。通过多年实践经验积累,发现“Android程序设计”课程具有强调原理、重视实践的显著特征,更加注重学生的实际动手能力和创新能力的培养。因此,一般而言,“Android程序设计”课程相比其他课程的实验教学要求更高,其实验教学学时比例应接近或达到总学时的50%。在教学时间安排上,两者应统筹规划,理论课与实验课交叉进行,所有授课过程应在实验机房内完成。这样一是更容易控制课程进度;二是讲解后直接实践,有助于提高教学效果,加强学生对所学知识的理解、运用、内化,达到融会贯通的效果,培养学生对课程的兴趣。授课的每一个知识点均包括理论和实验两部分,通过知识点累积与实践,达到学生独立完成设计制作如“自定义键盘的身份证登录应用”或者“图片浏览应用”等产品。
3.建设有专业特色的课程案例库,增加教学立体化效果
在理论和实验教学的过程中,针对每一个重要知识点建立有针对性的专业特色案例库,对增强立体化的教学效果是至关重要的。第一,案例库中的素材应在考虑“Android程序设计”本身知识点的同时结合整个专业与其相关的知识体系,案例由简入深,注重Android程序设计开发的实战技术与应用技巧;第二,案例所提供的信息和资料,必须尽可能多地蕴含教材中的重要开发要素和设计思想,从而使得学生在探究案例的过程中加深和巩固理论知识的学习;第三,案例应包含有复杂、模糊或需要解决的问题,让学生产生认知上的冲突,从而激发学生主动学习的动机;第四,根据Android的实时发展速度,案例数据能够保持动态的更新,打破许多教材实例一成不变的模式,并在综合案例分析中体现整个“Android程序设计”的整体知识点,体现知识技能的培养,有效地调动学生的学习热情、动手兴趣和探索精神。
4.推进教学与科研项目驱动教育模式,提高学生核心竞争力
本科教学处于基础和优先地位,但在实际教学过程中是主张教研结合的,因为科研也是育人特别是培育创新型人才不可或缺的途径。教师要将教学和科研相互融合,应当能够将知识传承者的教师角色与知识创新者的学者角色很好结合起来,既能向学生传授知识,又能通过对前沿问题的追寻和对真理的探索,引导学生有所发现、有所创新。如果将教师本来就应具有的教师和学者的双重角色割裂开来,既不利于教学,也不利于科研。教师在教学中遇到的问题,可以促使其进行深层次的学术思考,而教师的研究成果又可以服务教学实践。正是教学与科研的相互促进,才能真正实现教师角色的价值,也才能将优秀人才培养落到实处。应当确立一种共识,教学和科研是育人这同一问题的两个方面,优秀的教师应当践行研究性教学,在创新人才培养方面做出更大努力。创新人才是在参加创新实践中成长起来的,应组织学生参加省部级以上各种软件设计比赛,或者参与校企联合的科研项目研究课题,并指导学生独立申报一些国家级或者校级的大学生科研立项研究课题。要让学生在科研的创新实践中,激发求知欲望和创造冲动,独立自主地运用已有知识去发现问题,提出解决问题的新观点、新途径,最终超越前人,取得创新的成果。
四、结语
“Android程序设计”课程是开设时间比较短、内容比较新的一门课程。社会需求要求课程的讲授要更加贴近实际应用,更加强调学生的实践动手能力和创新意识。虽然,国内对“Android程序设计”课程教学归纳总结了很多经验,但仍有许多亟待解决和探讨的问题,特别是“启发式、探究式、讨论式、参与式”课堂教学模式的研究,有利于培养学生获得和保持核心竞争力。
[ 参 考 文 献 ]
[1] 张琳,容晓峰,沈虹.移动应用开发课程建设与教学模式探索[J].计算机教育,2012(14):95-99.
[2] 宋小倩,周东升. 基于Android平台的应用开发研究[J].软件导刊,2011(2):104-106.
[3] 沈成,张凯,等. 基于Android平台的课程学习系统的设计与实现[J]. 重庆工商大学学报(自然科学版),2014(1):56-59.
[4] 钟元生,高成珍. 高校Android编程教材设计研究[J].计算机教育,2014(10):105-110.
[5] 李芒,徐晓东,朱京曦. 学与教的理论[M]. 北京:高等教育出版社,2007:75-77.
Android教学 篇4
Android系统由于其开放性和扩展性吸引着越来越多的移动终端厂商和开发者的加入, 使得Android系统逐渐在智能手机和平板电脑领域占据着大部分市场。正因如此, 其安全性越来越受到广泛的重视, Google在设计Android系统时, 就对其安全性进行了考虑, 建立了一套比较完善的安全体系。不过, 由于Android平台的开放性, 其漏洞也更容易被攻击者所利用, 各种攻击手段层出不穷。以Android平台为代表的移动平台的安全逐渐发展为信息安全的一个重要分支。因此, 信息安全类专业有必要开设以Android为代表的移动平台的安全课程。
二、开设Android安全课程的重要性与必要性
1. 日益突出的安全隐患。Android系统自发布以来, 以开放、自由的特性赢得了各大厂商、开发人员、以及用户的青睐。正是由于Android在日常生活中扮演着越来越重要的角色, 导致其逐渐成为大量恶意攻击者的首选目标之一[1]。这主要是因为平台的开放性导致恶意应用的开发成本和难易度大大降低, 任何对Android开发感兴趣的人员都可通过简单的注册而成为Android Market的一员, 并自由的发布自己的应用。同时, 虽然Android本身已提供应用沙盒、权限、应用签名等安全机制, 但是这种以开发者为中心、依托用户完成的粗粒度授权机制存在诸多问题和漏洞, 导致平台安全性大大降低, 特别是容易造成应用层权限提升攻击。
2. 人才的需求。网上购物、网上支付和互联网金融等新模式日益融入普通大众的生活中, 应用程序在被大量开发的同时, Android安全人才也产生了极大缺口。安全专家指出, 想要从事Android安全工程的人员, 除了扎实的Android开发技能之外, 还要根据各类企业、各类岗位的不同需求, 补充与岗位相关的计算机基础知识, 包括操作系统、汇编语言等等。
三、课程的特点
1. 重视基础。该课程要求具有扎实的Java语言和Android开发基础, 同时需要其他先修课程, 包括《操作系统原理》、《信息安全理论与技术》、《网络攻击与防御》等等, 最好能够具备一定的程序逆向分析的实践经验。而且对这些基础课程的掌握程度要求较高。因此, Android安全课程对不光对学生有较高的要求, 同时对老师也是较大的挑战。
2. 多课程融合。如何在Android逆向与分析过程中综合并灵活地运用上述基础课程中涉及的内容, 需要学生在学习新知识的同时不断归纳总结以往的知识。并将其运用到新的知识中。
3. 以实践为导向。对该课程的熟练掌握离不开大量的分析与攻击练习, 并且在不断进化的Android技术中及时提升自我的技术水平, 对新的攻击方式和防御方式始终保持积极地探索精神。该课程对学生实践能力的培养甚至比知识本身更为重要。
四、课程的主要内容
Android安全课程以Android系统的安全原理与逆向分析为主要内容[2], 具体包括:
1.Android分析环境的搭建与Android程序的分析方法。
2.Dalvik VM虚拟机和Dalvik汇编语言。这是Android平台上进行安全分析工作的基础知识。
3.Android平台上软件的静态分析技术与动态调试技术, 二者都是逆向分析程序时的两大主要技术手段, 各有优缺点。本课程应该以静态分析汇编语言为主, 同时适当利用动态调试可以了解程序的执行流程。
4. 针对常见Android程序的保护方法, 分析它们的保护效果以及破解方法。同时, 在面对软件可能被破解的情况下, 如何加强Android平台软件的保护。只有同时掌握了攻击与防御, 才能将软件安全真正的掌握到位。
五、授课方法
1. 以常见程序的破解作为切入点。首先可在教学初始阶段演示一个学生感兴趣的程序的破解过程, 比如热门的小游戏。学生只有认识到课程的实际用途才能保有恒久的学习热情, 克服学习过程中所遇到的困难。该例子的分析过程和破解过程要尽量简单, 让学生有感性认识即可。接着指明Android安全在整个信息安全课程体系中的地位和作用, 指明该课程所包含的大体内容, 指明其先修课程以及与本课程的关系, 从而让学生认识到学好该课程需要与其他课程融会贯通。
2. 以演示带动理论。课程中尽量以例子演示为主, 在必要的是时候穿插讲授相关理论。在一段讲授和演示过后, 可以留足够多的时间, 供学生实际操作, 以增强实际动手能力。并且鼓励学生课后主动破解网上已有程序, 并在下一次课上与其他学生分享, 增强学生们的互动与交流。
3. 结合招聘的需求。该课程主要定位于实践类课程, 可以提高学生的就业能力。在教学过程中反复强调用人单位的招聘需求, 可以使学生的学习目的性和针对性更强, 进而提高学习的自觉性。
结束语
Android安全是随着移动互联网发展而带来的一门新课程。Android安全的重要性使得培养Android安全人才成为刻不容缓的事情, 在高等院校开设Android安全课程及其他终端平台的安全课程成为必然。由于此课程所具有的知识跨度大、基础要求高、实践性强的特点, 在教学实践中应该采取一些特殊的教学手段, 使学生更好的掌握该课程的内容, 并充分地为学生的就业服务。
摘要:Android系统的普及导致其逐渐成为大量恶意攻击者的首选目标之一, 同时移动互联网公司对相关安全人才具有大量需求, 这使得在高等院校开设Android安全课程及其他终端平台的安全课程成为必然。该课程具有重视基础、多课程融合、以实践为导向的特点, 在教学实践中应该采取一些特殊的教学手段, 使学生更好地掌握该课程的内容。
关键词:Android安全,教改,实践
参考文献
[1]蒋绍林, 王金双, 张涛等.Android安全研究综述.计算机应用与软件, 29 (10) .
Android教学 篇5
Android.mk
LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE := geniusLOCAL_SRC_FILES := net_qiujuer_imageblurring_jni_ImageBlur.cppLOCAL_LDLIBS := -lm -llog -ljnigraphicsinclude $(BUILD_SHARED_LIBRARY)Application.mk
APP_ABI := allAPP_PLATFORM.:= android-19APP_OPTIM := release而这里这两个文件都没有建立,那么是怎么决定的呢?
我们可以在 ndk 的 modelName 上按住 Ctrl 进行点击将会出现这个界面:
这些就是全部能够设置的参数。分别对应:
ndk{moduleName JniDemo // 设置生成的文件名cFlags -DANDROID_NDK -D_RELEASE //这个对应的是生成模式ldLibs m, log, jnigraphics //这个对应 LOCAL_LDLIBS 但是需要去掉前面的 “l”abiFilters all //这个是对应的 APP_ABIstl stlport_shared //这个对应的是 APP_STL }
Android安全隐患抬头 篇6
同期,专门为各类智能手机提供安全服务的美国科技公司Lookout也发布了一份研究报告,报告称,2011年上半年,针对Android手机的恶意软件数量呈迅猛增长之势,目前遭遇恶意软件感染的几率比半年前增长了2.5倍。
“新式Android恶意软件甚至可以记录感染手机的通话。”研究人员警告称。
陷入 “深渊”
进入2011年,Android手机出货量继续激增。据调查公司ABI Research数据显示,Android手机第一季度出货量超过3000万部,全面超越Symbian,成为全球第一大智能手机系统。
但另一方面,自2010年以来,Android手机已经出现了不和谐的因素,众多木马程序纷纷来袭,用户资料丢失、隐私被窃的现象屡见不鲜。据瞻博网络发布的报告称,自2010年起,Android平台上的恶意软件数量已激增400%。今年以来,恶意软件问题又发生数起:2月,“Android吸费王”恶意扣费软件连续植入超过100款应用软件进行传播;5月,“Android蠕虫群”恶意软件强力突袭,入侵手机后自动外发大量扣费短信。此外,继“X卧底”之后,“Android窃听猫”、“Android短信大盗”、“Android血吸虫”等恶意软件也大举进犯,严重威胁用户的隐私安全。
6月29日,网秦发布的《2011年5月手机安全报告》显示,Android平台的病毒感染率也在不断升高,5月份其感染率达到了30.2%。数据显示,5月份在各手机平台中,Symbian平台以59.5%的比率居感染平台第一,Android平台以30.2%的比例居第二位。但是,为什么是Android?
首当其冲
当然,Android并不是惟一一款成为犯罪分子攻击目标的移动操作系统。苹果iOS及其它平台同样存在恶意软件问题,但Lookout报告显示Android平台的安全问题最为严重。目前,Android手机全球市场份额已达50%。
Android缘何成为恶意软件的首要冲击对象?专家认为,其令人称道的开放性是造成这一结果的最重要原因。
“全面开放而监管不力势必造成应用五花八门、良莠不齐。”业内人士指出,开放性让Google对自身系统的控制能力远不及苹果,合作伙伴为了更贴合自己的终端及用户,纷纷都对Android的代码进行修改,由此形成了众多的版本分化。这样不仅给很多开发商造成多版本设计的重复技术投入,同时也为Android自身统一规范监管造成困难,难以形成品质保证。
譬如,今年5月,Google试图对Android进行全面升级,但由于系统版本的多样繁杂,因此已开发的恶意软件补丁仅仅只能覆盖到Android 2.2以上的版本,更早版本的Android系统仍存在漏洞,不能得到及时维护。
另一方面,Android系统的开放性也导致审查制度的缺失。只要是开发好的软件均可以放在平台上供网上用户下载,这就为恶意软件的出现和传播大开方便之门,黑客趁机将恶意程序植入到常用软件中,而且可以不断更新,使得恶意程序不断变种繁殖下去。
“Google对Android平台应用的审核不严格是导致问题的重要原因。通常情况下,开发者将应用上传至苹果应用商店,需经其专业部门审核一个星期左右方可进入市场流通,而这一时间在AndroidMarket仅为1至2天,而在内地的一些Android市场,审核力度则更为薄弱。”香港GreenTomato公司应用开发工程师刘俊杰表示。
未来仍需乐观
渠道安全环境的相对薄弱,为黑客提供了大量可乘之机。因此业内人士呼吁,建立一个安全的网络环境或已成为必需。
“起码来说,Google应该采用特征库的方式对已知恶意软件进行扫描。”安全软件厂商Veracode首席技术官Chris Wysopal 表示,鉴于传统的基于特征库的反病毒软件已经无法检测出最新的恶意软件,同时已有的恶意软件有可能通过较大规模的变异而逃过反病毒软件的特征码扫描。Wysopal建议,Google阵营应该采用基于行为的反病毒软件对Android程序进行排查。
对于Android系统的安全问题,Google表示,正在扫描新式恶意应用,试图让Android平台的安全威胁降至最低。Google还积极与制造商和通信商展开合作,当Android Market中出现恶意应用时,Google及其合作伙伴便会发布安全补丁。
“安全是Android开发团队的首要任务。我们将致力于开发新的防护功能,以应对今后可能出现的各种攻击。”Google表示。
对于Android未来的走向,有关人士依然抱乐观的态度。刘俊杰就表示:“长远来看,我们仍然看好Android平台的发展潜力,由于这一系统本身具有开放性特点,使得开发者可以更容易地进行应用的底层优化,而在苹果系统上则难以做到。随着开发者、手机厂商对Android开发经验的增多,以及系统本身的不断优化,相信问题将会得到改善。”
相关链接
用户防范须知
面对日益严峻的恶意软件攻击形势,为了保护用户的隐私及信息安全,互联网专家建议用户:
1.安全意识时时有。针对恶意软件的病毒性征,经常性地查询一下自己的话费有没有异常的消耗,及时加以防范。
2.软件下载需小心。在通过应用商店、手机论坛等渠道下载软件程序后及时进行安全检测,软件安装时也应尽量小心,阻止恶意插件的安装,并应尽可能地在比较安全的软件商店或官方软件平台下载。
Android教学 篇7
1 系统框架设计
1.1 组织结构
根据要求首先设计出系统组织结构图,如图1所示:
图中服务器上建有数据库,存储学生信息(学号,姓名,性别,班级,登录时间,作业成绩),试题信息(题号,题目类型,题干,选项或答案,成绩),意见栏。
对于客观题目直接判断,统计学生个人的做题统计(答题数目,正确数目,答题时间等),以及每道题目的数据统计(答题人数,正确人数),随机分发组合题目。
老师可通过登录服务器编辑题库,课上当堂布置作业,课后可批改学生上交的作业。
学生用学号姓名登陆,提交作业并给老师留言,查阅以前的作业成绩及老师批语。
1.2 系统运行流程图
根据分析,首先设计出系统运行的流程,如图2所示是学生的操作流程图:
学生首先在手机上运行程序,然后使用用户名密码登录,密码正确则进入下一功能选择,这一模块可进行答题、成绩查询、留言等功能,最后提交试题,退出程序。
根据规划再设计出老师的操作流程图,将老师所要实现的全部功能流程化、具体化,如图3所示:
老师登录服务器对学生以及试题库进行编辑,还可以查看学生的答题情况以及学生的留言,完成后可保存退出。
2 系统的实现
2.1 客户端程序设计
客户端是使用者最直接接触的东西,包括是否能够让客户很轻松、方便地使用,操作响应时间、主机连接时间、图片综合质量、首页布局质量、首页信息类型等。
2.1.1 界面设计及按键响应
Android界面是由许多Activity构成,首先要设计Android的布局文件,由于系统的不确定性,大部分布局文件采用了相对布局(Relative Layout),然后是在按键控件上添加响应,下面是具体每个Activity的实现过程。
首先启动Activity用户点击的页面,要检测录入的数值是否合法,也就是不允许有空值出现;当成功进入系统则显示主要功能。界面如图4所示:
触发登录,则需要编辑登录的代码工作,具体登陆后的学习界面,如图所示:
消息之间的传递负责者,INTENT专门提供组件之间互相调用的相关信息,实现调用者与被调用者之间的联系。
当按下图5中的“检测”按钮时,触发附在该按钮上的按键响应,应用会跳转到题目选择界面上,中间不会传递数据,直接用On Click Listener类来完成。
检测模块:
留言板功能如图9:
2.1.2 客户端用到的类
Login登录界面,判断是否为合法用户,合法则登录系统。·Test Main主界面类,用户功能选择界面,所有主要功能汇总界面,用户完成使用后可返回该界面。·Testnow测试做题,使用后调用题库显示。·Stuscore成绩查询,调用成绩表中学生成绩显示。·On Click Listener按键响应,执行按下该按钮时的动作,经常继承使用。
3 结论
随着智能手机和网络的高速发展,手机的功能和性能、通信网络的数据业务支持能力将极大增强,手机的功能将不再只是传统意义上的打电话、发短信。基于智能手机强大的处理能力和可扩展能力,基于移动互联网络高速数据传输,越来越多的功能和业务将被开发出来并大规模的应用。本系统使用了当今最强大和最全面的数据库管理系统设计了服务器部分,用来存储学生、老师、试题等数据,客户端则是使用小巧实用的Eclipse设计,让学生可以通过手机等移动设备访问题库,本系统具有高效实用、界面简洁、操作简便等特点,本系统可提供开发源代码,供Android应用爱好者参考学习,同时也存在界面不够亲和、题库数据较少、系统功能不全面等不足之处,可在后续开发过程中继续加以完善。
摘要:随着移动智能终端设备的迅速普及和Android平台的应用越来越广泛,在高校中利用移动智能终端进行课程学习,成为了越来越功能十分强大的技术特色。通过安卓智能平台,开发了具有智能学习的程序应用,该应用能够让学生自主练习习题,评测,这样学生能够根据自己的评测值来分析弱项,无论在课堂上,还是在课下都能练习,进而方便学生学习。
Android教学 篇8
1 Android教学系统的使用背景
1.1教学现状
随着信息技术的不断发展,在社会信息化的发展中操作系统占据着重要的地位和作用,同时随着操作系统观念和技术的更新,以至于当前的操作系统课程教学存在着较大的问题。国内采用的教学方式内容和模式比较陈旧,只能将课程的经典内容反映出来,缺少实例和市场、产业的联系,无法适应当前操作系统的发展趋势,不能满足社会对人才的发展需求。另外,传统的实验常常是通过模拟的方法验证的,缺少对学生创新能力的培养,缺少实践经验,进而导致与我国教育的培养目标相脱离。因此教师在上课时一方面需要正确、科学地发挥操作系统在课堂教学中的重要作用和价值,另一方面需要不断关注学生的实践和创新能力,增强操作能力,提高学生在实际生活中的应用能力。
1.2 Android系统的优越性和必要性
操作系统需要各个工程的紧密配合,学生需要具备很强的工程意识和素养才能够将操作系统的全貌了解清楚,而培养学生的工程意识和素养需要不断提高学生的综合实践能力,在编程中总结经验,融会贯通,进而提高自身的实践能力。因此在课堂教学中需要引导学生主动编写一些程序,帮助学生学会理解一些核心的概念,这样能够让Android系统实践课程更具科学性和合理性。Android系统作为一个稳定的操作系统,能够在教学中让学生感受到它的强大功能。编写操作程序内核能够让学生在编程中不是单纯地进行机械复制,而是通过对概念和原理的应用提高自身的综合实践能力,这是模拟教学不能达到的教学效果。Android系统作为一个开源操作系统,是LINUX的内核,在学习的初期需要全面了解其性能和基础知识,通过获取丰富的资料信息,进而在学习中需要掌握更多的基础知识。随着Android系统在移动设备应用的逐渐增多,学生对这个系统产生了浓厚的学习兴趣,因此对Android系统的应用和开发对于学生的学习具有很大的益处。
2 Android系统课程设计的实施
2.1课程设计的内容
课程中使用Android虚拟的实验室教学环境,这样能够方便操作系统的全面掌握,同时能够将实际的操作环境模拟出来,便于学生的全面认知。学生能够在自己的电脑上进行Android的开发,这就需要学生具备扎实的基础知识,并且在教师的引导下能够操作一些功能。在整个课程的设计中,学生需要先完成编程项目。
2.2虚拟实验室构建
在操作系统的课程设计中为了寻找到合适的开发工具,需要利用Android虚拟教学环境中的虚拟机,在学生操作过程中安装一些编程工具。这些工具既有真实的移动设备以及开发工具包,又包含了一些交叉编译的工具链和C语言开发库等。另外,在交叉编译的环境中对设备和虚拟器进行详细的说明。
Android开发工具的使用一方面能够减少学生的操作步骤,另一方面能够让学生避免在学习中出现盲目性。配置好的虚拟平台能够对开发工具的安装进行无意的破坏,保护安装失败的学生程序。对于学生来说,如果安装失败只需要重启工作站,这样就能够重新进行编程。另外VM可以利用其截图功能记录学生的编程过程。通过简单化和标准化的脚本和用户层的开发工具,避免编程中的不变,为学生提供更多的学习空间和时间。
Android SDK能够满足学生在编程工作中所需要的调试程序,进而简化了Linux内核的交叉编译指令。能够在shell的环境下利用手机3D的方位感和模拟感制定Android的编程程序,进而提高数据模拟的速度,简化学生的操作过程,为学生的学习提供更大的方便。
3课程设计任务的完成
课程教学中实施分组教学,5人为一组,在预先设计的Android虚拟环境中给学生提供编程的项目。其中一些项目要求学生能够进行简单的修改,一些项目要求学生能够进行用户空间的测试,不需要将整个Android代码进行开发。在项目课程的设计中有些特性是Android本身具备的,而有些需要进行系统的调试、同步虚拟内存和文件系统。这些项目对应Android的主题内容,并且能够实现内存的共享和文件系统的定位感知。课程的设计需要按照顺序和步骤有条不紊进行,不仅需要打牢学生的基础知识,提高学生对概念和原理的利用能力,而且在课程教学的后期需要让学生在Android系统中添加其独有的特征,加深对Android概念的理解和掌握。在课程设计的初期要求学生掌握Android进程树,关注GUI程序的子进程。对于一些抽象的概念形象化,加深学生的理解和掌握,并且通过亲自动手完成对概念的应用和掌握。Zygote是虚拟机的一个孵化器,能够在Android系统中执行应用程序。在课堂教学的最后阶段,利用zugote进程节省系统的内存,这样学生能够加深对共享机制的理解。对于一些只读的系统库学生能够在操作中节省空间,实现与内存的共享,为内存提供更大的空间。
在现代任务操作系统中同步是一个关键性的概念,移动设备中的传感器能够将信息传递给用户,在传递的过程中会造成资源之间实现相互的竞争。在Android系统中,学生能够通过执行程序加深对概念和原理的理解。在具体的编程实践中,通过趣味游戏让学生完成任务:在移动设备没有被设置好之前,某一个程序被阻止。因此为了方便这个阻止的顺利完成,给学生布置任务,让学生通过守护进程在用户空间中使用Android硬件设备进行标准化的操作,向系统的内核传递数据。需要通过3个新的系统完成方向的调试和支持,这样能够确定设备的位置信息,唤醒被阻塞的进程。学生通过编写程序能够顺利完成程序的功能,并且极大地提高了学生参与的热情和积极性。
在课程的最后环节,利用原理和概念设计一些简单的问题,让学生回答问题,并且将学生理解的概念体现在Android操作系统中,提高学生对概念和原理的应用技巧。
4 Android移动教学系统的改进建议
4.1改进Android课程体系
为了提高学生的实践和创新能力,让学生对Android系统有一个全面的认知,需要对Android系统课程进行改进。改进后的课程教学需要包括Android在内的所有核心组件、图像以及多媒体要素的编程等,加深学生对Android系统的应用和理解。另外,让学生充分利用SDK内的开发组件实现应用程序的快速开发。
4.2改进教学方法,激发学生的兴趣
兴趣是学生学习的引导者,只有学生充满热情和兴趣才能够让学生全力地投入到学习中,进而提高学生参与课堂教学的积极性和主动性。在Android的教学系统开发中,教授的内容具有一定的抽象性和难度,学生很难消化,一旦学习上出现了阻碍就会造成情绪的低落,学生的学习积极性也就不高。因此,要想激发学生学习的兴趣和爱好,需要改进教学的方法。在实际的教学中可以通过多媒体加强与学生之间的互动和交流,还可以通过分组竞争和比赛激发学生学习的积极性和主动性。在Android教学系统的开发中充分利用特有的功能和硬件设备,对学生的编程进行正确的评判,采用自评和互评的方式实现学生之间的交流和经验共享,进而激发学生不断进取。
4.3发挥示范作用
教师作为课堂的引导者,要在课堂中适时引导学生,起到良好的示范作用。教师要针对学习表现良好的学生给予适当的鼓励,让优秀的学生分享自己的经验,在授课的过程中实现交流与合作。在课程设计的过程中让学生自由发言,了解学生对课程的理解程度以及对他人的评价,对于渴望表现的学生给予适当的鼓励,激发学生学习的积极性和主动性。通过竞争和比赛的形式在营造良好的课堂氛围,进而实现学生的不断进步。
5结语
随着信息时代的发展,社会对Android人才的需求越来越大,因此面临着新一轮的教育教学改革,应当提高教学质量,培养学生的实践和创新能力,确保教学目标和培养目标的紧密结合,进而为学生的就业提供有力的保障。
参考文献
[1]蔺满平,王小明,方梅,等.基于Android的移动教学应答系统设计与开发[J].软件导刊,2015(8):120-122.
[2]刘光楠.Android移动教学平台的设计[J].消费电子,2013(14):78.
[3]余永佳.高职Android操作系统课程教学与研究[J].徐州建筑职业技术学院学报,2011(4):52-54.
Android教学 篇9
本系统主要完成的是教学质量测评所需的基础数据收集工作, 具体的数据处理等工作由服务器端完成。通过客户端可以查看到最终的测评结果。
考虑到Android手机的操作方便程度以及计算能力局限, 不利于大量数据的处理工作, 所以只是完成数据收集和结果的呈现工作。测评数据的整理等交由后台的服务器来完成。
测评数据的收集主要由两个部分构成, 一部分是学生对于任课教师的测评, 这部分测评需要匿名进行, 并且只能对本班的任课教师测评, 这部分的测评由管理员依据教学安排来设定, 并通过动态公布班级测评密码来实现测评控制; 另一部分是听课专家对任课教师的授课质量进行测评, 这部分测评要有专家实名进行 (但公布时匿名), 由管理员 在学期(年 ) 初设定专家的听课对象来决定。
2 设计思路
本系统的用户主要有4类: 接受测评的学生、进行听课的测评专家、被测评的教师以及测评的管理员。
接受测评的学生是客户端数据收集的主体, 主要完成学生对教师教学质量的反馈信息收集。具体功能包括: 以班级为单位的匿名登录、任课教师的测评、对教学工作意见建议的提出等。
进行听课的测评专家主要完成对教学质量的专家测评工作, 依据学期初安排的听课计划, 对指定的教师听课, 并反馈听课意见。具体功能包括: 实名登录、选择听课教师、听课信息反馈、提出意见或建议等。
被测评教师可以通过客户端查看本学期 (学年) 的学生测评情况 (总分/详情) 以及专家测评打分 (匿名总分) 情况,查看针对教学工作的匿名建议等。
测评工作管理员负责学期 (学年) 初的测评单位、测评对象、测评项目以及听课安排等的设定, 并能管理服务器端的测评数据整理工作。
系统中比较复杂的是测评规则和测评对象的动态获取以及网络通信的设计。测评的基本思路是: 当学生测评时, 由管理员设定该班的测评密码并告知, 该学生在规定时间内以班级名为用户名登录, 登录数量限制为班级人数, 学生登录后, 进入测评页面, 选取任课教师即可按获取到的测评规则进行逐项打分, 全部任课教师测评完毕后即可进行数据提交或同时提交建议意见。当专家测评时, 以系统给定的用户名登录, 即可查看到管理员设定的学期听课对象, 选择指定对象, 即可按获取到的测评规则进行逐项打分, 对该任课教师的总体评价后可进行数据提交完成当前教师测评, 该教师测评数据提交后不可更改和二次测评。
3 数据库设计
后台的数据库设计主要是为服务器的应用。Android手机客户端登录后, 会从服务器获得当前数据库里的主要数据。
3.1 用户表 (users)
表1用来保存系统用户的用户名、登录密码和用户类型。
3.2 教师表 (teachers)
表2用来保存教师信息 (工号、姓名等), 并标识出听课专家。
3.3 课程表 (courses)
表3用来保存学校开设的课程及课程类型等信息。
3.4 学期表 (semesters)
表4保存学期编号及所属学年和当前学期设定信息。
3.5 班级表 (classes)
表5保存学校内各班级情况及班级人数。
3.6 授课信息表 (curriculums)
表6用来保存各个学期中各个班级的各门授课安排情况。
3.7 专家听课安排表 (lectures)
表7保存学期初设定的专家听课对象。
3.8 测评规则表 (evaluations)
表8保存学生测评规则和专家听课测评规则。
3.9 测评结果表 (eva Result)
如表9所示。
3.10 测评汇总表 (eva Static)
以上各数据表之间的关系如图1所示。
由图1可以看出users表与其他表没有直接关系, 但在本系统中, 当向教师表添加教师数据时, 会同时向本表中增加教师用户; 当向班级表中添加班级数据时, 也会同时向该表中添加班级用户数据。
3.11 存储过程
使用存储过程的方式对学期的测评结 果进行汇 总计算。首先将系统中存在的本学期测评数据删除; 然后先将本学期学生的测评数据 (eva Result表中测评类型为0的记录) 按测评对象 (即教师) 分组后进行汇总, 并将结果插入测评汇总表 (eva Staic) 中; 然后读取测评数据中专家听课的数据 (e-va Result表中测评类型为1的记录 ) 按测评对象分组汇总后 ,更新表中相关记录完成总的数据汇总工作。其代码如下:
4 服务器端
考虑到测评的原始数据录入量较大, 如班级信息、教师信息、学期课程安排、听课安排等, 需要大量的人 机操作 ,而手机屏幕较小, 不适合做大量的输入, 因此这些内容都通过服务器端完成。
服务器端设计采用比较流行的SSH2框架。这个框架主要完成的是数据库的增、删、改、 查等操作, 有关这方面的资料介绍较多, 这里不再介绍, 只给出设计完成的服务器端运行界面如图2所示。
5 Android 手机客户端
本系统中的Android手机客户端开发, 相当于MVC三层架构的View层开发, 即数据存储、业务逻辑等的处理由数据库服务器和应用服务器负责, Android手机客户端主要起数据的呈现作用和基础数据收集作用。通过与服务器端进行通信获得测评的基础数据并将最终结果再传回服务器。这里面主要有3个问题需要解决, 一个是客户端与服务器的网络通信技术问题; 另一个是客户端和服务器端数据交换格式与解析的问题; 最后一个是数据在手机上的呈现形式问题。
5.1 Android 手机与服务器联系使用的通信技术
Android平台与计 算机网络 交互操作 , 主要通过3种方式, 一种是采用URI重写方式, 直接与Web容器交换数据,这种方式适合于简单的数据传输; 另一种是利用Socket完成数据交换, 这种方式类似于传统的C/S应用方式; 第三种方式是采用Web Service方式, 将业务操作定义为一个远程接口,通过调用该接口完成指定的功能。本系统中客户端的数据收集传输比较简单, 考虑采用第一种通信方式。在Android平台中已经集 成了Http Client类库 , 它提供了 强有力的HTTP功能, 支持HTTP协议, 完全可以模拟浏览器的访问方式。
但由于Http Client的请求是一个比较耗时且容易堵塞的线程, 因此需要使用多线程技术, 将其与UI响应放置在不同的线程当中, 否则可能会导致Activity画面在网络通信时产生停顿。考虑到多线程操作相对复杂, 并且多个Activity都需要与服务器进行网络通信, 因此设计一个继承自Activity的抽象类supper Activity, 在这个类中设计多线程完成网络通信功能 , 其他的Activity只需要继承这个类, 就同样能实现与服务器间的通信[2]。supper Activity类主要构成如表11所示。
Net Thread类实现了客户端与服务器端的网络通信。通过request URL方法启动该通信线程获取数据。Net Thread类的具体代码如下:
request URL方法的代码如下 :
此外在supper Activity类中还定义了一个抽象的方法info-Handling, 这个抽象方法在继承的子类中被覆写 , 用以对接收到的各类信息进行解析。
5.2 Android 手机与服务器联系使用的数据交换格式
Android手机与服务器的数据交换格式有很多种 , 可以是纯文本格式, 也可以是XML格式, 还可以是JSON格式的。JSON格式与XML格式相比是一种轻量级的数据交换格式 , 考虑到Android客户端与服务器的通信对于流量和速度的要求,采用JSON格式比较合适。
由于服务器端采用SSH2框架结构, 因此需要将struts.xml文件中action的返回值 类型更改 为json, 同时要将 包的ex-tends设置为json-default, 然后才能使服务器端收发 的JSON格式数据得到正确的解析。下面为struts.xml中定义的与An-droid手机进行JSON方式通信联系的方法。
服务器端检测到学生用户登录后将当前学期、班级授课教师情况、学生测评规则、班级已经登录人数等信息以JSON格式传递至手机客户端。
在Android手机客户端的Activity中, 覆写继承自super Ac-tivity中的info Handling方法 , 对收到的JSON格式信息进行解析, 并将其以对象数组方式存放于本地。部分解析代码如下:
5.3 Android手机中的数据呈现方法
自服务器中获取了测评信息后, 还需要以适当的方法将其展示出来, 以便用户进行测评。本系统中主要使用了列表组件List View和网格组件Grid Viewg来显示本班的授课教师信息, 使用树型组件Expandable List View结合评分组件Rating Bar来实现对各测评规则项目的打分与汇总。
List View和Grid View作为显示组件用来显示本班级 待测评的教 师 , 其中Grid View是以网格 形式显示 信息 , 而List View是以列表方式显示信息。这二个组件可以接收来自数组 的数据 , 也可以自 定义显示 数据。通 过编写实 现Base Adapter接口的Gird View Adapter和List View Adapter类 , 分别为这两个组件设定合适的适配器, 以实现图3的显示。下面为Gird View Adapter的实现代码。
List View Adapter的实现与Grid View Adapter的代码相类似不再重复。
当用户点击待测评的教师头像后, 以对话框方式弹出适用于学生的测评规则, 这些测评规则以Expandable List View组件来显示。点击相应规则的项, 会弹出下一级具体打 分项 ,再次点击, 弹出包含Rating Bar组件的对话框, 通过在星星上面滑动, 即可进行该项目打分; 关闭此对话框, 在打分项目的列表上, 会显示出刚刚测评的分数。如图4所示。
Expandable List View同样是列表显示组件 , 但它对于分组显示的列表更为方便, 因此用它来显示测评规则。从服务器端得到 的规则按 照条目的 级别分别 存放在one Grade List和two Grade List对象中 , 在Expandable List View适配器中 进行装配, 形成可伸缩的列表。其主要代码如下:
获取测评规则的处理方法:
Expandable List View的适配器 继承自Base Expandable Lis-t Adapter, 并实现了其中的全部接口。在适配器中首先完成测评规则的装配, 其代码如下:
在适配器中还要实现的是动态显示出测评的分数, 这一功能需要在子节点的视图中实现, 其代码如下:
6 结语
Android教学 篇10
Android是一款基于Linux的自由及开放源代码的操作系统,主要用于移动设备,如智能手机和平板电脑。谷歌公司于2007年公布了Android手机系统源代码,其开放性优于其它封闭式手机系统[1],用户可根据喜好重新编写手机系统中的功能实现。本文根据已有教学日志管理系统(电脑版),基于Android平台,在MyEclipse环境下开发教学 日志管理 系统 (Android版)。本软件利 用Android提供的各种组件对界面及功能进行设计,功能如下: 1实现对教学日志的增加、删除、修改、查询;2学生考勤查询及管理;3班级学生查询;4学生信息查询;5课表查询。
能随时随地在智能手机上对教学相关信息进行管理, 使用方便,受到用户的青睐。
1总体设计
1.1系统功能设计
本系统主要功能划分2个部分:1根据单个工作日进行考勤及日志信息的增加、删除、修改;2查询课表、日志、 班级学生、考勤及学生信息。首先,教师输入工号和密码, 登录后将工号和密码发送到服务器端进行校验,如果校验成功,则进入主界面。如果选中记住密码框,再次使用时将直接进入主界面。如果校验失败,则显示错误提示;然后,进入主界面,用户可以有选择性地进入考勤添加或查询功能。通过周次模块可进行教学日志与课堂考勤管理; 查询模块负责各种信息查询。系统功能结构如图1所示。
1.2系统模块设计
根据上述功能,将系统设计划分为4个模块[2],如图2所示。1登录界面:实现手机用户进入系统,验证账号信息 ;2主界面:用户选择功能菜单;3周次界面:实现用户对教学日志的添加、删除、修改及对课堂考勤进行管理;4查询界面:对各种信息进行查询,包括查询课表、日志、班级信息、考勤及学生信息等功能。
2功能实现
2.1登录界面
教师输入工号和密码,点击登录后将工号和密码发送到服务器端进行校验,如果校验成功进入主界面;如果选中记住密码框,再次使用时,即可直接进入主界面。如果校验失败,则会显示错误提示。
2.2主界面
主界面分2个模块:周次和查询。周次模块可进行教学日志与课 堂考勤的 管理;查询模块 负责各种 信息查询[3、4],如图3所示。
2.3周次模块
周次模块功能实现如下:
(1)对教学日志进行添加、删除、修改。客户端收到用户请求后将请求发送到服务器端Servlet。Servlet再对数据库进行相关操作,最后将操作结果返回客户端,客户端根据返回结果判定操作是否成功,作相应提示,模块界面如图3所示。
(2)课堂考勤管理。学生考勤添加需设置相关权限, 判断用户是否任教该班级某门课程。服务器端接收到用户考勤增加、删除、修改操作指令后,先对教师任课表进行查询,判断该教师是否在该班级任教该课程。如果是,则可继续操作,否则终止操作,并为客户端显示没有权限的提示信息。添加学生考勤信息后,如将考勤情况改为“旷课”、“请假”、“公假”,课堂实到 人数将减1。如果教师 误操作,可进行撤销,撤销成功后课堂实到人数将进行相应改动。当教师录入考勤信息后再次查询该堂课考勤记录时,系统自动将缺勤的学生信息显示在前面,缺勤情况一目了然。
2.4查询模块
主界面查询模块功能实现原理为:用户登录成功后记录用户ID,通过ID访问服务器,根据用户操作请求,服务器端作出相应处理。如主界面显示某一周日志,用户选定某一周后,将ID与周次发送到服务器端的AppointWeek. class进行处理。AppointWeek[5]是一个servlet,专门用来处理并返回用户选定周所有日志信息。当AppointWeek获得ID和周次后,将对数据库ID和周次进行查询,对满足条件的信息 用户WorkDay.class进行封装,并将所有WorkDay封装到一个集合中,转换成json数据。json数据是一个字符串,不仅方便服务器将数据发送给客户端, 而且还能起到加密作用,原因在于json封装数据 必须要用相同的类来进行解析,可保证数据安全性。将日志信息集合转换成json数据,servlet将json数据返回给客户端, 客户端接收到json字符串并对其进行解析,解析完成 再将数据展现给用户。查询模块界面如图4所示。
3关键代码
在这4个模块中,对学生考勤的增加、删除和修改模块设计最为复杂。考勤增加、删除、修改的同时涉及到对该课程日志信息进行修改,整个过程都在服务器端完成。
当给某堂课添加考勤时,有多个步骤,为保证数据库中数据的唯一性,整个对数据库操作过程都用事务进行处理,防止数据加入错误。具体如下:1首先判断教师是否有对该班级课程添加考勤的权限;2如果有权限则允许进行操作;3如果操作成功,再判断缺勤类型及是否需要修改对应日志信息中的实到人数;4如果需要修改日志信息中的实到人数,进行相应修改,并判断是否修改成功。如果日志信息中实到人数修改失败,则提示异常,并进行事务回滚操作,对应考勤记录将不会被添加到数据库,并返回错误提示至客户端。关键代码如下:
4结语
Android平板 双雄对决 篇11
华硕EeePad Transformer TF101
3499元
www.asus.com.cn
便携性和屏幕效果
TF101的重量为680g,厚度则为12.98mm,便携性略胜于iPad一代,领先于本次PK的对手A500。在屏幕效果上,TF101采用的IPS屏幕在分辨率、颜色和可视角度等方面都表现十分出色,与iPad的屏幕表现在伯仲之间。
运行速度和续航
TF101采用的是和A500一样的Tegra 2 1GHz处理器,其它配置也基本一致,因此在运行速度上两者没有明显区别。电池续航上,TF101进行日常娱乐应用大概能使用6.5小时,续航表现基本符合预期。
Stuff 点评
华硕EeePad Transformer TF101在屏幕效果和便携性上領先于Acer A500,综合优势明显。
Acer Iconia Tab A500
3499元
www.acer.com.cn
便携性和屏幕效果
A500的重量为765g,厚度为13.3mm,比iPad和TF101重了85g。A500的屏幕规格和TF101类似,不过在颜色表现上就要略逊一筹,这在观看图片或是高清电影时比较明显,看来MVA屏幕的效果还是和IPS有一定差距。
运行速度和续航
基于NVIDIA Tegra 2 1GHz处理器的A500在运行速度上令人满意,即使是玩大型3D游戏也完全没问题。在电池续航时间上,A500具备大容量的电池,日常娱乐应用的情况下大概能坚持7小时,在电池续航方面略胜于TF101。
Stuff 点评
综合表现来看,A500很出色,但是过重的重量拖了它的后腿,屏幕效果也难以和iPad、TF101等对手匹敌。
对比体验平台配置
■ 屏幕10.1英寸 LED 背光 (1280x800) IPS液晶屏,10点触控
■ CPUNVIDIA Tegra 2
■ 内存 1GB
■ 存储16GB/32GB,Webstorage 网络存储空间(1年无上限)
■ 摄像头前置120 万像素,后置500 万像素自动对焦摄像头
■ 屏幕10.1英寸 LED 背光 (1280x800) MVA液晶屏,10点触控
■ CPUNVIDIA Tegra 2 1GHz
■ 内存 1GB
■ 存储16GB/32GB
■ 摄像头前置120 万像素,后置500 万像素自动对焦/闪光灯
便携性对平板电脑的意义
手持应用是平板电脑的使用常态,用户喜欢一只手或者双手拿着平板电脑来进行娱乐。这就是为什么各大厂商都千方百计地降低产品的重量的原因。过重的重量会让用户的手腕迅速劳累酸痛,即使体验再好,也无法抵消疲劳带来的反作用,因此是不是足够轻薄是用户要考虑的首要前提。
屏幕效果
平板电脑的用户,大部分时间都是在进行影音、游戏娱乐和资讯阅读、社交网络等,因此好的屏幕效果对用户体验的提升和眼睛的保护都极其重要。好的平板电脑的屏幕颜色、分辨率、可视角度和对比度等参数都令人满意。
华硕TF101
这款以变形为卖点的Android 3.0平板电脑几乎成了标杆式产品。细致的做工、优秀的便携性、出色的屏幕加上键盘底座让它大出风头。
Acer A500
Android教学 篇12
Android软件开发课程也是计算机相关专业的课程中实践性非常强的一门编程语言课程。如果在授课采用传统的教学模式,比如填鸭式,学生学习的兴趣不高,发现问题解决问题的能力也欠缺,一门实践性的课程却变成理论课,因此,对Android课程教学而言,传统的教学模式必须进行改革。
本文第1节简要介绍了教学改革的几种方法,第2节详细介绍了Android课程如何进行教学改革,第3节在Android课程教学改革研究的基础上,提出了Android课程考核方式的改革,并做了简要介绍,第4节对全文进行总结,并提出对Android课程教学改革的展望。
1 教学改革新方法
近年来学者们提出了许多新的教学模式,推出了很多网络化教学模式,比如MOOC(幕课)[1]是最新涌现出来的在线课堂模式,还有工程教育理念CDIO[2,3]是一个国际性的、广泛的、全面的工程教育改革模式,以及项目驱动、翻转课堂等新的教学模式等等。
“项目驱动”教学法[4]属于探究式教学法,是师生以团队的形式共同实施一个完整的项目所进行的教学活动。在教学活动中,教师将需要解决的问题以项目的形式交给学生,学生在教师的指导下,以个人或小组的工作方式,按照实际工作的完整流程,整个过程锻炼学生的能力[5]。
翻转课堂[6]是指重新调整课堂内外的时间,将学习的决定权从教师转移给学生。在这种教学模式下,课堂内的宝贵时间,学生能够更专注于主动的基于项目的学习,从而获得更深层次的理解。
2 Android课程教学改革研究
2.1 Android课程教学方法的改革
采用翻转课堂的教学模式,还课堂于学生,让学生成为课堂的主体,教师讲解基本的理论知识以及要完成的案例,然后由学生自主完成。学生发现问题后,教师要引导学生自主解决,培养学生发现问题解决问题的能力。
2.2 Android课程教学内容的改革
教学内容以项目为主,教师在选定项目时起主导和引导作用,把知识点融入到项目中;而在完成项目时,学生起主导作用,如此可以把理论寓于实践,二者有机结合,所以项目的选择及其重要。
当前网络上Android教学案例有很多,恰当的案例可以让学生由简到繁,逐步掌握知识点,也能做到将知识点融会贯通[7]。选择案例要遵循以下几个原则:
第一,项目在设计过程中最好来源于实际应用,不能闭门造车,要结合市场上的实际应用设计教学案例。
第二,项目的设计要尽量融合多个知识点,以知识点由浅入深地将项目细化,不能简单粗暴地划分模块,而是要具有逻辑性地进行分类细化,用一个应用实例让学生学习多个知识点,并能将知识融会贯通[8]。
在教学过程中,适当增加实训内容,模拟企业的开发流程,由学生独立完成整个实训案例,既能阶段性检验学生对于知识点的掌握程度,又能让学生更多地实践,更熟练地运用理论知识和开发技巧。
3 Android课程考核方式的改革
“项目驱动式”教学法是不同于传统教学模式的崭新方法,课程内容和教学方法改革后,考核方式也要相应改革,否则达不到好的教学效果,因此,需要制定一套与之相适应的评价体系来评定教学效果,并不断改进,才能行之有效。
考核方式可以采用上机考试的形式,学生在规定时间内完成一个指定案例;也可以采用笔试考试形式,但是题型要做适当修改,比如增加主观题,没有固定的答案,充分发挥学生的想象力,可以增加编程题型所占的比例,考察学生编程能力。
4 总结
本文提出将项目驱动的教学模式应用到Android课程教学中,以项目驱动的形式讲授理论知识,提高学生的课堂参与程度,让学生成为课堂的主体,发挥学生的潜能,同时也将老师从填鸭式教学中解放出来,转变为指导学生完成项目的导师。在教学内容、方式改革后,为了达到好的教学效果,各革了Android课程的考核方式,但是全文对改革内容的探索尚不是很深入,需要在更多实践和先进理论的指引下进一步对Android课程改革。
参考文献
[1]于春燕.基于共建的应用型本科院校MOOCs课程建设策略[J].计算机教育,2015(13):97-102.
[2]陈卫民.基于CDIO的Android教学改革探索[J].当代教育实践与教学研究,2015(6):27.
[3]宋喜佳.CDIO理念的Android应用程序开发教学改革[J].计算机教育,2015(10):39-41.
[4]王新芳.《市场调查与预测》项目驱动式教学模式研究[J].教学研究,2016:97-98.
[5]翟悦.项目驱动法运用于《JSP程序设计》课程的研究和实践[J].价值工程,2014(11):216-217.
[6]倪红军.基于翻转课堂模式的Android应用开发课程建设[J].计算机教育,2015(20):80-91.
[7]刘春.以Android应用为案例的软件工程教学[J].计算机教育,2015(11):75-77.
【Android教学】推荐阅读:
Android框架05-30
Android技术07-31
Android手机08-13
Android组件09-25
android项目学习总结07-22
如何学习android开发08-11
android学习overridePendingTransition08-28
基于android需求分析08-31
android简历怎么写09-27
android年终总结范文11-03