首页 > 精品范文库 > 1号文库
安卓android课程设计报告(小编整理)
编辑:平静如水 识别码:10-912663 1号文库 发布时间: 2024-02-16 15:31:42 来源:网络

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

湘潭大学课程设计报告

程 课

题指

称______手机安卓开发_______ 名

称______天气预报APP_______老

师______周唯___________

名____黄柳________

号___2012600719_________ 班

级____12计2班________

组______棒棒糖_______ 时

间____202_年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开发,最初主要支持手机。202_年由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 用户的手机设备可以支持联网。用户界面 软件接口

软件提供轻量级的进程间通信机制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中的常用类和接口有了进一步的认识。对编程有了一种新的看法,编程在我的学习中不再是那样的枯燥无味,而是时时刻刻充满惊喜。虽然这是一个挺小的项目但它对我在编程方面起到了一种激励的作用。我会在此基础上更加努力做出更好的程序。

第二篇:安卓课程设计报告

安 卓 课 程 设 计

班 级 09级计算机二班

学 号 20097923 姓 名 郭丹

目录

第1章

安卓应用程序开发背景..........................................................3 §1.1开发背景...................................................................................3 §1.2开发环境...................................................................................4 第2章 第3章 §3.1 §3.2 §3.3 第4章

安卓应用程序开发理论与方法..............................................4 “计算器”应用程序的设计与实现.......................................6 拟解决的问题及目标.............................................................6 总体设计................................................................................7 详细设计与编码实现.............................................................7 总结.......................................................................................17 2

第1章

安卓应用程序开发背景

§1.1开发背景

1.智能手机的市场

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

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

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

搭载Android操作系统的智能手机目前已经成为市场上最炙手可热的智能产品。来自美国市场研究机构Gartner的数据显示,Android操作系统所占的市场份额从202_年的0.5%急剧增长到202_年的15.94%。开放的源代码和零成本已经让Android在全世界范围内受到青睐并迅速获得了主要手机厂商和数百万软件开发者的支持,Gartner预计,未来Android系统的市场份额有望超过其他操作系统,从而成为全球第一大智能手机操作系统。2.安卓手机介绍

安卓手机指的是用Android操作系统的手机。安卓(Android)是基于Linux内核的操作系统,是Google公司在202_年11月5日公布的手机操作系统。

同样都是手机上面用的智能系统,安卓的系统是新生系统,界面更为华丽,开源性更强,当然因为是新生系统,所以在第三方软件方面暂时还不太多。因此,安卓应用程序的需求还是很迫切的。3.软件人才需求

据业内统计,目前国内的Android研发人才缺口至少30万。由于目前Android技术较新,无论是相关书籍、培训还是大学教育,都处于初级阶段,因此Android人才短期将供不应求。从长期来看,随着各种移动应用和手机游戏等内容需求日益增加,也将激励大中小型手机应用开发商加大对Android应用的开发力度,因此Android人才的就业前景也非常广泛。

综上所述,在这样的背景下,安卓有很强的生命力。同时,作为一个新生的系统,其应用程序目前并不多,安卓应用程序的需求还是很迫切的,安卓研发人才的缺口还很大。这些都促进了我们学习开发安卓应用程序。

§1.2开发环境

安卓应用程序开发环境如下:

①JDK 5 or JDK 6(JRE alone is not sufficient)②Eclipse 3.3(Europa), 3.4(Ganymede)③Android SDK ④ADT 0.8.0 ⑤Eclipse安装ADT 插件

第2章

安卓应用程序开发理论与方法

1、Activity的相关知识

简单理解Activity 代表一个用户所能看到的屏幕,Activity 主要是处理一个应用的整体性工作。Activity是最基本的Android 应用程序组件,应用程序中,一个活动通常就是一个单独的屏幕。每一个活动都被实现为一个独立的类,并且从活动基类中继承而来,活动类将会显示由视图控件组成的用户接口,并对事件做出响应。大多数的应用是由多个屏幕显示组成,因而要用到多个Activity。(1)Activity的相关方法及相关函数: A、void onCreate(Bundle)首次启动时调用,接受参数:Null or savedInstanceState(保存的以前某些状态信息)B、void onStart()说明了将要显示给用户的活动

