安卓应用开发课程总结

2024-07-29

安卓应用开发课程总结(精选6篇)

安卓应用开发课程总结 第1篇

安卓课程设计总结

一、引言

在智能手机系统群雄纷争的时候,Google推出了一款名为Android的开源智能手机操作系统,它采用Linux内核,开放手机联盟(OHA)成员可以任意使用和修改SDK包,系统开源性使其具有良好的拓展性。

这款软件包括了操作系统、用户界面和应用程序,即智能手机工作所需要的全部软件。

Android的最大特点是其开放性的体系架构,不仅具有非常好的开发、调试环境,而且还支持各种可扩展的用户体验,包括丰富的图像组件、多媒体支持功能及其强大的浏览器。

因此,对于软件从业人员来说,Android平台具有无限的吸引力。

本文在分析讨论Android手机软件开发技术原理的基础上,设计并实现了能为用户提供更好的基于Android平台的课程表。

二、系统需求分析

本应用是一款简单的Android课程表,首先课表支持查看课程的功能,因为数据比较小,采用了XML存储模式。

其次,课表具有修改课程的功能,便于课程改变的应对,以及清空课表,为循环使用提供方便。

在Title项设计了点击查询当日天气的功能。

由此可以得到功能图1,程序流程图2。

三、系统功能模块概述

系统分为4个功能:

1.显示主界面

主界面显示各个按钮,以及动态显示本周的课程,主界面将Title隐藏了起来,取而代之的是自己设计的Title,将他们整合起来。

另外,主界面要负责将XML数据调入内存中。

2.修改课程功能

修改课程功能,通过用户点击课程后,弹出一个Dilog,用户可以在Dilog中修改本课程的上课时间、代课老师、课程名称以及备注信息。

然后将其重新回写到XML文件中,方便下次启动时,课程被永久修改。

3.清空课表功能

清空课表功能,当用户点击了清空课表,将清除所有科目的上课信息属性,课表将被置空。

用户可以重新编辑课表。

4.天气查询功能

天气查询功能放置在Title项中,节省主界面的空间,Title和主界面搭配在一起,设置按钮监听,当Title按钮被点击时,从网上获取今日的天气情况,并显示在Title栏中。

四、实现技术及工具

Android提供了免费且跨平台的整合开发环境。

采用JAVA语言结合Android编程的规则来编写程序。

开发Android应用,需要以下硬件及软件支持:

1.操作系统。

Windows XP ,Mac OS X(一个基于UNIX核心的系统)和Linux三种方式,本文使用了Windows XP的操作系统来开发。

2.JDK 5 或者 5以上版本。

JDK是JAVA的开发环境,必须有了JAVA的开发环境才能开发JAVA程序。

这里采用了JDK 7这个版本。

3.Eclipse IDE ,一个多用途的开发工具平台。

Eclipse功能十分强大,可搭载其他扩成套件来开发其他项目,如网站开发、ERP开发等。

Eclipse版本采用了3.7.0版本。

4.ADT, 一款基于Eclipse的.扩充套件。

5.Android SDK,Android程序开发套件,包含了Android手机的模拟器,有了它你就可以在虚拟机中查看调试程序,方便很多。

五、应用程序设计

1.数据存储结构设计

数据采用了面向对象的思想去存储数据,因为数据量比较小,采用了XML文件来存储数据。

数据以day标签为每一个数据对象,每一个day标签有多个属性,用来记录数据。

数据的属性有Teacher、startTime、endTime、index、weekday、valuetext、classname。

当程序启动时,把属性封装成对象,完成操作。

2.主视图设计

Android代码的编写,首先编写主界面的布局文件,每一个Activity文件会对应一个Layout的布局文件,由于在Android中表格布局无法分列,布局起来十分困难,而线性布局也可以做成表格,所以,最终选择了用线性布局来布局主视图。

布局分为两大块,在一个总线性布局中首先套用了两个小的线性布局,如图3所示。

左侧的小线性布局放置不同的星期按钮,通过点击按钮来修改右边布局中对应星期的课程。

