人人范文网 财务工作总结

android述职报告(精选多篇)

发布时间:2021-06-23 07:49:38 来源:财务工作总结 收藏本文 下载本文 手机版

推荐第1篇:Android 课程设计报告

课 程 设 计

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

教 务 处 制

课 程 设 计 任 务 书

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

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

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

基本理论

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

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

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

设计内容

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

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

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

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

年 月 日

目录

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

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

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

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

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

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

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

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

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

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

1.2 课程设计要求

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

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

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

1.智能手机的市场

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

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

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

- 345

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

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

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

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

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

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

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

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

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

1. 总体设计

1)界面设计

主界面:

- 102)功能设计

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

2.详细设计

1)模块设计

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

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

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

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

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

2)编码实现:

各包内的JAVA源文件:

- 12

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

3.手机上运行截图

手机截图:

- 1516 -

推荐第2篇:android实习报告

实习报告

实习目的:

生产实习是计算机科学与技术专业重要的实践性教学活动,其目的是使学生们进一步加深对所学知识的理解,理论联系实际,巩固所学有关计算机基础理论知识和基本技能,学习有关计算机最新技术方面的应用,增强学生对计算机在社会生活,社会生产中应用的感性认识,深入了解计算机在各个领域中的应用状况,学生在实习的同时,进行一定的社会实践与调查活动,对于提高学生的综合能力和全面素质具有重要意义。

实习内容:

Android主要有四大组件,分别为:Activity 活动、Service 服务、Broadcast receivers 广播接受者、Content Provider 内容提供者。还有上激活组件Intent。

1.Activity

Activity就是一个用户可以直接接触并看到的窗口,当新建一个Android Project后可以

看到在工程文件下的src中有一个已建好的java类FirstActivity,系统也会自动为他配备一个布局文件main.xml ,并在AndroidManifest中对此Activity进行注册。

用户想要自己创建一个Activity,首先创建一个java类继承自Activity,可以为他配备一个布局文件用来显示Activity创建后的布局。最后在主配置文件manifest.xml中对创建的Activity进行注册,这一步是必不可少的,没有注册Activity无法运行。

在manifest.xml中会有许多的Activity,但系统一次只能运行一个Activity,因此必须修选定一个最先运行的Activity。在注册Activity是加入

可指定当前的Activity为主Activity最先被执行。其他Activity可借助激活组件Intent

进行启动。通过Intent还可实现来了两个Activity之间传递数据

Activity具有生命周期,他有三种状态:运行状态、暂停信息和停止状态。运行态是在屏幕台前位于当前任务堆栈的顶部,即获取焦点的Activity。暂停信息是指失去了焦点但对于用户仍可见,此状态下当程序处于低内存是仍有可能被消除。停止状态是指完全被另一个Activity覆盖,但他仍然保留所有的信息与状态。

2.Android图形设计UI

Android UI控件一般写在布局文件中,此次实习所学控件主要有:TextView,EditText

Button、AlertDialog、RadioButton、CheckBox、Spinner和TableRow等。将这些控件及相应的属性写在layout下的布局文件中就可在与其绑定的Activity中显示相应的对话框,文本框,按钮等。

Android的界面布局是为了使控件能够更友好的呈现在用户的眼中。主要有:绝对布局Absolutelayout、线形布局LinearLayout、框架布局FramLayout、相对布局RelativeLayout和

表格布局TableLayout。其中框架布局适合于单张图片的显示。

3.Service 服务

Service事实运行在后台的一段代码。他与Activity一样有相似的生命周期,但不同的是他不能自己运行,必须通过某一个Activity或者其他的Context对象来调用。

Service可通过调用Context.StartService()启动,还可以通过ServiceConnection来访问Service。可以将其他的组件绑定到Service上。

4.数据存储

Activity提供了openFileOutput()方法可以用于把数据输出到文件中,具体的实现过程与在J2SE环境中保存数据到文件中是一样的。

openFileOutput()方法的第一参数用于指定文件名称,不能包含路径分隔符“/” ,如果文件不存在,Android 会自动创建它。创建的文件保存在/data/data//files目录,如: /data/data/cn.itcast.action/files/itcast.txt ,通过点击Eclipse菜单“Window”-“Show View”-“Other”,在对话窗口中展开android文件夹,选择下面的File Explorer视图,然后在File Explorer视图中展开/data/data//files目录就可以看到该文件。