C、void onRestart()将处于停止状态的活动重新显示给用户 D、void onResume()用户可以开始与活动进行交互时调用。如动画播放和音乐播放。E、void onPause()活动将要进入后台运行时调用。(此时前台启动了另一个活动)F、void onStop()不需要某个活动了,就调用 G、void onDestroy()销毁活动

(2)多个Activity之间的跳转:

通过Intent类实现屏幕之间的跳转(包括没有参数关系和需要传递参数两种情况)。

(3)两个Activity之间进行数据交换: startActivity()只有Intent一个参数。

public void startSubActivity(Intent intent, int requestCode)(requestCode:用来标识某一个调用,一般定义一个常量。)

传过去:函数原型为: public Intent setData(ContentURI data)然后,参数带到新的Activity后,同样用Activity.getIntent()函数可得到当前过来的Intent对象,然后用getData()就取到参数了。传回来:函数原型为: public final void setResult(int resultCode, String data)

2、Intent的相关知识 Intent 是描述应用想要做什么。Android 使用了Intent 这个特殊类,实现在屏幕与屏幕之间移动。Intent 数据结构两个最重要的部分是动作和动作对应的数据。Intent类绑定一次操作,它负责携带这次操作所需要的数据以及操作的类型等。

3、Layout 用于用户界面设计。包含AbsoluteLayout,FrameLayout,GridView,LinearLayout,ListLayout,RadioGroup,TableLayout等等。

在本程序中用到的有:(1)线性布局LinearLayout 垂直:android:orientation=“vertical“ 水平:android:orientation=”horizontal“(2)相对布局RelativeLayout 让子元素指定它们相对于其他元素的位置(通过ID 来指定)或相对于父布局对象。在RelativeLayout布局里的控件包含丰富的排列属性: Layout above:控件在指定控件的上方

Layout below:控件在指定控件的下方 Layout to left of„„

第3章

“计算器”应用程序的设计与实现

§3.1 拟解决的问题及目标

本计算器程序要解决日常生活中常见的基本数据计算问题,程序要实现的目标有如下几个:

(1)要实现基本的加、减、乘、除四则运算。

(2)可以实现在前一步计算结果上继续作加、减、乘、除,即连加、减、乘、除。

(3)有清空功能,即清除所有数据,重新开始计算。

(4)可实现基本的三角函数的计算,如:正弦,余弦,正切,余切。(5)可实现一些特殊运算,如:平方,立方,开方,求对数等。

§3.2 总体设计

1、系统的软件结构图

计算器基本加减乘除运算三角函数运算其他运算加减乘法法法除法正弦余弦正余切切平方立方开方对数 图3-1

2、功能的操作流程

首先用户根据自己的实际需要选择计算的类型,然后进入不同的计算类型,再进行要执行的运算,输入数据,选择运算符号,即可得到结果。

§3.3 详细设计与编码实现

1、功能选择界面

图3-2为系统主界面。用户可以根据需要点击不同按钮进入不同功能的子界面。亦可以点击退出按钮退出本程序。

图3-2

本界面用LinearLayout来布局,主要用到的控件是Button。页面的跳转是通过intent来是实现的。跳转的主要代码如下: public void onClick(View v)

