《android简单计算器课程设计.docx》由会员分享,可在线阅读,更多相关《android简单计算器课程设计.docx(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、android简单计算器课程设计 摘要 Android是当今最重要的手机开发平台之一,它是建立在Java基础之上的,能够迅速建立手机软件的解决方案。Android的功能十分强大,成为当今软件行业的一股新兴力量。Android基于Linux平台,由操作系统、中间件、用户界面和应用软件组成,具有以下5个特点:开放性、应用程序无界限、应用程序是在平等条件下创建的,应用程序可以轻松的嵌入网络、应用程序可以并行运行。而简单计算器又是手机上必备的小程序,所以此次创新实践很有意义。并且具有很强的使用性。 关键字:Android Java基础计算器 目录 第1章开发工具与环境 (1) 1.1 Android平
2、台 (1) 1.2 Java开发环境 (1) 1.3 Eclipse (1) 1.4 Android程序基础Android应用程序的构成 (2) 第2章系统分析与设计 (4) 2.1系统的可行性分析 (4) 2.2 系统的需求分析 (4) 2.3 系统的优势 (4) 2.4 系统的流程图 (5) 第3章系统详细设计 (6) 3.1 动作Activity (6) 3.2 布局文件XML (6) 3.3 Activity的详细设计 (7) 3.2 布局文件XML的详细设计 (21) 3.2 系统的运行结果 (24) 结论 (25) 参考文献 (26) 第1章开发工具与环境 1.1 Android平
3、台 1.谷歌与开放手机联盟合作开发了Android, 这个联盟由包括中国移动、摩托罗拉、高通、宏达和T-Mobile在内的30多家技术和无线应用的领军企业组成。 2.Android是一个真正意义上的开放性移动设备综合平台。通过与运营商、设备制造商、开发商和其他有关各方结成深层次的合作伙伴关系,来建立标准化、开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统,这样应用之间的通用性和互联性将在最大程度上得到保持。 3.所有的Android应用之间是完全平等的。 4.所有的应用都运行在一个核心的引擎上面,这个核心引擎其实就是一个虚拟机,它提供了一系列用于应用和硬件资源间进行通讯的API。
4、撇开这个核心引擎,Android的所有其他的东西都是“应用”。 5.Android打破了应用之间的界限,比如开发人员可以把Web上的数据与本地的联系人,日历,位置信息结合起来,为用户创造全新的用户体验。 1.2 Java开发环境 Java技术包含了一个编程语言及一个平台。Java编程语言具有很多特性,如面向对象、跨平台、分布式、多线程、解释性等等。Java编程语言起源于Sun公司的一个叫“Green”的项目,目的是开发嵌入式家用电器的分布式系统,使电气更加智能化。1996年1月发布了JDK1.1版本,一门新语言自此走向世界。之后,1998年12月发布了1.2版本,2022年2月发布1.4版本,
5、2022年10月发布1.5版本(5.0),2022年12月发布1.6(6.0)版本,这是目前的最新版本。Java1.2版本是一个重要的版本,基于该版本,Sun将Java技术分为J2SE、J2ME、J2EE,其中J2SE为创建和运行Java程序提供了最基本的环境,J2ME与J2EE 建立在J2SE的基础上,J2ME为嵌入式应用(如运行在手机里的Java程序)提供开发与运行环境,J2EE为分布式的企业应用提供开发与运行环境。 1.3 Eclipse Eclipse的基础是富客户机平台(Rich Client Platform,即RCP)。 RCP包括下列组件: 核心平台(Eclipse,运行插件)
6、 标准集束框架(OSGi :Open Service Gateway initiative) 可移植构件工具包(SWT : Eclipses Standard Widget Toolkit) JFace(文件缓冲,文本处理,文本编辑器) Eclipse采用的技术是IBM公司开发的SWT,这是一种基于Java的窗口组件,类似Java 本身提供的AWT和Swing窗口组件:不过IBM声称SWT比其他Java窗口组件更有效率。Eclipse的用户界面还使用了GUI中间层JFace,从而简化了基于SWT的应用程序的构建。Eclipse的设计思想是:一切皆插件。Eclipse核心很小,其他所有功能都以插
7、件的形式附加于Eclipse核心之上。Eclipse基于内核包括:图形API(SWT/JFace),Java开发环境插件(JDT),插件开发环境(PDE)等。Eclipse的插件机制是轻型软件组件化架构。在富客户机平台上,Eclipse使用插件来提供所有的附加功能,例如支持Java以外的其他语言。已有的分离的插件已经能够支持C/C+(CDT)、Perl、Ruby、Python、telnet和数据库开发。插件架构能够支持将任意的扩展加入到现有环境中,例如配置管理,而决不仅仅限于支持各种编程语言。 1.4 Android程序基础Android应用程序的构成 1.Activity 顾名思义,Acti
8、vity就是活动。应用程序必须至少包含一个Activity。Activity提供了一个虚拟的用户接口,每一个Activity都有一个默认的窗口可以用来显示用户界面,一般情况下,它是全屏的窗口。例如,影音播放软件的每个用户界面就是Activity。 2.Service Service与Activity的主要区别在于,Service是在后台活动的,它没有用户界面。典型的应用场景是,用户选择了一个播放列表开始播放后,离开了该用户界面(Activity),如果仍然希望歌曲不会暂停,就可以用Service去调用播放器,而不是在Activity中调用播放器。 3.Intent 在Android中,每一个行
9、为都可以抽象为一个Intent。可以简单地把Intent理解为一个包含了数据的消息。Intent可以用于启动一个Act-ivity或者Service,可以用于进程间的通信。事实上,应用程序的启动也是通过Intent实现的。 4.Content providers Android平台内置了一套SQLite数据储存机制,并包含一系列管理SQLite Database的相关方法。在应用程序中,可以通过Content prov-iders访问数据库。每个Content provider都定义了一系列的方法用于访问它对应的数据库。应用程序在新建数据库时也可以定义相应的Con-tent provider用
10、于向其他应用程序共享数据。一般情况下,应用程序不直接调用Content provider定义的函数,而是通过ContentResolver间接调用。 第2章系统分析与设计 2.1系统的可行性分析 可行性研究是为了弄清楚系统开发的项目是不是可以实现和值得进行研究的过程,实际上是一次大大简化系统分析和系统设计的过程,所以,进行可执行性的分析是非常必要的,也是很重要的,经过最初的设计目标和进行的实时调查得出以下四点的可行性分析:(1)技术可行性:Eclipse + Android ADT的技术已经较为成熟,通过SUN公司(现被ORCEL公司收购)推出的跨平台、动态的JA V A语言进行开发。 (2)
11、运行可行性:该系统需要Android虚拟机环境,Eclipse中安装ADT,DDMS等Google Android相关插件。其运行环境已经相当稳定,它功能丰富,包括了完备的Android 程序的编码、调试、测试和发布功能,其中支持所有Android应用开发相关技术,包括SQLite,Skia,3D制作,Android XML,能够很好的发布Android的应用程序APK包。 (3)法律可行性:因为是自主开发设计,所以不会构成侵权,在法律上是可行的。 通过以上的可行性分析,将采用Eclipse+Android ADT + DDMS技术,运用JA V A语言进行系统的开发。 2.2 系统的需求分析
12、 根据分析需求,这个系统必须实现以下的功能: (1) 实现简单的数字计算功能。 作为计算器,其核心就是加减乘除。 (2) 能够在手机里面以良好的界面。 简单计算器能够给予用户良好的人机互动界面。 2.3 系统的优势 Android是以Linux为核心的手机操作平台,作为一款开放式的操作系统,随着Android的快速发展,如今已允许开发者使用多种编程语言来开发Android应用程序,而不再是以前只能使用Java开发Android应用程序的单一局面,因而受到众多开发者的欢 迎,成为真正意义上的开放式操作系统。本次课程设计一个简易的计算器。主要了解Activity的创建和Intent的使用。Inte
13、nt不仅可以连接两个Activity。而且可以传递数据。下面是整个程序的设计流程。 2.4 系统的流程图 本程序的流程是一个开机画面,开机画面之后就是计算机的主页面了所有这个简单程序的流程图如图2.1所示。 图2.1 程序流程图 第3章系统详细设计 3.1 动作Activity 参照程序的流程图,设计五个Activity。分别为进入页面的Activity,和选择运算方式的Activity。在这里应该注意的是每当创建一个新的class,就要继承Activity 如图3.1所示。 图3.1 程序所需的Activity 3.2 布局文件XML 相应的,需要在res/layout文件夹中建立3个XML
14、文件来对上述的十个Activity进行布局,如图3.2所示。 图3.2 3个XML布局文件 总体上所需要的Activity和XML布局文件已经建立完毕,下面开始对进入计算器的Activity进行编写, 3.3 Activity的详细设计 动作模块中CalculatorActivity.java的详细代码如下: package com.calculator.apk; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; impo
15、rt android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; public class CalculatorActivity extends Activity /* * 对layout中各组件进行定义 */ Button btn1,btn2,btn3,btn4,btn5,btn6,btn7,btn8,btn9,btn0,btnPoint; Button btnJia,btnJian,btnChe
16、ng,btnChu; Button btnC,btnE,btnA,btnB; Button btnJieGuo; TextView textView01; EditText et; /定义一个float类型,用于数字的运算 float num1; /定义一个float类型,用于数字的运算 float num2; Override protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView( yout.calculator); /定义一个方法,完成对个组
17、件的初始化 init(); /设置btn1的监听事件 btn1.setOnClickListener(new OnClickListener() Override public void onClick(View v) /获取EditText中的值 String num1 = et.getText().toString(); /将num1后面连接1,然后再将值赋给EditText et.setText(num1+1); ); /设置btn2的监听事件 btn2.setOnClickListener(new OnClickListener() Override public void onCli
18、ck(View v) /获取EditText中的值 String num1 = et.getText().toString(); /将num1后面连接2,然后再将值赋给EditText et.setText(num1+2); ); /设置btn3的监听事件 btn3.setOnClickListener(new OnClickListener() Override public void onClick(View v) /获取EditText中的值 String num1 = et.getText().toString(); /将num1后面连接3,然后再将值赋给EditText et.set
19、Text(num1+3); ); /设置btn4的监听事件 btn4.setOnClickListener(new OnClickListener() Override public void onClick(View v) /获取EditText中的值 String num1 = et.getText().toString(); /将num1后面连接4,然后再将值赋给EditText et.setText(num1+4); ); /设置btn5的监听事件 btn5.setOnClickListener(new OnClickListener() Override public void onClick(View v) /获取EditText中的值 String num1 = et.getText().toString(); /将num1后面连接5,然后再将值赋给EditText et.setText(num1+5); ); /设置btn6的监听事件 btn6.setOnClickListener(new OnClickListener() Override public void onClick(View v) /获取EditText中的值