右边的布局中,套用一个表格布局来约束各空间的比例,分出来每一行来存放和显示不同的课程、时间信息。

再配以背景的美化,预期效果与最终效果对比如图4所示。

至此,主视图的设计完成,再在Activity中配置相应按钮的动作即可。

在主视图创建时,程序读取xml数据载入视图中对应的控件,点击左侧的按钮会改变右侧控件的属性,从而查看每天的课程。

3.修改功能设计

修改功能设计时,需要另起一个Activity,与之对应需要另外建立一个Layout的布局文件,这里采用了Dilog的窗口。

Activity的相互启动,需要用到Intent(意图)模式,意图中可以存放需要传递的参数。

当点击要修改的课程时,程序会触发动作,来生成一个Dilog完成修改操作。

根据要修改的属性,Dilog也采用了线性布局,其中包含开始时间、结束时间、课程名称、教师姓名,以及这节课需要的一些备注信息等属性。

除了两个时间以外,其他的属性均使用了文本编辑条,而开始时间和结束时间,为了得到更好的用户体验采用了Android提供的Timepicker控件,它是一个时间选择的控件。

当控件的时间发生改变,它会调用相应的OnTimeChangedListener函数,在这里可以接收得到时间参数,并做相应的处理。

安卓应用开发课程总结 第2篇

5、如果希望点击链接由自己处理,而不是新开Android的系统browser中响应该链接。给WebView添加一个事件监听对象(WebViewClient)

并重写其中的一些方法

shouldOverrideUrlLoading:对网页中超链接按钮的响应。

当按下某个连接时WebViewClient会调用这个方法,并传递参数:按下的url

onLoadResource

onPageStart

onPageFinish

onReceiveError

onReceivedHttpAuthRequest6、如果用webview点链接看了很多页以后,如果不做任何处理,点击系统“Back”键,整个浏览器会调用finish()而结束自身,如果希望浏览的网页回退而不是退出浏览器,需要在当前Activity中处理并消费掉该Back事件。

覆盖Activity类的onKeyDown(int keyCoder,KeyEvent event)方法。