{

Button btn=(Button)v;switch(btn.getId()){ case R.id.button1: Intent intent=new Intent();intent.setClass(mycalActivity.this, secondactivity.class);startActivity(intent);break;

case R.id.button2: Intent intent=new Intent();intent.setClass(mycalActivity.this, thirdactivity.class);

startActivity(intent);break;

case R.id.button3: Intent intent=new Intent();intent.setClass(mycalActivity.this, forthactivity.class);startActivity(intent);break;

case R.id.button4: finish();

}

2、基本加减乘除界面

图3-3为加基本减乘除界面。用户在文本框中输入参加运算的数据,并点击要进行的运算符号,然后点击等号之后,将在等号下方显示结果处显示出计算结果。点击clear按钮,可以将两个文本框中的内容以及显示的结果一起清空,用户可以输入新的数据计算。

在文本框中输入时可以用图右侧的硬键盘,或者是手机自带的软键盘。

图3-3

示例如下:

(1)用户要计算1.23+2.16.在文本框1中输入1.23,点击“+”,再在文本框2中输入2.16,点击“=”,就可以显示出计算结果3.39.如下:

图3-4

(2)计算1-0.32,如图3-5 图3-5

(3)计算3.24*0.25,如图3-6所示。

图3-6

4)计算55/4,结果为13.75.如下图所示:(图3-7

(5)计算1/6.如下图所示。由图3-8可以看出,当除不尽时本计算器保留到8位小数,并且最后一位采用了四舍五入的方法,比较科学、准确。

图3-8(6)点击clear之后全部清空:

图3-9

具体的实现:主要的思路是,用户先输第一个数,然后点击运算符号,在程序中监听按钮的点击,如果点击了+、--、*、/中某一按钮,这时,就取editText1中的值,通过myeditText1= editText1.getText().toString()实现,为了参与运算,需要把字符串类型转换为浮点型,并将其值赋给变量a,代码为a=Float.parseFloat(myeditText1);用flag的不同值记录用户点击的不同的运算按钮。当用户点击“=”时,就将editText2中的内容取出,也同样转化为数值,并用b记录,然后判断flag的值即可知道对应应采取哪种计算,进而算出最终结果,并用textView1显示出计算结果。“清空”的实现是使对应控件的内容取空即可。核心代码如下:

private OnClickListener listener=new OnClickListener(){

String myeditText1;String myeditText2;float a=0;int flag=0;

float b=0;float result;public void onClick(View v){

Button btn=(Button)v;switch(btn.getId()){ case R.id.button1: myeditText1= editText1.getText().toString();

flag=1;

break;case R.id.button2:

myeditText1= editText1.getText().toString();

a=Float.parseFloat(myeditText1);

flag=2;break;case R.id.button3:

myeditText1= editText1.getText().toString();

a=Float.parseFloat(myeditText1);

flag=3;break;case R.id.button4:

myeditText1= editText1.getText().toString();

a=Float.parseFloat(myeditText1);

flag=4;break;case R.id.button5:

myeditText2= editText2.getText().toString();b=Float.parseFloat(myeditText2);

a=Float.parseFloat(myeditText1);

};

}

if(flag==1)result = a+b;

else if(flag==2)result = a-b;else if(flag==3)result = a*b;

else

result=a/b;

String s = ”显示结果: “;s += result;

textView1.setText(s);break;case R.id.button6:

} editText1.setText(”“);editText2.setText(”“);textView1.setText(”显示结果:");break;

3、三角函数运算界面

图3-10为三角函数运算界面。用户在文本框中输入参与计算的数据,然后选择点击要进行的运算类型,这时在显示结果处就会显示计算结果。例如,要计算sin30度,先在文本框中输入30,然后点击sin按钮,这时就会显示结果为0.5.同理,可进行其他计算。

图3-10

4、其他运算界面

图3-11为其他运算界面,目前可实现平方、立方、开方、求以10为底的对数四种运算,由于时间有限,这个界面目前功能并不完善,暂时实现四种运算,不过,基于本计算器程序的设计理念,本界面主要实现一些其他运算,包括一些特殊运算。在今后,这个界面可以修改和扩充,以至拥有更加完善丰富的计算功能。在现有的界面上的操作流程如下:用户在文本框中输入要进行运算的数据,然后选择点击运算按钮,即可显示运算结果。如输入0.5,点击平方,即显示结果0.25,操作方便。

图3-11

第4章

总结

在本次安卓应用程序开发之中,我收获很多,现总结如下:

安卓设计开发过程初期,我打算设计制作一个计算器。但是,刚开始并不能预测难度,不知道在短期内能否很好的完成,于是我的想法是,先实现基本的加、减、乘、除四则运算,然后在此基础上进一步完善丰富其运算功能。首先遇到的问题便是要不要做一个数字键盘。刚开始也试着做了一个键盘,是用button做的,需要很好的布局,但是每当扩充一种功能时,为了使界面整体美观,甚至都要重新设计,很麻烦。后来候突然想到手机有硬键盘,也有自带的软键盘,何不运算的时候直接调出已有的软键盘?这样,根本没有什么必要自己做键盘了,而只需做出运算的按钮即可了。由于当时的目标只是实现加减乘除,因此设计的界面是用两个文本框输入两个数据,然后有+、-、*、/四个按钮供选择,又加一个“=”按钮用于触发显示结果。界面很简单,使用很方便。然后就是才用合适的算法来实现功能。经过思考和多次修改,最后确定了一种比较简明的算法实现。

基本加减乘除功能已经实现,但是计算器的功能过于简单了,接下来便是扩充功能。我首先想到的是需要能实现三角函数运算,常见的平方、开方等运算。但是我遇到了困难。由于刚开始设计的加减乘除运算都是二元运算,因此界面设计的是在两个文本框中输入两个数,但是三角函数计算,平方开方计算都是一元运算,参加运算的数据都只有一个,因而,在原界面上直接扩充并不合适,两个文本框成了扩充的限制。后来经过思考,决定将这些扩充的功能做到别的界面上,与已有的界面相独立,重新设计,这样只需将运算分类,再做一个功能选择的界面,点击不同的运算类别进入不同的运算界面即可,这样这个问题便得到了很好的解决。但是这次设计却给了我很大的教训,开发应用软件的初期设计很重要,不仅要实现现在的目标,还要考虑以后能否进行功能扩充,设计要便于以后的功能扩充,否则,到后来需要扩充时遇到困难,甚至要推翻已有的设计,花费很大的代价。另外,由于时间紧迫,三角函数界面和其他运算界面的功能并不十分完善,只是一些基本的运算,初步体现出了设计的思想,今后还可以进行进一步的扩充,以完善其功能。

在本次开发过程中,我对开发环境进一步的熟悉,基本上可以熟练运用这个 环境,也基本掌握了安卓的开发方法及基本流程。在本次开发过程中,主要用到的知识有Activity的使用,在程序中用到了多个窗口,因而需创建多个Activity。还用到了Intent,主要是用于多个Activity之间的跳转,对Intent的作用和用法有了更进一步的熟悉。在本次程序设计中,我也对用户界面设计有了更进一步的掌握,熟练运用Layout,本次用到的主要是LinearLayout和RelativeLayout。

开发期间,我学会了有目的的去学习一些将要用到的东西,仔细地考虑工作流程的规律和步骤,充分利用手中的开发工具,利用其所具备的功能,尽量使自己的开发在代码上实现少而精确、让用户能够尽量简单地进行操作。但是在检测过程中,还是出现了很多的不足之处,这些都是要在今后的工作中需要努力改进和完善的。

在这次程序开发设计中,我也难免会遇到不少困难,这主要是由于我对所用的开发环境并不是很熟悉,开发软件的经验不足。安卓开发用的语言是java,但是我对java的学习并不多,这次开发对我来说可以算是一个全新的尝试,整个开发过程并不是很顺利,却使我从中充分体会到学习的快乐,开发的程序也在一步步得到完善。这次程序开发由于个人水平及时间有限等原因,只能完成一些基本的功能,好多设想并未完全实现,这不能不说是个遗憾,后期仍需努力。

第三篇:Android 课程设计报告

课 程 设 计

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

教 务 处 制

课 程 设 计 任 务 书

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

课程设计题目: 基于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的数据显示,全球智能手机出货量正在以远高于台式电脑、笔记本电脑出货量的速度快速增长,该机构预计202_年全球智能手机出货量将达到4.13亿,超过台式电脑与笔记本电脑出货量的总和。

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

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

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

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

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

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

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

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

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

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

1.总体设计

1)界面设计

主界面:

02)功能设计

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

