移动互联网应用技术综合实训报告

本文由用户“R煎饼果子R”分享发布 更新时间:2021-06-17 16:44:28 举报文档

以下为《移动互联网应用技术综合实训报告》的无排版文字预览,完整格式请下载

下载前请仔细阅读文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。

学生课程设计报告

设计题目

 Android平台天气预报设计与实现











系 部





专业

 移动互联网应用技术



班级





学生姓名

 方某某



完成日期





指导老师







绪论

研究内容

2009年1月7日,工业和信息化部为中国移动、中国电信和中国联通发放3张第三代移动通信牌照,此举标志着我国正式进入3G时代。中国3G正式商用和规模建网,决定了中国基于Android的应用程序开发将会处于一个蓬勃发展时期

Android是Google于07年11月5日宣布的基于Linux平台开源手机操作系统名称,号称是首个为移动终端打造的真正开放和完整的移动软件。 它包括操作系统、用户界面和应用程序 —— 移动电话工作所需的全部软件,而且不存在任何以往阻碍移动产业创新的专有权障碍。谷歌与开放手机联盟合作开发了 Android,这个联盟由包括中国移动、摩托罗拉、高通、宏达和 T-Mobile 在内的 30 多家技术和无线应用的领军企业组成。

研究现状和发展趋势[1]

Android在中国的前景十分广阔,首先是有成熟的消费者,在国内,Android社区十分红火,这些社区为Android在中国的普及做了很好的推广作用。国内厂商和运营商也纷纷加入了Android阵营,包括中国移动,中国联通,中兴通讯,华为通讯,联想等大企业,同时不仅仅局限于手机,国内厂家也陆续推出了采用Android系统的产品,我们可以预见Android将会被广泛应用在国产智能上网设备上,将进一步扩大Android系统的应用范围。另一方面,由于国内政策的限制,导致Android的部分功能(如Android market)在国内无法正常使用,目前常用的解决方法是使用VPN服务来访问。。

系统分析

Android开发首先需要搭建完整的开发环境,由于软件均是基于Dalvik Java Virtual Machine运行的所以Google官方推荐使用主流的Java开发IDE Eclipse。我们需要下载必要的开发组件。

1)Java运行时库(JRE),由于Eclipse使用Java开发,所以需要它才可以正常运行IDE。

2)Eclipse集成开发环境,官方提供的Android开发插件ADT Plugin是基于Eclipse编写的,当然用户可以使用NetBean、JBuilder当作代码编辑器使用,但目前没有完整的调试集成。

3)Eclipse ADT Plugin插件是Android Develop Tool Kit的插件,用户需要安装它才能在Eclipse中建立和调试Android程序。

4)Android SDK,它包含了完整的Android模拟器 、Android开发文档和调试工具,Google官方也会定时更新 

Android程序设计基础

系统结构

Android作为一个移动设备开发平台,其软件层次结构包括了一个操作系统,中间件和应用程序。其框架如下图所示

其软件层析结构自上而下可以分为以下几个层次:

一.应用程序(Application);

二.应用程序框架(Application Framework);

三.各种库(Libraries)和Android运行环境(RuntTime);

四.操作系统层(OS)。

3.1.1 应用程序

Android的应用程序通常涉及用户界面和用户交互,这类程序是用户实实在在感受到的。Android的应用程序目前以Java语言编写。Android本身提供桌面,联系人,电话和浏览器等核心应用。同时应用程序开发者可以根据应用程序框架层的API实现自己的程序,这也是Android开源的巨大潜力体现。Android这种开放而强大的平台给每一个程序开发者提供了公平的机会,每一个开发者都可以加入移动互联的世界,共同推动移动互联的发展。

3.1.2 应用程序框架

普通的开发者可以使用Android核心应用程序的系统API。Android的应用开发框架涉及的非常巧妙,通过这套应用框架,各种组件可以被用户的应用重复利用,各种服务也可以被各种应用重复应用。开发人员应该很好地理解这套框架的工作机制,这样才能开发出更好的应用程序。

下面列举应用框架的主要部分:

一.一组Views。这些UI组件包括列表、文本框、按钮等。通过这些UI组件,可以构建应用程序的试图部分,这部分也就是用户能看到的部分。

二.ContentProviders。主要是提供一种机制,通过这种机制,各个应用程序之间可以实现数据的互访和共享。

三.Resource Manager。它负责管理非代码的访问。如本地图片资源,设计布局的XML文件等的访问。

四.Notification Manager。它能让程序的将自己的警示信息显示在状态栏上。例如,当有短信的时候,可以在状态栏上显示新短信的信息。