public boolean onKeyDown(int keyCoder,KeyEvent event){

if(webView.canGoBack()&& keyCoder == KeyEvent.KEYCODE_BACK){

webview.goBack();//goBack()表示返回webView的上一页面

return true;

}

return false;

安卓应用开发课程总结 第3篇

1 项目架构及开发平台

1.1 项目结构设计

本项目针对学生学习理工科科目不方便的现象, 开发一款基于Android操作系统以《数字电路》课程为研究对象的学习软件。项目核心研究领域在课程课件的植入、客观题自动评判系统、人性化的网络答疑模式, 从立项起通过组员的努力和导师的耐心指导, 逐一地解决了数学符号难以显示、自动评判系统数据混乱、无法横屏播放课件、无法放大字幕等编程难题。

项目立项之前, 做了市场数据分析, 将授课老师及理学院学生作为对象, 进行采访及调查问卷, 对软件想法进行可行性研究, 从而策划出项目的解决方案。方案策划好后, 我们开始程序编程环境的搭建, 并且完成程序的代码编写, 实现各种用户需求的功能并且进行用户初次体验, 搜集相应的用户体验及相应的建议。几次用户体验之后, 对程序做相应修改后, 直至符合客户基本需求, 最终将软件推广用户进行安装。

1.2 项目开发平台

软件在Java环境下基于安卓软件通用开发平台开发, 及时更新至最新版本, 因此软件具有非常好的兼容性。软件的框架的搭建借鉴了微软人性化的UI技术有机地结合Java功能强大的代码, 使软件界面简单、层次分明、易于操作, 并且功能强大, 能够实现各种智能交互。开发过程中, 对于课程课件、自动评判系统等核心代码, 我们摈弃了传统代码一致性的思想, 而是采用代码编译的多样形式来实现同一功能, 既节省了开发时间, 又提高了软件性能, 下面将和大家一起分享我们软件的研究方法。

2 软件概况及创新点

2.1 软件概况

对于软件整体性研究, 首先我们搭出了基本框架, 软件主要包含课程简介、课程学习、例题详解、课后习题、在线答疑、关于我们六个模块。基本架构完成后, 我们再逐一地对每一个小的模块进行编写, 子模块依然有分支, 于是继续往下分, 最终软件的所有代码编写完成。接着对每一项性能的测试, 进而网络模块测试, 当网络测试达到相应要求后进行系统界面设计, 再进行系统整体测试, 整体测试后在进行用户测试, 用户测试通过后再进行软件的推广及作相应的后期维护, 从而完成软件的任务。

2.2 软件主要解决方法及创新点

鉴于软件的独特性, 应用于理科领域, 由于开发尚未成熟, 所以很多基本数学符号都难以显示, 所以这个给我们的开发带来了很大的困扰。为了回避传统的弱点, 我们采用图片显示公式及符号的形式, 从而有效地解决了这一大难题。由于该软件是针对某门学科而特定设立的, 因此课程学习是重心, 为了提高学生的学习效率, 课件的植入是必要的。由于安卓系统暂时还不能直接打开PPT、PDF等常用课件形式, 因此课件我们不能够直接植入, 传统的方法多是植入软件库或是调用第三方软件。但是这样极大地增加了软件的系统开销, 并且强迫性地让用户安装第三方软件, 给用户带来了很大的不便!因此, 我们采用了新的解决方式, 将PPT转化为PNG的形式通过图片来显示出来, 并且具有横屏播放、放大的功能, 这种方式既节省了系统的开销, 又给用户的阅读带来了很大的方便。除了软件基本性能的改善, 我们在软件中根据用户特殊的要求开发一款及时评判系统。通过用户的答题情况, 及时给出答题结果, 并且给出相应的指导, 有效地抓住用户的“练”这一环节, 可以大大提高学习效率。开发自动评判系统中, 由于系统的多重循环复杂, 并且多种循环相互干涉, 开发难度极大。经过团队几个星期的研究, 最终采用C、C++的思想通过JAVA语言来编译, 最终解决了这一难题, 该系统也代表了软件的核心价值, 无论从软件性能还是代码形式, 都是安卓软件的一大亮点。由于软件的用户面广的特点, 需要适应尽量多的用户硬件设备, 因此软件布局非常关键, 如果采用绝对布局, 软件并不能适用于所有的手机上, 并且部分手机可能会出现显示不出来的情况。如果采用相对布局, 软件界面布局则显得比较单调, 并且系统开销相对比较大。因此, 我们开发的过程中, 有机地结合了绝对布局和相对布局, 从而使显示的界面变得非常灵活, 既美观大体, 又节省空间, 提高适用性!

3 结束语

在此, 特别感谢我的开发团队及导师, 一路来牺牲了很多宝贵的时间全心全意地研究项目, 再次表示感谢。开发过程中, 遇到了很多问题, 曾请教过不少开发团队以及社会人士, 在此表示感谢。本次项目示范性研究了理科学习软件, 希望通过本次软件研究带动更多开发团队开发理科学习软件, 从而弥补学习软件在理科中的缺陷。研发过程中, 在解决问题时提出了新研究的方法, 从而提高了软件的效率及性能, 希望对其它开发团队有所借鉴!

摘要:本文阐述了基于安卓平台数字电路课程软件研发项目的开发的过程, 其中核心是软件的研发, 解决了数学公式如何在应用软件中独立显示、Java经典代码与C/C++思想的结合、Java关键组件如何灵活应用于理科软件开发、提出了绝对布局与相对布局镶嵌应用。

关键词:理科软件,布局,Java组件安卓软件

参考文献

[1]李玉斌, 张爽.移动学习的内涵、方式及其对远程教育的意义研究[J].现代远程教育研究, 2005, (1) :129-130.

[2]Evans C.The effectiveness of m-learning in the form of podcast revision lectures in higher education.Computers&Educati on, 2008, 50 (2) :491-498.

[3]李勇刚, 周晓菲, 徐明.基于J2ME和XML技术的移动商务安全设计[J].计算机应用研究, 2006, 23 (11) :105-108.

[4]李晓丽, 王晓军.移动学习模式探讨及系统架构设计.北京邮电大学学报 (社会科学版) , 2007, 9 (5) :1O-13.

安卓应用商店的生死路 第4篇

从试水期,到爆发期,再到冷却期,安卓应用商店经历了一场市场的洗礼。在竞争愈加激烈的市场竞争中,谁能经受住残酷的考验,并最终留下,是所有安卓应用商店都将面对的未知路。

抢占移动互联网入口

2008年,乔布斯首创App Store模式,自此以后,应用商店就变成了移动互联网手机的标准配置。App Store的封闭性,使其IOS的生态保持了稳定。随后诞生的微软Market Place,虽然稍有开放,但对其Windows Phone生态的稳定性并没有太大影响。

谷歌的开源策略,造就了今天泛滥的Android阵营平台。基于各种Android版本的终端与应用充斥市场,而Android应用商店也不胜枚举。2011年,安卓应用商店伴随着移动互联网浪潮大量涌现,开始井喷式增长。各大运营商的商店、各种手机制造商的商店还有各大第三方应用程序商店,渠道总数加起来竟有400多家。

为什么这么多人都将目光盯在了安卓应用商店上?因为,应用商店是一个入口,如果说浏览器串起了URL的世界,那应用商店就串起了APP的世界。而在互联网领域,谁有入口,谁就能成为平台,就能撬动整个产业。

日前,谷歌在2012年I/O开发者大会上宣布,安卓应用目前已达60万款。这一数据尚未包含其他第三方安卓商店的独有应用。如此庞大的应用数量,如何让人不心动?虽然现在的应用商店们还只是单一的渠道平台,但当他成长为亿级用户的产品之后,就会幻化出无数的可能性。

尽管UC浏览器CEO俞永福不断放出独立应用商店很难做大的论断,但却有越来越多的巨头投入到这一领域,这其中,搜狗推出了搜狗手机助手,腾讯应用中心更是独立域名运营,360的投入则更多。

并不清晰的盈利模式

然而,依然有人对应用商店的未来并不看好。

“应用程序商店是一个没有未来的平台。”机锋网CEO谈毅如此论断。在谈毅看来,应用商店只是一个下载入口,而这样的下载入口的替代方案实在太多。谈毅的论断也并非毫无依据,过去半年,有近一半的Android应用商店倒下,而撑不下去的商店还将更多,在谈毅看来最后剩下的或许只有10家。这无疑给狂热的安卓应用商店开发者当头浇了一盆冷水。

越来越多的人开始迷茫,这个原本被很多人当作藏金地的市场,至今仍然没有出现一种清晰的、可持续发展的盈利模式。当前,安卓应用商店的盈利渠道无非三种:应用下载收费分成、硬广,以及应用开发的渠道推广费用。然而正如某业内人士所说的那句玩笑话:“iOS平台人傻钱多,Android用户全是刁民”,Android用户不习惯于付费。对于每一个平台来说,来自应用下载获得的收入都可以忽略不计。

而在移动广告方面,由于盈利的移动开发者实在太少,因此能付得起广告费的开发者实在寥寥。而那些业已成名、有盈利的游戏应用,是各大第三方商店争抢的稀缺资源。资源互换、交叉推广往往是两者合作的普遍形式。有数据显示,国内移动广告规模仅占在线广告的2.7%且有效的移动广告每千次展示费用(eCPM)仅为桌面的五分之一。

因此,尽管第三方应用渠道是整个产业生态的核心,但对于开发者、用户和手机厂商,在大多数情况下它都成了免费服务者。安智网目前有2000万的用户,但仍尚未实现盈利。

于是为了生存,很多商店都紧紧抓住了渠道推广费用这一根救命稻草。应用商店对所有应用原本都是免费开放的,但有人付费就会被放到编辑推荐里。这样的模式使得一些真正好的应用却被付费的应用湮没,用户对商店的信任也逐渐丧失。而这样的模式也使得应用开发者的推广费用越来越高。

正在布局移动互联网的珍爱网就明显感觉到了这一点,在推出安卓平台移动客户端时,其CEO李松就表示:“不幸的是,大多数的本地公司做Android这个软件商城都是按照付钱来排位的,不是按照产品的好坏。在这种情况下,你如果大力推的话,实际上是大大增加获取用户的成本。”尽管目前很多应用被逼无奈仍然采取这种推广方式,但这种以开发者为收入来源的不健康盈利模式,也终将导致开发者阵营的抵制。

除了盈利不善和资金链的短缺,木马、病毒的泛滥,也严重影响了用户的体验。而多家应用市场在产品、运营模式上极度类似,普遍缺乏生存利器,整个行业必将面临重大洗牌。

最后的突围战

国内安卓应用商店竞争的激烈和生存的惨淡已让各大商店失望之极,而面对互联网巨头百度、腾讯、网易的争夺和打压,他们还将面临着一场生死存亡的突围战。

就目前的情况来看,第三方应用渠道的集中度越来越高,最后只有少数的综合类应用渠道和垂直类应用渠道能够生存下来。而在投资人陈世鸿看来,结局可能会更残酷,“这个市场同互联网上的大部分基础应用一样,只能留下前两名,第三名的日子都会很难过。”

实际上,在内容已经不能直接兑换出收入的情况下,如何维护以应用商店为核心的生态,进而打造渠道品牌,便成为了Android应用渠道们最关注的事情。

而如今最为紧要的一步就是不断提高应用质量、服务质量,以及用户质量——通过这三种质量来增加应用、增加用户,进而吸引广告主。在很多应用开发者看来,现阶段的应用商店都是一个非常初级的模式,各家的应用发现机制都极为类似而简单,用户在发现应用过程中的精准匹配,应用商店所能提供的服务都十分有限。如果哪家应用商店形态能在此进行深耕,这里面必然有很大的改革空间。

除此之外,谈毅给出的答案是:“差异化竞争,为用户提供附加价值”。在谈看来,用户找应用已经是很后端的需求了,今后应用商店可以根据用户需求来主动推送相关应用。 “比如客户端发现你换了一个手机,就会提示你要不要把之前手机里面的应用装回来或者这个新手机中最常用的应用是什么,大家最关心的问题是什么。” 谈毅举例说。

经历过2011年移动互联行业整体透支的惨烈之后,国内风投界也开始将目光转向那些小而精的垂直应用软件,特别是专注在特定细分领域的垂直应用软件。谈毅认为,“小公司可以更加专注并聚焦在细分领域,为用户提供附加价值,这是大公司很难做到的。”

机锋网现阶段的重点是加强自身的媒体形态。它采用了设立“机锋达人”这样的社区内“意见领袖”的方式,加强渠道内部的资源优化配置。此外, ROM在整个产业中显示出越来越明显的重要性,机锋和安智都开始利用自己技术论坛的优势,将品牌ROM定位成公司中长期战略之一。

“做用户第一次刷机的首选ROM”,这是机锋的目标。机锋网坦言,小米只做10个机型的UI,而机锋ROM的目标是要优化每一个安卓的手机ROM,甚至可能优化MIUI本身。

随着竞争门槛的提高和风投资本的减少,第三方Android应用渠道开始逐步进入冷却期。此时的马太效应愈发明显。而腾讯、百度等巨头入场,开发者广告联盟浮出水面,这些对于第三方Android应用渠道来说都是极大的威胁。

安卓课程设计报告 第5篇

班 级 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的数据显示,全球智能手机出货量正在以远高于台式电脑、笔记本电脑出货量的速度快速增长,该机构预计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.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。

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

安卓android课程设计报告 第6篇

程 课

题指

称______手机安卓开发_______ 名

称______天气预报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 用户的手机设备可以支持联网。用户界面 软件接口

软件提供轻量级的进程间通信机制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网页:

下面代码访问网络:

四、心得体会

上一篇:广电局第三阶段整改方案下一篇:小户型装修设计方案