基于Android的文件浏览器的设计与实现毕业设计.docx

上传人:b****5 文档编号:5912439 上传时间:2023-01-02 格式:DOCX 页数:29 大小:1.88MB
下载 相关 举报
基于Android的文件浏览器的设计与实现毕业设计.docx_第1页
第1页 / 共29页
基于Android的文件浏览器的设计与实现毕业设计.docx_第2页
第2页 / 共29页
基于Android的文件浏览器的设计与实现毕业设计.docx_第3页
第3页 / 共29页
基于Android的文件浏览器的设计与实现毕业设计.docx_第4页
第4页 / 共29页
基于Android的文件浏览器的设计与实现毕业设计.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

基于Android的文件浏览器的设计与实现毕业设计.docx

《基于Android的文件浏览器的设计与实现毕业设计.docx》由会员分享,可在线阅读,更多相关《基于Android的文件浏览器的设计与实现毕业设计.docx(29页珍藏版)》请在冰豆网上搜索。

基于Android的文件浏览器的设计与实现毕业设计.docx

基于Android的文件浏览器的设计与实现毕业设计

基于Android的文件浏览器的设计与实现毕业设计

第1章相关技术简介

通过对Java技术的学习及深入,进而学习了与Android相关的一些技术以及一些简单的xml技术。

通过对软件开发技术流程的熟练掌握及市场分析,从技术角度决定开发基于Android的文件浏览器。

1.1Java技术简介

世界各大移动通讯设备制造商都推出了自己基于Java的移动通讯设备,Nokia、Motorola、SonyEricsson、Samsung、LG、NEC、HTC等等都有自己的Java认证手机在市面上流通,这是的Java在很大范围上有了发展。

中国联通公司也正在其CDMA1X网络上建立无线Java增值服务体系,目前系统正在建设过程中,并且2003年9月26日中国联通、北京振戎融通公司和Sun公司在人民大会堂宣布联合发起成立“U-niJava技术联盟”,三方将在联通CDMA1X网络上的Java增值服务方面全面合作。

J2ME现称为JavaME(JavaPlatform,MicroEdition)是为机顶盒、移动电话和PDA之类嵌入式消费电子设备提供的Java语言平台,包括虚拟机和一系列标准化的JavaAPI。

它和JavaSE、JavaEE一起构成Java技术的三大版本,并且同样是通过JCP(JavaCommunityProcess)制订的。

目前阶段,JavaME最流行的应用是游戏软件。

因为与需要昂贵的专用设备和开发工具的竞争对手(如索尼和任天堂)相比,JavaME程序可以在PC机上开发和仿真运行,然后很容易地部署到目标机上,从而使其开发、测试和发布的变得容易

1Java程序的基本结构:

Java程序的基本结构有:

类、类的属性、对象、方法、组成,其中公共类名必须与Java源程序名相同,其命名规则为每个单词首字母大写,不能以数字开头。

必须声明类属性的数据类型。

Java要求文件名与类名相同,将多个类放在一起时,要保证类名不能重复。

当声明的类很多时,类名就有可能冲突,这就需要一种机制来管理类名,这就是包。

在源程序中可以声明类所在的包,就像保存文件时要说明文件保存在哪个文件夹中一样。

同一个包中类名不能重复,不同包中可以有相同的类名。

当源程序中没有声明类所在的包时,Java将类放在默认包中,即运行编译器的当前文件夹中。

这时,不能出现重复的类名。

Java下的包都是用来解决类的重名问题的,一般的命名方式都是采用域名倒置的方法,例如packagecom.baidu;

在Java源程序的头部第一个语句用关键字package声明包,指明该源文件定义的类所在的包。

包声明格式如下:

package包名;这个语句的作用范围是整个源文件,而且同一个package声明可以放到多个源文件中,所有定义在这些源文件中的类和接口的.class文件都属于这个包。

包名由“.”来分隔。

我们一般都是使用Sun公司已经写好的包,例如一个源程序创建的时候,系统自动默认导入java.lang包,进而进行控制台的输出,如果要进行程序的控制台输入。