五.Activity Manager。它管理应用的生命周期,并且提供应用页面退出的机制。在Android应用中,一个应用一般都是多个页面组成,而每个页面的单位就是Activity。

3.1.3库和运行环境

Android包括一些C/C++库,这些库能被Android系统的不同组件使用。他们通过Android应用程序框架为开发者提供服务。

Android应用程序组成

要进行应用开发,还需要对Android应用构造进行深入的分析。Android应用程序由以下4个模块构造而成:

Activity

Broadcast Intent Receiver

Service

Content Provider

当然,也不是每个Android应用程序都必须由这4部分组成,它可以根据开发者需求来进行组合 。

在这里还需要介绍Intent的概念和使用方法,他在应用程序的运行中连接两个不同的组件,通过Intent你的程序可以向Android表达某种请求或者意愿,Android会根据意愿的内容选择适当的组件来请求。

3.2.1Avtivity介绍

Activity是最基本的模块。我们称之为"活动",在应用程序中,一个活动(Activity)通常就是一个单独的屏幕。每一个活动都被实现为一个独立的类,并且从活动基类中继承而来,活动类将会显示由视图控件组成的用户接口,并对事件作出响应。大多数的应用都是由多个Activity显示组成,例如,对一个文本信息应用而言,第一个屏幕用来显示发送消息的联系人列表,第二个屏幕用来写文本消息和选择收件人,第三个屏幕查看消息历史或者消息设置操作等。

这里的每一个屏幕就是一个活动,很容易实现从一个屏幕到一个新的屏幕,并且完成新的活动。当一个新的屏幕打开后,前一个屏幕将会暂停,并保存在历史栈中。用户可以返回到历史栈中的前一个屏幕,当屏幕不再使用时,还可以从历史栈中删除。

简单理解,Activity代表一个用户所能看到的屏幕,主要用于处理应用程序的整体性工作,例如,监听系统事件(按键事件、触摸屏事件等),为用户显示指定的View,启动其他Activity等。所有应用的Activity都继承于android.app.Activity类,该类是Android提供的基层类,其他的Activity继承该父类后,通过父类的方法来实现各种功能,这种设计在其他领域也较为常见。

3.2.2Broadcast Intent Receiver介绍

可以使用BroadcastReceiver来让应用对一个外部的时间作出相应。例如,当电话呼入这个外部时间到来的时候,可以利用BroadcastReceiver进行处理。BroadcastReceiver不能生成UI,也就是说对用户是不透明的,用户是看不到的。BroadcastReceiver通过NotificationManager来通知用户这些事情发生了。BroadcastReceiver既可以在AndroiManifest.xml中注册,也可以在运行时的代码使用Context.registerReceiver()进行注册。只要是注册了,当时间来临的时候,即使程序没有启动,系统也在需要的时候启动程序。各种应用程序还可以通过Context.sendBroadcast()将他们自己的intent broadcasts广播给其他应用程序。

3.2.3Service介绍

Service即"服务"的意思,既然是服务,那么Service将是一个生命周期长而且没有用户界面的程序。比如一个正在从播放列表中播放歌曲的媒体播放器,在这个媒体播放器应用中,应该会有多个activity,让使用者可以选择歌曲并播放歌曲。然而,音乐重放这个功能并没有对应的activity,因为使用者会认为在导航到其他屏幕时音乐应该还在播放。在这个例子中,媒体播放器这个activity会使用Context.startService()来启动一个service,从而可以在后台保持音乐的播放。同时,系统也将保持这个service一直执行,直到这个service运行结束。另外,我们还可以通过使用Context.bindService()方法连接到一个service上(如果这个service当前还没有处于启动状态,则将启动它)。当连接到一个service之后,还可用service提供的接口与它进行通讯。以媒体播放器为例,我们还可以执行暂停、重播等操作。

3.2.4Content Provider介绍

Android这个系统和其他的操作系统还不太一样,我们需要记住的是,数据在Android当中是私有的,当然这些数据包括文件数据和数据库数据,以及一些其他类型的数据。一个ContentProvider类实现了一组标准的方法接口,从而能够让其他的应用保存或读取此ContentProvider的各种数据类型,也就是说,一个程序可以通过实现一个ContentProvider的抽象接口将自己的数据暴露出去。外界根本看不到,也不用看到这个应用暴露的数据在应用当中是如何存储的,即用数据库存储还是文件存储,还是通过网上获得,这一切都不重要,重要的是外界可以通过这一套标准而统一的接口和程序里面的数据打交道。可以读取程序数据,也可以删除程序的数据,当然中间会涉及一些权限问题。