2.详细设计

1)模块设计

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

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

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

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

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

2)编码实现:

各包内的JAVA源文件:

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

3.手机上运行截图

手机截图:

516-

第四篇:江西理工大学安卓Android期末考试202_

1.在 android 中使用 RadioButton 时,要想实现互斥的选择需要用的组件是 ? A、ButtonGroup C、CheckBox

B、RadioButtons D、RadioGroup 2.关于 Handler 的说法正确的是()A、它实现不同线程间通信的一种机制 B、它避免了新线程操作 UI 组件 C、它采用栈的方式来组织任务的 D、它可以属于一个新的线程

3.下列哪个可做EditText编辑框的提示信息? A、android:inputType C、android:digits

B、android:text D、android:hint 4.退出Activity对一些资源及状态的操作保存,可在生命周期的哪个函数中进行。()A、onPause()B、onCreate()C、onResume()D、onStart()5.Android项目工程下面的assets目录的作用是什么?()

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

B、主要放置一些文件资源,这些文件会被原封不动打包到apk里面

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

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

6.Intent的作用是()

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

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

C、实现应用程序间的数据共享。D、处理一个应用程序整体性的工作。

7.下列哪个是AbsoluteLayout中特有的属性?()A、android:layout_height B、android:layout_x

C、android:layout_above D、android:layout_toRightOf 8.在手机开发中常用的数据库是()