则必须导入java.util.Scanner包等等。

2Java中的接口:

所谓接口可以看作是没有实现的方法和常量的集合。

接口与抽象类相似,接口中的方法只是做了声明,而没有定义任何具体的操作方法。

使用接口是为了解决Java语言中不支持多重继承的问题。

接口可以供其他的类来实现,如果一个类要实现一个接口,就必须实现这个接口下的所有方法,在实现接口时,要实现所有接口中定义的所有方法,方法的实现可以具有具体的实现内容,也可以是空的方法,即只有方法名或参数,没有变量,没有具体操作语句,只有一对大括号{}的空方法。

3继承的概念:

类是具有继承性的。

继承一般是指子女从父母那里得到父母所拥有的东西。

在程序设计中,在已有类的基础上构造一个新的类,这就称为继承,也可称作派生。

继承而得到的类称为原来类的子类或派生类。

原来的类称为父类或超类。

类的继承具有传递性。

子类对父类的继承关系体现了现实世界中特殊和一般的关系。

通过继承可以更有效地组织程序结构,明确类与类之间的关系,并且可以充分利用已经写好的类,实现软件模块的重用。

Java中的继承是通过extends关键字来实现的。

在类定义的时候,在类名后面用extends来指明新定义类的父类,这样就在两个类之间建立了继承关系。

Java的继承只能是单继承,一个类最多只能有一个父类,所以extends后面只能有唯一的一个父类名。

两个类之间能否建立继承关系首先要看父类能否被子类访问。

如果该类被public修饰,则可以被任何类继承;否则该类只能由同包类继承。

此外,还要看该类是否被关键字final修饰,能不能派生子类。

子类可以把父类的成员当作自己的成员,如果子类要调用父类中成员,就像调用自己的成员一样直接调用,或者用super关键字。

子类继承父类之后,子类对象就拥有了父类的成员。

继承并不是把父类成员复制到子类。

而是在程序执行加载类时,父类和子类分别加载各自的成员,当在生成子类对象时才把父类成员复制到子类对象。

定义好一个类就要创建它的对象。

系统会自动调用构造函数对所属成员变量进行初始化。

继承自父类的子类对象创建分三步,先调用超类的构造函数初始化父类成员,再执行子类构造函数对子类成员进行初始化,最后完成子类对象的创建。

构造函数只能由系统自动调用,如何在生成子类对象时调用父类的构造函数呢?

调用父类的构造方法有两种形式。

一是子类可以在自己的构造方法中使用super()来显示调用父类构造方法,但必须是子类构造方法的第一个可执行语句。

第二种情况,如果子类构造方法中没有显式调用父类构造方法系统默认调用父类无参构造方法。

如果父类没有无参构造方法,则编译出错。

所以通常会在父类中显式定义无参构造函数。

子类对象的成员分两部分,继承自父类的成员和子类自己定义的成员。

子类对象的成员使用也是先生成子类对象再用对象的引用加“.”操作符调用。

子类对象能否继承父类成员还由访问控制符决定。

父类成员的访问控制符会影响到子类能否继承父类的成员。

根据父类成员的访问控制符不同,有的父类成员可以被子类继承,有的则无法被继承。

如果父类和子类在同一个包中,子类可以继承父类中除private成员外的其他成员;如果父类和子类不在一个包中,子类只能继承被public和protected修饰的成员。

父类中的private成员变量不能被子类直接继承,但可以通过相关的方法间接访问。

继承的作用:

体现类的层次关系、实现多态、代码重用。

4Java中的最终类:

在Java中被final声明的类,称为最终类,它不能再被其他类继承。

通常一些有特殊作用的、用来完成标准功能的类,被定义成final的类,可以将它的内容、属性和功能固定下来,与它的类名形成稳定的映射关系,从而保证引用这个类时所实现的功能准确无误。

比如说,涉及到系统运行的System类就被定义为final类。

同时,我们自己在写程序的时候出于安全性的考虑也会把一些类定义为final类,防止别人通过字节码文件继承程序中的类,改变类的功能破坏程序。

5多态的定义:

多态是指拥有相同的形式,但根据不同的情形拥有不同的机能的特性。

比如加运算,在数值运算中出现做加法,在字符串运算中出现做字符串的连接。

这就是多态的一种表现。

Java中提供两种多态的机制:

编译时多态性和运行时多态性。

编译时多态性是通过方法重载实现的。

重载就是在一个类中定义多个名字相同但参数不同的方法。

在编译阶段,编译器会根据方法调用时传入的参数个数和类型决定调用哪个重载方法。

而由方法覆盖实现的动态多态性称为运行时多态。

也就是在父类和子类中定义名字参数完全相同的方法,程序调用哪一个方法,是由程序运行时调用方法的对象类型决定的,这就是运行时多态。

6Java中的类重载:

在同一个类中有多个名字相同但参数列表不同的方法,称这些方法是重载的。

参数列表不同是指参数数目、类型、顺序不同。

如果仅仅是参数名不同,系统不认为这是方法的重载,会把他们看作是同一个方法,编译不能通过。

修饰符和返回类型可以不同也可以相同。

系统只会根据参数列表不同自动调用相应的方法。

7方法重写:

子类拥有与父类相同的成员称为覆盖,分为变量的隐藏和方法的覆盖。

数据成员的隐藏是指在子类中重新定义一个与父类中已定义的数据成员名完全相同的数据成员,即子类拥有了两个相同名字的数据成员,一个是继承父类的,另一个是自己定义的。

当子类要操作继承自父类的同名数据成员时,可使用关键字super引导。

但当子类执行继承自父类的方法时,处理的是父类的成员变量。

子类可以重新定义与父类格式完全相同(包括方法名、方法形参的个数和类型、方法返回值的类型)的成员方法,实现对父类方法的覆盖,否则就不是方法的覆盖,而是子类定义自己特有的方法,与父类的方法无关。

覆盖的方法必须提供与被覆盖方法相同或更大的访问权限。

static方法只能覆盖为static方法。

如果想访问被覆盖的父类成员就只能在子类中用关键字super来调用。

被final修饰的最终方法不能被覆盖。

当子类执行覆盖的方法时,调用的是子类的成员方法。

8重载与重写的区别

方法的覆盖是子类和父类之间的关系,是垂直关系;方法的重载是同一个类中方法之间的关系,是水平关系。

覆盖是由一对方法产生的关系;方法重载是多个方法之间的关系。

覆盖要求参数列表相同;重载要求参数列表不同。

在覆盖关系中,具体调用哪个方法体,是根据对象的类型来决定的。

重载关系是根据调用时的实参表与形参表来选择方法体的。

9Java程序文件的编译过程

Java程序的基本结构有:

类、类的属性、对象、方法、组成,其中公共类名必须与Java源程序名相同,其命名规则为每个单词首字母大写,不能以数字开头。

必须声明类属性的数据类型。

Java源文件***.java经过javac编译之后会生成虚拟机可执行的类文件***.class。

Java文件经过编译后的.class文件就可以给Java虚拟机(JVM)来执行了,不同操作系统有不同的虚拟机,而不同操作系统生成的.class文件就可以实现跨平台。

1.2Android技术

1.2.1Android简介

Android一词的本义指“机器人”,当时同时Android也是Google于07年11月5日宣布的基于Linux平台开源手机操作系统名称,该平台由操作系统、中间件、用户界面和应用软件组成,Android是基于JAVA并运行在Linux内核上的操作系统,这个操作系统是轻量级的,但是功能很全面。

而且在这个操作系统上,Google公司已经内置了很多有用的软件,如打电话、发短信等,号称是首个为移动终端打造的真正开放和完整的移动软件。

  2008年9月22日,美国运营商T-MobileUSA在纽约正式发布第一款Google手机——T-MobileG1。

该款手机为宏达电制造,是世界上第一部使用Android操作系统的手机,支持WCDMA/HSPA网络,理论下载速率7.2Mbps,并支持Wi-Fi。

Android是Google开发的基于Linux平台的开源手机操作系统。