3.2.5Intent介绍

Intent是一种运行时绑定(runtime binding)机制,它能在程序运行的过程中连接两个不同的组件。通过Intent,你的程序可以向Android表达某种请求或者意愿,Android会根据意愿的内容选择适当的组件来请求。比如,有一个Activity希望打开网页浏览器查看某一网页的内容,那么这个Activity只需要发出WEB_SEARCH_ACTION请求给Android,Android会根据Intent的请求内容,查询各组件注册时声明的IntentFilter,找到网页浏览器Activity来浏览网页。

Android的三个基本组件——Activity,Service和BroadcastReceiver,它们都是通过Intent机制激活的,而不同类型的组件有传递Intent的不同方式。

(1)要激活一个新的Activity,或者让一个现有的Activity执行新的操作,可以通过调用Context.startActivity()或者Activity.startActivityForResult()方法。这两个方法需要传入的Intent参数也称为Activity Action Intent(活动行为意图),根据Intent对象对目标Activity描述的不同,来启动与之相匹配的Activity或传递信息。

(2) 要启动一个新的服务,或者向一个已有的服务传递新的指令,调用Context.startService()方法或调用Context.bindService()方法将调用此方法的上下文对象与Service绑定。

(3) 通过Context.sendBroadcast()、Context.sendOrderBroadcast()和Context.send-StickBroadcast()这三个方法可以发送BroadcastIntent。BroadcastIntent发送后,所有已注册的拥有与之相匹配IntentFilter的BroadcastReceiver就会被激活。这种机制被广泛运用于设备或系统状态变化的通知,一个常见的例子是,当Android的电池电量过低时,系统会发送Action为BATTERY_LOW的广播,接着任何可匹配该Action的IntentFilter注册的BroadcastReceiver都会各自运行自定义的处理代码,比如关闭设备的WIFI和GPS以节省电池消耗。

Intent一旦发出,Android都会准确找到相匹配的一个或多个Activity、Service或Broadcast-Receiver作为响应。所以,不同类型的Intent消息不会出现重叠:BroadcastIntent消息只会发送给BroadcastReceiver,而绝不可能发送给Activity或Service。由startActivity()传递的消息也只可能发送给Activity,由startService()传递的Intent只可能发送给Service。

Intent对象抽象地描述了要执行的操作,其描述的基本内容可以分为组件名称、Action(动作)、Data(数据)、Category(类别)、Extra(附加信息)和Flag(标志位)6部分

Intent分为显式Intent和隐式Intent :

对于明确指出了目标组件名称的Intent,我们称之为“显式Intent”。对于没有明确指出目标组件名称的Intent,则称之为“隐式Intent”。Android系统使用IntentFilter 来寻找与隐式Intent相关的对象。

显式Intent直接用组件的名称定义目标组件,这种方式很直接。但是由于开发人员往往并不清楚别的应用程序的组件名称,因此,显式Intent更多用于在应用程序内部传递消息。比如在某应用程序内,一个Activity启动一个Service。隐式Intent恰恰相反,它不会用组件名称定义需要激活的目标组件,它更广泛地用于在不同应用程序之间传递消息。

Google android移动平台的相关理论

Goolge android 移动平台的概述

Android 是 Goolge公司于07年11月5日宣布的基于LINUX平台开源手机操作系统,该平台由操作系统,中间件,用户界面和应用软件组成,Android是Goolge开发的基于linux平台的开源手机操作系统。它包括操统,用户界面和应用程序--------移动电话工作所需的全部软件,而且不存在任何以往阻碍移动产业创新的专有权障碍,谷歌与开放手机联盟合作开发了Android,这个联盟由包括中国移动,摩托罗拉,高通,宏达在内的30多家技术和无线应用的领军企业组成。通过与运营商,设备制造商,开发商和其他有关各方结成深层次的合作伙伴关系,希望借助建立标准化,开放式的移动电话软件平台,在移动产业内形成一个开放式生态系统.

4.1.1 Android系统的特点:

1、开放性。Google与开放性手机联盟合作开发了android,Google通过与动行商,通过与运营商,设备制造商,开发商和其他有关各方结成深层次的合作伙伴关系,希望借助建立标准化,开放式的移动电话软件平台,在移动产业内形成一个开放式生态系统。

2、应用程序无界限。Android上的应用可以通过标准API访问核心移动设备功能。通过互联网,应用程序可以声明它们的功能可提供其它应用程序使用。