A、sqlLite

B、Oracle

C、Sql Server

D、Db23

9.关于BroadcastReceiver的说法不正确的是()A、是用来接收广播Intent的。

B、一个广播Intent只能被一个订阅了此广播的BroadcastReceiver所接收。C、对有序广播,系统会根据接收者声明的优先级别按顺序逐个执行接收者。D、接收者声明的优先级别在的android:priority属性中声明,数值 越大优先级别越高。

B 明显错误,广播可以被订阅了该广播的所有接受者接收。10.使用MediaPlayer播放保存在sdcard上的mp3文件时()A、需要使用MediaPlayer.create方法创建MediaPlayer。B、直接newMediaPlayer即可。

C、需要调用setDataSource方法设置文件源。D、直接调用start方法,无需设置文件源。

11.在android中使用RadioButton时,要想实现互斥的选择需要用的组件是()A、ButtonGroup B、RadioButtons C、CheckBox D、RadioGroup 12.在多个应用中读取共享存储数据时,需要用到的query方法,是哪个对象的方法?()A、ContentResolver

C、Cursor

个方法。

2、使用ContentResolver是用来操作数据的。贴一张李刚的《疯狂Android讲义》第9章9.2开头对这部分ContentResolver的原话.B、ContentProvider D、SQLiteHelper

1、无论是ContentProvider还是ContentResolver都有各自的insert(),delte(),uapdte(),query(),四

注意红色框起来的部分,调用的是ContentResolver的的的

3、再不行上一小段代码证明吧:我们在avtivity的onCreate()里边写一句代码就可以。把鼠标放在query()函数上,可以看到解释的是ContentResolver的query(),不是ContentProvider的

13.内存监测工具DDMS中Log信息分为几个级别?()

A、3

B、4

C、5

D、6 14.关于自定义Adapter的优化方法,我们通常采用三种方式,则以下能采用的是()A、复用布局视图对象 B、图片异步加载 C、组件重用 D、创建一个内部类 应该是不能采用的是什么:B、图片异步加载 15.在多个应用中读取共享存储数据时,需要用到的query方法,是哪个对象的方法?()

A、ContentResolver C、Cursor

B、ContentProvider D、SQLiteHelper 16.在android中使用RadioButton时,要想实现互斥的选择需要用的组件是()

A、ButtonGroup

C、CheckBox

B、RadioButtons

D、RadioGroup 17.能够自动完成输入内容的组件是()

A、TextView

B、EditText

D、AutoCompleteTextView C、ImageView

18.表示下拉列表的组件是()

A、Gallery

B、Spinner

C、GridView

D、ListView 19.在Activity中需要找到一个id是bookName的的TextView组件,下面哪种语句写法是 正确的?()

A、TextView tv = this.findViewById(R.id.bookName);B、TextView tv =(TextView)this.findViewById(R.id.code);C、TextView tv =(TextView)this.findViewById(R.id.bookName);D、TextView tv =(TextView)this.findViewById(R.string.bookName);20.Android SDK中提供了一个什么处理图片的工具解决不同屏幕分辨率适配的问题。()

A、Draw7-patch B、Draw8-patch C、Draw9-patch D、Draw10-patch

21.下列说法错误的是()A、Button是普通按钮组件,除此外还有其他的按钮组件。B、TextView是显示文本的组件,TextView是EditText的父类。C、EditText是编辑文本的组件,可以使用EditText输入特定的字符。D、ImageView是显示图片的组件,可以通过设置显示局部图片。一般来说android不能设置显示图片中的局部

22.Android API将什么以Content Provider的方式提供给开发者,使其可以对通讯录进 行一系列操作?()

A、文件浏览器 B、数据库文件 C、系统通讯录 D、数据表 23.关于BroadcastReceiver的说法不正确的是()

A、是用来接收广播Intent的。