openFileOutput()方法的第二参数用于指定操作模式,有四种模式android有一套自己的安全模型,当应用程序(.apk)在安装时系统就会分配给他一个userid,当该应用要去访问其他资源比如文件的时候,就需要userid匹配。默认情况下,任何应用创建的文件,sharedpreferences,数据库都应该是私有的(位于/data/data//files),其他程序无法访问。除非在创建时指定了Context.MODE_WORLD_READABLE或者Context.MODE_WORLD_WRITEABLE ,只有这样其他程序才能正确访问。

实习流程:

2月18——2月27日,老师对于ANDROID开发进行了详细的讲解,其内容包括:ANDROID 的背景介绍,发展过程,自身的优势与不足.Android的控件、布局、Activity、Service等一系列基础知识,对整个Android的开发有了大致的了解

2月28日——3月2日: 学生自己开发ANDROID 3GABS项目,老师答疑及验收

实习心得:

时间过的飞快,半个月的实习就要结束了,在这次实习中我们不仅学习了相关的

专业知识而且让我对Android系统又有了一个更加深入的了解,它也是我们计算机专业的一个新的方向并且发展很迅速,为了今后的发展我们还需不断努力学习!我国的信息产业还很落后,随着社会的发展和国家的支持,手机上网是社会发展的趋势,到时候手机上网将无处不在!之前我对Android系统的了解之停留在应用的层次上,对于更深层次的了解是很少的,通过这次实习,让我对Android系统有了一个更深层次的了解,同时它页使我意识到无论朝哪个方向发展,主要还是要扎实深刻地学习,同时也得不断努力探索!

IT业发展速度一直都是相当惊人的,不想被社会淘汰,我们就得必须不断地学习,现在的社会不再是一劳永逸,其他行业也是如此,我们必须不断地拿知识来武装自己,不然被淘汰那是肯定的!现在就业难原因其实在于竞争的家具,为了在竞争中得到成功,我们必须时时刻刻学习,还学到了很多做人做事的道理,不仅懂得了要想在计算机这一行立足必须具备扎实的技术理论知识,还必须学会与人沟通,合作的能力,同时更懂得了尝试的重要性,很多事情不是听说是困难的它就是困难的,只有亲自去做亲自去体会才知道,其实它并没有那么困难,这就是实践的重要性! 无论做什么事情都必须要坚持,只有坚持下去,才会成功!事在人为,就怕不做!我们不能怕失败,关键是要从失败中总结经验,带着勇气,带着自信,坚持不懈,踏踏实实。这一次的实习是短暂的,但我收获良多。回顾以前所走过的路,太多的无奈和迷茫,这次实习就像是我人生道路上的航标,为我指明了前景的方向,是我对自己的前途充满了信心,我不仅知道了在人生的岔道口更适合朝哪个方向前进!更知道了在今后的道路上怎么去武装自己!

实习结果:

推荐第3篇:android天气预报报告

Android天气预报论文

学 院: 专 业: 学 号: 学生姓名: 指导教师: 日 期:

电子信息工程学院 计算机应用 11033801135

郎红 黄炜 2013年11月13

一、项目背景

现有的3G技术和移动互联网技术的快速发展,智能手机功能的不断增强,让基于Android平台的查询需求越来越多。

本软件就是利用现有的网络快速获取网络上的天气信息并显示到手机终端上,为用户提供实时的天气查询和近期天气查询服务,为工作、出行等带来便利。通过Web Service等技术让用户体验到前所未有的移动计算。

二、需求分析

(一) 功能需求

在这个综合示例中,有一个显示天气情况的用户界面,可以通过图片和文字显示当前和未来几天的天气状况,包括温度、湿度、风向和雨雪情况等。这些天气数据是通过后台服务获取的,这个后台服务按照一定时间间隔,从搜索引擎上获取天气预报信息,并将天气信息保存在后台服务中。示例还需要提供基于SMS短信的天气数据服务,其他手机用户可以向本示例所在的手机上发送SMS短信,在短信中包含特定的关键字,则可以将已有的天气情况通过SMS短信回复给用户。最后,每个被发送的SMS短信都会被记录下来,用户可以浏览或删除这些记录信息。

(二) 界面需求

从上面的描述中可以基本了解软件的功能需求,但为了将需求分析过程变得简单明了,首先找出用户界面上需要显示的内容。功能描述中有“显示天气情况的用户界面”和“用户可以浏览或删除这些记录信息”,除此以外,一般应用软件还应有显示配置信息的界面。因此,本示例应该包含三个用户界面: 显示天气预报的用户界面、显示已发送SMS短信的用户界面、浏览和设置配置信息的用户界面

(三) 内部功能

从用户界面出发,分析隐藏在界面后面的内部功能,这些功能则是程序正常运行的基础 (1)显示天气预报的用户界面 ;

①获取搜索引擎的天气数据 ②保存天气数据信息 (2)显示SMS短信的用户界面

①根据关键字监视SMS短信 ②发送包含天气信息的SMS短信 ③将发送SMS短信的相关信息写入数据库 (3)浏览和设置配置信息的用户界面

①将用户设置的配置信息保存到数据库 ②启动时读取数据库中的配置信息 ③支持恢复缺省设置

三、程序设计

(一) 用户界面设计

根据需求中的用户界面分析,应用程序应包含三个主要的用户界面,每个用户界面的显示内容

在“显示天气预报的用户界面”中,显示目标城市的当前的天气状况,包括城市名称、温度、湿度、风向、雨雪情况和获取数据时间等信息。在界面的下方显示未来四天的天气状况,但仅包括温度和雨雪情况

在“显示已发送SMS短信的用户界面”中,显示每个回复短信的时间、目标手机号码、城市名称、当天的天气状况和未来一天的天气状况

在“浏览和设置配置信息的用户界面”中,显示希望获取天气预报的城市名称、获取数据的频率和短信监视的关键字,并允许用户设置是否提供短信服务,以及是否记录回复短信信息

用户界面草图:

(二) 数据库设计

本示例主要有两种数据需要存储

配置信息:因为配置信息的数据量很小,从Android支持的存储方式上分析,可以保存在SharedPreference、文件或SQLite数据库中

SMS短信服务信息: SMS短信服务信息是一个随着时间推移而不断增加的数据,属于文本信息,而且有固定的格式,因此适合使用SQLite数据库进行存储

综合分析这两个需要存储的数据,选择SQLite数据库作为存储数据的方法 (1)配置信息:

配置信息中主要保存目标城市的名称,访问搜索引擎更新天气信息的频率,请求天气信息服务短信的关键字,以及是否提供短信服务和是否记录短信服务内容,配置信息的数据库表结构

(2)SMS短信服务信息:

SMS短信服务信息主要保存请求天气服务短信的发送者、短信内容、接收时间和回复信息的内容 ,SMS短信服务信息的数据库表结构

(三) 程序设计

程序模块设计:

从功能需求上分析,可以将整个应用程序划分为4个模块,分别是用户界面、后台服务、数据库适配器和短信监听器 。下图是模块结构图

从模块结构图中不难看出,后台服务是整个应用程序的核心,主要包含数据获取子模块和短信服务子模块。数据获取子模块负责周期性的从搜索引擎获取天气信息;短信服务子模块则负责处理接收到的服务请求短信,并发送包含天气信息的短信 。

后台服务由用户界面通过Intent启动,启动后的后台服务可以在用户界面关闭后仍然保持运行状态,直到用户通过用户界面发送Intent停止服务,或系统因资源不足而强行关闭服务 。

用户界面从后台服务获取天气信息,而没有直接通过网络访问搜索引擎的天气数据 。一方面是因为后台服务使用了工作线程,通过后台服务获取天气数据可以避免因网络通信不畅造成界面失去响应 。另一方面,在用户关闭界面后,后台服务仍然需要更新天气信息,以保证短信服务数据的准确性。用户界面通过直接调用数据库适配器,向SQLite数据库中读写配置信息,或对SMS短信服务信息进行操作 。

短信监听器是一个BroadcastReceiver,监视所有接收到的短信 。如果短信中包含用户自定义的关键字,短信监听器则会认为这条短信是天气服务请求短信,将短信的相关信息写入后台服务的短信服务队列 。如果用户在配置信息中选择无需提供短信服务,短信监听器仍然继续监听所有短信,只是后台服务不再允许将服务请求短信写入服务队列 。

数据库适配器封装了所有对SQLite数据库操作的方法,用户界面和后台服务会调用它实现数据库操作 。

四、项目功能描述

(一) 系统主要功能

本软件要完成在android手机上实现天气的即时预报。所涉及的功能有: 1.启动程序后可以进行城市、更新频率的设置;

2.可以通过图片和文字显示当前和未来的天气状况,包括温度、湿度、风向和雨雪情况等。使用效果图实现与相应天气的结合。

3.这些天气数据是通过后台服务获取的,这个后台服务可以按照一定的时间间隔,通过搜索引擎提供的公共接口获取天气预报信息,并将天气信息保存在本地数据库中。(二) 工程结构

在程序开发阶段,首先确定“天气预报软件”的工程名称为WeatherDemo,包名称为edu.hrbeu.WeatherDemo。然后根据程序模块设计的内容,建立WeatherDemo示例 ,WeatherDemo示例源代码的文件结构:

为了使源代码文件的结构更加清晰,WeatherDemo示例设置了多个命名空间中,分别用来保存用户界面、数据库、后台服务、SMS短信和天气数据的源代码文件 ,WeatherDemo示例的命名空间

WeatherDemo示例将不同用途的源代码文件放置在不同的命名空间中 。WeatherDemo示例的文件用途说明

Android资源文件保存在/res的子目录中 。/res/drawable目录中保存的是图像文件, /res/layout目录中保存的是布局文件 ,/res/values目录中保存的是用来定义字符串和颜色的文件 ,/res/xml目录保存的是XML格式的数据文件 。所有在程序开发阶段可以被调用的资源都保存在这些目录中 ,资源文件名称与用途:

(三)数据库适配器

数据库适配器是最底层的模块,主要用于封装用户界面和后台服务对SQLite数据库的操作。数据库适配器的核心代码主要在DBAdapter.java文件中 用户保存配置信息的类文件Config.java Config.java文件的全部代码如下:

1 package edu.hrbeu.WeatherDemo.DB; 2 3 public cla Config { 4 public static String CityName; 5 public static String RefreshSpeed; 6 public static String ProvideSmsService; 7 public static String SaveSmsInfo; 8 public static String KeyWord; 9 10 public static void LoadDefaultConfig(){ 11 CityName = \"New York\"; 12 RefreshSpeed = \"60\"; 13 ProvideSmsService = \"true\"; 14 SaveSmsInfo = \"true\"; 15 KeyWord = \"NY\";16 }17 } 从代码中不难看出,公有静态属性CityName、RefreshSpeed、ProvideSmsService、SaveSmsInfo和KeyWord,完全对应数据库中保存配置信息表的属性(参照表12.1)。在程序启动后,保存在数据库中的城市名称、更新频率、是否提供短信服务、是否保存短信信息和关键字等内容,将被读取到这个Config类中,供其它模块做逻辑判断时使用。

代码第10行的LoadDefaultConfig()函数,保存了程序内置的配置参数此函数会在两个情况下被调用,用户主动选择“恢复缺省设置”;首次启动程序时,用来初始化保存配置参数的数据库,

DBAdapter类与以往介绍过的数据库适配器类相似,都具有继承SQLiteOpenHelper的帮助类DBOpenHelper 。DBOpenHelper在建立数据库时,同时建立两个数据库表,并对保存配置信息的表进行了初始化。

在DBAdapter类中,用户界面会调用SaveConfig()和LoadConfig(),从SQLite数据库中保存和读取配置信息。保存配置信息时,SaveConfig()函数会将Config类中的公有静态属性写入数据库;反之,LoadConfig()会将数据库中的配置信息写入Config类中的公有静态属性 。

另一个会调用DBAdapter类的是后台服务,即WeatherService类 。后台服务主要调用SaveOneSms(SimpleSms sms)、DeleteAllSms()和GetAllSms()函数,分别用来保存SMS短信记录、删除所有SMS数据记录和获取所有SMS数据记录。 在GetAllSms()函数中,调用了一个私有函数ToSimpleSms(Cursor cursor),用来将从数据库获取的数据转换为SimpleSms实例数组 。

(四)短信监听器

短信监听器本质上是BroadcastReceiver,用于监听Android系统所接收到的所有SMS短消息,可以在应用程序关闭后仍然继续运行,核心代码在SmsReceiver.java文件中 。在介绍SmsReceiver类前,先说明用来保存SMS短信内容和相关信息的SimpleSms类。android.telephony.SmsMeage是Android提供的短信类,但这里需要一个更精简、小巧的类,保存少量的信息,因此构造了SimpleSms类,仅用来保存短信的发送者、内容、接收时间和返回结果。这里的“返回结果”指的是返回包含天气信息的短信内容。

SimpleSms.java文件完整代码:

1 package edu.hrbeu.WeatherDemo.SMS; 2 import java.text.SimpleDateFormat; 3 4 public cla SimpleSms { 5 public String Sender; 6 public String Body; 7 public String ReceiveTime; 8 public String ReturnResult; 9 10 public SimpleSms(){ 11 } 12 public SimpleSms(String sender, String body){ 13 this.Sender = sender; 14 this.Body = body; 15

SimpleDateFormat tempDate = new SimpleDateFormat(\"yyyy-MM-dd\" + \" \" + \"hh:mm:\"); 16 this.ReceiveTime = tempDate.format(new java.util.Date()); 17 this.ReturnResult = \"\"; 18 } 19 } 代码第5行到第8行的属性Sender、Body、ReceiveTime和ReturnResult,分别表示SMS短信的发送者、内容、接收时间和返回结果。 第15行和第16行在SimpleSms类的构造函数中,直接将系统时间以“年-月-日 小时:分:秒”的格式保存在ReceiveTime属性中。

SmsReceiver类继承BroadcastReceiver,重载了onReceive()函数。 系统消息的识别和关键字的识别并不复杂,只要接收android.provider.Telephony.SMS_RECEIVED类型的系统消息,则表明是Android系统接收到了短信。将短信的内容拆分后,判断消息内容是否包含用户定义的关键字,则可判断该短信是否为天气服务请求短信 。

最后,在AndroidManifest.xml文件中注册短信监听器SmsReceiver,并声明可接收短信的用户许可android.permiion.RECEIVE_SMS 。如果注册的组件不在根命名空间中,则需要将子命名空间写在类的前面 ,例如下面在代码第1行中,因为SmsReceiver.java文件在edu.hrbeu.WeatherDemo.Service命名空间下,而不在根命名空间edu.hrbeu.WeatherDemo下,因此注册组件时需要在类名SmsReceiver前添加.Service 。

1 2 3 4 5 6 (五)后台服务

后台服务是WeatherDemo示例的核心模块,在用户启动后持续在后台运行,直到用户手动停止服务,后台服务功能,发送包含天气信息的SMS短信(短信发送子模块,周期性的获取搜索引擎的天气数据(数据获取子模块) 。

1.短信发送子模块

后台服务在单独的线程上运行,首先调用ProceSmsList()函数,检查短信队列中是否有需要回复的短信,然后调用Get搜索引擎WeatherData()函数获取天气数据,最后线程暂停1秒,以释放CPU资源,WeatherDemo示例后台服务的核心代码在WeatherService.java文件中。下面是线程调用函数的部分代码 :

private static ArrayList smsList = new ArrayList(); 2 3 private Runnable backgroudWork = new Runnable(){ 4 @Override 5 public void run() { 6 try{ 7 while(!Thread.interrupted()){ 8 ProceSmsList(); 9 Get搜索引擎WeatherData(); 10 Thread.sleep(1000); 11 } 12 } catch (InterruptedException e) { 13 e.printStackTrace();14 }15 }16 }; ProceSmsList()函数用来检查短信列表smsList,并根据Weather类中保存的天气数据,向请求者的发送回复。WeatherService.java文件的ProceSmsList()函数代码如下。

private void ProceSmsList(){ 2 if (smsList.size()==0){ 3 return; 4 } 5 SmsManager smsManager = SmsManager.getDefault(); 6 PendingIntent mPi = PendingIntent.getBroadcast(this, 0, new Intent(), 0); 7 while(smsList.size()>0){ 8 SimpleSms sms = smsList.get(0); 9 smsList.remove(0); 10

smsManager.sendTextMeage(sms.Sender, null, Weather.GetSmsMsg(), mPi, null); 11 sms.ReturnResult = Weather.GetSmsMsg(); 12 SaveSmsData(sms);13 }14 } 发送短信是使用SmsManager对象的sendTextMeage()方法,该方法一共需要5个参数,第1个参数是收件人地址,第2个参数是发件人地址,第3个参数是短信正文 ,第4个参数是发送服务,第5个参数是送达服。sendTextMeage()方法的收件人地址和短信正文是不可为空的参数,而且一般GSM规范要求短信内容要控制在70个汉字以内。代码第8行的Weather.GetSmsMsg(),用来获得供回复短信使用的天气信息,因为考虑到短信的字数限制,仅返回当天和未来一天的天气状况 。

2.数据获取模块

天气数据是从搜索引擎提供的Web Service中获取的,调试WeatherDemo示例时需要网络环境,数据的获取地址是 http://www.daodoc.com/ig/api?hl=en&weather=New%20York。New%20York表示获取纽约(New York)的天气数据 ,%20表示一个空格。读者可以将上面提供的地址输入到Web浏览器,在浏览器中直接看到XML格式的天气数据。

WeatherAdapter类实现了利用URL获取位图的私有函数GetURLBitmap(),以及用来下载和解析XML数据的公有函数GetWeatherData()。后台服务在调用GetWeatherData()函数解析搜索引擎提供的天气数据时,会不断调用GetURLBitmap()函数,将XML数据中的天气图标根据图标地址下载到本地保存 。 GetURLBitmap()函数的代码如下 :

private static Bitmap GetURLBitmap(String urlString){ 2 URL url = null; 3 Bitmap bitmap = null; 4 try { 5 url = new URL(\"http://www.daodoc.com\" + urlString);6 } 7 catch (MalformedURLException e){ 8 e.printStackTrace();9 }10 11 try{ 12 HttpURLConnection conn = (HttpURLConnection) url.openConnection(); 13 conn.connect(); 14 InputStream is = conn.getInputStream(); bitmap = BitmapFactory.decodeStream(is); 16 is.close(); 17 }catch (IOException e){ 18 e.printStackTrace();19 } 20 return bitmap;21 } 第12行代码构造了支持HTTP功能的URLConnection ,第14行返回字节流,第15行使用字节流产生位图 ,第16行关闭字节流 。

GetWeatherData()函数首先根据指定的URL地址,从网络获取字节流数据,然后调用轻量级XML解析器XmlPullParser对天气数据进行解析,并将解析结果保存在Weather类的公有静态属性中 。

(六)用户界面

在用户界面设计上,采用可多分页快速切换的TabHost控件。WeatherDemo示例TabHost控件的每个标签页与一个Activity相关联,这样就可以将不同标签页的代码放在不同的文件中,而且每个标签页都可以有独立的选项菜单 。

WeatherDemo类是继承TabActivity的Tab标签页,共设置3个标签页 TAB1的标题为“天气预报”,关联的Activity为WeatherActivity ,TAB2的标题为“历史数据”,关联Activity为HistoryActivity ,TAB2的标题为“系统设置”,关联Activity为SetupActivity 。

WeatherDemo.java中的代码只是用户界面的框架,设置了Tab标签页的图标、标题和所关联的Activity,标签页中的具体显示内容还要依赖于每个Activity所设置的界面布局

界面布局包含 WeatherActivity、HistoryActivity、SetupActivity 1.WeatherActivity用户界面

WeatherActivity在启动时并不能直接显示最新的天气信息,用户需要通过选项菜单的“启动服务”开启后台服务,然后点击“刷新”获取最新的天气状况 。

选项菜单还提供“停止服务”和“退出”选项 。WeatherActivity使用的布局文件是tab_weather.xml,这是个较为繁琐的界面布局,多次使用了垂直和水平的线性布局 。

2.historyActivity界面

HistoryActivity主要用来显示SQLite数据库中的短信服务信息,显示的内容包括发送者的手机号码、时间和回复短信内容 。为了能够以列表的形式显示多行数据,并且定制每行数据的显示布局,这里使用了以往章节没有介绍过的ListActivity(Android.app.ListActivity)。

ListActivity可以不通过setContentView()设置布局,也不必重载onCreate()函数,而直接将显示列表加载到ListActivity,增加了使用的便利性。在WeatherDemo示例中,仍然使用setContentView()设置布局,这样做的好处是可以在界面中设置更为复杂的显示元素,例如在列表上方增加了提示信息“SQLite数据库中的短信服务信息”。下方的代码是HistoryActivity.java文件的onCreate()函数中的设置布局和加载适配器的关键代码。 1. setContentView(R.layout.tab_history); 2 setListAdapter(dataAdapter); 3.SetupActivity界面

SetupActivity主要用来保存和恢复用户设置的运行参数 ,第一次启动或恢复缺省设置(在选项菜单中)后,界面上会显示系统的缺省设置,包括城市名称、更新频率、是否提供短信服务、是否记录短信服务数据信息和短信服务的关键字。

SetupActivity.java文件中,主要功能集中在RestoreDefaultSetup()、UpdateUI()和SaveConfig()三个函数上。RestoreDefaultSetup()用来恢复系统的缺省配置 ;UpdateUI()会根据保存在Config类中的数据更新SetupActivity的界面控件,SaveConfig()根据界面配置更改Config类,然后调用数据库适配器的DBAdapter.SaveConfig()函数,将Config类中的配置数据写入数据库。

五、总结

通过该项目的实战演练让我受益匪浅,在这个过程中,我学会了很多知识,比如Android环境的搭建、Activity、Service、ContentProvider、SQLite的用法等,但我学会的最重要的一点是,利用现有的资源去解决问题,在图书馆、网络上寻找答案。

虽然,这个软件目前运行良好,但是我认为代码的健壮性还很差,在整个工程的构思方面也不足,用户操作界面还不够灵活,这些问题还需要今后逐一解决。

推荐第4篇:计算机系Android实习报告

****毕业实习报告

学生姓名学

号专

业指导教师

****

毕业实习报告

**** **********

计算机科学与技术

***

达内时代科技集团有限公司毕业实习报告

系别:信息工程学院 年级:2012级 专业:计算机科学与技术

姓名:韩温玉 学号:201252383

前 言

为期三个月的认识实习即将结束,三个月的实习时间虽然不长,但是我从中学到了很多知识,关于做人、做事、做学问。这次实习丰富了我在这方面的知识,使我向更深的层次迈进,对我在今后的社会当中立足有一定的促进作用,但我也认识到,要想做好这方面的工作单靠这短短的实习是不行的,还需要我在平时的学习和工作中一点一点的积累,不断丰富自己的经验才行。我面前的路还是很漫长的,需要不断的努力和奋斗才能真正地走好。实习这三个月期间,我拓宽了视野,增长了见识,体验到社会竞争的残酷,在设计知识方面、技能、与人沟通和交流等方面都有了不少的收获。不但认识到自己在理论知识方面的欠缺,而且还意识到只有与实践结合起来,才能使自己的知识水平和自身素质有较大的提高。以便在以后能以更加积极的姿态面对今后的学习和工作中面临的挑战。为我今后在工作上能力的提高起到了促进的作用,增强了的竞争力,为以后立足增添了一块基石

I

一.达内时代科技集团有限公司介绍 1.实习目的

毕业实习是学生大学本科教学实践的主要环节,对学生的实践能力的培养具有十分重要的意义。学生通过本次实习,能够了解计算机专业的相关新技术,了解理论知识在实际应用中的作用,了解计算机技术的新发展,体验计算机专业的工作内容和工作特点,拓宽知识面,增强人际沟通能力,加强团队协作精神,为走向社会打下基础。

Android以Linux为核心的Android行动平台,使用Java作为编程语言。本实训是在学习java语言程序设计的基础上进行的一次综合实践。通过综合训练,要求学生掌握java语言程序设计的基本技能和Android编程的应用,并较系统地掌握JAVA语言程序设计开发方法以及帮助文件的使用等,使学生通过本次实训,能够进行独立的Android应用程序开发,能够在实际操作中得到进一步的提高,为以后的学习和工作打下良好的基础。

2.公司简介

达内全称达内时代科技集团有限公司,是中国高端IT培训的领先品牌,致力于培养面向电信和金融领域的Java、C++、C#/.Net、软件测试、嵌入式、PHP、android等方面的中高端软件人才。

由于达内优秀的教学效果和行业领先的经营模式赢得了社会各界的广泛赞誉和好评,荣获了各界权威机构的颁奖:达内成为业界唯一的一家200

6、200

7、200

8、2009连续4年入选德勤评选的 “中国高科技高成长50强公司”、“亚太地区高科技高成长500强公司”,获得首届中国留学人才归国创业“腾飞”奖、中关村管理委员会指定的“软件人才培 养示范基地”、被《计算机世界》评选的“就业服务杰出贡献奖”、被《中国计算机报》评选的“最具影响力培训机构奖”、被搜狐评为“中国十大教育集团”、被腾讯评为“中国大学生心目中最具影响力的IT品牌”。

二.Android开发实习内容及过程

此次实习是对android的简单的应用与开发,也是对android各个控件的学习与实践。在java的环境中对界面,应用进行编程。本次实习重点完成了安卓开发计算器、安卓开发学生注册界面、安卓开发音乐播放器和安卓开发游戏连连 2

看这四个项目。

做学

学习

了linearlayout,tablelayout, AbsoluteLayout, RelativeLayout四种布局,分别为线型布局,表格布局,绝对布局和相对布局,并知道了如何通过这四种布局的相互嵌套来使程序的界面更加的友好,更加的让用户接受。并简单的了解了安卓目录下SRC,gen,res等文件夹中的文件在项目中的作用,学习了切换界面的类Intent。

然后学习了Button,TextView,Seekbar等android开发的控件,并且将这些控件都运用到了所作的学生注册界面中。

做音乐播放器时学习了关于音乐文件的调用,也学习了在主文件Main.java中先创建多媒体对象后,然后通过SD卡的文件路径来创建一个播放资源,然后在创建按钮对象,同时添加6个按钮对象创造各自的侦听方法,我们用ListActivity来布局播放界面,用ImageButton来实现播放器的开始,暂停的操作。

最后在开发连连看游戏时,将前面所学的知识进行综合与加深,也学习到了新的函数与控件,该游戏主要包括claGameView(游戏视类,处理游戏中出现的情况,包括界面生成,算法等)claGameActivity(处理游戏中的消息提示),claStartActivity(游戏菜单设计),claSetActivity(菜单中游戏难度设定)这些类。比如用random函数来对连连看进行重排列,还有用menu对游戏里的功能进行操作,还有用之前学到关于多媒体对象的调用将连连看游戏进行配乐。并且选用了网格对游戏界面进行了规划,以及对于相同图片的的消去,必须满足情况:1,图片相同;2,两个图片之间必须没有障碍物,可以用若干个垂直的直线连接起来;3,连接两个图片的直线线段的转折点不超过两个(连接线由X轴和Y轴

的平行线组成,即无拐点,一个拐点,两个拐点)

此次对android应用与开发的实习分为以下几个阶段。

首先,由老师带领我们对android以及开发软件eclimpse进行了一个大概的了解与操作,并且对开发语言基础java的基础知识和编程思想进行了一次简单的复习与加深。

然后老师开始带领我们学习android界面的开发,并且告诉我们如何可以将 3

界面尽量做得美观与方便,告诉我们作为程序的开发人员要为用户考虑,在这一阶段,我们开始试着学习和操作android的简单控件,包括TextView,Button等。

接着我们开始自己开发计算器,第一次将自己学到的控件进行组合搭配,并且开始学会怎么去监听按钮,通过对安卓常用类的学习,我们完成了计算器的常用功能。然而,对于计算机功能的实现,我感觉自己还没有办法做到自己想到的所有功能这让我对android更加满兴趣的学习下去。

当初步接触到了控件的开发与搭配后,我们开始开发学生注册界面,并且将所输入的信息反应到下一个界面中,在做这个的时候,我们又新学习了Seekbar,CheckBox等控件,让我们进一步学习了android中的常用控件。

然后是对音乐播放器的开发,此阶段我开始真正的接触到了生活中自己经常用到的软件的开发,并且也让我第一次感觉到需要将自己开发的软件做的美观, 于是我们开始学会调用背景图片,调用歌曲,并且学习了RadioButton控件,以及播放器中对音乐的下跳,循环播放等功能的学习与实现。

最后是开发游戏“连连看”,在此之前老师先向我们介绍了对于图片的处理等相关知识。

对于连连看,我们很熟悉,也明白其中的游戏规则;然而把它们用计算机语言展示出来却比用文字语言展示出来要难上很多。因此这个项目也是用时最多的一个项目,期间融合了算法设计以及之前几个项目所学的知识。虽然在参考资料下,完成了项目;但是也存在很多不足。当然也有自己特点的地方,比如添加了成功几步就奖励时间,比如游戏的配备音乐,以及音乐的开关按钮。

Android主要有四大组件,分别为:Activity 活动、Service 服务、Broadcast receivers 广播接受者、Content Provider 内容提供者。还有上激活组件Intent。

Activity就是一个用户可以直接接触并看到的窗口,当新建一个Android Project后可以

看到在工程文件下的src中有一个已建好的java类FirstActivity,系统 4

也会自动为他配备一个布局文件main.xml ,并在AndroidManifest中对此Activity进行注册。

用户想要自己创建一个Activity,首先创建一个java类继承自Activity,可以为他配备一个布局文件用来显示Activity创建后的布局。最后在主配置文件manifest.xml中对创建的Activity进行注册,这一步是必不可少的,没有注册Activity无法运行。

在manifest.xml中会有许多的Activity,但系统一次只能运行一个Activity,因此必须修选定一个最先运行的Activity。在注册Activity是加入可指定当前的Activity为主Activity最先被执行。其他Activity可借助激活组件Intent

进行启动。通过Intent还可实现来了两个Activity之间传递数据

Activity具有生命周期,他有三种状态:运行状态、暂停信息和停止状态。运行态是在屏幕台前位于当前任务堆栈的顶部,即获取焦点的Activity。暂停信息是指失去了焦点但对于用户仍可见,此状态下当程序处于低内存是仍有可能被消除。停止状态是指完全被另一个Activity覆盖,但他仍然保留所有的信息与状态。

Android图形设计UI Android UI控件一般写在布局文件中,此次实习所学控件主要有:TextView,EditText Button 、AlertDialog、RadioButton、CheckBox、Spinner和TableRow等。将这些控件及相应的属性写在layout下的布局文件中就可在与其绑定的Activity中显示相应的对话框,文本框,按钮等。

Android的界面布局是为了使控件能够更友好的呈现在用户的眼中。主要有:绝对布局Absolutelayout、线形布局LinearLayout、框架布局FramLayout、相对布局RelativeLayout和

表格布局TableLayout。其中框架布局适合于单张图片的显示。 3.Service 服务

Service事实运行在后台的一段代码。他与Activity一样有相似的生命周期,但不同的是他不能自己运行,必须通过某一个Activity或者其他的Context对象来调用。

Service可通过调用Context.StartService()启动,还可以通过ServiceConnection来访问Service。可以将其他的组件绑定到Service上。 4.数据存储

Activity提供了openFileOutput()方法可以用于把数据输出到文件中,具体的实现过程与在 5

J2SE环境中保存数据到文件中是一样的。

openFileOutput()方法的第一参数用于指定文件名称,不能包含路径分隔符“/” ,如果文件不存在,Android 会自动创建它。创建的文件保存在/data/data//files 目录,如: /data/data/cn.itcast.action/files/itcast.txt ,通过点击Eclipse菜单“Window”-“Show View”-“Other”,在对话窗口中展开android文件夹,选择下面的File Explorer视图,然后在File Explorer视图中展开/data/data//files

文件。 openFileOutput()方法的第二参数用于指定操作模式,有四种模式android有一套自己的安全模型,当应用程序(.apk)在安装时系统就会分配给他一个userid,当该应用要去访问其他资源比如文件的时候,就需要userid匹配。默认情况下,任何应用创建的文件,sharedpreferences,数据库都应该是私有的(位于/data/data//files),其他程序无法访问。除非在创建时指定

Context.MODE_WORLD_READABLE

者Context.MODE_WORLD_WRITEABLE ,只有这样其他程序才能正确访问。

结语

为期四个月的Android实训已经结束,在这一个月中我学习了很多,也得到了很多。实训是把理论与实际结合,通过对理论知识的理解,领悟从而运用到生活实际巩固所学的知识,提高对实际生活的认识,积累经验。在此期间学生能够初次体会到实际生产中的种种技能与经验。完成一项项项目能体现出独立思考能力。Android生产实习对目前应用现状进行了分析与比较,进而研究分析Android平台的系统架构和组件模型。在此基础上,基于Android平台设计和开发,实现对android编程的理解与应用,特别是在对于控件的应用产生很深的理解。

通过这近一个月的android实习,基本掌握了Android应用程序开发的一般流程。对常用控件基本掌握其用法,对其事件的监听方法也基本掌握。学习Android不仅是对前沿开发技术的了解,也是对编程知识的一次提升。

经过对Android的控件、布局、Activity、Service等一系列基础知识的学习,我对整个Android的开发有了大致的了解。因为我们都是第一次接触android,所以老师先给我们讲了一个基本上每个程序语言都要编的,经典的程

6

序,helloworld。通过这个小程序,我们知道了如何去创建一个android的项目,了解了android项目里的每个文件夹和文件的作用。教了一些常用的控件的使用,如:TextView,Button等等。然后老师又教我们如何布局,认识了linearlayout,tablelayout, AbsoluteLayout, RelativeLayout四种布局分别为线型布局,表格布局,绝对布局和相对布局,并知道了如何通过这四种布局的相互嵌套来使程序的界面更加的友好,更加的让用户接受。例如: 要的布局(或者控件) ,在学习界面中,我发现Android为我们提供了很好的类似反射机制,通过Layout文件夹下的配置文件,可以快速的形成界面,在配置文件可以设置属性或者样式都是很快捷方便。对比较特殊的界面也可以通过处理嵌入到指定的界面,同样也可以通过java代码直接创建View进行添加,不过这种方式比较复杂。对一些点击、选中、按键等处理的事件,界面之间的跳转Intent管理.在Android编程过程中巩固熟悉了Java的编程。由于Android应用程序的开发离不开Java的支持,所以基础的Java知识是必须的。由于我们刚刚结束了java课程,马上展开了android实训,而android和java之间又有很大的联系,所以,我们学习android也比较容易入门。最终得到的成效也很好。

这次的实训再让我们认识到Android的同时,更加让我们认识到团队合作的重要性,在团队开发过程中,我们都有自己的分工,在老师的指导下,我们很好地完成了项目,团队的重要毋庸置疑,认识到团队的重要性,对我们在未来的工作中能够更加的适应,我们也会在未来的日子里更加深刻的认识到这次实训带给我们的,让我们能受益的体会与思考。

2015年12月 20日

指导教师评语:

评分: 指导教师签字: 年 月 日

推荐第5篇:Android程序员实习报告

本科生毕业实习报告

标 题:关于在“******公司”从事Andorid开发程序员实习的报告

实习单 位:********有限公司 实习时 间: 2015.3.2 实习岗 位: Android开发程序员 学 生 姓 名: 学 号: 院 系: 专 业:

年月日

题目:关于在“*****有限公司”从事Andorid开发程序员实习的报告

一、实习单位及岗位简介

(一)实习单位的简介*******有限公司是一家刚刚成立的私营公司,在职员工大部分为80后软件精英,主营软件开发(Java方向),电子产品批发零售,信息系统集成服务,公司行业主要是互联网、电子商务、计算机软件、计算机硬件等。公司地址在*********,现共有员工大概50人。主要有Web开发部、Jsp开发部、Android开发部等。经过不断地学习和实战,每个部门都有其实力强硬的带头人,整体上是一个积极向上,团结奋进的创业型企业。

企业文化:人才是企业最大的财富,优秀的产品,良好的服务是企业价值的体现;爱祖国、爱人民、爱事业和爱生活是企业凝聚力的源泉;尊重知识、集体奋斗、艰苦创业是企业发展的要求;责任意识、创新精神、敬业态度和精诚合作是企业文化的精髓;实事求是是企业的行为准则。

(二)实习岗位的简介

我所在的实习岗位是一个所属Android部的程序开发岗位,主要工作是配合组长,做一些力所能及的东西。同时组长会针对性的给我一些网站或者资料,让我学习,这些资料主要是和他现在做的项目相关的技术实现。我自己看一边做个基本的了解,同时对这些技术和框架有个大体的认识。然后他会再结合他的项目,有针对性的给我讲解这些技术的应用,是怎样在他的项目里实现的。然后会给我分配一个小任务,让我拿来练手的同时,又一遍温习和巩固先前学到的技术。

我的实习工作从一个APP的界面开始,慢慢熟悉这个APP的框架结构,然后把组长写好的核心算法放进框架中,实现其功能。总的来说,我在这个团队中主要担任辅助的工作,将其他人写好的模块放进项目框架中,从中不断学习Amdroid开发的技巧和别人的代码风格。

二、实习内容及过程

时间一晃而过,转眼间到公司已经两个多月了。这是我人生中弥足珍贵的一段经历。在这段时间里各级领导在工作上给予了我极大的帮助,在生活上给予了我极大的关心,让我充分感受到了领导们“海纳百川”的胸襟,感受到了大发人“不经历风雨,怎能见彩虹”的豪气。在对公司各级领导肃然起敬的同时,也为我有机会成为公司的一份子而自豪。 在段时间里,在领导和同事们的悉心关怀和指导下,通过自身的努力,各方面均取得了一定的进步。

来这个公司虽然才短短两个月,收获挺多的,由对项目的一窍不通到现在对它的流程以及相关的技术都有所了解,也让我深深体会到了沟通自学的重要性。所以我们每一步都有要集中注意力,争取把每一步都做好。

刚开始我们做这个程序的时候,大家都比较盲目,只是负责人说了一下,我们就开始进行编了在这个过程之种我们吃了许多的苦,有时候凌晨三四点我们还在加班,可最后做出的作品是输入速度太慢,我们的主管于是带领我们到他们一

楼的微机室是去看他们以前编写的程序;不看不知道,一看吓了我们一大跳,以前我们那有这样想过呀,只要能做出来,没有错误就行了,可是速度呢?人家一个小时输入的东西,我们的程序可能需要一个早晨,看完之后主管对我们说:这样的程序送你,你会用吗?

那个打击呀,辛苦了几天几夜,最终却是这样的一个结果。可打击归打击,我们又得重新来做!相对而言,我们这次要比以前有经验了,一次比一次成熟起来了,在经历了又一个一天一夜的奋战,我们终于又有新希望了,可是心情刚好,那么又传来了消息,说他们的数据又发生的变动,有了新的调整,这在以前我们也想过这个问题,也想好好的做,可是我们又一想工厂不是要实用吗?这方面变化的可能性很小,于是为了方期间我将有变量写进了代码之中,这一变,无疑宣布我要失败了。和我在一起的几个同事也是这种情况,所以我们这些没有开发过软件的充当软件高手的新手们又得重新面对新的问题了.失败,又一次被打败!

几天之后我们又做出了程序,很辛苦,此时我们才明白程序员的不易了,编程是一个见效特别慢的东西,而且对方又看不见,如果一不小心你的程序可能会无法打开,或者是说出现别的什么,那就完了,你几天的成果就什么也看不见了,不像别的东西,做了,可以让大家看得见。我的程序在最后的调试时出现了一点小故障,一时间我一点思路也没有了,所以我失败了。

当然比表面来看我是失败了,败的很惨;可是从某种意义上说我又达到了我的目的,因为只有失败的人永远都不会停下思考的脚步,激起了我沉睡的思想,使我一颗盲目的心有了方向,我不能这样输了,从那儿倒下去的,我会从那儿站起来的,顶着那么大的压力,我的体会绝不低于他们中的任何一个人,说实话,在一段实习期间,我真的有点撑不住了,我也想到过放弃,可我不能就这样轻言放弃,我失败了,我输掉的是技能,不是人格;可我退缩了,就会失掉了人格,我将失去了所有,失掉技能我还会追回来的!

人生的每一步旅途中,总有着一道无形的栏杆,每一次跨越需要很多的勇气,也不是每一次跨越都能够成功,失败是不可避免的,主要的是要敢于承认失败,面对失败,努力去做,解决它,有这个决心,我想人生会成功的,至少可以无憾!这次我想我会很用心的去学习,尽量把他做到完美,至少我自己要九十分的满意我才会交出我的作品。

虽然加入公司这个大家庭已经有不短的时间了,对开发技术掌握的还不是很深,对发现问题的处理还不是很全面,对分工的工作还没有形成系统的计划。随着对公司和工作的进一步熟悉,我也希望能够在今后的工作中更加迅速的提升自己的业务能力以及技术能力,我觉得多做一些工作更能体现自己的人生价值。“业精于勤而荒于嬉”,在以后的工作中我要不断学习业务知识,通过多看、多问、多学、多练来不断的提高自己的各项业务技能。学无止境,时代的发展瞬息万变,各种学科知识日新月异。我将坚持不懈地努力学习各种知识,并用于指导实践。在今后工作中,要努力做好开发人员的本职工作,把自己的工作创造性做好做扎实,为项目的开发以及公司的发展贡献自己的力量。

通过和大家一段时间的相处,我深切地感受到,我们公司部是一个团结、上进、充满活力的集体。每天大家都是笑脸相迎,即使面临很大的工作压力,办公室里仍然会听到笑声;面对客户,大家总是热情真诚;面对技术上的困难,大家总是互相帮助,直至解决难题。整个部门和睦相处,就像一个温馨的大家庭。而部门领导就是这个家庭中的家长,给每个人很大的空间自由发挥。从他们身上,

我真正体会到了敬人、敬业、高效、高水平服务的真实意义,体会到了服务部服务、奉献的意义,体会到了创造完美、服务社会的服务理念,知道了什么是创新就是生活。特别令我感动的是,每当我遇到困难向大家求助时,谁都会无私的告诉我。

我很庆幸自己能在这样有限的时间里,在这么和谐的气氛中工作、学习,和同事们一起分享快乐,分担工作。所以我努力向同事学习,不懂就问,认真完成领导和同事交给我的每一项工作。

实习,是开端也是结束。展现在自己面前的是一片任自己驰骋的沃土,也分明感受到了沉甸甸的责任。在今后的工作和生活中,我将继续学习,深入实践,不断提升自我,努力创造业绩,继续创造更多的价值

人生就是经历着风风雨雨,在风雨中倒下去,然后站起来的时候,那时的彩虹最美丽!

三、实习收获与体会

学习Android有一段时间了,了解到在智能手机软件不断发展的今天,很多传统PC机上的应用正在向智能手机客户端转移。但是在学习的过程中有出错的操作以及随之而来的全英文报错内容,让人感觉到非常的郁闷和烦躁!可是随着时间的推移,随着掌握的知识的增加,不知道从哪天开始忽然发现从最初的面对Android时的烦躁到现在居然对Android有了一探究竟的兴趣!总结了一下自己学习Android以来的一些心得,和大家分享一下!

1、首先在学习Android的时候要有一份永不放弃的决心,从某些方面来说,学习Android是一件非常枯燥的事情,尤其是刚开始的时候,面对全英文的黑白操作界面,所以,持之以恒是最重要的!

2、自己创造一个Android学习的环境!由于Android有大量的操作需要记忆,很显然,靠死记硬背是不科学的!最好的方法就是实践,多操作,联系的多了,自然而然的就记住了,而且还是记得最牢靠的!

3、细微处着眼。Android是很严肃的,也许一个命令大小写的错误就可能导致出错,甚至多一个少一个空格,或者小符号,它也会给你个“小脸色”看看,这就要求我们在操作Android虚拟机的时候非常的细心,有足够的耐心!

4、留意Android代码的报错。出现操作错误的时候,它会报错,告诉你哪里出问题了,可能有的同学英语能力比较差,碰到报错的时候看不懂,也就不去管它,这就导致了排错非常的困难。所以,碰到报错的时候即使我们看不懂,我们也努力的去读,然后根据一字半字的去“猜”,然后等找到错误了它就会潜意识的让我们明白那句全英文的报错的大体意思,时间长了,碰到的次数多了,就算我们英语能力差,我们也可以“读懂”它报错的意思!

写在最后我想告诉大家的就是学习Android要多实践,即使刚开始失败了也要继续,再失败再继续,再失败再------学习Android失败是很正常的事情,希望大家能坚持,不要害怕失败。遇到问题的时候先尝试着自己解决,等解决不了的时候再请教别人!

不仅学Android要如此,学习其他方面的东西也应该如此。学习靠积累,持之以恒方能见效。

四、致谢

在此,感谢我的实习单位给了我这次实习的机会,能让我学到这么多在学校学不到的东西。同时也要感谢我的组长,能在那么繁忙的工作中还对我提出的问题耐心解答。也感谢我周围的同事,不因为我是一个实习生而对我有偏见,他们待人都很诚恳,也因为他们,我才能这么快的融入到这个团队中,带着轻松愉快,积极奋进的心态结束了这些天的实习。再次感谢帮助过我的这些人!

指导教师签名:

成绩评定:

年 月 教学系:(签章)年 月 日

推荐第6篇:Android实训报告

時間過得飛快,一週的實訓馬上就要結束了。在這次實訓中我不僅學習了相關的專業知識,而且讓我對Android系統有了一個更加深入的瞭解,它也是我們專業的一個新的方向並且发展很迅速,為了今後的发展我們還需不断努力學習!我國的信息產業還很落後,隨著社會的發展及國家的支持,手機上網必然是社會發展的趨勢,到時候手機上網將無處不在!我對Android系統的瞭解只停留在應用的層次上,對於更深層次的瞭解是很少的,通过這次實訓讓我對Android系統有了一個更深層次的瞭解,同時它也使我意識到無論朝哪個方向發展,主要還是得扎實、深刻的學習,同時也得不斷努力探索。

IT業的發展速度一直都是相當驚人的,不想被社會淘汰,我們就必須不斷的學習,現在的社會不再是一勞永逸,其它行業也是如此,我们必須不斷的拿知識來武装自己,不然被淘汰那是肯定的!現在就業難的原因其實在於競爭的加剧,為了在競爭中取得成功,我們必須時時刻刻刻學習!

在Android編程過程中巩固熟悉了Java的編程。由於Android應用程序的開發離不開Java的支持,所以基礎的Java知識是必須的。Android系统是基於Linux的手機操作系統平臺,要深入學習Android,不僅僅是有Java和Android應用開發,必須要具備Linux,C/C++高級編程才能深入的涉及Android Framework和Android内核開發。成為Android開發

的高素質人才。所以,在後續對Android的學習中可能会看一些較底層的書籍。

由於這次實訓時間較短,對於Android應用程序的高级编程學的很少,是這次實訓中的不足。要想開發一些好的應用程序,還需要更多的知識支持。在實訓時,遇到了很多平時沒有遇到或者沒有特别關注的問題。這些問題只有自己在實際開發中才能體會到並且解决。

通过對java以及Android的學習,讓我又學會了一門編程語言,這對於我以後的學習工作都會有很大的帮助。回顧以前所走的路,太多的是無奈和迷茫,這次实训就像是我人生道路上的航標,為我指明了前進的方向,使我對自己的前途充满了信心,同時也知道了自己的前進方向。

推荐第7篇:android生产实习报告

生产实习报告

一实习目地

生产实习是把理论与实际结合,通过对理论知识的理解,领悟从而运用到生活实际,巩固所学的知识,提高对实际生活的认识,积累经验。同时生产实习也是大学生以学生身份到工作者身份的一个重要过度阶段。在此期间,学生能够初次体会到实际生产中的种种技能与经验。完成一项项项目,能体现出独立思考能力。

Android生产实习对目前应用现状进行了分析与比较,进而研究分析了Android平台的系统架构和组件模型,在此基础上,基于Android平台设计和开发,实现对android编程的理解与应用,特别是在对于控件的应用产生很深的理解。

Android平台是目前最普遍的手机应用平台,android实习可以让我们与时代最新最广泛的软件开发联系起来,锻炼我们的学习能力,并且让我们可以更加人性化,清晰的为用户考虑。

二实习内容

此次实习是对android的简单的应用与开发,也是对android各个控件的学习与实践。在java的环境中对界面,应用进行编程。本次实习重点完成了安卓开发计算器、安卓开发学生注册界面、安卓开发音乐播放器和安卓开发游戏连连看这四个项目。

做学生注册界面的时候学习了linearlayout,tablelayout, AbsoluteLayout, RelativeLayout四种布局,分别为线型布局,表格布局,绝对布局和相对布局,并知道了如何通过这四种布局的相互嵌套来使程序的界面更加的友好,更加的让用户接受。并简单的了解了安卓目录下SRC,gen,res等文件夹中的文件在项目中的作用,学习了切换界面的类Intent。

然后学习了Button,TextView,Seekbar等android开发的控件,并且将这些控件都运用到了所作的学生注册界面中。

做音乐播放器时学习了关于音乐文件的调用,也学习了在主文件Main.java中先创建多媒体对象后,然后通过SD卡的文件路径来创建一个播放资源,然后在创建按钮对象,同时添加6个按钮对象创造各自的侦听方法,我们用ListActivity来布局播放界面,用ImageButton来实现播放器的开始,暂停的操作。。

最后在开发连连看游戏时,将前面所学的知识进行综合与加深,也学习到了新的函数与控件,该游戏主要包括claGameView(游戏视类,处理游戏中出现的情况,包括界面生成,算法等)claGameActivity(处理游戏中的消息提示),claStartActivity(游戏菜单设计),claSetActivity(菜单中游戏难度设定)这些类。比如用random函数来对连连看进行重排列,还有用menu对游戏里的功能进行操作,还有用之前学到关于多媒体对象的调用将连连看游戏进行配乐。并且选用了网格对游戏界面进行了规划,以及对于相同图片的的消去,必须满足情况:1,图片相同;2,两个图片之间必须没有障碍物,可以用若干个垂直的直线连接起来;3,连接两个图片的直线线段的转折点不超过两个(连接线由X轴和Y轴的平行线组成,即无拐点,一个拐点,两个拐点)。

三实习流程

此次对android应用与开发的实习分为以下几个阶段。

首先,由老师带领我们对android以及开发软件eclimpse进行了一个大概的了解与操作,并且对开发语言基础java的基础知识和编程思想进行了一次简单的复习与加深。

然后老师开始带领我们学习android界面的开发,并且告诉我们如何可以将界面尽量做得美观与方便,告诉我们作为程序的开发人员要为用户考虑,在这一阶段,我们开始试着学习和操作android的简单控件,包括TextView,Button等。

接着我们开始自己开发计算器,第一次将自己学到的控件进行组合搭配,并且开始学会怎么去监听按钮,通过对安卓常用类的学习,我们完成了计算器的常用功能。然而,对于计算机功能的实现,我感觉自己还没有办法做到自己想到的所有功能这让我对android更加满兴趣的学习下去。

当初步接触到了控件的开发与搭配后,我们开始开发学生注册界面,并且将所输入的信息反应到下一个界面中,在做这个的时候,我们又新学习了Seekbar,CheckBox等控件,让我们进一步学习了android中的常用控件。

然后是对音乐播放器的开发,此阶段我开始真正的接触到了生活中自己经常用到的软件的开发,并且也让我第一次感觉到需要将自己开发的软件做的美观, 于是我们开始学会调用背景图片,调用歌曲,并且学习了RadioButton控件,以及播放器中对音乐的下跳,循环播放等功能的学习与实现。

最后是开发游戏“连连看”,在此之前老师先向我们介绍了对于图片的处理等相关知识。

对于连连看,我们很熟悉,也明白其中的游戏规则;然而把它们用计算机语言展示出来却比用文字语言展示出来要难上很多。因此这个项目也是用时最多的一个项目,期间融合了算法设计以及之前几个项目所学的知识。虽然在参考资料

下,完成了项目;但是也存在很多不足。当然也有自己特点的地方,比如添加了成功几步就奖励时间,比如游戏的配备音乐,以及音乐的开关按钮。

四实习心得

通过这三个星期的毕业实习,我学到了很多关于Android系统的技术知识,虽然实习的时间短暂但我仍旧收获很多。首先,在每一天我认识了新的控件及相关的使用;其次,我们了解Android系统的历史和今后的发展以及相关Android系统的总体构成,然后,我们学会了Android编译系统的搭建,以及在这个环境下编写代码,最后制作了简单的音乐播放器以及连连看游戏等软件;在这个过程中,我真正的了解到了理论与实际相结合的必要性以及独立思考的重要性。

生成实习是为将来打基础的重要阶段,珍惜自己每一个工作的机会,不论什么人,什么学历,从事什么工作,好好的表现、展示自己的能力,不要错过好的机遇。没有一件事情是轻轻松松的,但每一件事都是让人成长的,经历一段过程,喜悦或是艰辛,尽管经历的方式不尽相同,但它的结果是相同的,我们都会因涉事而成长。

通过这次实习,开阔了我的视野。这次的实习初步为我解开了安卓的神秘面纱,对于脑海中的那个可望而不可即,可玩儿不可解的安卓平台初步走入了它的神秘世界;既感到兴奋又感到惊奇,更感到压力,方知知识海洋的广大,学员任重道远。这次实习让我看清自己需要什么,同时也让我吸取了许多学习以及和人相处的经验,这将对我以后踏足社会,谋生立业有很好的借鉴和帮助作用。今后,我会珍惜这些宝贵的经验,在人生的旅途中勇往直前,迎接时代的挑战。

推荐第8篇:Android专业调研报告

Android专业设置的调研报告

一、Android简介与发展历程

1、Android简介

Android 是Google历经数年和投资数亿美元开发出来的智能手机系统,是基于Linux内核的操作系统,是Google公司在2007年11月5日公布的手机操作系统。Google也发起了围绕Android的组织——开放手机联盟,其英文全称为“Open Handset Alliance”。 它采用了软件堆层(software stack,又名以软件叠层)的架构,主要分为三部分。底层Linux内核只提供基本功能;其他的应用软件则由各公司自行开发,部分程序以Java编写。

随着各大移动终端生产商大力开发和生产基于Android的移动智能设备,Android迅速得到业界和社会的认可,并成为整个产业的热点,基于Android平台的各类人才逐渐成为各大企业竞相争夺的焦点。而且Android是一个开放的系统,不管是企业还是个人都可以参与来表达自己的创意和想法。

2、发展历程

Android是一种以Linux为基础的开放源码操作系统,主要使用于便携设备。 根据市场研究公司Gartner的统计数据显示,2010年第二季度,谷歌Android移动操作系统的市场份额上升至17.2%,成功取代苹果IOS晋升为全球第三大移动操作系统。在2010年第二季度一系列最新智能手机发布以后,Android操作系统在美国个人消费者市场上销售的所有智能手机中所占份额为33%,超过RIM的28%和苹果的22%。2011年11月数据,Android占据全球智能手机操作系统市场52.5%的份额,中国市场占有率为58%。

Android是目前开放性最强的移动设备综合平台,使得电信运营商、手机制造商以及产业链各环节能够更好、更快地将产品推向市场,同时降低成本。和中国移动一样,中国联通的手机操作系统也是基于Android进行深入二次开发的。在这数年中,Android的发展日新月异,具体的发展历程如下: Android 1.1

发布时间:发布于 2009 年 2 月

代表手机:T-MOBILE G1

Android 1.5

发布于 2009 年 5 月

代表手机:摩托罗拉CILQ

Android 1.6

2009 年 9 月发布

代表手机:索尼爱立信 X10

Android 2.0

2009 年 10 月 26 日

代表机型:摩托罗拉XT800,HTC G6

Android 2.0/2.1 Eclair

2009 年 10 月 26 日,又一个主要版本升级以创纪录的速度放出。这次,大版本升级到了Android 2.1 “Eclair法式奶油夹心甜点”。

Android 2.2 Froyo

谷歌于北京时间2010年5月20日晚上10:30点在旧金山Moscone会展中心举办 Google I/O 2010大会第二天的会议,Google正式发布了代号是“froyo 冻酸奶”的Android操作系统2.2版。相对于上一版本的改变:整体性能大幅度的提升,3G网络共享功能,Flash的支持,App2sd功能,全新的软件商店,更多的Web应用API接口的开发。

Android 2.3 Gingerbread

北京时间12月7日凌晨,Google正式对外发布了他们的下一代智能手机操作系统Android 2.3也就被大家所熟知的Android Gingerbread系统。虽然在版本号方面Android 2.3相对于前作而言的提升并不算多,但是从功能以及界面的变化上来看还是十分明显的。

Android 2.4

就像Android 2.0和2.1版本都使用Eclair(法式奶油夹心甜点)一样,Android

2.3和2.4将会共享Gingerbread(姜饼)代号。这两个版本之间的变化不会太大,但是会有不少功能更新。

Android 3.0 Honeycomb

2011年2月3日凌晨,谷歌正式发布了专用于平板电脑的Android 3.0Honeycomb系统。这是首个基于Android的平板电脑专用操作。首款采用 Android3.0系统的是MOTOXOOM。

Android 4.0 Ice Cream Sandwich

2011年10月19日上午十点,谷歌与三星联手在中国香港举办发布会,公布有关Android 4.0(Ice Cream Sandwich,冰淇淋三明治)系统信息。Android4.0 拥有十大重点新特性。集成谷歌电视和Chrome OS的智能停放 ,运行速度得到进一步提升。

二、Android专业设置的原则

1、根据社会需求增设专业方向。Android的专业设置调整依据二十一世纪我国社会发展状况,经济建设情况和本地经济发展的需求,人才需求的情况,积极稳妥地设置专业、调整专业,以适应社会经济发展和企业的人才需求。

2、Android的专业设置以学校发展、面向市场为主,突出对学生创新能力和实践能力的培养,有利于树立现代化教育教学观念,优化课程结构,改进教学方法,促进学校内部各项改革、各项资源的合理配置。

3、Android的专业设置是在教育部高职高专教育指导性专业目录及有关行业制定的相关专业设置标准、业务方位的基础上,依据改专业在本校已经具有的软硬件条件等确定的。

三、Android专业培养目标及要求

1、培养目标

Android专业设置以高职软件技术专业人才培养方案为蓝图,培养德、智、体全面发展,即牢固掌握必需的文化科学基础知识,又以掌握软件技术专业理论知识为目标,具备桌面应用程序、中小型C/S应用程序、中小型B/S应用程序开发能力,具有较强的创新能力、较强的实践技能的“应用型”、“创业型”的复合型人才。

以毛泽东思想、邓小平理论等重要思想为指导,引导学生树立科学的世界观、人生观和爱国主义、集体主义、社会主义的思想以及良好的职业道德和行为规范,提高科学文化修养,掌握必要的文化基础知识、专业知识和熟练的职业技能,培养学生爱岗敬业的品质和适应职业变化的能力,具有创新精神,具有健康的身体和心理,具有艰苦朴素,吃苦耐劳的精神。

2、培养要求

本专业毕业生主要面向企业从事Android桌面应用程序的开发,应掌握Android开发工作所必需的基础知识、基本技能,了解我国IT行业发展及有关方针政策,培养学生在今后的学习、工作中贯彻执行政策的能力,运用所学知识分析问题、解决问题的能力,掌握本专业的Java、Java Web、J2EE以及Android应用开发等系列知识,具有较强的实践动手力能,成为懂业务、会管理、能操作,能正确地领会企业、公司的项目开发意图,能胜任团队合作开发、项目单独模块设计开发等工作,且能反馈工作中的问题并更正错误,综合职业能力强的应用型

专门人才,能胜任Android行业、Java行业岗位的工作。

四、Android专业设置的可行性

1、Android专业设置有“学科理论知识体系”的支撑

“技术专业”不像“学科专业”拥有庞大的理论体系,其“知识”只能依附于“学科体系”,“技能”只有一些零星分散在不同技术领域中的“专有技术”,这些技术无法形成“技术理论”,从来没有形成也不可能形成“技术理论体系”,因而专业设置需要“学科理论知识体系”支撑。

我系软件技术专业以C++课程为基础、数据结构课程为导向、Java系列课程为核心,有着全面完善的Java学科理论知识体系,为Android系列课程的开设奠定了良好的理论基础,并且以项目驱动为教学手段,为Android课程实训提供了培养了良好动手能力的平台。

2、Android专业的教学内容相对稳定

无论教学内容如何“与时俱进”,始终赶不上新技术发展的速度。学校培养的毕业生很难成为“先进技术的拥有者”,只能是“传统技术的传人”。现阶段,在Android方向的技术更新有着迅猛势头,但技术核心思想保持着相对稳定,所以其教学内容大体保持相对稳定,只需要更新一些就业行业上需要的新特性、新元素。

3、Android专业开设经济成本低

google提供现成的丰富api类库,并且有google doc,calendar等免费、好用的api;大量的开源代码可以借鉴;不需要缴纳例如wm或苹果或nokia的授权费用,可以大幅度降低开发成本。

4、Android专业师资培养的周期较短

“技术专业”除了执教前必须取得高校教师资格证书外,教师还必须学习所从教的专业基础课知识。只有这样,教师才能站在专业培养目标的高度重新审视自身知识体系,改造自己的知识结构。无论“技术专业”教师来自哪里,都必须经过一个“专业知识的再造过程”,因此其师资培养的周期比普通高等教育要长一些。

Android的专业课程是以Java课程的开设为基础的、在Java系列课程的开设前提下加开2门android相关知识技术方面的课程,我系老师只需针对android方面的技术知识进行自学,并参与相关的android教学培训,开展一些学术研讨

会,就能形成自己的教学模式。

5、Android专业教学师资力量可行性分析

我院有一支结构合理,整体素质优良的师资队伍,职称结构合理,老中青相结合,教研成果丰硕。Android用Java+Eclipse开发,易学易用,入门门槛低,教研室老师大都有着一定java教学经验,能够较快地进入教学角色。此外,我院通过引进大量高学历应届毕业生和企业高级技术人员,建立了一支理论扎实,实践经验丰富的双师型教师队伍。

6、Android专业实践教学可行性分析

重视实践教学环节是高等职业教育的本质特征。实践教学环节中的教学内容必须与社会岗位能力的要求相一致,至少是“高度仿真”,这就使该专业设置必须以对实践教学基地的巨额投资为基础。

我系已经有了较为完备的实践教学实验室和设备,Android的实践教学不需要再投入其他设备的投资,用现有的实验设备资源足够满足Android的实践教学内容,并且我系还可以通过校企合作等方式,让企业分担部分实践教学内容。

1)实验室的建设:有着多个设备完善的多媒体教学、实践教学实验室,配备了高端配置的计算机,能够满足现阶段各种主流开发语言的运行以及教学任务的进行,并且Android的教学与实践不需要再投入其他额外的投资,现有的硬件资源已能够满足现阶段Android主流版本的开发与教学。

2)为了使教学与实践很好地结合起来,多形式、多渠道地开展实训活动,我们将与一些实训基地建立长期的实训、培训协作关系,加强校企之间的联系,拓展实训渠道。另外,我们还将积极采取多形式的实习方式,如:顶岗实习、自择实习,校内模拟实习等,从而有力地保障学生的实训质量。

7、Android专业设置有利于提高学生的就业率

现阶段Android的流行火爆程度已经得到了社会与学校的公认,如果将社会对Android人才的需求引入到我系毕业生求职方向中,将会很大提高我系毕业生就业率与就业质量。对于高职毕业生,由于用人目的不同,用人单位考核人才的重点不是学历和学校名称,而是更看中应聘者的岗位职业能力。掌握了Android开发技能的高职毕业生能获得更好的就业和择业机会。

我系还可以通过开展相关Android技能培训考证,颁发职业资格证书,为学生的就业增加砝码。

五、Android专业建设与发展的主要思路以及实施方案

1、专业建设与发展思路

1)专业建设前要进行充分的调研。我们已经对Android专业建设情况进行了前期调研,获得了大量的有用资料,为专业的开设和发展提供了参考。

2)加强师资力量的建设。首先是有目的地、重点地、分批地提高师资水平,如选派青年教师安博牛耳进行了Android初级培训;其次是不断地完善实验设施软件环境,从而不断地满足教学发展的要求。

3)培养大批的软件技术专业人才。为了适应职业教育形势发展的要求,办出Android专业特色,今后教学发展要面向社会的就业需求,满足企业文化的理念,为社会培养中等层次的软件技术专业人才。

4)不断深化理论教学和实践教学的改革。在Android理论教学方面,要花大力气研究和把握职业教育的发展变化规律,特别是要多调查研究Android的前沿技术与发展方向,科学定位人才的培养目标,合理设置Android专业课程,增加选修课,切实做到理论与实践紧密结合。在实践教学方面,要坚持以培养职业技能为宗旨的实训方针,加强校企、校社联系,广开实训渠道,不断探索职业教育的新思路。

2、专业建设与发展实施方案

第一阶段:2011年11月7日至2011年11月9日,Android专业建设小组人员进行任务分工。收集与专业建设相关的资料,进行专项研讨,确定专业建设方案。

第二阶段:2011年11月10日至2011年11月20日,组织专业建设小组人员到企业进行调研,了解现阶段流行的移动开发平台,采集现阶段android系统开发平台的相关信息与资料。

第三阶段:2011年11月21日至2011年11月23日,专业建设小组开展学术研讨,结合专业建设研究方案,学习资料,总结与分析专业建设的具体事宜。

第四阶段: 2011年11月24日至2011年12月9日,组织2名教师参加Android系统开发培训。

第五阶段:在2012年上学期,开设一门Android软件开发相关的公共选修课程。

综上所述,开办Android专业是必要的、可行的。我系已经具备开设Android专业的条件,并将继续为此做好充分的准备。

推荐第9篇:Android大作业报告

移动设备软件应用与开

发 大作业报告

姓 名: 学 号: 班 级: 院 系: 日 期:

任课教师:

一、程序的运行环境、安装步骤

1、运行环境 游戏运行环境:Android1.5以上版本

2、程序的组成部份:

2.1、JDK安装

1.我的电脑->属性->高级->环境变量->系统变量中添加以下环境变量: 2.JAVA_HOME值为: D:\\Program Files\\Java\\jdk1.6.0_18(你安装JDK的目录) 3.CLASSPATH值为:.;%JAVA_HOME%\\lib\\tools.jar;%JAVA_HOME%\\lib\\dt.jar;%JAVA_HOME%\\bin; 4.Path: 在开始追加 %JAVA_HOME%\\bin; 5.NOTE:前面四步设置环境变量对搭建Android开发环境不是必须的,可以跳过。

安装完成之后,可以在检查JDK是否安装成功。打开cmd窗口,输入java –version 查看JDK的版本信息。出现类似下面的画面表示安装成功了:

2.2、Eclipse安装 2.

3、Android SDK安装

在Android Developers下载android-sdk_r05-windows.zip,下载完成后解压到任意路径。 运行SDK Setup.exe,点击Available Packages。如果没有出现可安装的包,请点击Settings,选中Misc中的\"Force https://...\"这项,再点击Available Packages 。

选择希望安装的SDK及其文档或者其它包,点击Installation Selected、Accept All、Install Accepted,开始下载安装所选包

在用户变量中新建PATH值为:Android SDK中的tools绝对路径(本机为D:\\AndroidDevelop\\android-sdk-windows\\tools)。 image图

2、设置Android SDK的环境变量

“确定”后,重新启动计算机。重启计算机以后,进入cmd命令窗口,检查SDK是不是安装成功。

运行 android –h 如果有类似以下的输出,表明安装成功:

3、验证Android SDK是否安装成功

2.4、ADT安装

打开 Eclipse IDE,进入菜单中的 \"Help\" ->\"Install New Software\" 点击Add...按钮,弹出对话框要求输入Name和Location:Name自己随便取,Location输入http://dl-l.google.com/android/eclipse。如下图所示:

确定返回后,在work with后的下拉列表中选择我们刚才添加的ADT,我们会看到下面出有Developer Tools,展开它会有Android DDMS和Android Development Tool,勾选他们。 如下图所示:

然后就是按提示一步一步next。 完成之后:

选择Window >Preferences...在左边的面板选择Android,然后在右侧点击Browse...并选中SDK路径,本机为:

D:\\AndroidDevelop\\android-sdk-windows点击Apply、OK。配置完成。 2.5、创建AVD 为使Android应用程序可以在模拟器上运行,必须创建AVD。

1、在Eclipse中。选择Windows >Android SDK and AVD Manager

2、点击左侧面板的Virtual Devices,再右侧点击New

3、填入Name,选择Target的API,SD Card大小任意,Skin随便选,Hardware目前保持默认值

4、点击Create AVD即可完成创建AVD 注意:如果你点击左侧面板的Virtual Devices,再右侧点击New ,而target下拉列表没有可选项时,这时候你:

点击左侧面板的Available Packages,在右侧勾选https://dl-l.google.com/android/repository/repository.xml,如下图所示:

然后点击Install Selected按钮,接下来就是按提示做就行了

要做这两步,原因是在1.3、Android SDK安装中没有安装一些必要的可用包(Available Packages)。 2.

5、创建Android工程

三、程序开发平台

(1)代码行数:1000

(2)开发环境:Android Developer Tools Build: v22.6.2-1085508

apache-ant-1.9.3

四、程序功能说明:

单机屏幕按住不放可以拖动魔方转动,魔方上下左右空白处可以转动魔方相对那一面。

五、应用核心源码

cla MFtestSurfaceView extends GLSurfaceView {

private MFtestRenderer mRenderer;

private float mPreviousX;

private float mPreviousY;//上一次的点

private float mDownPreviousX;

private float mDownPreviousY;//上一次的Down点

// private int oldDownX;

// private int

private float theta;

private float fai;//球坐标

public MFtestSurfaceView(Context context){

super(context);

theta=(float)3.14159/4;

fai=(float)3.14159/4;

// Set the Renderer for drawing on the GLSurfaceView

mRenderer = new MFtestRenderer();

setRenderer(mRenderer);

setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY);

}

@Override

public boolean onTouchEvent(MotionEvent e) {

// MotionEvent reports input details from the touch screen

// and other input controls.In this case, you are only

// interested in events where the touch position changed.

float x = e.getX();

float y = e.getY();

switch (e.getAction()) {

case MotionEvent.ACTION_MOVE://如果是 移动的话

float dx = xmPreviousY;//x,y的变换值(不是0,就是1)

float te=theta;

theta=theta+dy/100; //角度是弧度值

if (!(theta>0&&theta

{

theta=te; //法线始终向上

}

fai=fai+ dx/100;

//x=rsinθcosφ

mRenderer.eyez=(float)(3*Math.sin(theta)*Math.cos(fai));

//y=rsinθsinφ

mRenderer.eyex=(float)(3*Math.sin(theta)*Math.sin(fai));

////z=rcosθ

利用球坐标使观察点始终维持在半径为3的球上

mRenderer.eyey=(float)(3*Math.cos(theta));

requestRender();

//System.out.println(x+\"

\"+y);

break;

case MotionEvent.ACTION_DOWN:

mDownPreviousX=x;

mDownPreviousY=y;

break;

case MotionEvent.ACTION_UP:

if((((x-mDownPreviousX)>-5)&&((x-mDownPreviousX)-5)&&((y-mDownPreviousY)-3)||((x-mDownPreviousX)>-3))&&(((y-mDownPreviousY)>-3)||((y-mDownPreviousY)>-3))

{

//System.out.println(x-mDownPreviousX);

if(

x

{

//左

//System.out.println(x+\"

\"+y);

mRenderer.action = 1;

DrawAnimation();

}

else if( x

>

mRenderer.width-(mRenderer.width*(1-Math.sqrt(18)/6)/2) )

{

//右

//System.out.println(x+\"

\"+y);

mRenderer.action = 2;

DrawAnimation();

}

else if(y

mRenderer.height/2.0-!)

switch(mRenderer.action){

case 1:

if( (mRenderer.eyex >0) && (mRenderer.eyez >0) ){

mRenderer.move=76;

}

else if( (mRenderer.eyex >0) && (mRenderer.eyez

mRenderer.move=70;

}

else if( (mRenderer.eyex

mRenderer.move=82;

}

else if( (mRenderer.eyex 0) ){

mRenderer.move=66;

}

break;

case 2:

if( (mRenderer.eyex >0) && (mRenderer.eyez >0) ){

mRenderer.move=66;

}

else if( (mRenderer.eyex >0) && (mRenderer.eyez

mRenderer.move=76;

}

else if( (mRenderer.eyex

mRenderer.move=70;

}

else if( (mRenderer.eyex 0) ){

mRenderer.move=82;

}

break;

case 3:

mRenderer.move=85;

break;

case 4:

mRenderer.move=68;

break;

}

}

private void memcpy(int one,int two){

mRenderer.face_color[one]=mRenderer.face_color[two];

mRenderer.face_color[one+1]=mRenderer.face_color[two+1];

mRenderer.face_color[one+2]=mRenderer.face_color[two+2];

}

private void LeftShift(int a,int b,int c,int d){

// a

float temp1=mRenderer.face_color[a];

float temp2=mRenderer.face_color[a+1];

float temp3=mRenderer.face_color[a+2];

memcpy(a,b);

memcpy(b,c);

memcpy(c,d);

mRenderer.face_color[d]= temp1;

mRenderer.face_color[d+1]=temp2;

mRenderer.face_color[d+2]=temp3;

} }

private void DrawRotation(GL10 gl){

// 绘制小立方体

switch (move) { case 70: DrawCube19(gl); DrawCube11(gl); DrawCube2(gl); DrawCube22(gl); DrawCube13(gl); DrawCube5(gl); DrawCube25(gl); DrawCube16(gl); DrawCube8(gl); DrawCube18(gl); DrawCube10(gl); DrawCube1(gl); DrawCube21(gl); DrawCube4(gl); DrawCube24(gl); DrawCube15(gl);

gl.glPushMatrix(); gl.glRotatef(-angle,0.0f,0.0f,1.0f); DrawCube0(gl); DrawCube9(gl); DrawCube17(gl); DrawCube3(gl); DrawCube12(gl); DrawCube20(gl); DrawCube6(gl); DrawCube14(gl);

DrawCube7(gl);

DrawCube23(gl);

gl.glPopMatrix(); break; case 66: DrawCube0(gl); DrawCube9(gl); DrawCube17(gl); DrawCube3(gl); DrawCube12(gl); DrawCube20(gl); DrawCube6(gl); DrawCube14(gl);

DrawCube23(gl); DrawCube18(gl); DrawCube10(gl); DrawCube1(gl);

DrawCube21(gl); DrawCube4(gl); DrawCube24(gl); DrawCube15(gl); DrawCube7(gl);

gl.glPushMatrix();

gl.glRotatef(angle,0.0f,0.0f,1.0f);

DrawCube19(gl); DrawCube11(gl); DrawCube2(gl); DrawCube22(gl);

DrawCube13(gl); DrawCube5(gl); DrawCube25(gl); DrawCube16(gl); DrawCube8(gl);

gl.glPopMatrix();

break;

case 85:

DrawCube3(gl); DrawCube23(gl);DrawCube24(gl); DrawCube25(gl);

DrawCube4(gl); DrawCube5(gl); DrawCube6(gl); DrawCube7(gl);

DrawCube8(gl); DrawCube12(gl); DrawCube13(gl); DrawCube14(gl);

DrawCube15(gl);DrawCube16(gl);DrawCube20(gl); DrawCube21(gl); DrawCube22(gl);

gl.glPushMatrix();

gl.glRotatef(-angle,0.0f,1.0f,0.0f);

DrawCube0(gl); DrawCube1(gl); DrawCube2(gl);DrawCube9(gl);

DrawCube10(gl); DrawCube11(gl); DrawCube17(gl); DrawCube18(gl); DrawCube19(gl);

gl.glPopMatrix();

break;

case 68:

DrawCube0(gl); DrawCube1(gl); DrawCube2(gl); DrawCube3(gl);

DrawCube4(gl); DrawCube5(gl); DrawCube9(gl); DrawCube10(gl);

DrawCube11(gl);DrawCube12(gl); DrawCube13(gl); DrawCube17(gl);

DrawCube18(gl); DrawCube19(gl);DrawCube20(gl); DrawCube21(gl); DrawCube22(gl);

gl.glPushMatrix();

gl.glRotatef(angle,0.0f,-1.0f,0.0f);

DrawCube6(gl); DrawCube7(gl); DrawCube8(gl);DrawCube14(gl);

DrawCube15(gl);DrawCube16(gl); DrawCube23(gl);DrawCube24(gl); DrawCube25(gl);

gl.glPopMatrix();

break;

case 82:

DrawCube9(gl); DrawCube10(gl); DrawCube11(gl); DrawCube25(gl);

DrawCube12(gl); DrawCube13(gl); DrawCube14(gl); DrawCube15(gl);

DrawCube16(gl); DrawCube17(gl); DrawCube18(gl); DrawCube19(gl);

DrawCube20(gl); DrawCube21(gl); DrawCube22(gl); DrawCube23(gl);DrawCube24(gl);

gl.glPushMatrix();

gl.glRotatef(-angle,1.0f,0.0f,0.0f);

DrawCube0(gl); DrawCube1(gl); DrawCube2(gl); DrawCube3(gl);

DrawCube4(gl); DrawCube5(gl); DrawCube6(gl); DrawCube7(gl); DrawCube8(gl);

gl.glPopMatrix();

break;

case 76:

DrawCube0(gl); DrawCube1(gl); DrawCube2(gl); DrawCube3(gl);

DrawCube4(gl); DrawCube5(gl); DrawCube6(gl); DrawCube7(gl);

DrawCube8(gl); DrawCube9(gl); DrawCube10(gl); DrawCube11(gl);

DrawCube12(gl); DrawCube13(gl); DrawCube14(gl); DrawCube15(gl); DrawCube16(gl);

gl.glPushMatrix();

gl.glRotatef(-angle,-1.0f,0.0f,0.0f);

DrawCube17(gl); DrawCube18(gl); DrawCube19(gl); DrawCube20(gl);

DrawCube21(gl); DrawCube22(gl); DrawCube23(gl);DrawCube24(gl); DrawCube25(gl);

gl.glPopMatrix();

break;

default:

break;

}

六、工程运行效果截图

10月20日 查找Android开发的配置及流程 10月22日 查找资料确定要使用的算法与数据结构 10月23日 系统设计 10月24日 开始编码

10月28日 游戏基本功能完成,进入测试阶段 11月2日 程序开发完成,编写文档

八、总结

因为之前自己学习过Android游戏开发的相关知识,也自己做过一个小游戏,所以对这方面比较了解,不过之前开发的小游戏是用Cocos2d引擎完成,和Android原生的不太一样,通过这次大作业的完成,对Android的基本开发有了一定的了解。对图像的绘制有了一定的了解。

推荐第10篇:Android实训报告

Android学院:****** 班级:****** 学号:****** 姓名:******

实训报告

目录

一、实训背景及目的要求 .........................................................................................................................3 1.1背景简介 .....................................................................................................................................3 1.2实训目的及要求 ...........................................................................................................................3

二、设计思路...........................................................................................................................................3 2.1设计题目 .....................................................................................................................................3 2.2功能分析 .....................................................................................................................................4 2.3模块划分 .....................................................................................................................................4

三、设计实现及代码分析 .........................................................................................................................4 3.1第一个Activity .............................................................................................................................4 3.1.1布局文件:main.xml:........................................................................................................4 3.1.2源代码文件:MainActivity.java ............................................................................................7 3.2第二个Activity .............................................................................................................................8 3.2.1布局文件:result.xml ..........................................................................................................8 3.2.2源代码文件:ResultActivity.java ...........................................................................................9 3.3字符串资源文件:strings.xml ......................................................................................................12 3.4程序清单文件:AndroidManifest.xml ...........................................................................................13

四、程序功能测试及截图 .......................................................................................................................14 4.1工程项目目录 ............................................................................................................................14 4.2程序运行界面: .........................................................................................................................14 4.3未填身高提示: .........................................................................................................................15 4.4计算示例: ................................................................................................................................15

五、课程设计(实训)总结....................................................................................................................16

一、实训背景及目的要求

1.1背景简介

Android(读音:[\'ændrɔid])是一种以Linux为基础的开放源码操作系统,主要使用于便携设备,目前尚未有统一中文名称,中国大陆地区较多人使用安卓或安致。Android操作系统最初由Andy Rubin创办[5],最初只支持手机。2005年由Google收购注资,并拉拢多家制造商组成开放手机联盟(Open Handset Alliance)开发改良,逐渐扩展到到平板电脑及其他领域上[6]。 2010年末数据显示,仅正式推出两年的操作系统的Android已经超越称霸十年的诺基亚Symbian系统,跃居全球最受欢迎的智慧手机平台。采用Android系统手机厂商包括HTC、Samsung、Motorola、Lenovo、LG、Sony Ericon等。 1.2实训目的及要求

Android以Linux为核心的Android行动平台,使用Java作为编程语言。本实训是在学习java语言程序设计的基础上进行的一次综合实践。通过综合训练,要求学生掌握java语言程序设计的基本技能和Android编程的应用,并较系统地掌握JAVA语言程序设计开发方法以及帮助文件的使用等,使学生通过本次实训,能够进行独立的Android应用程序开发,能够在实际操作中得到进一步的提高,为以后的学习和工作打下良好的基础。

目的:

1、培养学生运用所学课程Java语言程序设计的理论知识和技能,分析解决计算机实际应用中的问题的能力。

2、培养学生在Java语言程序设计的基础上,开发Android应用程序的思想和方法。

3、培养学生调查研究、查阅技术文献、资料、手册以及编写技术文献的能力。

通过课程设计,要求学生在指导教师的指导下,独立完成课程设计的全部内容,包括:

1、确定开发的程序,收集和调查有关技术资料。

2、按软件工程步骤进行程序设计。

3、对完成的程序进行测试和完善。

4、完成课程设计报告。

二、设计思路 2.1设计题目

以Android系统的UI界面开发为基础,设计一个可以简单计算标准体重的应用程序,要求以2个Acitivity实现,第一个Activity作为输入界面,第二个Activity作为结果输出界面,具体实现细节自行设计。 2.2功能分析

该设计题目要求实现可计算输出标准体重功能的应用程序。通过查阅资料可知,按照世界卫生组织推荐的计算标准体重的方法,需要获知的输入信息有性别、身高。故可在第一屏设置有单选框以确定性别,输入框以获取身高。另,为了增加程序的实用性,可再设一可选输入框,用来得到实际体重,与标准体重对比,给出用户一些健康提议。第二屏设置有结果输出显示区域与健康提示显示区域。

2.3模块划分

通过程序功能分析,可将程序划分为2个模块,即2个Activity:

第一个Activity:两个单选框(RadioButton)获取性别,一个输入框(EditText)获取身高,一个可选输入框(EditText)获取实际体重,一个按钮(Button)及一些提示文本。

第二个Activity:一个文本显示区(TextViw)显示计算结果,一个可选文本显示区(TextView)显示提示信息。

三、设计实现及代码分析 3.1第一个Activity 3.1.1布局文件:main.xml:

采用绝对布局,以实现控件精准显示;

RadioGroup包含两个RadioButton,以实现性别男女选择;

两个供输入的EditText限定了输入类型为numberDecimal,以确保只接收数字型数据。 main.xml完整代码如下:

<?xml version=\"1.0\" encoding=\"utf-8\"?>

android:orientation=\"vertical\"

android:layout_width=\"fill_parent\"

android:layout_height=\"fill_parent\"

>

android:id=\"@+id/tv1\"

android:layout_width=\"wrap_content\"

android:layout_height=\"wrap_content\"

android:text=\"@string/tv1_t\"

android:textSize=\"20sp\"

android:layout_x=\"50px\"

android:layout_y=\"25px\" />

android:layout_width=\"wrap_content\"

android:layout_height=\"wrap_content\"

android:text=\"@string/tv_sex\"

android:layout_x=\"50px\"

android:layout_y=\"100px\"

/>

android:layout_width=\"wrap_content\"

android:layout_height=\"wrap_content\"

android:text=\"@string/tv_tall\"

android:layout_x=\"50px\"

android:layout_y=\"150px\"

/>

android:id=\"@+id/rg\"

android:layout_width=\"wrap_content\" android:layout_height=\"wrap_content\" android:orientation=\"horizontal\" android:layout_x=\"95px\" android:layout_y=\"90px\" >

android:id=\"@+id/rb_male\"

android:layout_width=\"wrap_content\" android:layout_height=\"wrap_content\"

android:text=\"@string/male\"

/>

android:id=\"@+id/rb_female\"

android:layout_width=\"wrap_content\" android:layout_height=\"wrap_content\" android:text=\"@string/female\"

/>

android:id=\"@+id/et_tall\" android:layout_width=\"100px\" android:layout_height=\"40px\" android:layout_x=\"100px\" android:layout_y=\"140px\"

android:inputType=\"numberDecimal\" />

android:layout_width=\"wrap_content\" android:layout_height=\"wrap_content\" android:layout_x=\"200px\" android:layout_y=\"145px\" android:textSize=\"20sp\" android:text=\"cm\" />

android:id=\"@+id/compute\"

android:layout_width=\"wrap_content\" android:layout_height=\"wrap_content\" android:layout_x=\"100px\" android:layout_y=\"280px\" android:textSize=\"20sp\"

android:text=\"@string/compute\" /> android:layout_width=\"wrap_content\" android:layout_height=\"wrap_content\" android:layout_x=\"50px\" android:layout_y=\"200px\" android:text=\"@string/tv_real\" />

android:id=\"@+id/et_real\" android:layout_width=\"100px\" android:layout_height=\"40px\" android:layout_x=\"100px\" android:layout_y=\"230px\"

android:inputType=\"numberDecimal\" />

android:layout_width=\"wrap_content\" android:layout_height=\"wrap_content\" android:layout_x=\"200px\" android:layout_y=\"235px\" android:textSize=\"20sp\" android:text=\"kg\" />

3.1.2源代码文件:MainActivity.java 使用main.xml布局文件,为计算按钮(Button)注册事件监听,添加事件响应代码; 实现未填身高提示:

Toast.makeText(MainActivity.this, R.string.tall_hint, Toast.LENGTH_SHORT).show(); 实现Activity之间跳转设置:

intent.setCla(MainActivity.this, ResultActivity.cla); 实现Activity之间数据封装传输: bundle.putDouble(\"height\", height); bundle.putString(\"sex\", sex); bundle.putString(\"real\", real); intent.putExtras(bundle); MainActivity.java完整代码如下:

package com.halcyon;

import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.RadioButton; import android.widget.Toast;

public cla MainActivity extends Activity implements OnClickListener {

private RadioButton rb1 = null; private RadioButton rb2 = null; private EditText et = null; private EditText et_real = null; private Button bt = null;

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

rb1 = (RadioButton)findViewById(R.id.rb_male);

rb2 = (RadioButton)findViewById(R.id.rb_female);

rb1.setChecked(true);

et = (EditText)findViewById(R.id.et_tall);

et_real = (EditText)findViewById(R.id.et_real);

bt = (Button)findViewById(R.id.compute);

//默认为男性选中

bt.setOnClickListener(this); }

} @Override

public void onClick(View v) {

} // TODO Auto-generated method stub

/**事件响应代码,获取性别、身高,判断是否输入了实际体重 * 新建Intent对象用于Activity之间跳转,及传输输入的数据 * **/

if(et.getText().toString().length()==0){

} else {

}

double height = Double.parseDouble(et.getText().toString()); String real = et_real.getText().toString(); String sex = \"\"; if(rb1.isChecked()){ } else{ } Intent intent = new Intent(); intent.setCla(MainActivity.this, ResultActivity.cla);

Bundle bundle = new Bundle(); bundle.putString(\"sex\", sex); bundle.putString(\"real\", real); intent.putExtras(bundle);

this.startActivity(intent);

//存放数据,以封装传输

bundle.putDouble(\"height\", height); sex = \"F\"; sex = \"M\"; Toast.makeText(MainActivity.this,

//身高未填提示

R.string.tall_hint,

//注册点击事件监听

Toast.LENGTH_SHORT).show(); 3.2第二个Activity 3.2.1布局文件:result.xml 绝对布局,三个TextView,内容用紫色显示,提示标号用绿色显示,以达到较醒目的感觉。 result.xml完整代码如下:

<?xml version=\"1.0\" encoding=\"utf-8\"?>

xmlns:android=\"http://schemas.android.com/apk/res/android\"

android:layout_width=\"fill_parent\"

android:layout_height=\"fill_parent\"

android:layout_margin=\"10px\">

android:id=\"@+id/tv_1\"

android:layout_width=\"wrap_content\"

android:layout_height=\"wrap_content\"

android:layout_x=\"20px\"

android:layout_y=\"100px\"

android:textSize=\"20sp\"

android:textColor=\"#8855ff\"

/>

android:id=\"@+id/tv_2\"

android:layout_width=\"wrap_content\"

android:layout_height=\"wrap_content\"

android:layout_x=\"20px\"

android:layout_y=\"200px\"

android:textSize=\"20sp\"

android:textColor=\"#00ff00\"

/>

android:id=\"@+id/tv_3\"

android:layout_width=\"wrap_content\"

android:layout_height=\"wrap_content\"

android:layout_x=\"20px\"

android:layout_y=\"240px\"

android:textSize=\"20sp\"

android:textColor=\"#8855ff\" />

3.2.2源代码文件:ResultActivity.java 使用result.xml布局文件,获取intent,取得传入的数据信息,以男性:(身高cm-80)×70﹪=标准体重

女性:(身高cm-70)×60﹪=标准体重 的标准来计算标准体重,方法

private String getWeight(double height, String sex) 实现此功能;

可根据用户是否输入了实际体重,来选择是否显示健康提示信息,方法 private void healthHint(double weight) 实现此功能;

方法private String form(double d)实现数据格式化。 ResultActivity.java完整代码如下:

package com.halcyon;

import java.text.NumberFormat;

import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.widget.TextView;

public cla ResultActivity extends Activity{

/**男性:(身高cm-80)¡Á70﹪=标准体重

* 女性:(身高cm-70)¡Á60﹪=标准体重

* **/

private TextView tv_1 = null; private TextView tv_2 = null; private TextView tv_3= null; private Intent intent = null; private Bundle bundle = null; private double height = 0; private String sex = \"\";

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.result);

tv_1 = (TextView)findViewById(R.id.tv_1);

tv_2 = (TextView)findViewById(R.id.tv_2);

tv_3 = (TextView)findViewById(R.id.tv_3);

intent = this.getIntent();

bundle = intent.getExtras();

height = bundle.getDouble(\"height\");

sex = bundle.getString(\"sex\");

tv_1.setText(this.getWeight(height,sex));

}

private String getWeight(double height, String sex) {

} private void healthHint(double weight) {

/*根据用户是否输入了实际体重来判断是否添加显示提示信息 * 如果输入了实际体重,按以下原则给用户以健康提示 * 标准体重正负10﹪为正常体重

* 标准体重正负10﹪~ 20﹪为体重过重或过轻 * 标准体重正负20﹪以上为肥胖或体重不足 * */

String result = \"\"; String real = bundle.getString(\"real\"); if(real.equals(\"\")){ } else {

double r = Double.parseDouble(real); double rate = (r-weight)/weight; if(rate>0.2){

//过胖

result = this.getString(R.string.very_fat); } else if(rate>=0.1&&rate

} else if(rate>-0.1&&rate

} else if(rate>=-0.2&&rate

//过瘦

result = this.getString(R.string.very_thin);

//瘦

result = this.getString(R.string.thin);

//正常

result = this.getString(R.string.normal);

//胖

result = this.getString(R.string.fat); result = \"\"; double weight = 0; String result = \"\"; if(sex.equals(\"M\")){

} else {

} healthHint(weight); return result; weight = (height-70)*0.6; result = \"这位女士,\\n妳的标准体重为\"+form(weight)+\"公斤。\\n\"; weight = (height-80)*0.7; result = \"这位先生,\\n你的标准体重为\"+form(weight)+\"公斤。\\n\";

}

}

} } tv_2.setText(getString(R.string.hint)); tv_3.setText(result); private String form(double d){

}

//格式化数据输出

String str = NumberFormat.getInstance().format(d); return str; 3.3字符串资源文件:strings.xml 在一个Android工程中,我们可能会使用到大量的字符串作为提示信息。这些字符串都可以作为字符串资源声明在配置文件中,从而实现程序的可配置性。

在代码中我们使用Context.getString()方法,通过传递资源ID参数来得到该字符串,也可以在其他资源文件中引用字符串资源,引用格式为:\"@string/字符串资源名称。

本程序所引用的strings.xml内容为:

<?xml version=\"1.0\" encoding=\"utf-8\"?>

NomalWeight

计算结果

计算你/妳的标准体重!

性别:

身高:

当前体重(可选):

男的

女的

计算

你没填身高哦!

温馨提示:

体重适中,要保持哟!

\"有点偏瘦哦,应该再多吃些东西啊!\"

\"一定是受谁的虐待了,要好好补补身体的,身体要强壮才行滴!\"

\"有点胖哦,要多锻炼啊!\"

\"不能太胖啊,要为自己制作运动减肥表了!\" 3.4程序清单文件:AndroidManifest.xml 每一个Android项目都包含一个清单(Manifest)文件--AndroidManifest.xml,它存储在项目层次中的最底层。清单可以定义应用程序及其组件的结构和元数据。

它包含了组成应用程序的每一个组件(活动、服务、内容提供器和广播接收器)的节点,并使用Intent过滤器和权限来确定这些组件之间以及这些组件和其他应用程序是如何交互的。

因本程序使用了2个Activity,故对AndroidManifest.xml有一定的修改,内容如下:

<?xml version=\"1.0\" encoding=\"utf-8\"?>

package=\"com.halcyon\"

android:versionCode=\"1\"

android:versionName=\"1.0\">

android:label=\"@string/app_name\">

四、程序功能测试及截图 4.1工程项目目录

4.2程序运行界面:

4.3未填身高提示:

4.4计算示例:

五、课程设计(实训)总结

通过本次实训:

1)练习、巩固了所学Java理论知识,提示了编程技巧;

2)体验到利用网络查找文档、解决问题的便利;

3)有幸了解到Android开发平台已及Android程序设计思想与方法;

4)开拓了视野,了解到计算机应用的广泛性,为用计算机解决实际问题打下了基础。

第11篇:安卓android课程设计报告

湘潭大学课程设计报告

程 课

题指

称______手机安卓开发_______ 名

称______天气预报APP_______老

师______周唯___________

名____黄柳________

号___2012600719_________ 班

级____12计2班________

组______棒棒糖_______ 时

间____2015年1月26 日_____

一、需求分析 (一) 引言

1.编写目的

1.1 为用户提供一个显示天气预报的软件,可以根据百度地图显示用户需求的城市位置,以及用图标表示各城市对应的气象信息,可以简洁的表示出“晴、雨、雪”和“气温”气象信息。

2.项目风险

2.1 (项目风险识别是指找出影响项目目标顺利实现的主要风险因素,并识别出这些风险究竟有哪些基本特征、可能会影响到项目的那些方面。) 2.2 联网收费视用户电话运营商的收费标准决定

2.3 手机或者无线信号不好时,可能无法连接或更新天气情况 3.预期读者和阅读建议

3.1 预期读者:会使用已经安装安卓系统的手机或者平板电脑及其他移动设备的用户

3.2 阅读建议:读者应通过该文档可以了解相关项目的需求分析、使用注意事项以及可能存在的风险

4.产品范围

2.2 手机,平板电脑,MP4,导航仪,上网本,电纸书等使用安卓系统的数码领域 (二) 综合描述

1.产品的状况

1.1 Android是一种以Linux为基础的开放源代码操作系统,主要使用于便携设备。目前未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。Android操作系统最初由Andy Rubin开发,最初主要支持手机。2005年由Google收购注资,并组建开放手机联盟开发改良,逐渐扩展到平板电脑及其他数码领域上。我们开发的相关项目正是一个在安卓平台上开发的软件,可以用这个软件来实现用户在一些简单的手持设备如手机或者平板电脑等上面及时的了解到用户所在城市的天气预报。

2.产品的功能

2.1 天气信息获取 2.2 天气信息显示 3.系统配置功能

3.1 用户类和特性

安卓平台用户:安卓新用户可以使用软件来了解用户所在城市的天气预报。熟悉安卓平台用户还可以选择对相关软件的系统按自己的喜好进行配置并保留自己的个性化系统配置。

安卓软件开发者:安卓软件开发者(喜好者)可以通过相关的开源代码来了解软件运行的原理。

3.2 运行环境

软件需要在支持安卓系统的可移动设备中正确安装才能正常运行。安卓版本需在2.2及以上,同时建议用户如果是在手机移动设备使用的话,需确保手机支持联网服务。

3.3 设计和实现上的限制

Eclipse是开发相关应用软件的首选集成开发环境,安卓开发环境首先需要安装支持java应用软件运行的java开发软件包(即JDK),然后安装集成开发环境Eclipse,最后安装Android SDK的Eclipse的ADT插件。

Android SDK和Eclipse的ADT插件是必须使用的。

软件支持高效、快速的数据存储方式,包括快速数据存储方式SharedPreferences、文件存储和轻量级关系数据块SQLite,可软件可以使用适合的方法对数据进行进程保存和访问。

3.4 假设和约束(依赖)

软件必须在安卓系统下才可以正常运行,若需要获取天气更新或者是短信服务,需确保用户的数码设备支持联网及短信服务。 (三) 外部接口需求 1 2 用户的手机设备可以支持联网。 用户界面

3 软件接口

软件提供轻量级的进程间通信机制Intent,实现跨进程组件通信。 4 访问硬件的API库函数通讯接口

4.1 HTTP 协议:有多种接口可以调用你可以用Java类库封装的HttpConnection 或者用Apach的开源项目的 HttpGet 或者HttpPost ,服务器端 需要 编写 Serlvet来响应客户端的请求。

4.2 Sokcet : 就是 服务器端 不断监听 双方约定好的端口号,客户端通过服务器IP去请求连接,连接成功后,得到Socket 的输入输出流,直接操作即可。 (四) 系统功能需求

天气信息显示和获取

功能描述:需有一个显示天气情况的用户界面,要求百度地图显示各城市位置(如:北京、长沙、广州等3-5个城市),以及用图标表示各城市对应的气象信息,表示出“晴、雨、雪”和“气温”简洁气象信息。 输入输出信息:

输入:当触摸某一城市对应的气象图标时,显示该城市当天的温度、湿度、风向和雨雪详细天气信息,并预报该城市后面几天的气象信息。

输出:气象信息的获取,从百度上获取天气预报信息,这些天气数据是通过后台服务获取的,这个后台服务可以按照一定时间间隔,并将各城市的天气信息保存到SQLite数据库中。

二、概要设计

三、Ui界面

我们的ui界面秉承着清新的风格开发出来的。

整个软件界面使用一个线性布局,让所有的元素从屏幕上方向下填充,并给整个线性布局进行权重划分。

线性布局的最上方是一个TextView,显示当前城市的名字,接着往下是一个相对布局,相对布局的左侧是天气的图片,右侧是三个天气相关的参数。

接着是一个线性布局,布局的左上方是三个TextView,分别显示“预报”,“趋势”,“指数”功能,通过点击相应的TextView,下方的一个线性布局展现不同的功能。 功能面板文字的下方是一个大的线性布局,用来显示未来三天的天气情况。在这个大的线性布局中,又含有三个小的线性布局,这三个小线性布局中包含了日期,天气图片和风力状况等(这些控件从上到下垂直居中显示)。

通过给整个XML文件中LinearLayout布局的的子级布局添加权重,让各个部分从上到下有序的显示,让当前城市名称在屏幕的上方显示,功能面板位于屏幕下方显示,以匹配不同尺寸屏幕,让软件的显示效果更好。软件的整体布局风格是清新,优美,大方。

四、功能设计

功能上实现实时的获取天气信息,获取百度api返回数据,解析百度api返回的json数据,根据解析到的数据绘制气温趋势图,并将数据反馈到app上的相应的区域。 通过使用ViewPager类,来实现天气预报软件中多个城市间的无缝页面切换。 由于组员都缺少JAVA开发经验,对安卓开发也不熟悉,所以我们决定采用调用API的方法来实时获取不同城市的天气预报数据,在这次项目中我们将采用百度的车载API。通过HttpClient类和AsyncTask异步类来获取网络数据。最后通过Gson类来解析获取的网络数据,并给页面中的所有的布局空间设置id,在AsyncTask得到网络数据之后将这些数据同步到软件界面上,呈现给用户。

三、功能模块

我主要负责监听程序的设计,监听用户按键,并进行相应的动作。

只要用户滑动面板,就切换到下一个城市,并获得下一个城市的天气数据, 显示在面板上。每隔15分钟自动更新天气数据。 主要代码如下:

下面的代码处理网络连接部分,用GSON解析网络上获得的Json网页:

下面代码访问网络:

四、心得体会

通过这个软件的实现,我对Android编程有了更加浓厚的兴趣,对Android中的常用类和接口有了进一步的认识。对编程有了一种新的看法,编程在我的学习中不再是那样的枯燥无味,而是时时刻刻充满惊喜。虽然这是一个挺小的项目但它对我在编程方面起到了一种激励的作用。我会在此基础上更加努力做出更好的程序。

第12篇:Android操作系统应用开发报告

Android操作系统应用开发报告

项目名称: 作

者: 学

号: 完成时间:1.开发目的

本次应用开发的预期目的及相关功能介绍。

2.程序系统

对所开发程序系统的介绍,包括总体结构,程序系统中各个程序或函数的名称及其介绍,他们之间的层次关系。

3.主要功能

说明所开发程序系统具有的实际功能。

4.基本流程

用图给出所开发程序系统的实际处理流程。

5.出错原因分析

给出开发过程中出现错误的原因分析。

6.开发心得

列出本次课程开发工作中所得到的经验与教训,以及心得体会。

第13篇:android开发实习报告总结

Android开发实习总结

有一名话叫做:不经过风雨,怎么见彩虹?我想改一下:不真正进入社会,怎能了解社会呢?

在这次实习中,给我收获最大的是我觉得很多工作需要我去摸索和探讨,要不怕吃苦,勇于激流勇进,有的工作虽然单挑又重复,但这是磨练意志最有效的方法,我告诫自己要认真完成,对每项工作都要他看成是公司对自己的一次考核,做到每一件事的过程中遇到困难,一定要争取不抛弃,不放弃,坚持“战斗”,只要希望还在,胜利一定属于我们。

在此次专业实习的过程中,我进入了广州外语通科技有限公司当任Android开发实习生,并参加了两次大项目的研发,从实际到理论,加深了我们对软件技术专业的理解,和对于与社会接轨的深刻感受。

作为学生,我们更多的是课本的知识的理解,理论的优势是我们的特色,但是怎样将理论结合实际却是摆在我们面前的难题。而参观广州外语通科技有限公司正视给了我们直观的解读。广州外语通科技有限公司建立了一整套符合国际标准的质量、成本和交付体系,软件开发质量控制和过程改善能力已达到了国际先进水平,秉承“用开拓的意识、创造新的价值”的企业理念,不断跟踪国际先进技术与管理思想,研发和提供优质软件产品和技术服务,为客户不断创造和提升价值。正是因为秉持这样的理念其完整的价值链和细致的软件服务,给了我们以软件技术专业的具体实际的体验。与此同时,广州外语通科技有限公司企业的参观使我们对中国物流企业的现状有了大概的了解,参观过程中不同仓库的设施和地面的设置的挑选更是让我们多了超出理论的认识。通过指导人员的讲解我们对中国物流企业的信息化有了大致的了解:中国物流企业信息化整体水平不高是其信息化建设的核心问题。这包括:标准不统一,资源浪费严重;大型应用软件系统应用不普遍,应用层次低;现有各软件系统之间相互孤立,形成“信息孤岛”;信息化建设发展不平衡,造成“信息鸿沟”;硬件设备的利用率不高,资源浪费严重;综合信息系统是物流业信息化建设的必然趋势。

如果说前两次的参观实习是给的我们直观的视觉冲突和心理震撼,那么后来的信息化讲座就揭开了信息化和软件技术专业的神秘面纱。通过经验丰富的演讲者的ppt演示我们了解了多个行业的信息化实施过程和具体的商务转变成软件技术专业活动的流程。现实中简单的商务活动一旦设计成成功的xx专业流程将涉及多个业务流程,整体的实施过程是复杂而艰难的。鉴于中国Android专业已经很成熟,各方面的支持还不够很完备,这使得中国Android专业的发展有很大的扩展性。

作为应届毕业生,在毕业前的这次专业实习,无疑是给了我们对Android专业的清晰认识,这也是最为软件技术专业专业的学生的最大感悟。当然实习中还有着更多的感触,包括学习,生活,工作各个方面。

就学习而言,专业实习它更偏重于应用,更加细致,要求也更加严格。作为应届毕业生的我们要想适合自己的工作,在实际中实现自己的理想,必需不断的增加自己的能力,做事情更加专注。

就生活而言,专业学习展示给我们看各个不同的行业的人们的生活,不同行业的人们将自己的行业融入自己的生活,这样大的人群的生活展示给我们未来的生活远景,选择什么样的生活也是我们现在的最重要的抉择。一旦下定决心,也就要开始为自己的生活做准备,胜利是属于有准备的人的。现在的我就要为自己的生活做准备,不断的充实自己。

就工作而言,无疑的本次的xx专业专业实习,展示给我们了多种职业,而作为应届毕业生,择业的选择是大多数人所面对的问题。就我们xx专业而言,面试时常遇见的问题就是“Android专业是干什么的?”或许大多数的学生跟我一样对android专业并没有清晰的概念,所以也并不能很好的回答这样的问题。不管怎样,勤劳的人是让人钦敬的,但所接触的朋友说“多年的工作让我清楚这个社会的运转不是控制在辛勤劳动的人手上,而是那一班根深帝固的政治家、资本家手中...工作中的认真负责不是为了讨好表现,而是为了要冶练自己的品性,是在为自己,不是为老板”。

上面的认识都是正面的,也是自己受益的主要部分,但就个人而言,本次的xx专业实习更多的是让自己认识到自己的不足。作为一个即将毕业的应届生,通过此次的实习,更多的是对大学四年的回顾和反省。进入了社会,和学校的感觉是完全不一样的。只有在刚进入公司的一个月里,大家还把你当作新人,时间久了公司的领导就把你与其它同事相比较;当你开始跑客户时,客户把你与做了很多年的销售相比较,没人把再把你当新人看待,而你把你当作一个正式的有能力的人使用。

看着那些员工忙忙碌碌的来来去去,坚定的态度是那么一点一滴在铸就起来,一个被人认可的人首先一定是一个认真负责的人,一个认真负责的人无论到哪里都可以站得正。相对于经验和技术而言,这些都是可以积累的,可以日久能熟的,但是否能有正确的态度却是因人而异的,有的人永远让人感觉畏锁。我从来没有把现在的工作当作实习,我就是认定我是在工作,而不是来学习东西的。我是为工作而学习,学习是为了把工作做得更好。

总的来说,我们这一次实习是比较成功的,大家都能学习到了很多在校园、在课堂上、课本上学不到的东西,也了解很多和懂得了做人的道理,特别是体会到生活中的艰辛和找工作的不容易。

感谢这次实习,感谢这次实习的教师,感谢为我们争取了这实习机会的领导。这次实习,一定会令我的人生走向新一页!

XXX

2016-01-08

第14篇:Android简历

个人简历

个人信息

姓名:XXX

年龄:XX

学历:本科

联系电话:186XXXXXXX

个人技能

1.熟练掌握JAVA面向对象编程语言,有良好的编码习惯;

2.熟悉jsp、javascript、servlet、javaBean进行web应用开发,了解jQuery,ajax等技术;

3.能使用Struts

2、Hibernate、Spring等开源框架技术;

4.熟练操作SQL sever、MySQL数据库,熟悉SQL语句;

5.熟练掌握Android adt编程环境和调试流程;

6.熟练掌握Android的4大组件和5种常用布局;

7.熟练Sqlite、File、SharePreference等存储方式;

8.熟练使用xml、json等解析技术;

9.熟悉编程软件环境配置,熟练运用Eclipse和MyEclipse等编程软件。

教育培训

2009年9月——2013年6月

2012年2月——2012年5月

项目经验

1.Android选课系统

描述:一款基于Android平台的选课软件,通过软件访问WEB短的服务器进行操作,web端采用servlet实现,能进行课程的查询、添加、删除。

2.基于SSH的论坛

描述:实现简单的注册登录功能,用户可创建自己的论坛并有管理权限,会员可发帖,帖子有回复功能,版主可管理自己的帖子。

自我评价

我有一颗积极向上的心,对于软件开发有较大兴趣。喜欢运动,热爱生活,热爱学习。诚实做人,踏实做事是我的做人原则。有较强的团队意识,比较善于团队合作。我坚信,努力不一定会成功,但肯定会有收获。我期待这个收获的过程。我将投入自己全部的激情,努力奋进。

XX大学软件工程 XXXXXAndroid软件开发 性别:X 籍贯: 山东XX 专业: 软件工程 E-mail:XXXXXXX@126.com

第15篇:Android学习心得

Android入门心得

工具使用

1.打开已有工程:

方法1:Eclipse>file>new>Android Project>Next>Create Project existing source>选择你的项目.该方法适合不在工作目录workspace下的文件。

方法2:在屏幕上方的选单列上,选择「File->Import」选项,会跳出「Import」视窗。选择「General->Existing Projects into WorkSpace」项目,然后按下「Next」按钮带到新一个画面。在「Select Root Directory」栏位旁,按下右方的「Browse...」按钮,选择对应的工程。选择好后,按下「Finish」按钮完成从现存在工作环境(WorkSpace)资料夹下的工程汇入到Eclipse 环境的动作。

2.修复工程。如果发现开启后的资料夹图示上有个小小的黄色惊叹号,表示工程导入后还有些问题,我们可以使用ADT 内建的功能来试着修复。

在「Package Explorer」的「ApiDemos」工程档桉夹图示上点选右键,Android Tools->Fix Project Properties

3.新建模拟器

一种方法是在windows的运行>cmd中。

在windows的“运行”->cmd中启动Android emulator。

首先,设置环境变量。在Windows 2000, XP, 2003 这些操作系统里,点选「我的电脑右键>属性>高级>环境变数」。在「系统变数(S)」栏中,选取「PATH」变数名称后,再点选「编辑(I)」按钮。加入你的android-sdk-windows的安装路径(因个人电脑而异):在弹出的视窗中将「; D:\\software\\eclipse\\Andorid开发套件\\android-sdk-windows\\tools」(注意要以分号隔开)这字串添在原本的字串之后,按下确定后重新启动操作系统。 其次,开始>运行>cmd:输入如下命令

>android list targets 列出模拟器类型

>android create avd --target 1--name android2.2新建模拟器(「--target 1」参数的意思是这个模拟器使用id 为1的模拟器类型,「--name cupcake」参数的意思是将这个建立的模拟器命名为android2.2)

>android list avd 查看已有的模拟器。

另一种简单的方法是在eclipse集成开发平台上。

Eclipse>windows>android SDK and AVD manager>new >„„

4.换屏。在Windows 操作系统上按下「Ctrl」和「F12」可以切换模拟器屏幕,直屏&横屏。

5.换外观。还可以添加android手机的模拟器外观,如G1的。实现方法:先下载G1外观(http:///),解压后放到即可,执行android create avd --target 2 --name devphone –skin G1

6.添加SD Card。

首先创建镜像文件。用cmd中进入到android的SDK的Tools目录下,执行mksdcard创建。

>mksdcard 1024M sdcard.img

(其中第一个参数为要创建的sdcard容量大小(容量大小自己决定),

第二个参数为sdcard的名字)

然后,启动带sdcard的Android模拟器

>emulator -sdcard sdcard.img

我使用的时候,发现用上述命令总是提示错误。按照cmd的提示,

改为emulator –data sdcard.img。不过貌似启动很慢,而且手机内存和sd卡内存(磁盘虚拟)也会调整,开始以为可以了,结果发现死机了。~~~~(>_

最后根据提示,命令中加入模拟器名,emulator –avd [你的模拟器的名

字] -sdcard sdcard.img,就启动了模拟器。(估计是我电脑有多个模拟器,所以命令就不知道怎么执行了)

7.在模拟器上安装android 程序。

Windows>navigation>next perspective>DDMS>选中file explorer 可以看到Android手机模拟的系统文件。有个SDcard的文件夹即为SD卡内容。点选一个手机图标即可将android程序下载到“手机”(通过这种方法,还可以添加图片,MP3等。也可从手机上传到PC,用即可)然后像操作手机一样安装程序即可。你可以试试安装“愤怒的小鸟”“植物大战僵尸”等游戏。在PC上体验android。

说明:如果你的手机模拟器上没有装文件浏览器。是看不到文件的。解决的办法是:可以你先在在cmd中安装浏览器,adb install ***.apk。安装文件必须在cmd的当前目录下,不然cmd找不到的。

8.屏幕截图。在Windows>navigation>next perspective>DDMS>Device窗口中有个Screen capture 图标。点选即可将手机模拟器的屏幕内容截取下来。 9.JAVA语法

10.Package:

当一个大型程序交由数个不同的程序人员开发时,用到相同的类名是很有可能的,那么如果发生了这样的事件我们该怎么办那?,在我们java程序开发中为了避免上述事件,提供了一个包的概念(package),那么既然有了这样一种方法能避免上述事件.

11.Native。在JAVA中 native关键字表示一个方法只可以调用,但是不能编写!

12.将C写的动态库变成Java所用:

Native方法,native是一个本地接口。

1、在Java中声明native()方法,然后编译;

2、用javah产生一个.h文件;

3、写一个.cpp文件实现native导出方法,其中需要包含第二步产生的.h文件(注意其中又包含了JDK带的jni.h文件);

4、将第三步的.cpp文件编译成动态链接库文件;

5、在Java中用System.loadLibrary()方法加载第四步产生的动态链接库文件,这个native()方法就可以在Java中被访问了。

13.Java关键字final

final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类、非

抽象类成员方法和变量。你可能出于两种理解而需要阻止改变:设计或效率。final类不能被继承,没有子类,final类中的方法默认是final的。final方法不能被子类的方法覆盖,但可以被继承。final成员变量表示常量,只能被赋值一次,赋值后值不再改变。final不能用于修饰构造方法只是用来标识这个引用不能被修改。

14.R.java

R.java是ATD自行产生的,ID号都是唯一的,如果不熟悉,最好是不要动这个里面的东西,这个类里面通常定义的都是project的一些resource信息,attr、drawable、id、raw、layout、string以及xml等

15.在Java中,通过关键字extends继承一个已有的类。New创建对象。

16.创建对象是可直接用button,EditText, TextView,Handler等关键字,

17.修改程序图标:把res文件夹的drawable文件夹中的icon.Png替换成自己的icon即可。

最后

Android也可以不用JAVA语言,而采用经典的C&C++开发。基于的原理也就是第12点讲到的,将程序的实现代码用C(C++)写好后,封装成库,再使用native方法调用,即JNI,JAVA native interface。(开发环境为DNK Native Development Kit)。

麻烦!还不如新学JAVA,以后肯定用得到的。

Android应用程序开发入门

1.界面

目前的ADT 版本提供了预览界面的功能,但尚未提供方便地视觉化拖拉界面元件的开发工具。以后也许ADT 会加入完整的GUI 拖拉设计工具。所以当前设计都是在res下的layout下的main.xml修改界面描述语言。

2.

第16篇:android实习

21日

今天是实习的第一天,上午听了专家的讲座,并分组和项目立项。下午的时候,开始了对于Android的学习,我知道了Android系统的概述和特性,并且了解到了Android的体系结构和常用系统库,使我对Android有了简单的了解。

22日

今天开始正式接触Android软件的开发,先是要把开发的环境配好,工具(Eclipse)安装好。了解了Android应用程序的组成和目录结构。在下午的时候,开始学习Activity的系统原理和生命周期,并创建了Activity,对了Activity之间的跳转这,我遇到了问题,没有办法跳转,经过仔细盘查,原来是在跳转到的Activity中没有创建Intentintent = getIntent().在开发中要注意每一点,出现一点错误就可能使整个项目出现错误。

通过今天的学习,根据自己的项目,创建了项目所需要的Activity,并在需要的地方加入了跳转。

23日

今天上午,学习了文本框和编辑框:TextView ,EditText;还有按钮Button和ImageButton, 发现TextView是显示文本的,而EditText是输入文本的,通过EditText,我自己编写了一个计算器,使用了Intent传值,实现了简单的计算。在ImageButton中发现设置背景图标Background和src的不同,一个是设置按钮背景,一个是在按钮上加入了图片。我在自己项目的主页使用了ImageButton,使我的主页更加炫了。

下午的时候学习到了怎么样去布局,感觉使用RelativeLayout比LinearLayout方便,因为可以随便的设置布局,更加的随意,LinearLayout就会有很多的限制。不过LinearLayout布局相对简单,不繁琐,RelativeLayout布局相对麻烦,容易出现错误。

通过今天的学习,在自己的项目中的Activity中根据需要修改了布局,在我的主页中我使用了RelativeLayout,这样可以使我对主页的布局控制更加简单,更加随意,使我可以把主页布置的更吸引人。而其他的一些次要界面,我使用的是LinearLayout,这样更加方便。24日

今天学习到了Toast提示类,这个可以在点击按钮的时候显示提示内容,例如 Toast.makeText(first.this,”后退”,Toast.LENGTH_LONG).show();(first是我自己的文件名)。

对于menu类的用法和怎么取创建menu的监控方法有了了解,就是在public boolean onOptionsItemSelected(MenuItem item)中加入监控方法。在表单中我还用到了RadioButton和CheckBox。在下午的时候我知道了如何在内存卡中存数据。RadioButton 和 CheckBox和java web表单中的这些功能几乎一样。

在项目中的主界面中的,我加入了menu菜单,在里面加入了两个按键,一个是“关于 ”界面,是介绍项目的开发者和项目的版本的,还有一个是“退出”按键,并对其加入了Alert对话框,防止使用者不小心退出。而且也对返回键加入了对话框,在主界面中的按钮加入了Toast提示,提示的时间是SHORT,不是LONG,这样可以提醒使用者按下的是什么按键。

25日

今天老师讲解了图形框架,让我知道了如何去使用Canvas类,Paint类。并且学会了如何绘制自定义UI、控件。

在下午的时候,学习了绘制文字,图形和图像,并且自己动手制作了软件中的一些界面 26日

今天听了企业专家讲座,然后,老师为我们讲解了如何去创建证书和签名,并且指导我们在即动手去签名打包,最后告诉我们软件做的好的会发布到移动MM上去

27日

今天学习到了类似于Java中的Alert对话框,那就是AlertDialog,感觉Android和Java更加相似了,名字都差不多。当然,还知道了用Dialog显示的View是什么样的。虽然之前我就在自己的项目中用到了对话框,但是这次的学习使我对对话框的了解更加深入了,使用更加灵活了。

下午学习到的东西非常重要,那就是Spinner,Gallery,TabHost还有ListView类,知道了Gallery可以使多张图片通过滑动显示在手机上。项目的主页上有一个图集,就是使用的Gallery,才使大量的图片有了更好的操作。TabHost类似于网页的标签,项目的“英雄”显

示界面中的“技能介绍”和“出装”介绍就是使用了TabHost,才可以在一个页面上显示出来。

28日

今天是Android数据库的学习,今天学会了如何去创建数据表,如何在表中实现增删改查。下午的时候,通过创建ContentProvider来学习和了解ContentProvider。

29日

今天主要学习广播,知道了如何发送广播,监听广播,注册和取消广播,并且通过广播监听了手机接收短信。还学习了服务,了解了创建服务,启动服务,怎么样绑定服务和进程间通信,明白了服务的生命周期。

30日

今天是最后一天,有项目答辩,所以项目需要完成,我讲我小组的所有的内容集合起来,形成一个完整的项目,并签名打包

虽然这次培训时间很短,但是我从中学到了很多内容。我知道了安卓的一些基本知识,并对其有了一定的了解,可以对其进行简单的使用,可以

第17篇:Android总结

Android四大组件:

Activity—表现屏幕界面

Service—后台服务

BroadcastReceiver—实现广播机制

ContentProvider—实现数据存储

Intent类:用来启动程序并传递信息的类

用于Activity、Receiver、Service之间进行交互的类,通过无参构造方法创建对象,增加其action、category、data、extra等属性进行信息传递,并通过Activity中的startActivity(Intent intent)进行界面的跳转;通过Context中的StartService(Intent intent)进行服务跳转;通过Context中的registerReceive(Intent intent)对广播进行注册,并通过sendBroadcast()进行无序消息发送,或可以通过SendOrderedBroadcast()进行有序的消息发送。 Handler类:

用来发送和处理消息,并配合主线程完成UI的更新;消息Meage/Runnable传递通过MeageQueue(消息队列,先进先出)进行传递,并通过Lopper进行接收,传递的消息可以为Meage对象,也可以是Runnable对象;接收方法通过HandleMeage(Meage msg)进行获取。 SharedPreferences类:

一般用于第一次登录时的设置,或者是各个界面的一些小型格式设置,如字体等。是本地的小型共享数据库,可以通过Context的静态方法getSharedPreferences获得其对象,对象内的值均为键值对进行储存。通过SharedPreferences对象调用editor()获取SharedPreferences.Editor对象,向共享数据库中增加数据,putString(),并提交数据,commit();通过SharedPreferences对象获取共享数据库中的数据,getString()。

ViewPager:实现界面滑动的类;

通过设置OnPagerChangedListener设置ViewPager的监听事件;

实现流程:

①布局文件中设置ViewPager控件;

②代码中进行绑定控件;

③通过继承PagerAdapter抽象类进行设置适配器,并传递数据源;

④适配器中实现两个抽象方法,两个重写方法:getCount()—获取滑动界面的数量,isViewFromObject()—判断视图是否是来自于Object文件中;重写两个方法,分别为destoryItem—销毁指定位置的视图;InstantiateItem(),设置指定位置的视图;

Timer与TimerTask类:

Timer为计时器的类,通过无参构造方法可以获取对象,通过Timer.schedule(TimerTask task,long time)进行设置多久后执行某任务,当任务执行完后,取消计时的功能,Timer.cancle();TimerTask类为抽象类,实例化时,必须重写run方法;执行的内容,均在run方法中进行设置,并且执行时,已在子线程中进行执行。 自定义View:用到的类有Paint、Canvas、Spec、SpecF、Path、View.MeasureSpec、Timer、TimerTask;

抽象类,通过子类继承,获取对象;在布局文件中绑定后,通过代码,设置自定义View的属性;自定义View中,通过重写OnMeasure方法,对布局文件中的尺寸进行测量,并由View中的setMeasureDimenson()方法,进行数据的保存;通过重写Ondraw方法,进行绘图;当需要绘制动态图形时,使用计时器Timer的schedule(TimerTask,long time,delay time2)方法,在time时间后,每隔time2时间,重写执行run方法中的内容;将耗时的操作设置在run方法中,并通过View中的invalidate()方法刷新主线程中的绘的图形,通过postInvalidate()刷新子线程中的图形。 数据库:

常用的数据库有Oracle,需要安装和配置的大型收费数据库;MySQL是中型数据库,同样需要安装配置,但不需要收费;Sqlite是小型免费的嵌入式数据库,占用内存低,最新版本为3.0。Sqlite数据库需要通过SqliteDatabaseOpenHelper进行创建数据库,并通过SqliteDatabase进行数据库的操作。辅助类是抽象类,通过继承,重写两个方法,并在子类的构造方法中通过OpenHelper的构造方法(Context context,String SqlName,SqliteDatabase.CursorFactory factory,int version)进行数据库的创建,在onCreate方法中,进行数据库表的创建,在onUpdate中进行数据库的版本更新。在数据库的操作类中,执行exect方法,通过sql语句对数据库进行操作。Create table student (_id integer primary key auto increament ,name text);insert into student (_id,name) values (1,zx);delete from student where _id=1;update student set _id=2 where name=zx;select *from student ; ListView、GridView适配器的优化:

将布局文件中的控件进行封装,当视图加载时,判断可变视图是否存在,当不存在时,通过布局文件获取视图,并新建封装类,将地址通过setTag()进行发送;当视图存在时,重复利用地址—getTag()。 反射:

存储数据的方式:

共享数据库、数据库、文件、网络、内容提供者

广播:

广播传播时,需要接收者、发送者、广播频道;根据发送者的发送方式不同,分为有序广播、无序广播;有序广播为接收者有接收顺序,根据设置的优先级不同,确定先后顺序,接收者同时也是发送者,向后面的广播发送消息,发送过程中,可以添加信息,也可以停止广播的传输;无序广播,接收者之间无联系,均从发送者处接收信息;广播在传输过程中,不能被添加信息,也不可能被停止。广播在发送前,需要对接收者进行注册,注册方式有两种,动态注册、静态注册。动态注册,是在代码中进行,通过Context对象调用静态方法进行注册,所有的广播均可以用动态注册,其生命周期依赖于应用,相对于静态注册,比较节省内存;静态方法在清单文件中进行注册,部分系统广播不能通过静态注册进行,其生命周期依赖于系统,当系统启动,即运行接收广播,较耗内存。广播接收者需要继承BroadcastReceiver,并实现抽象方法onReceive(),通过回调接口,进行数据的传输。注意:广播发送前,必须进行接收者的注册,并且,当显示跳转时,不需要意图过滤器。 安卓布局:九种布局

线性布局,水平或垂直方向两种格式,主要特点为权重,即规定各控件在视图中的占有的比例;

相对布局,相对于父控件或兄弟控件的布局,各控件需指定相对位置; 绝对布局,指定各控件在视图中的绝对位置,几乎不再使用; 表格布局,子布局放在行中,列由控件表示(TableRow); 帧布局:覆盖前面布局的布局,一般用于暂停按钮等; 风格布局:可以跨行、跨列的布局,占满换行;

左右侧滑:可以实现左右侧滑,通过设置主菜单和二级菜单设置左右两个菜单; 下拉刷新:设置下拉刷新、上拉加载的功能; 抽屉布局;

安卓版本及对应的API:

1.6—4;2—7;3—11;4—15;4.3—18;5—20;5.1—21;6—23;7—25; 安卓四层架构:

应用层:Java语言开发,主要从事App开发;

运行库层:Java语言与C语言,View视图、管理类等的开发; 架构层:C语言与Linux语言,各种框架、浏览器等; 内核层:Linux、C语言,开发各种驱动; 安卓四大组件:

Activity:界面,实现程序与用户之间的交换,有自己的生命周期,七个生命周期;4种启动模式 Service:

BroadcastReceive:三要素,发送者、接收者、发送频道(Intent);类型:有序(接收有序,有数据传送,可以拦截数据)、无序广播(相对);注册方式:静态注册,持久监听,占用内存比较高生命周期跟随系统,动态注册(代码中),所有广播都可以动态注册,部分系统广播不能动态注册,临时监听,占用内存较少,生命周期随应用进行;

ContentProvide:不能存放数据,五种存放数据方式之一,特点为:①为数据的获取等操作添加一个统一的接口②可以实现跨应用访问数据;③可以实现Android中通讯录、消息、音频、视频等的访问或操作;通过ContentReceive进行数据的访问,可以对数据进行增删改查操作。

动画: IO流: 序列化: AlertDialog:

Set实现类: 手机电量检测:

自定义SurfaceView:

自定义View:三个构造方法的区别

Meage:Handler.obtain/new/Meage.obtain

HttpUriConnection访问网络

gride 异步任务 动画

抽象类和接口 反射 克隆 序列化 侧滑的实现 数据库 Socket:

Gson解析

异步任务和子线程区别 WebView 版本更新 照片的圆角化

Collection与Collections Sql语句

MVP框架与MVC: TCP与UDP的区别: 一键分享的流程: Http协议的理解: 不使用框架访问网络: List集合与set集合: 自定义View的流程: 线性布局的特点: ViewPager的原理: 服务的启动方式:

Activity的启动方式: Xml数据解析:

第18篇:android 答疑

在Escips进行编译仿真时,如果有错误 logcat会出很多行红字,怎样从红字中获取有用信息

一般的话红字第一行,就能说明错误原因。还有个笨方法是 挨行双击。

一般的错误都会显示在第二行红字里面,你选中后点击右键

选择“Filter similar meages...”,就可以查看复制出log的信息,然后上网搜搜什么的都可以。

一般出错的类,以及什么异常都会显示出来。一个简单的办法就是你浏览出错信息,找到你自己认识(或者说你自己写的)的类和方法,后面有标识的错误的代码行号。

Fatal adj [/fetl]致命的的,重大的,毁灭性的

AlertDialog.Builder()的参数问题 (2011-10-11 10:54:39)转载▼ 标签: 杂谈

有关AlertDialog.Builder,在创建时一定要用this做为参数,

如:new AlertDialog.Builder(this); 有些时候用this 会出现错误,因为dialog不是在oncreate中定义的。 不妨在MainActivity建立类

public static MainActivity mainactivity; 然后在oncreate中mainactivity = this; 之后建立Dialog new AlertDialog.Builder(MainActivity.mainactivity); 个人试过可以,大家不妨尝试

new AlertDialog.Builder(this)跟new AlertDialog.Builder(A.this)(A是外部类名)的区别是什么呢?实现过程中的结果有什么区别呢??能详细说明吗?谢谢。。。。

分享到:

2011-11-04 19:54提问者采纳

首先AlertDialog.Builder(this)所传参数类型是contex,也就是上下文环境。this意思是当前对象,就是调用AlertDialog.Builder()的对象。 所以,前者的this是临近最外面的那个cla产生的对象

后者是cla A产生的对象。。明白了吗?

追问

this意思是当前对象,就是调用AlertDialog.Builder()的对象。 所以,前者的this是最外面的那个cla产生的对象 关于这句可以再详细一点说明吗。。。谢谢

回答

举个例子吧:

public cla A {

//一个有名内部类

cla B{ fun(this);//这里的this是类B产生的对象

fun(A.this);//这里的this是类A产生的对象

} } public void onClick(View v) 是什么意思? View类的对象v作为参数传入onClick函数,至于View具体是什么类需要根据实际情况来看。

手机音效

Android手机的来电铃声和短信铃声的设置虽然也有些繁琐,但是细心的用户仔细摸索一下就能会快知道了。但是android手机还有按键声音和照相声音,这些都是一成不变的,时间一长,大家也难免会觉得有些厌烦,很多机友都想知道如何来更换这些系统声音,让自己的手机更加个性化。下面就简单的教大家在手机上如何更换这些系统声音。一起往下看。

首先还是需要一些工具软件,前期需要准备的文件和工具有root explorer文件管理器和ogg格式简短音频文件。

1.Root explorer (文件管理器)下载:http://download.tech.qq.com/\"));

2.shortcutIntent.setClaName(\"com.android.browser\", \"com.android.browser.BrowserActivity\"); //此处指定系统自带浏览器包名和Activity名称.

Unable to start activity ComponentInfo: java.lang.NullPointerException

分类: Android2012-07-20 13:12 561人阅读 评论(0) 收藏 举报

Unable to start activity ComponentInfo{....}: java.lang.NullPointerException 原因:未对控件初始化

android开发中,空构造Intent和带参数的intent 2012-03-02 14:13wushu15092 | 分类:JAVA相关 | 浏览1884次

代码1:

Intent intent = new Intent();

代码2: intent.setAction(Intent.ACTION_CALL); intent.setData(Uri.parse(\"TEL:110\")); startActivity(intent); Intent intent=new Intent(Intent.ACTION_CALL,Uri.parse(\"tel:110\")); startActivity(intent); 两个代码有什么不一样??为什么代码1提示No Activity found to handle Intent,而代码2能正常运行???

分享到:

2012-03-02 15:35提问者采纳

呃。。。第二行和第三行换换位置。。。

Intent intent = new Intent(); intent.setData(Uri.parse(\"TEL:110\")); intent.setAction(Intent.ACTION_CALL); startActivity(intent); 提问者评价

其实代码2出错的地方是那个tel:110,把tel改成TEL就可以了。

注意字母大写

第19篇:android面试题

选择题(包括多选)

1.下列哪些语句关于内存回收的说明是正确的?

A、程序员必须创建一个线程来释放内存

B、内存回收程序负责释放无用内存

C、内存回收程序允许程序员直接释放内存

D、内存回收程序可以在指定的时间释放内存对象

2.下面异常是属于Runtime Exception 的是

A、ArithmeticException

B、IllegalArgumentException

C、NullPointerException

D、BufferUnderflowException

3.Math.round(-11.5)等于多少

A、11 ,-11

B、11 ,-12

C、12 ,-11

D、12 ,-1

24.下列程序段的输出结果是:

void complicatedexpreion_r(){

int x=20, y=30;

boolean b;

b=x>50&&y>60||x>50&&y60||x

System.out.println(b);

}

A、true

B、false

C、1

D、011.activity

5.对一些资源以及状态的操作保存,最好是保存在生命周期的哪个函数中进行

A、onPause()

B、onCreate()

C、onResume()

D、onStart()

6.Intent传递数据时,下列的数据类型哪些可以被传递

A、Serializable

B、charsequence

C、Parcelable

D、Bundle

7.android 中下列属于Intent的作用的是

A、实现应用程序间的数据共享

B、是一段长的生命周期,没有用户界面的程序,可以保持应用在后台运行,而不会因为切换页面而消失

C、可以实现界面间的切换,可以包含动作和动作数据,连接四大组件的纽带

D、处理一个应用程序整体性的工作

8.下列属于SAX解析xml文件的优点的是

A、将整个文档树在内存中,便于操作,支持删除,修改,重新排列等多种功能

B、不用事先调入整个文档,占用资源少

C、整个文档调入内存,浪费时间和空间

D、不是长久驻留在内存,数据不是持久的,事件过后,若没有保存数据,数据就会

消失

9.在android中使用SQLiteOpenHelper这个辅助类时,可以生成一个数据库,并可以对数据库版本进行管理的方法可以是( )

A、getWriteableDatabase()

B、getReadableDatabase()

C、getDatabase()

D、getAbleDatabase()

10.android 关于service生命周期的onCreate()和onStart()说法正确的是

A、当第一次启动的时候先后调用onCreate()和onStart()方法

B、当第一次启动的时候只会调用onCreate()方法

C、如果service已经启动,将先后调用onCreate()和onStart()方法

D、如果service已经启动,只会执行onStart()方法,不在执行onCreate()方法

11.下面是属于GLSurFaceView特性的是

A、管理一个surface,这个surface就是一块特殊的内存,能直接排版到android的视图view上。

B、管理一个EGL display,它能让opengl把内容渲染到上述的surface上。

C、让渲染器在独立的线程里运作,和UI线程分离。

D、可以直接从内存或者DMA等硬件接口取得图像数据

12.下面在AndroidManifest.xml文件中注册BroadcastReceiver方式正确的

A、

android:name="android.provider.action.NewBroad"/>

B、

android:name="android.provider.action.NewBroad"/>

C、

android:name="android.provider.action.NewBroad"/>

D、

android:name="android.provider.action.NewBroad"/>

13.关于ContenValues类说法正确的是

A、他和Hashtable比较类似,也是负责存储一些名值对,但是他存储的名值对当中的名是String类型,而值都是基本类型

B、他和Hashtable比较类似,也是负责存储一些名值对,但是他存储的名值对当中的名是任意类型,而值都是基本类型

C、他和Hashtable比较类似,也是负责存储一些名值对,但是他存储的名值对当中的名,可以为空,而值都是String类型

D、他和Hashtable比较类似,也是负责存储一些名值对,但是他存储的名值对当中的名是String类型,而值也是String类型

14.我们都知道Hanlder是线程与Activity通信的桥梁,如果线程处理不当,你的机器就会变得越慢,那么线程销毁的方法是

A、onDestroy()

B、onClear()

C、onFinish()

D、onStop()

15.下面退出Activity错误的方法是

A、finish()

B、抛异常强制退出

C、System.exit()

D、onStop()

16.下面属于android的动画分类的有

A、Tween

B、Frame

C、Draw

D、Animation

17.下面关于Android dvm的进程和Linux的进程,应用程序的进程说法正确的是

A、DVM指dalivk的虚拟机.每一个Android应用程序都在它自己的进程中运行,不一定拥有一个独立的Dalvik虚拟机实例.而每一个DVM都是在Linux中的一个进程,所以说可以认为是同一个概念.

B、DVM指dalivk的虚拟机.每一个Android应用程序都在它自己的进程中运行,不一定拥有一个独立的Dalvik虚拟机实例.而每一个DVM不一定都是在Linux中的一个进程,所以说不是一个概念.C、DVM指dalivk的虚拟机.每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例.而每一个DVM不一定都是在Linux中的一个进程,所以说不是一个概念.

D、DVM指dalivk的虚拟机.每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的 Dalvik虚拟机实例.而每一个DVM都是在Linux中的一个进程,所以说可以认为是同一个概念.18.Android项目工程下面的aets目录的作用是什么

A、放置应用到的图片资源。

B、主要放置多媒体等数据文件

C、放置字符串,颜色,数组等常量数据

D、放置一些与UI相应的布局文件,都是xml文件

19.关于res/raw目录说法正确的是

A、这里的文件是原封不动的存储到设备上不会转换为二进制的格式

B、这里的文件是原封不动的存储到设备上会转换为二进制的格式

C、这里的文件最终以二进制的格式存储到指定的包中

D、这里的文件最终不会以二进制的格式存储到指定的包中

20.下列对android NDK的理解正确的是

A、NDK是一系列工具的集合

B、NDK 提供了一份稳定、功能有限的 API 头文件声明。

C、使 “Java+C” 的开发方式终于转正,成为官方支持的开发方式

D、NDK 将是 Android平台支持 C 开发的开端

问答题:

1.系统上安装了多种浏览器,能否指定某浏览器访问指定页面?请说明原由。

2.Activity和Task的启动模式有哪些? 每种含义是什么?

3.SQLite支持事务吗? 添加删除如何提高性能?

4.对Intent、Activity、广播、Service等的理解

5、handler机制的原理

第20篇:Android教学大纲

移动互联-教学大纲

第1章 Android快速入门 1.1 什么是3G 1.1.1 三个无线接口标准 1.2 为什么从事Android开发 1.2.1 智能手机制式分析 1.2.2 智能手机软件平台 1.2.3 智能手机屏幕尺寸分析 1.2.4市场占有率 1.3什么是android 1.3.1历史背景 1.3.2Android进化史 1.3.3Android体系结构

1.3.4 Dalvik VM 和 JVM 的比较 1.4搭建Android开发环境 1.4.1 系统需求 1.4.2 JDK的下载 1.4.3 JDK的安装

1.4.3 Android SDK的下载与安装 1.5 第一个Android程序 1.5.1 创建Android应用程序 1.5.2 Android项目结构说明 1.5.3 运行Android应用程序 1.5.4 调试Android应用程序 1.5.5 Android应用开发流程 1.6说明和要求: 重点:android特性,android架构,搭建android开发环境,android项目结构说明,android应用开发流程

难点:android项目结构

教学目标:

1、理解android市场现状;

2、了解什么android;

3、搭建android开发环境;

4、通过第一个android程序了解android项目结构掌握运行android程序和调试android程序;

5、掌握android应用开发流程

第2章 Android模拟器与常见命令 2.1 使用Android模拟器 2.1.1 模拟器概述

2.1.2 Android虚拟设备和模拟器 2.1.3 Android模拟器启动与停止 2.1.4 控制模拟器

2.1.5 Android 4.0模拟器介绍 2.1.6 模拟器限制 2.2 SDK中常用命令 2.2.1 adb命令 2.2.2 android命令 2.3 说明和要求: 重点:创建android虚拟器,android虚拟器与真机区别,控制模拟器,adb命令 难点:控制模拟器,adb常用命令

教学目标:

1、掌握创建模拟器并使用;

2、了解模拟器与真机区别;

3、掌握adb常用命令

第3章 用户界面设计 3.1 用户界面VIEW 3.1.1 xml部分属性 3.1.2 多点触控 3.1.3 控制UI界面

3.1.4 使用xml控制UI界面 3.1.5 在代码中控制UI界面

3.2 使用XML和Java代码混合控制UI界面 3.2.1 Android样式与主题 3.2.2 布局管理器 3.2.3 线性布局 3.2.4 相对布局 3.3.1 基本组件 3.3.2 Toast 3.3.3 文本框与编辑框 3.3.4 按钮

3.3.5 单选按钮和复选框 3.3.6 ProgreBar进度条 3.3.7 图像视图 3.3.8 对话框 3.4 列表视图 3.5 说明和要求: 重点:使用xml控制UI界面,线性布局,相对布局,帧布局,文本框和编辑框,按钮,单选框和复选框,列表视图 难点:帧布局,列表视图

教学目标:

1、掌握两种控制UI布局;

2、掌握线性布局的水平布局和垂直布局;

3、掌握相对布局;

4、掌握帧布局的动态添加;

5、掌握android基本组件及点击事件处理

6、掌握列表视图

第4章 线程与消息处理 4.4 实现多线程 4.4.1 创建线程 4.4.2 开启线程 4.4.3 线程的休眠 4.4.4 中断线程 4.5 说明和要求: 重点:实现多线程下载,handler消息机制传递 难点:多线程下载

教学目标:

1、掌握多线程下载;

2、掌握handler消息传递机制

第5章 数据存储及访问 5.1 文件存储

5.1.1 文件存储三种模式 5.1.2 使用文件进行数据存储 5.1.3 使用sax解析xml文件 5.2 使用dom解析xml文件 5.2.1 使用pull解析xml文件 5.2.2 使用Pull解析器生成XML文件 5.2.3 把文件放在sd卡上 5.3 SD卡简介

5.3.1 将文件保存到SD卡,并从文件夹取文件 5.3.2 将文件或者文件夹从SD卡删除 5.3.3 SharedPreferences 5.3.4 使用SharedPreferences进行数据存储 5.3.5 访问SharedPreferences中的数据 5.3.6 使用SQLite数据库 5.3.7 数据库创建及版本管理 5.4 内容提供者 5.4.1 事务处理 5.4.2 网络 5.5说明和要求: 重点:使用sax解析xml文件,使用dom解析xml文件,使用pull解析xml文件,使用SharedPreferences进行数据存储,访问SharedPreferences中的数据,数据库创建,数据库版本管理,使用SQLiteDatabase操作SQLite数据库,使用SQLiteOpenHelper操作SQLite数据库,事务处理

难点:xml文件的三种解析方式,使用SharedPreferences存储数据及数据读取,数据库的创建和更新,对数据库进行增删改查,数据库的事务处理

教学目标:

1、掌握使用sax,dom,pull三种方式对xml文件进行解析;

2、掌握使用SharedPreferences存储数据及数据读取;

3、掌握对SQLite数据库的创建及更新;

4、掌握对SQLite数据库分别使用SQLiteDatabase和SQLiteOpenHelper两种方法查询数据

第6章 Android基本单元应用activity 6.1 Activity概述 6.1.1 Activity生命周期 6.1.2 Activity四种加载模式 6.2.activity显示形式 6.3 创建Activity 6.3.1 配置Activity 6.3.2 多个Activity的使用

6.4 使用Bundler在Activity之间交换数据 6.5 调用另一个Activity并返回结果 6.6 android测试类 6.7 log日志 6.8说明和要求: 重点:activity生命周期,activity四种加载模式,activity之间交换数据,activity返回结果,在Activity中添加Fragment,在Activity中实现Fragment切换

难点:activity生命周期,activity加载模式,多个activity间带值跳转

教学目标:

1、掌握activity生命周期;

2、掌握activity四种加载模式;

3、掌握activity的创建和关闭;

4、掌握使用Bundler在Activity之间交换数据;

5、掌握activity带值传递及传回返回值;

6、掌握在activity中添加fragment;

7、掌握fragment创建及切换

第7章 Android应用核心Intent 7.1 Intent对象

7.1.1 组件名称(Component Name) 7.1.2 动作(Action) 7.2 数据(Data) 7.2.1 种类(Category) 7.2.2 额外(Extras) 7.2.3 标记(Flags) 7.2.4 Intent和Activity交互 7.2.5 Intent附带数据的两种写法 7.2.6 Intent两种形式 7.3 Intent传值 7.3.1 请求码 7.3.2 结果码 7.4 说明和要求: 重点:intent附带数据传递,intent显示意图,intent隐式意图,接受activity数据,得到关闭后的activity数据,请求码,结果码 难点:intent值传递,intent值接收

教学目标:

1、掌握intent两种值传递;

2、掌握activity传递的数据

第8章 资源访问 8.1 字符串(string)资源 8.2 定义字符串资源文件 8.2.1 使用字符串资源 8.2.2 颜色(color)资源 8.2.3 颜色值的定义 8.3 定义颜色资源文件 8.3.1 Drawable资源

8.3.2 setImageResource和setImageBitmap 8.4 Android实现位图剪切 8.4.1 Android Paint

8.4.2 Android Bitmap和Canvas 8.5 Manifest

8.5.1 AndroidManifest.xml详解 8.5.2 Manifest.permiion权限

8.5.3 Manifest.permiion_group权限组 8.6 说明和要求: 重点:String资源文件,Drawable资源,样式和主题资源 难点:样式和主题资源,使用9-Patch图片实现不失真按钮背景

教学目标:

1、掌握字符串资源定义和使用;

2、掌握颜色资源定义和使用

3、掌握Drawable资源定义和使用;

4、掌握样式和主题资源定义和使用;

第9章 ContentProvider实现数据共享 9.1 Content Provider概述 9.2 URI介绍 9.2.1操作URI

9.2.2 配置Content Provider

9.2.3 通过Content Provider共享数据 9.3 查询数据 9.3.1 增加记录 9.3.2 删除记录

9.4 自定义Content Provider 9.4.1继承ContentProvider类 9.5 说明和要求: 重点:URI介绍及操作,配置Content Provider,通过Content Provider共享数据,通过ContentResolver操作共享数据,自定义Content Provider 难点:通过Content Provider共享数据,通过ContentResolver操作共享数据

教学目标:

1、掌握URI组成部分和定义;

2、掌握配置Content Provider共享数据;

3、掌握通过Content Provider共享数据;

4、掌握通过ContentResolver操作共享数据;5.掌握自定义Content Provider

第10章 BroadcastReceiver 10.1 BroadcastReceiver 概述 10.2 注册BroadcastReceiver 10.2.1动态注册 10.2.2 静态注册

10.2.3 receiver在manifest中注册和java注册有什么区别 10.3 Android 为什么动态广播接收器比静态广播接收器要接受的早 10.3.1 BroadcastReceiver类型及收发 10.4 广播类型 10.4.1普通广播 10.4.2异步广播 10.4.3广播收发 10.5 说明和要求: 重点:注册BroadcastReceiver,BroadcastReceiver三种类型,BroadcastReceiver接收和发送

难点:BroadcastReceiver接收和发送

教学目标:

1、掌握BroadcastReceiver的两种注册方式;

2、掌握BroadcastReceiver三种类型;

3、掌握BroadcastReceiver接收和发送

第11章 service服务 11.1 Service概述 11.2 Service的分类 11.2.1Service类中的重要方法 11.2.2 s的声明

11.2.3 service生命周期 11.3 注册service 11.3.1 创建Started Service 11.4 启动服务 11.4.1停止服务

11.4.2使用Meenger类 11.4.3绑定到服务 11.5 说明和要求: 重点:注册service,service生命周期,创建Started Service,创建Bound Service 难点:service生命周期,Started Service,Bound Service 教学目标:

1、掌握Service的注册方式;

2、掌握创建Started Service;

3、掌握创建Bound Service

第12章 Animation动画 12.1 frame by frame动画 12.2 tweened animation动画 12.2.1 alpha渐变透明度动画效果 12.2.2 scale渐变尺寸伸缩动画效果 12.2.3 translate画面转换位置移动动画效果 12.2.4 rotate画面转移旋转动画效果 12.3 说明和要求: 重点:frame by frame动画,在xml资源文件中定义透明,尺寸伸缩,移动,旋转四种动画,用javacode定义透明,尺寸伸缩,移动,旋转四种动画

难点:frame by frame动画跳转activity,在xml资源文件中定义透明,尺寸伸缩,移动,旋转四种动画,用javacode定义透明,尺寸伸缩,移动,旋转四种动画 教学目标:

1、掌握frame by frame动画;

2、掌握tweened动画;

第13章 网络编程及开源框架引用 13.1 通过HTTP访问网络

13.2 使用HttpURLConnection访问网络 13.3使用HttpClient访问网络 13.4 引用开源框架 13.5 Github介绍

13.5.1 Github开源项目下载 13.6 说明和要求: 重点:使用HttpURLConnection访问网络,使用HttpClient访问网络,Android多线程下载,Handler消息队列,github开源框架使用

难点:Android多线程下载,开源框架AsyncHttpClient使用

教学目标:

1、掌握http访问网络的两种方式;

2、对github上的开源框架下载及应用

android述职报告
《android述职报告.doc》
将本文的Word文档下载到电脑,方便编辑。
推荐度:
点击下载文档
相关专题
点击下载本文文档