它包括操作系统、用户界面和应用程序——移动电话工作所需的全部软件,而且不存在任何以往阻碍移动产业创新的专有权障碍。

谷歌与开放手机联盟合作开发了Android,这个联盟由包括中国移动、摩托罗拉、高通、宏达和T-Mobile在内的30多家技术和无线应用的领军企业组成。

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

我们认为此举必将推进更好、更快的创新,为移动用户提供不可预知的应用和服务。

 运用Android的File类里面的各种方法来对文件进行操作。

文件浏览器主界面的设计:

运用android的View来对文件浏览器的主界面进行布局。

使用现行布局与表格布局来对文件浏览器的菜单进行布局。

可以设有Android的一些布局小工具。

Android平台包括一个被Android系统中各种不同组件所使用的C/C++库集,Linux内核也同时作为硬件和软件堆栈之间的硬件抽象层,下面进行全面的说明介绍。

1.2.2Android在中国

截至目前,国内三大运营商、中兴通讯和华为等厂商以及来自产业链细小领域的业务提供商都已经加入该联盟,据统计,OHA的中国成员数量已达到12家,占据总成员席位的近1/5。

“应该说,谷歌公司的强大号召力在中国得到了很好体现,前瞻的技术、可靠的价值链、持续的创新意识让中国很多企业一致看好Android。

”GartnerIT系统高级分析师沈哲怡表示。

广东移动数据部人士也表示,“Android在实践‘免费’经营模式的同时,也为移动终端领域的后进入者打开了一扇大门,彻底的开源和免费无疑是降低了市场进入门槛。

”从产业发展角度看,Android产业在中国的迅速蔓延本质上也存在一定的市场需求。

在加入OHA的中国成员中,无论是终端厂商还是业务提供商。

在终端领域的市场份额并不占据优势,而国内运营商对手机定制的紧密程度也与国外相差甚远,因此中国成员大部分都充当了全球市场挑战者的角色。

另外,还有一个群体值得关注——山寨手机产业,尽管其身份还有颇多质疑,但从规模和经济收益角度。

中国的山寨产业已经成为手机市场不可忽视的“潜在力量”,但受制于成本和正版的限制,手机山寨产业对于手机操作系统的渴求更加强烈。

但无论是对正牌或山寨的手机制造商、业务提供商还是电信运营商而言,这些瓶颈都在于“拥有自主开发的手机操作平台并非易事”,即便是处于产业核心层面的电信运营商也不例外。

一位从事智能手机应用软件开发的项目经理告诉记者,开发手机操作平台是一项庞大的工程,“靠公司规模和资金实力并不能解决这一难题,这项工程考验的是企业对网络和IT技术的理解力和创造力”。

而谷歌适时推出的开源、免费的手机操作平台Android正好满足了这一市场需求,为产业链相关企业提供了延伸业务领域的可能性,更为移动互联网领域的后进入者提供了开拓市场的有力武器。

Android在中国的前景十分广阔,首先是有成熟的消费者,在国内,Android社区十分红火,这些社区为android在中国的普及做了很好的推广作用。

国内厂商和运营商也纷纷加入了Android阵营,包括中国移动,中国联通,华为通讯,联想等大企业,同时不仅仅局限于手机,国内厂家也陆续推出了采用Android系统的MID产品,比较著名的包括由Rockchip和蓝魔推出的同时具备高清播放和智能系统的音悦汇W7,可以预见Android也将会被广泛应用在国产智能上网设备上,将进一步扩大Android系统的应用范围。

另一方面,由于国内政策的限制,导致Android的部分功能(如Androidmarket)在国内无法正常使用,目前常用的解决方法是使用类似A8VPN的VPN服务来访问。

OHA的成员可以任意使用和修改Android的SDK文档进行再开发,由此形成适应自身业务需要的“定制版本”。

Android的这种开源特征很快得到了中国运营商的响应,中国移动、中国联通、中国电信相继加入OHA联盟。

“在OPhone的研发中,中国移动对Android平台的上层应用、界面风格以及按键设置进行了大量修改。

替换了很多与中国移动自身增值业务相冲突的业务应用,使中国移动的自身属性得以体现,这是Android的开放性所致。