B、一个广播Intent只能被一个订阅了此广播的BroadcastReceiver所接收。C、对有序广播,系统会根据接收者声明的优先级别按顺序逐个执行接收者。D、接收者声明的优先级别在的android:priority属性中声明,数值 越大优先级别越高。

24.Android API 提供了一系列的类来实现或操作Content Provider相关功能,以下未涉及到的一类是()

A、Content Provider B、Content Resolver C、ContentValues D、Content Changer 25.ArrayAdapter通常用什么构造方法进行构建?()

A.ArrayAdapter(Context context,int textViewResourceId)B.ArrayAdapter(Context context,T[] objects)C.ArrayAdapter(Context context,int textViewResourceId,T[] objects)D.ArrayAdapter(int textViewResourceId,T[] objects)

26.表示下拉列表的组件是()

A、Gallery

B、Spinner

C、GridView

D、ListView 27.下列说法错误的是()A、Button是普通按钮组件,除此外还有其他的按钮组件。B、TextView是显示文本的组件,TextView是EditText的父类。C、EditText是编辑文本的组件,可以使用EditText输入特定的字符。D、ImageView是显示图片的组件,可以通过设置显示局部图片。28.能够自动完成输入内容的组件是()

A、TextView B、EditText C、ImageView D、AutoCompleteTextView

29、处理菜单项单击事件的方法不包含()

A、使用onOptionsItemSelected(MenuItem item)响应。

B、使用onMenuItemSelected(int featureId,MenuItem item)响应。C、使用onMenuItemClick(MenuItem item)响应。D、使用onCreateOptionsMenu(Menu menu)响应。1.列举Android系统中的五个进程优先级,并作出详细介绍。答:前台进程>可见进程>服务进程>后台进程>空进程。(1)前台进程,表明用户正在与该进程进行交互操作。

(2)可见进程,指部分程序界面能够被用户看见,却不在前台与用户进行交互,不响应界面事件的进程。

(3)服务进程,指包含已启动服务的进程,特点是没有用户界面,在后台长期运行。(4)后台进程,指不包含任何已经启动的服务,而且没有用户可见的Activity进程。(5)空进程,不持有任何活动组件的进程。

2.介绍Android系统有四个重要的组件。

答:Android系统的四种基本组件Activity、Service、Broadcase Receiver和Content Provider。(1)Activity是Android程序的呈现层,显示可视化的用户界面,并接收与用户交互所产生的界面事件,用于提示用户程序已经正常启动。

(2)Service一般用于没有用户界面,但需要长时间在后台运行的应用。(3)Broadcase Receiver是用来接受并响应广播消息的组件。

(4)Content Provider是Android系统提供的一种共享数据的机制,应用程序可以通过ContentProvider访问其他应用程序的私有数据。

3. 在Android生命周期过程中,Activity一般表现为哪4种状态? 答:(1)活动状态,完全能被用户看到,与用户进行交互的状态。

(2)暂停状态,Activity不处于用户界面的最上层,已经失去了焦点,不能与用户进行交互。

(3)停止状态,Activity在界面上完全不能被用户看到,保存了当前数据和UI状态。(4)死亡状态,Activity被系统销毁。

4.Android系统中Intent的定义和用途?Intent启动Activity方式有哪两种? 定义:为其他组件提供交互能力,将一个组件的数据和动作传递给另一个组件。用途:1)启动Activity和Service 2)发布广播消息

启动方式:显式调用,指明调用Activity的Class类;隐式调用,无需指明具体启动哪一个Activity,选择权由Android系统和最终用户类似决定。

5.使用Service的方式有哪两种?描述Service的生命周期。Context.startService()方式启动 Context.bindService()方式启动

6.SQLite数据库体系结构中最核心的部分是什么?

答:虚拟机/虚拟数据库引擎。完成与数据操作相关的全部操作并且是客户与储存之间信息进行交换的中间单元。

7.ContentProvider是应用程序之间一种什么样的接口机制?通过继承ContentProvider类可以创建一个新的数据提供者,请简述该过程。

答:ContentProvider为不同的软件之间数据共享,提供统一的接口。

