




已阅读5页,还剩37页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
太原理工大学毕业设计(论文)用纸基于Android的文件管理器设计与开发摘要科技日益增长的今天,普通的手机已经无法满足人们的日常需求,越来越多的人选择使用Android系统手机。作为Android 用户来说,使用应用程序来完成日常生活需要,也是必不可少的了,手机的使用越来越多。手机文件的日益增多。管理起来对于普通用户来说更加不便。本文对Android发展的国内外现状做了介绍,从实际的要求出发,结合软件使用功能等方面,通过具体的操纵流程和要实现的目标的概述,制定了详尽的Android手机文件管理系统的开发需求。在明确需求的前提下,通过对整个Android系统架构和应用开发背景的分析,完成了基本功能的设计规划,设计出Android文件管理器的整体解决方法。系统总体设计完成后,又对每一个功能的具体实现细节做了详尽的阐述,对应用开发中的重要技术也做了详细的研究,结合Android基本编程技术等其它一些知识,论述了文件管理应用的具体实现过程。最后对整个项目做了简单的测试,运行状况良好达到了预期的效果。该应用可以安装到Android手机上进行使用,通过它可以便捷的浏览、简单的操作手机上的文件。关键词:Android应用;文件管理;Java全套设计加扣 3012250582File Managers Design And DevelopmentBased On The AndroidAbstract Growing technology today, ordinary mobile phone has been unable to meet the daily needs of the people, more and more people choose to use Android phone. As Android users, using the application to perform daily needs, is essential, the use of mobile phones more and more. An increasing number of phone files. Manage them more inconvenient for ordinary users. In this paper, the status of Android development at home and abroad have been described, from a practical requirement, combined with software functions, etc., through the manipulation of the process and an overview of the specific objectives to be achieved, the development of the Android mobile development needs detailed document management system . Under the premise of a clear demand, through the entire Android system architecture and application development background, analysis, design and planning to complete the basic functionality of the overall solution design Android file manager. After the completion of the overall system design, but also on the specific implementation details of each function to do a detailed exposition of the application development is an important technology to do a detailed study, combined with some other Android basic knowledge of programming techniques, discusses the document management application The specific implementation process. Finally, the entire project to do a simple test, running in good condition to achieve the desired results. This application can be installed on Android phone use, through which you can easily browse, simple operation files on your phone.Key words:Android Application; Document Management; Java目录摘要iAbstractii1.前言111选题经过112 Android发展的国内外动态213课题内容以及意义4131课题研究内容4132课题研究意义41.4相关技术及开发工具简介52文件管理系统的需求分析和可行性论述621系统要达到的目标和要解决的问题622系统主要功能需求7221文件的浏览7222文件的操作723系统非功能性需求724系统运行环境规定925 可行性论述103系统的整体设计和规划1131Android开发平台系统的基本架构1132简单概要设计1533系统功能的设计规划1634整体设计的流程184.文件管理系统详细功能的实现1941 整个项目中主要包、类的功能的实现1942 需要用到AlertDialog的几种情况2143 文件浏览功能的实现2444 文件操纵功能的实现25441 列表项操作的实现25442 菜单键操作的实现274.5 配置文件285系统的测试30结论36参考文献37致谢381.前言11选题经过 在这个科技不断发展经济越来越发达的时代,电子技术获得了飞速的发展,移动设备越来越普及,其硬件性能也得到了极大的提升。从最早的“大哥大”,到现在的商务PDA手机、智能手机、音乐手机等等,功能也从单纯的打电话发展到了发短信、听歌、上网等。手机和我们生活的联系越来越紧密,手机的功能成为很多人们关注的焦点。与此同时,产生的大量软件文件的管理也备受人们的关注。人们希望手机的文件管理界面简洁,文件使用方便。目前国内最常见的移动开发平台有Symbian,iPhone,Windows Phone以及当下正在逐步兴起的Android。其中的安卓操作系统,由于其免费、开源和良好产业运作策略而发展迅猛,为其在智能手机市场赢得更多的发展机遇。因此,根据Android市场和手机市场,开发一个完善的多功能文件管理系统将会具有良好的市场和应用前景。 普通的非智能手机已经不能满足人们日常生活的需求,电话,短信,上网,成为了人们选择手机必不可少的条件,但是现在已经有更高需求的用户选择了更高需求的手机。那就是Android , 作为Android 手机用户来说。使用应用程序来完成日常生活需要,也是必不可少的了,手机的使用越来越多。随着要处理的信息的增多,手机SDcard内存越来越大,手机上存储的文件也越来越多,但是对于一般的手机用户来说,这些文件管理起来非常麻烦。随着基于Android的文件管理工具日益增多,对于处于发展初级阶段的Android来说,一个很完善的文件管理工具还不是很多。能满足用户需求的工具更是少之又少。所以为了大多数用户的需求,也方便开发者使用,选择了这个基于Android的文件管理器的题目来进行深入的研究。 本次设计运用Android平台手机作为研究开发对象,配合Java语言程序设计以及面向对象思想设计了一种手机文件浏览器。本设计完成后,能够实现以下功能:文件的浏览、文件的一些基本操作,一些远程模块的调用、根据不同文件扩展名来实现打开文件的功能。 在设计时,按照设计的要求,从可靠性、经济性、安全性三个方面进行考虑,通过设计方案的比较,确定出来一套即经济又可行的方案。本次设计是对所学知识的综合运用,把理论知识和实践相结合。在本次设计与检验过程中遇到了许多实际问题,比如Android平台手机及其运行环境的选择,不熟悉Eclipse软件的使用方法,不熟悉开发技巧,可能会发生一些微小功能不能实现、软件运行不稳定,如何设计软件的最佳外观效果等。所有的这些问题,我们都通过查阅资料,咨询老师一一解决了,为设计的成功提供了保障。12 Android发展的国内外动态Google一开始并没有创造Android。Android一开始属于Android公司,这个公司是由Andy Rubin创立的,发展了一段时间后,Google才收购了它。而且Google公司的Android产品负责人也成了Andy Rubin。Android1.0手机系统是最老版本的,2007年11月由Google发布,一开始并没有获得广大的支持。直到Android1.5手机操作系统版本的发布,Android才引起了广大开发爱好者的关注。从这以后,版本更新就变得很快了,现在最新的版本已经达到了Android4.4.21。现在Android手机系统的使用人数已经远远超过了IOS,成了世界上使用最广的一款手机操作系统Android开发平台是一个完全开放式的手机平台,从国内的环境看来,已经有一大部分手机生产商家生产Android系统的手机,他们不用掏钱便能使用,何乐不为?无论是出名的手机生产商家也好,数量庞大的山寨手机生产商家也罢,单从减少开发费用的角度想一想,Android平台都是一个很好的选择。在国外,Google 于2007年11月5日宣布推出基于Linux平台的开源手机操作系统Android。Android凭借其良好的用户体验,低廉的成本和较高的开放性吸引着越来越多的终端厂商采用,因此基于Android系统的手机增量也成为业内津津乐道的话题,根据Gartner等国际研究机构的报告,Android在2010年第三季度全球智能手机市场的份额已达25.5%,而在去年同期Android市场份额只有3.5%。Android出现之前,智能手机OS市场中Symbian和WM两者占据大部分市场份额,但在移动互联网的快速发展,终端+应用的趋势逐渐成为主流的情况下,两者的劣势逐渐突出。Symbian由于发展多年,底层架构较为陈旧,且对触摸屏支持不佳,用户体验交叉;再加上系统较为封闭,支持的应用较少。WM系统同样较为封闭,对终端厂商来讲引入成本较为昂贵,娱乐性平平,多用于商务机型。2007年,苹果iPhone上市后IOS凭借iPhone优秀的用户体验和App Store 在线商店模式获得了巨大的成功,特别值得一提的是App Store 应用开发分成模式刺激了开发者的不断进入,截止2010年8月,可用于IOS的应用已超25万,苹果公司顺应了终端+应用的智能手机发展趋势,取得了快速的发展。但IOS也遇到了许多问题。IOS属于半开放的OS,实现移动互联网产业链上的各环节的普赢是较为困难;其次iPhone定价较高,短期内难以满足中低端市场的需求,反观Android系统,拥有低廉的引入成本,良好的用户体验开放性较强的特点,加上Android Market 和众多第三方应用商店做后盾,在应用资源也非常丰富;虽然Android目前存在安全性和版本混乱等问题,但由于其适应了移动互联网的发展趋势,切合了移动互联网产业链各方的发展变化和需求,所以取得了迅猛的发展。 2014年3月10日早间消息,谷歌(1214.79, -4.82, -0.40%)Android、应用和Chrome高级副总裁桑达尔皮采(Sundar Pichai)上周六在SXSW互动大会上宣布,该公司很快就将推出针对可穿戴设备设计的Android SDK(软件开发套件)。 谷歌将在SDK中向开发者阐述谷歌对该市场运作方式的愿景。从拉斯维加斯国际消费电子展(CES)到巴塞罗那移动世界大会(MWC),可穿戴设备一直都是今年各大科技盛会的重要主题。 可穿戴设备中那些体积小巧、性能强大的芯片将给Android带来巨大提升,他对这一前景颇感振奋。 这一新的SDK不仅是针对智能手表的。谷歌的职责是为开发者提供系统软件和API(应用编程接口),而具体针对哪种产品进行开发,则取决于开发者和合作伙伴。 在国内,电信运管商方面,通过产业链优势(销售渠道优势、用户优势、资源整合优势)向操作系统领域进行扩张,达到控制更多产业链话语权的目的是现阶段移动互联网发展的必然趋势。相对于其他系统 Android 的开放性和可定制性使得运营商从系统层面打造自己的用户界面,并内置增值服务更加容易。终端厂商方面,企业纷纷开始从单纯出售手机向终端+服务/应用的业务模式转型,操作系统作为承载 应用的平台,对于智能手机终端厂商的重要性不言而喻。在 Android 问世之前,智能手机大多使用 WM 平 台,不仅成本较高,而且系统封闭应用体验较差。而 Android 系统除了低廉的成本和良好的用户体验外,因采用了开源的平台,给予了终端厂商和开发者更大的灵活性,开发者在程序的开发移植上更为方便且不需要考虑厂商端内容审核等问题,终端厂商则可以按需深度定制系统开发本地化应用环境,用户可选择的 应用资源将会进一步丰富。在国内三星、摩托罗拉等手机厂商也延续着这一策略,纷纷推出 Android 新机,创新工厂旗下的点心操作系统。未来这些企业可能会凭借 Android 的特性,定制针对细分应用市场的 OS,推动 Android 的多样化发展。而从用户的角度,Android 良好发展前景主要源于优秀的用户体验和高性价比这两个方面,中国手机用户对价格较为敏感,中国移动也在近期完成了 600 万台 TD 终端的采购,其中大部分为1500 元以下的 Android 手机终端;而 WM 和 IOS的机种目前市场价普遍在 2000 元以上, Android 如此的价格定位,对占大多数的中低端消费者有很大吸引力。而根据各大手机卖场的回馈情况表示,55%的计划换机的用户都对 Android 手机表示了较强的购买意愿。 当然,经历了热议和快速发展的 Android 同样面临着一些挑战。 首先,目前 Android 由于过于开放,版本繁多造成发展分裂的状况,引来了兼容性和安全方面的问题; 不同版本 Android 之间的硬件要求不同造成了 Android 及其衍生系统的应用兼容性下降,在一定程度上影 响了用户体验。而过于开放带来许多安全问题,例如最近的“Android SD 卡漏洞”爆发后一些基于 Android 的定制系统无法及时有效应对,而“安卓短信卧底”等病毒木马也频频出现,威胁 Android 用户的安全。Android 在发展中虽遇到一些问题,而在多方面因素推动下,总体趋势仍旧看好。当前,Android 在国内的迅速发展才起步不久,预计随着 HTC 进入中国市场,以及酷派、华为、中兴等终端厂商的发力,Android 手机在中国市场的销量在未来还将有较大发展空间。 随着新技术的不断开发与应用,近年来Java技术发展十分迅速,一个以Java应用为主的新技术革命浪潮正在蓬勃兴起。而基于Andriod的软件开发是一个前景很大的技术,然而市面上基于Android的文件浏览器虽然有不少种,各种的文件浏览器都能实现文件浏览的功能的应用,但是由于版本繁多,开发思路不同,加之Google开放的源代码,Android的SDK的版本不同,API不同使得各种文件浏览器的版本、实现的功能也进而不同。所以基于Android的文件浏览器卡发显得非常必要。13课题内容以及意义131课题研究内容 目前Android平台手机渗透到我们生活,20世纪末,电子技术获得了飞速的发展,在其推动下,基于Android平台手机的现代电子产品在我们生活的各个角落都能见到,有力地推动了社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。基于Android平台手机的发展趋势,本设计以Android平台手机为核心制作了一个文件浏览器。本课题的主要任务是针对Android平台的手机文件管理系统的设计和实现,基于Android系统应用开发的特征和现实需求,设计出一款可以满足手机使用者对文件进行浏览、对文件进行操作等一系列的需求,同时能够很好的融入整套开发系统平台的应用软件解决方案。本文对Android发展的国内外现状做了介绍,从实际的要求出发,结合软件使用功能等方面,通过具体的操纵流程和要实现的目标的概述,制定了详尽的Android手机文件管理系统的开发需求。在明确需求的前提下,通过对整个Android系统架构和应用开发背景的分析,设计出Android文件管理器的整体解决方法。系统总体设计完成后,文件管理器的软件架构在Android系统中的层次也就明确了。本文对应用开发中的重要技术也做了详细的研究,结合Android基本编程技术等其它一些知识,论述了文件管理应用的具体实现过程。132课题研究意义 理论上,看似简单的文件管理器,由于采用Android平台开发,所以对界面的要求比较高。由于本文件管理器是基于手机或者平板等移动终端,所以对开发的难度大大提高。因此,解决对于平台的选择,不仅重要,而且有助于本文件管理器的系统的真正推广以及应用,具有着重要的意义。在现实生活中,一方面,如前所述,文件管理器本质上是一种日常应用,在大量现实应用中,我们不难发现,一个很好的文件管理器能够让用户很方便的管理手机中的文件,甚至对手机中的应用程序管理更加方便,我们通常,对于文件管理器要求不是很高,但是本文件管理器中。对于开发者和普通用户来说区别很大,很容易让Android用户群中的两类用户产生浓厚的兴趣。因此,我所做的文件管理器,在代码完成方面会由一定难度,而已,在界面的简洁程度,以及推广方面,也有一定难度。因为这一程序的必要,所以为不得不开发一款这样的应用程序。 1.4相关技术及开发工具简介Android:Android是基于Linux核心的软体平台和作业系统,早期由Google,后由开放手机联盟开发。 美國檢索公司Google在2007年11月5日公布的手機系統平台。美国检索公司Google在2007年11月5日公布的手机系统平台。该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。它採用了軟體堆層(software stack,又名以軟體疊層)的架構,主要分為三郭分。它采用了软体堆层2(software stack,又名以软体叠层)的架构,主要分为三部分。 低層以Linux核心工作為基礎,只提供基本功能,其他的應用軟體則由名公司自行開發,以java作為編寫程式的一部分。低层以Linux核心工作为基础,只提供基本功能,其他的应用软体则由名公司自行开发,以java作为编写程式的一部分。 另外,為了推廣此技術,Google和其它幾十個手機公司建立了開放手機聯盟(Open Handset Alliance)。另外,为了推广此技术,Google和其它几十个手机公司建立了开放手机联盟(Open Handset Alliance)。 Android在未公開之前常被傳聞為Google電話或gPhone。 Eclipse: Eclipse 是一款相当优秀的开放源代码的、基于 Java 的可扩展的集成开发环境。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括 Java 开发工具(Java Development Tools,JDT)。Eclipse是一个开放源代码的软件开发项目,专注于为高度集成的工具开发提供一个全功能的、具有商业品质的工业平台。要想开发Android还必须在Eclipse上安装ADT插件和Android SDK。ADT是Android Development Tools的缩写,是布置开发环境时为了方便在Ecplise里开发Android程序而装的插件。Android SDK是用于Android开发的工具包,里面有各种版本用于开发、检测、调试的API文档和开发工具。下载好Android SDK后,开始安装,Android SDK采用了Java语言,所以需要先安装JDK 5.0及以上版本。直接下载jdk安装文件安装更为方便。Android SDK不用安装,下载后,直接解压即可, 将下载后的SDK的压缩包解压到适当的位置,就这么简单;SDK安装OK。其中需要注意的是使用Eclipse进行Android应用开发需要给Eclipse装adt插件,这样Eclipse就可以和Android sdk建立连接,可以在Eclipse中启动Android模拟器进行程序调试等ADT插件安装这里不再累赘,插件的安装URL为:也可以下载adt的zip包安装 安装完插件后,需要做一些简单的配置:(1) 在Eclipse中,选择Window Preference;(2) 从左侧的菜单中,选择Android项;(3) 设置SDK Location,点Browse选择SDK的安装根目录;(4) OK,完成。2文件管理系统的需求分析和可行性论述21系统要达到的目标和要解决的问题 本章需求分析的目的是规范化本软件的编写,旨在于提高软件开发过程中的能见度,便于对软件开发过程中的控制与管理,同时提出了本软件开发过程,并作为工作成果的原始依据,同时也表明了本软件的共性,以期能够获得更大范围的应用。 在Android系统在手机平台风靡的同时,文件管理器在系统中越来越普及,人们通文件管理软件对文件进行文件管理,既方便了用户,又为传统文件管理带来了革新的契机。现今Android操作系统逐渐成熟,尤其是伴随着各大手机厂商如三星(Samsung),多普达(HTC)出款的多款Android手机大热。人们不仅要求采用手机连接PC进行文件管理,更加盼望在手机操作系统上实现快捷方便的文件管理。随之带来的是android手机给功能强大,使用简单快捷,拥有良好操作界面的手机文件管理系统的具体需求。跟电脑上的文件管理界面一样,手机文件管理工具就像是一座桥梁用来连通用户和手机文件系统,准确的让用户了解到手机上文件的信息,并且让用户对这些文件进行简单的操作以便达到管理的目的。本软件基于Android技术开发,规模不大,开发本软件意图是为了深入学习Android技术,锻炼自主学习能力,为以后开发积累经验,锻炼发现问题解决问题的能力。现在,有很多手机软件使手机的应用更方便,本设计开发的目的就是开发一款实用的手机文件管理器对一系列的手机软件及文件进行管理,方便快捷。本设计为Android系统的手机用户提供服务,可以安装到手机上使用。由于Android手机基于Linux内核开发,所以对于Linux 文件来说就由安全性的问题,同时也由这用户权限的问题,对于一些非普通用户来说,有一些文件是无法访问的,如果一旦访问就会出现一些系统级的问题,所以对于此处Android 文件管理器中需要注意将用户不需要也不应该访问的文件目录隐藏从而达到安全有效的使用文件列表需要过滤。文件打开,复制,粘贴,重命名,删除,打开文件需要针对每一种类型的文件选择适应的打开方式,以及打开形式。 复制粘贴文件,可能需要判断文件的类型,对文件采取必要的保护措施。 重命名文件,可能需要对其进行修改权限处理。删除文件,需要用户的权限来判断,也需要判断删除之后是否会对系统造成损失,如果是文件夹,需要了解是否可以删除文件夹的文件或者空文件夹处理。文件检索:对文件的过滤,对文件夹的过滤。文件信息查看:文件信息处理,对文件信息的采集,文件夹内容的遍历。文件收藏:存储文件路径信息。文件移动:文件位置的改变。文件路径的权限。在应用程序管理中,应用程序安装:对可支持的应用程序安装。应用程序卸载:对安全,可卸载的应用程序卸载。应用程序备份:应用程序打包处理。应用程序信息查看:查看应用程序信息。获取应用文件。应用程序运行:安全的执行应用程序。进程管理:对用户想关闭的进程进行关闭处理。22系统主要功能需求文件管理工具最终是要安装到手机上以供用户操作,所以应该从用户出发和Android系统手机的使用者进行不断的沟通,深入了解以便很好的获取需求。将用户的模糊需求转化成为具体的软件模型,这样才能简化用户的操作,使用户更加方便的管理自己手机里面存放的文件。本课题所设计的基于Android的文件管理应用,安装到手机上后,能够识别手机SD卡和手机内存中存放的文件。221文件的浏览打开FileManager之后,主界面就会显示/sdcard路径下的所有东西,包括各种文件和目录并且通过不同的图标加以区分,我们也可以在稍后的浏览过程中对这个目录的信息进行操作。如果要进行目录的跳转,可以选择所在目录一个子文件夹点击,或者返回到所在目录的上一级目录。目录跳转的时候要预先判断有效性,保证所在目录和要跳到的文件夹所处的状态,动态的监听新建文件、文件删除或者一些其他的事情造成的路径的变化情况,对文件列表进行动态的更新。文件管理工具FileManger打开之后的主界面相当于是一个列表,每一个列表显示的是一个对应目录下的所有内容,列表又分成许多的行,每一行或是一个可以打开的目录,或是一个可以通过手机上的其他应用打开的实实在在的信息文件,为了让系统的反应更加迅速,每一行不能包括很多的信息,要尽量做的简洁,让用户一目了然。222文件的操作 文件管理工具不光能显示文件让用户浏览文件,还要让用户能够操作文件,例如新建文件、新建文件夹、删除文件、复制、剪切、粘贴等一系列操作。当用户长按文件列表上的某一行或者点击手机上的菜单按钮的情况下,就会弹出许多供选择的操作,只要接着点击选择想要进行的操作就行了。23系统非功能性需求 Android文件管理系统面向用户功能明确,并且由于是基于Android系统手机嵌入式软件,所以满足文件管理主要功能的同时,还需要满足一些非功能性需求。非功能性需求在以往的软件开发中经常被研发人员忽视,导致非功能性需求得不到保障,进而致使保障不了功能性需求的定义和实现。为了更好的实现文件管理系统的带给用户的价值,基于提高软件质量和遵守Android软件设计的主流标准和规范的考虑,文件管理系统非功能性需求有以下几个方面: (1)界面设计需求:此处的界面设计需求不同于详细的界面的设计,主要体现的是用户在手机上使用文件管理软件的体验感觉。作为手机应用,应该注重软件界面设计的美观,简单,大方。由于文件类型的较多,不同文件类型模块间的切换要求平滑实现。界面主题颜色采用醒目亮色。调用Android操作系统的控件时充分考虑系统对控件的支持是否良好和使用范围是否超出软件需求。 (2)执行需求:执行需求要充分考虑当前主流手机的硬件配置,要求文件管理软件精确完成文件操作和完成功能时间在用户可接受的范围之内。软件在响应用户的文件操作时,对初始化界面显示文件列表的速度,完成诸如文件移动,删除,重命名等操作的精确性,完成操作后更新列表的时间,验证root权限的准确度等。 (3)易用性需求:在满足用户功能的需求的同时,软件最终提供给用户的功能的调用要符合用户使用手机软件的习惯操作和对软件的前期期望值。系统需求分析中心围绕的用户的使用习惯展开,细分用户习惯和需求,和软件应用功能相结合,最终达到用户可以更快的操作软件。 (4)适应性需求:适应性需求主要包括文件管理软件对手机软件环境和硬件环境的适应。系统适应的软件环境主要是适应手机Android操作系统,软件适合于Android 21以上的所有版本的系统,可以调用Android相应的服务和Android自带的控件;系统适应的硬件环境主要是识别手机内存和自带的SD卡,软件安装后占有极少的手机空间前提下,提供完整的文件管理功能。 24系统运行环境规定系统基于Android系统进行开发,考虑到Android的基于Linux本质,开发语言选择使用成熟的高级语言Java。在pc端windows平台下使用Android SDK自带移动虚拟手机开发调试,生成软件包,在手机端安装apk来达到最终系统运行的目标。下面讲述下Android虚拟机的组成部分和一些构造原理,在介绍Android虚拟机之前,先要了解下什么是Android操作系统,所谓的Android:是基于Linux内核的软件平台和操作系统,早期由Google开发,后由开放手机联盟Open Handset Alliance)开发。Linux系统中进程间通信的方式有:socket, named pipe,message queque, signal,share memory。Java系统中的进程间通信方式有socket, named pipe等。android应用程序理所当然可以应用JAVA的IPC机制实现进程间的通信,取而代之的是Binder通信。Google为什么要采用这种方式呢,这取决于Binder通信方式的高效率。 Binder通信是通过linux的binder driver来实现的。Binder通信操作类似线程迁移(thread migration),两个进程间IPC看起来就象是一个进程进入另一个进程执行代码然后带着执行的结果返回。Binder的用户空间为每一个进程维护着一个可用的线程池,线程池用于处理到来的IPC以及执行进程本地消息,Binder通信是同步而不是异步。Android中的Binder通信是基于Service与Client的,所有需要IBinder通信的进程都必须创建一个IBinder接口。系统中有一个进程管理所有的system service,Android虚拟机不允许用户添加非授权的System service,当然现在源码开发了,我们可以修改一些代码来实现添加底层system Service的目的。对用户程序来说,我们也要创建server,或者Service用于进程间通信,这里有一ActivityManagerService管理JAVA应用层所有的service创建与连接(connect)。disconnect,所有的 Activity也是通过这个service来启动,加载的。ActivityManagerService也是加载在Systems Servcie中的。Android虚拟机启动之前系统会先启动service Manager进程,service Manager打开binder驱动,并通知binder kernel驱动程序这个进程将作为System Service Manager。然后该进程将进入一个循环,等待处理来自其他进程的数据。用户创建一个System service后,通过defaultServiceManager得到一个远程ServiceManager的接口。通过这个接口我们可以调用 addService函数将System service添加到Service Manager进程中,然后client可以通过getService获取到需要连接的目的Service的IBinder对象。这个IBinder是 Service的BBinder在binder kernel的一个参考,所以service IBinder 在binder kernel中不会存在相同的两个IBinder对象。每一个Client进程同样需要打开Binder驱动程序。对用户程序而言,我们获得这个对象就可以通过binder kernel访问service对象中的方法。Client与Service在不同的进程中,通过这种方式实现了类似线程间的迁移的通信方式,对用户程序而言当调用Service返回的IBinder接口后,访问Service中的方法就如同调用自己的函数。 利用Eclipse开发的Android应用程序,能够与安装有Android操作系统的手机硬件相联系,快速便捷的访问手机SD卡和本机内存中各个类型文件。有条理的将手机文件与系统中划分的文件类型集合相对应,比如系统中分为图片集合,音乐集合等,通过窗口集合的方式显示各个对象和不同类型文件的对应关系。基于Android的文件管理器完成设计编码、调试工作后,不仅可以在Android虚拟机上运行,凡是具有android操作系统的手机,都可使用。25 可行性论述在开发该文件管理器之前,我查询了前人所写过的诸多论文以及源程序,在开发之时,结合了资料中的算法并揉进了自己的一些思想,使程序可以完整实现。(1)技术可行性 文件管理器的应用有很多,但是Android的应用程序,目前还很少在android market中使用,也很少在国内的应用市场中所见到。由于在国内外Android领域中,还处于发展的初级阶段,还很少有开发者能对整体设计有一定的思想以及理念,成熟度非常低,有待于完善的地方也很多。 在开发中可能会遇到的问题,比如android文件的安全性BUG,对于一个屏幕有限制的项目如何展现出尽可能让用户了解更多的内容,对于安全性的问题。所以。对于技术上的实现可能有一定的问题。但是为会努力的克服困难。完成技术方面的问题。(2)操作可行性该文件管理器需要如下的运行环境:CPU:500MHZ及以上;内存:256 M及以上。安装有Android 2.1以上的操作系统。因此,从操作可行性来看,只要系统用户的硬件软件设备满足以上条件,即可用该文件管理器。3系统的整体设计和规划31Android开发平台系统的基本架构 图3-1 Android开发平台系统的基本架构如图3-1可以很明显看出,Android系统架构由五部分组成,分别是:Linux Kernel、Android Runtime、Libraries、Application Framework、Applications。现在我们拿起手术刀来剖析各个部分。其实这部分SDK文档已经帮我们做得很好了,我们要做的就是拿来主义,然后再加上自己理解。下面自底向上分析各层。Linux Kernel:Android基于Linux 2.6提供核心系统服务,例如:安全、内存管理、进程管理、网络堆栈、驱动模型。Linux Kernel4也作为硬件和软件之间的抽象层,它隐藏具体硬件细节而为上层提供统一的服务。分层的好处就是使用下层提供的服务而为上层提供统一的服务,屏蔽本层及以下层的差异,当本层及以下层发生了变化不会影响到上层。也就是说各层各司其职,各层提供固定的SAP(Service Access Point),专业点可以说是高内聚、低耦合。如果你只是做应用开发,就不需要深入了解Linux Kernel层。Android Runtime:Android包含一个核心库的集合,提供大部分在Java编程语言核心类库中可用的功能。每一个Android应用程序是Dalvik虚拟机中的实例,运行在他们自己的进程中。Dalvik虚拟机5设计成,在一个设备可以高效地运行多个虚拟机。Dalvik虚拟机可执行文件格式是.dex,dex格式是专为Dalvik设计的一种压缩格式,适合内存和处理器速度有限的系统。大多数虚拟机包括JVM(Java Virtual Machine即Java虚拟机)都是基于栈的,而Dalvik虚拟机则是基于寄存器的。两种架构各有优劣,一般而言,基于栈的机器需要更多指令,而基于寄存器的机器指令更大。dx 是一套工具,可以將 Java .class 转换成 .dex 格式。一个dex文件通常会有多个.class。由于dex有時必须进行最佳化,会使文件大小增加1-4倍,以ODEX结尾。Dalvik虚拟机依赖于Linux 内核提供基本功能,如线程和底层内存管理。Libraries6:Android包含一个C/C+库的集合,供Android系统的各个组件使用。这些功能通过Android的应用程序框架(application framework)暴露给开发者。Application Framework:通过提供开放的开发平台,Android使开发者能够编制极其丰富和新颖的应用程序。开发者可以自由地利用设备硬件优势、访问位置信息、运行后台服务、设置闹钟、向状态栏添加通知等等,很多很多。开发者可以完全使用核心应用程序所使用的框架APIS。应用程序的体系结构旨在简化组件的重用,任何应用程序都能发布他的功能且任何其他应用程序可以使用这些功能(需要服从框架执行的安全限制)。这一机制允许用户替换组件。所有的应用程序其实是一组服务和系统。Applications:Android装配一个核心应用程序集合,包括电子邮件客户端、SMS程序、日历、地图、浏览器、联系人和其他设置。所有应用程序都是用Java编程语言写的。更加丰富的应用程序有待我们去开发!我们所要做的事情就是在这个架构上设计自己的文件管理应用,它在整个系统中的结构如图3-2所示:图3-2 文件管理在整个系统中的架构层次由于本课设计的是基于Android的文件管理系统,而Android开发使用的是java语言,那么这里就要用到Java中比较重要的一个类File。它直接处理文件和文件系统。也就是说,File类没有指定信息怎样从文件读取或向文件存储;它描述了文件本身的属性。File对象用来获取或处理与磁盘文件相关的信息,例如权限,时间,日期和目录路径。此外,File还浏览子目录层次结构。很多程序中文件是数据的根源和目标。尽管它们在小应用程序中因为安全原因而受到严格限制,文件仍是存储固定和共享信息的主要资源。Java中的目录当成File 对待,它具有附加的属性一个可以被 list( )方法检测的文件名列表下面的构造函数可以用来生成File 对象: File(String directoryPath) File(String directoryPath, String filename) File(File dirObj, String filename)这里,directoryPath是文件的路径名,filename 是文件名,dirObj 一个指定目录的File 对象。下面的例子创建了三个文件:f1,f2,和f3。第一个File对象是由仅有一个目录路径参数的构造函数生成的。第二个对象有两个参数路径和文件名。第三个File对象的参数包括指向f1文件的路径及文件名。f3和f2指向相同的文件。 File f1 = new File(/); File f2 = new File(/,autoexec.bat); File f3 = new File(f1,autoexec.bat); Java 能正确处理UNIX和Windows/DOS约定路径分隔符。如果在Windows版本的Java下用斜线(/),路径处理依然正确。记住,如果你用Windows/DOS使用反斜线(/)的约定,你需要在字符串内使用它的转义序列(/)。Java约定是用UNIX和URL风格的斜线来作路径分隔符。 File 定义了很多获取File对象标准属性的方法。例如getName( )返回文件名,getParent( )返回父目录名,exists( )在文件存在的情况下返回true,反之返回false。然而File类是不对称的。说它不对称,意思是虽然存在允许验证一个简单文件对象属性的很多方法,但是没有相应的函数来改变这些属性。下面的例子说明了几个File方法:import java.io.File;class FileDemo static void p(String s) System.out.println(s); public static void main(String args) File f1 = new File(/java/COPYRIGHT); p(File Name: + f1.getName(); p(Path: + f1.getPath(); p(Abs Path: + f1.getAbsolutePath(); p(Parent: + f1.getParent(); p(f1.exists() ? exists : does not exist); p(f1.canWrite() ? is writeable : is not writeable); p(f1.canRead() ? is readable : is not readable); p(is + (f1.isDirectory() ? : not + a directory); p(f1.isFile() ? is normal file : might be a named pipe); p(f1.isAbsolute() ? is absolute : is not absolute); p(File
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年C证安全员模拟题集及答案解析
- 2025年中小学英语教师面试英语预测题集
- 2025年美术教育专业能力测评试卷及答案解析
- 2025年旅游规划实务考试试题及答案解析
- 2025年劳动保护知识题库含答案
- 2025年技术经纪人入门面试题库及答案
- 2025年建筑建材工程师资格考试试题及答案解析
- 2025年环境卫生管理师专业资格考试试题及答案解析
- 2025年化学分析师专业资格考试试题及答案解析
- 2025年市场调研分析师职位面试指南及模拟题解答
- 人教版(2024)八年级上册英语Unit 1 Happy Holiday教案
- 2025年疾控实验室生物安全及保密相关知识理论培训考试试题(含答案)
- 2025年岗前安全培训试题及答案
- 民用航空飞机电子系统技术
- 2025至2030中国茶叶行业市场深度调研及投资策略及有效策略与实施路径评估报告
- 托育机构管理办法
- 2025年浙江省中考科学试题卷(含答案解析)
- 水生物病害防治员职业技能鉴定经典试题含答案
- 尿道狭窄护理查房
- 儿童眼保健知识课件
- 《Unit 6 Find your way》教案-2024-2025学年外研版(三起)(2024)小学英语四年级上册
评论
0/150
提交评论