也是运营商选择Android的理由。

”前述广东移动人士表示。

据了解,中国联通基于Android平台的Uphone也在紧张研发当中。

“Android平台的技术结构比较紧凑,市场推进张驰有度,再加上谷歌公司长期具备的创新精神,确实值得国内很多厂商信赖。

”前述分析师沈哲怡表示。

据了解,国内终端厂商和运营商看好Android,很大程度上也是因为其背后推动者谷歌对互联网趋势的深刻见解;同时也因为Android具备合理的系统内核设计,并拥有成熟的市场推广模式。

而在这方面,同样是倡导“开放”的开源平台Linux,其市场表现却与Android有着天壤之别。

截至2009年,Linux应用在桌面操作系统中只占据1%的市场份额,始终难成操作系统的主流。

专家对此表示,仅仅是技术开源还不够,如果操作系统开发企业缺乏必要的市场化运作和整体推动力,忽视用户界面体验,最终其产品将无人问津,而Android在此方面则是一个成功案例。

据了解,谷歌近年来还积极推进版本更新,不断完善其系统性能,在2010年1月13日,谷歌公布了Android2.1版本的SDK文档,也就是说开发人员甚至可以对谷歌自有品牌手机NexusOne进行修改和业务程序开发,有外媒评论,“此举真正体现了Android平台的开放和平等”。

而在Android的设计理念中,开放和平等也有所体现。

“开放性接口为应用程序的研发提供了一个宽阔平台,业务提供商不必担心技术垄断造成的压迫和威胁。

”前述杨姓项目经理表示。

其实Android平台的很多底层技术取自Linux,而在底层技术流的选择上,大部分的程序开发人员骨子里都有一种“反Windows”观念,“如果让一种技术处于长期垄断地位是十分可怕的,垄断者的轻微举动会对产业上下游造成很大影响,因此大部分技术人员会更倾向于开放的Android。

而从系统整体性角度,Android平台也提供了完备的解决方案,OHA的成员甚至可以拿来直接使用。

如此讨巧的平台设计在中国迅速聚拢了一批通信领域的“明星企业”,像华为、中兴这类专注于通信领域,但已具备IC(集成电路)能力的厂商能够凭借此平台快速切入终端领域,降低成本且缩短了研发时间。

巨头的选择让OHA在中国的发展更加明朗——华为、中兴、联想等国内终端厂商以及国内三大运营商的加盟,让很多产业相关环节的厂商看到了趋势,于是,代工厂商、芯片厂商以及手机配套应用厂商源源不断地加入其中。

“很明显,谷歌的开放模式既然得到了产业链主要成员的认可,那些不具有话语权的小厂商当然也会紧紧跟随,它们认为‘巨头’往往代表产业发展趋势,如果不及时跟进,难免就会掉队,比如来自中国台湾地区的联发科、宏基、威盛、富士康、华硕都已经成为了OHA的成员,“中国台湾地区属于电子产品的高密地区,拥有很多手机代工商和芯片制造商,因此这种特征也尤为明显”。

Android应用程序框架开发者也完全可以访问核心应用程序所使用的API框架。

该应用程序架构用来简化组件软件的重用;任何一个应用程序都可以发布它的功能块并且任何其它的应用程序都可以使用其所发布的功能块(不过得遵循框架的安全性限制)。

该应用程序重用机制使得组件可以被用户替换。

1.2.3Android应用程序组成

以下所有的应用程序都由一系列的服务和系统组成,包括:

一个可扩展的视图(Views)可以用来建应用程序,包括列表(lists),网格(grids),文本框(textboxes),按钮(buttons),甚至包括一个可嵌入的web浏览器

内容管理器(ContentProviders)使得应用程序可以访问另一个应用程序的数据(如联系人数据库),或者共享它们自己的数据。

一个资源管理器(ResourceManager)提供非代码资源的访问,如本地字符串,图形,和分层文件(layoutfiles)。

一个通知管理器(NotificationManager)使得应用程序可以在状态栏中显示客户通知信息。