1)定义URI,即统一资源标识符,作用是唯一标识 Content Provider 及其中的数据。2)设置MIME数据类型,作用是指定某个扩展名的文件用某种应用程序来打开。3)实现初始化、查询、插入、更新、删除、返回这几个方法。onCreate():初始化 provider insert():插入数据到 provider

query():查询数据

update():更新 provider 的数据

delete():删除 provider 中的数据 getType():返回 provider 中的数据的 MIME 类型 8.系统和用户之间进行信息交换的媒介是什么?实现什么信息的转换? 答:用户界面。实现信息的内部形式与人类可以接受形式之间的转换。

9.Android中使用什么接口定义远程服务的窗口?服务接口文件的扩展名是什么? 答: AIDL

10.简述Android系统三种菜单的特点及使用方式。

(1)选项菜单:可分为图标菜单和扩展菜单,图标菜单的子项最多是六个,支持显示图标,不支持单选框和复选框;而当子项多于六个时,采用扩展菜单,扩展菜单的子项是垂直排列,支持单选框和复选框,不支持显示图标。第一次启动选项菜单时,只需要调用一次onCreateMenu函数。

(2)子菜单:能够展示更加详细的信息,通过addSubMenu函数增加子菜单,但不支持嵌套。

(3)快捷菜单;点击界面元素超过2秒后,则启动该界面元素的快捷菜单。每次启动时都要调用一次onCreateMenu函数。

11.编写一个Android程序,使用AsyncTask实现获取网页html代码,并且使用TextView 显示。

public class MainActivity extends Activity {

// 定义组件

private EditText edtURL;private TextView edtHTTP;private Button btnRequest;

private String strURL;// 用于存储网站地址

private MyTask myTask;@Override protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);

// 初始化组件

edtURL =(EditText)findViewById(R.id.edturl);edtHTTP =(EditText)findViewById(R.id.edthttp);.aidl btnRequest =(Button)findViewById(R.id.requesthtml);

// 监听获取html代码的按钮

btnRequest.setOnClickListener(new View.OnClickListener(){

@Override public void onClick(View v){ if(!(strURL = edtURL.getText().toString()).equals(“")){ //实例myTask对象

myTask = new MyTask(edtHTTP);myTask.execute(strURL);}

} });} }

public class MyTask extends AsyncTask {

private TextView edtHTTP;// 用于显示HTML代码 private StringBuffer sbHTML;// 用于储存HTML代码

public MyTask(TextView edtHTTP){

this.edtHTTP = edtHTTP;sbHTML = new StringBuffer();}

/** * doInBackground方法内部执行后台任务,不可在此方法内修改UI */ @Override protected StringBuffer doInBackground(String...params){ // 初始化HTTP的客户端

HttpClient hc = new DefaultHttpClient();// 实例化HttpGet对象

HttpGet hg = new HttpGet(params[0]);

try { // 让HTTP客户端已Get的方式请求数据,并把所得的数据赋值给HttpResponse的对象

HttpResponse hr = hc.execute(hg);// 使用缓存的方式读取所返回的数据

BufferedReader br = new BufferedReader(new InputStreamReader(hr.getEntity().getContent()));

// 读取网页所返回的HTML代码 String line = ”“;sbHTML = new StringBuffer();while((line = br.readLine())!= null){ sbHTML.append(line);}

return sbHTML;} catch(IOException e){

edtHTTP.setText(”获取网页HTML代码出错!!“);} return null;}

/** * onPostExecute方法用于在执行完后台任务后更新UI,显示结果 */ @Override protected void onPostExecute(StringBuffer result){ // 判断是否为null,若不为null,则在页面显示HTML代码 if(result!= null){ edtHTTP.setText(result);} super.onPostExecute(result);} } 12.编写一个程序,输入两个整数值,点击求和按钮后显示两个数的和。MainActivity.java public class MainActivity extends AppCompatActivity {

EditText one,two;Button add;TextView show;

@Override protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);one = findViewById(R.id.one);two = findViewById(R.id.two);add = findViewById(R.id.add);show = findViewById(R.id.show);

add.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v){ String first = one.getText().toString();String second = two.getText().toString();try { int add = Integer.parseInt(first)Integer.parseInt(second);show.setText(”两数之和:“+ add);} catch(Exception e){ show.setText(”请输入数字!“);} } });} }

安卓android课程设计报告(小编整理)
TOP