




已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录第1章 安卓应用程序开发背景21.1开发背景21.2开发环境3第2章 安卓应用程序开发理论与方法3第3章 “计算器”应用程序的设计与实现53.1 拟解决的问题及目标53.2 总体设计63.3 详细设计与编码实现6第4章 总结15第1章 安卓应用程序开发背景1.1开发背景1.智能手机的市场(1)功能多样化的智能手机挑战全球pc出货量移动互联网时代的来临,直接促进了搭载智能操作系统、具有强大扩展性的智能手机、平板电脑等移动终端产业的蓬勃发展。来自美国最大的风险投资机构kpcb的数据显示,全球智能手机出货量正在以远高于台式电脑、笔记本电脑出货量的速度快速增长,该机构预计2011年全球智能手机出货量将达到4.13亿,超过台式电脑与笔记本电脑出货量的总和。(2)智能手机的用户使用数量正在高速增长。据市场调研机构gartner信息,2011年全球智能手机的总出货量将会达到4.68亿部,相比2010年实现了57.7%的增长,而谷歌android操作系统将会在今年之内成为全球最大的智能手机操作系统。另外,全球市场调研机构idc预计未来5年中国手机市场上,智能手机替代传统功能手机的趋势将日益明显,未来5年中国智能手机市场复合增长率将达到34.1%,人们对it设备智能化的向往是这一增长率能够实现的主要因素,并且与其他国家相比,中国智能手机市场的发展空间更加广阔。(3)操作系统格局预测:android有望成为智能手机市场主导力量搭载android操作系统的智能手机目前已经成为市场上最炙手可热的智能产品。来自美国市场研究机构gartner的数据显示,android操作系统所占的市场份额从2008年的0.5%急剧增长到2011年的15.94%。开放的源代码和零成本已经让android在全世界范围内受到青睐并迅速获得了主要手机厂商和数百万软件开发者的支持,gartner预计,未来android系统的市场份额有望超过其他操作系统,从而成为全球第一大智能手机操作系统。2.安卓手机介绍安卓手机指的是用android操作系统的手机。安卓(android)是基于linux内核的操作系统,是google公司在2007年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.0eclipse安装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-12、功能的操作流程 首先用户根据自己的实际需要选择计算的类型,然后进入不同的计算类型,再进行要执行的运算,输入数据,选择运算符号,即可得到结果。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(); a=float.parsefloat(myedittext1); 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); 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-104、其他运算界面 图3-11为其他运算界面,目前可实现平方、立方、开方、求以10为底的对数四种运算,由于时间有限,这个界面目前功能并不完善,暂时实现四种运算,不过,基于本计算器程序的设计理念,本界面主要实现一些其他运算,包括一些特殊运算。在今后,这个界面可以修改和扩充,以至拥有更加完善丰富的计算功能。在现有的界面上的操作流程如下:用户在文本框中输入要进行运算的数据,然后选择点击运算按钮,即可显示运算结果。如输入0.5,点击平方,即显示结果0.25,操作方便。图3-11第4章 总结在本次安卓应用程序开发之中,我收获很多,现总结如下:安卓设计开发过程初期,我打算设计制作一个计算器。但是,刚开始并不能预测难度,不知道在短期内能否很好的完成,于是我的想法是,先实现基本的加、减、乘、除四则运算,然后在此基础上进一步完善丰富其运算功能。首先遇到的问题便是要不要做一个数字键盘。刚开始也试着做了一个键盘,是用button做的,需要很好的布局,但是每当扩充一种功能时,为了使界面整体美观,甚至都要重新设计,很麻烦。后来候突然想到手机有硬键盘,也有自带的软键盘,何不运算的时候直接调出已有的软键盘?这样,根本没有什么必要自己做键盘了,而只需做出运算的按钮即可了。由于当时的目标只是实现加减乘除,因此设计的界面是用两个文本框输入两个数据,然后有+、-、*、/四个按钮供选择,又加一个“=”按钮用于触发显示结果。界面很简单,使用很方便。然后就是才用合适的算法来实现功能。经过思考和多次修改,最后确定了一种比较简明的算法实现。 基本加减乘除功能已经实现,但是计算器的功能过于简单了,接下来便是扩充功能。我首先想到的是需要能实现三角函数运算,常见的平方、开方等运算。但是我遇到了困难。由于刚开始设计的加减乘除运算都是二元运算,因此界面设计的是在两个文本框中输入两个数,但是三角函数计算,平方开方计算都是一元运算,参加运算的数据都只有一个,因而,在原界面上直接扩充并不合适,两个文本框成了扩充的限制。后来经过思考,决定将这些扩充的功能做到别的界面上,与已有的界面相独立,重新设计,这样只需将运算分类,再做一个功能选择的界面,点击不同的运算类别进入不同的运算界面即可,这样这个问题便得到了很好的解决。但是这次设计却给了我很大的教训,开发应用软件的初期设计很重要,不仅要实现现
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国广电柳州市2025秋招写作案例分析万能模板直接套用
- 2025年网络营运考试题及答案
- 2025广东惠州市博罗县广厦市政集团有限公司招聘1人模拟试卷及答案详解(典优)
- 2025湖北恩施州巴东水之星体育文化发展有限公司招聘考前自测高频考点模拟试题完整答案详解
- 2025广西贺州学院面向海内外诚聘高层次人才模拟试卷完整参考答案详解
- 2025年春季江苏省环保集团有限公司招聘考前自测高频考点模拟试题完整答案详解
- 2025湖南湘潭市韶山学校公开招聘教师15人考前自测高频考点模拟试题及答案详解(名师系列)
- 2025黑龙江齐齐哈尔市泰来县城镇建设服务中心招聘市政园林养护人员5人模拟试卷及一套完整答案详解
- 2025至2030中国油田服务行业发展趋势分析与未来投资战略咨询研究报告
- 2025安徽芜湖市特种设备检验研究院招聘编外人员6人考前自测高频考点模拟试题(含答案详解)
- 2025云南昆明元朔建设发展有限公司第一批收费员招聘20人考试参考试题及答案解析
- 2026农业银行四川省分行秋季校园招聘1374人考试参考题库及答案解析
- 建筑垃圾回收利用全过程信息化管理方案
- 第9课《天上有颗“南仁东星”》 课件 2025-2026学年统编版语文八年级上册
- 《山水相逢》课件2025-2026学年人美版(2024)八年级美术上册
- 2025年芜湖市鸠江区医疗卫生事业单位公开招聘工作人员22名考试参考题库及答案解析
- 建筑业企业资质标准
- 工会招聘笔试题型及答案
- 大健康生活馆运营手册
- 室内钢平台吊装方案
- KTV公主部服务详细流程
评论
0/150
提交评论