一个活动类管理器(ActivityManager)用来管理应用程序生命周期并提供常用的导航回退功能。

有关更多的细节和怎样从头写一个应用程序,请参考写一个Android应用程序部分。

Android程序库Android包括一个被Android系统中各种不同组件所使用的C/C++库集。

该库通过Android应用程序框架为开发者提供服务。

以下是一些主要的核心库:

系统C库-一个从BSD继承来的标准C系统函数库(libc),专门为基于embeddedLinux的设备定制。

媒体库-基于PacketVideoOpenCORE;该库支持录放,并且可以录制许多流行的音频视频格式,还有静态影像文件包括MPEG4,H.264,MP3,AAC,AMR,JPG,PNG。

SurfaceManager-对显示子系统的管理,并且为多个应用程序提供2D和3D图层的无缝融合。

LibWebCore-一个最新的web浏览器引擎用来支持Android浏览器和一个可嵌入的web视图。

SGL一个内置的2D图形引擎3Dlibraries-基于OpenGLES1.0APIs实现;该库可以使用硬件3D加速(如果可用)或者使用高度优化的3D软加速。

FreeType-位图(bitmap)和向量(vector)字体显示。

SQlite-一个对于所有应用程序可用,功能强劲的轻型关系型数据库引擎。

Android包括了一个核心库,该核心库提供了JAVA编程语言核心库的大多数功能。

每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。

Dalvik是针对于同时高效地运行多个VMs来实现的。

Dalvik虚拟机执行.dex的Dalvik可执行文件,该格式文件针对最小内存使用做了优化。

该虚拟机是基于寄存器的,所有的类都经由JAVA汇编器编译,然后通过SDK中的dx工具转化成.dex格式由虚拟机执行。

Android上的应用程序可以通过标准API访问核心移动设备功能。

它最大的特点就是与互联网紧密联系,在该系统上运行的大部分程序都依赖于互联网,这保证了信息的实时更新。

配合上手机中自带的WIFI网络模块可以让手机一尺处于高速网络下。

但是由于目前中国正处在2G通信技术和3G通信技术的过渡期,因此全部依赖于网络的Android或许不能表现出所有的性能和便利,因此中移动推出了基于该系统修改的OMS操作系统,OMS系统的底层和Android完全相同,只是在界面层经过中国人审美观的定制,并去除了Google的各种服务,加入了中移动的服务,因此对于高速网络的依赖性也不是特别强了。

与目前的智能手机平台霸主Symbian相比,反应快,界面好,支持的程序也多,有着众多实力雄厚的手机制造商和程序开发商作为坚实的后盾。

最重要的是支持多任务并行处理。

至于前景问题,由于Google的先期大力推广,加上众多手机制造商的极力配合,基于Android操作系统的设备更是层出不穷,甚至著名的WindowsMobile手机制造商HTC已经公开称在2010年将会把基于该系统的智能手机的出货量调节至总出货量的50%或者更多。

 

Dalvik虚拟机依赖于Linux的一些功能,比如线程机制和底层内存管理机制。

Linux内核Android的核心系统服务依赖于Linux2.6内核,如安全性,内存管理,进程管理,网络协议栈和驱动模型。

Linux内核也同时作为硬件和软件堆栈之间的硬件抽象层。

未来发展老牌智能手机软件平台制造商Symbian发言人则表示:

Google的android只不过是另一个Linux,Symbian对其它软件与其形成的竞争并不感到担心。

除了北美之外,Symbian在其它地区智能手机市场都占有大部分市场份额。

与iPhone相似,Android采用WebKit浏览器引擎,具备触摸屏、高级图形显示和上网功能,用户能够在手机上查看电子邮件、搜索网址和观看视频节目等,比iPhone等其他手机更强调搜索功能,界面更强大,可以说是一种融入全部Web应用的单一平台。

但其最震撼人心之处在于Android手机系统的开放性和服务免费。

Android是一个对第三方软件完全开放的平台,开发者在为其开发程序时拥有更大的自由度,突破了iPhone等只能添加为数不多的固定软件的枷锁;同时与W

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1