3、应用程序是在平等的条件下创建的,移动设备上的应用程序可以被替换或扩展,即使是拨号或主屏幕这样的核心组件。

4、应用程序可以轻松地嵌入网络。应用程序可以轻松地嵌入HTML,javascript和样式表,还可以通过Webview显示内容。

5、应用程序可以并行运行。Android是一种完整的多任务环境,应用程序可以在其中并行运行,在后台运行时,应用程序可以生成通知引起注意。

4.1.2Android的功能:

1、支持虚拟键盘。虚拟键盘的出现意味着基于Android1.5或以上的版本的移动设备可以同时支持特理键盘和虚拟键盘。

2、使用widget实现桌面的个性化。可以用widget修饰自已的桌面。大多数小的Web应用都是从网络上获得实时数据并展示给用户的,android预装了5个桌机Widget,包括数字时钟,日历,音乐播放器,相框。

3、用在线文件快速浏览数数,类似于OSX Leopard的Quicklook特征,Android的在线文件夹可显示的数据条目,比如联系人,喜欢的应用,E-mail信息,播放列表,书签,RSS源等,并不需要运行系统程序处理特定的数据条目。

4、视频录制和分享。Android还有录制和分享视频的功能,对回放和MPEG-4,3GP等视频也有了更好的支持。可以通过E-mail,MMS或直接上传到youtube等方式来分享视频。

5、更快,更兼容的浏览器,Android的基于Webkit内核的浏览器带来了重要的调速半置,这得益于新的Wenkit渲染引擎和优化的JAVA脚本编译器。

6、Voice search语音搜索。带有语音识别技术的Google手机已于2008年11月面世,它支持语音搜索功能,该功能增强了默认的搜索能力,已超过了纯文本搜索。

7、立体蓝牙和免提电话。除了增强的免提电话体验,Android还支持立体蓝牙(A2Dphe和AVCRP),并有自动配对功能。

8、强大的GPS技术.Android内部提供了大量的GPS组件,我们可以很轻松地获得设备当前的位置等信息,让导航等功能更加完善。

9、Android系统硬件检测,android可自动检测和修复SD卡的文件系统,允许第三方应用显示Android系统的硬件特征,为了让用户下载到与自已的设备匹配的应用,我们可以检测用户设备的硬件信息,让满足应用要求的设备安装该程序,当更多的android设备建立在不同的硬件上时,这个功能显得很实用。[1]

Google android移动平台开发过程研究[4]

Android移动平台作为21世纪的新秀,受到了越来越多的开发者的钟爱,在这股开发的浪潮中,逐渐形成了具有Android一套具有Android特色的开发流程。

由于Android的优越性,其开发显得非常的有规律可寻。大致的开发流程如下:

需求分析:作为一个软件,它必须有其存在的意义和价值,而这个价值和意义就需要靠需求分析来确定。

功能分析。作为一个手机软件,它的使命就是给用户使用的。如何提供用户最好的用户体验就值得每一个程序员的深思,这也是确保一个程序成功的关键所在。

界面设计:作为一个手机软件,其只能在极有限的区域中显示自已,如何在有限的空间里更完美的展现出自 内容过长,仅展示头部和尾部部分文字预览,全文请查看图片预览。

如图7-3中显示的是我们选择一个城市点查询键,然后可以通过UI显示这个城市一周内的天气信息。



7-3城市天气信息

查询完XX这个城市之后,我们再点另外一个城市进行查询,如选择XX和XX,操作步骤和上面一样。如图7-4所示。

结论

如今,随着智能手机操作的兴起,很多软件开发人员着手去研究手机多媒体这个方面,由Google发布的Android手机系统更是得到了众多手机开发人员的青睐。作为智能手机,娱乐与通讯一样具有重要的意义。

本文针对上述问题展开研究,完成了基于android手机的天气预报的系统设计与实现,其功能基本符合用户的需求,能够实现各个模块的设计要求

经过数个月的努力,Android平台3G手机气象软件终于完成了。由于对JAVA浓厚的兴趣引发了我对Android的好奇心,从一开始什么都不懂一直摸索着运用了很多高级技术完成了这个软件。

在这个过程中,我学会了很多知识,比如Android环境的搭建、Intent、Activity、Service、ContentProvider、SQLite等,但我学会的最重要的一点是,利用现有的资源去解决问题,在图书馆、在网络上寻找答案。。

[文章尾部最后500字内容到此结束,中间部分内容请查看底下的图片预览]

以上为《移动互联网应用技术综合实训报告》的无排版文字预览,完整格式请下载

下载前请仔细阅读上面文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。

图片预览