《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 设计应用 > 基于Android的多功能文件浏览器的设计与开发
基于Android的多功能文件浏览器的设计与开发
2015年微型机与应用第22期
李冬睿,邱尚明
(广东农工商职业技术学院 计算机系,广东 广州 510507)
摘要: 针对目前大多数Android手机文件浏览器只能浏览多种格式的文件,不支持直接打开和编辑Word、Excel和PDF等办公文档的特点,开发了一款基于Android的多功能文件浏览器。该软件除了提供常规文件浏览功能之外,还能直接打开Word、Excel和PDF等办公文档,并能对该类文档进行简单的编辑,同时还具有换肤、扫描文件、摇一摇截屏、图片分享、视频和音频播放以及发邮件等功能。在实际应用中,该软件取得了较好的效果。
Abstract:
Key words :

  摘  要: 针对目前大多数Android手机文件浏览器只能浏览多种格式的文件,不支持直接打开和编辑Word、Excel和PDF等办公文档的特点,开发了一款基于Android的多功能文件浏览器。该软件除了提供常规文件浏览功能之外,还能直接打开Word、Excel和PDF等办公文档,并能对该类文档进行简单的编辑,同时还具有换肤、扫描文件、摇一摇截屏、图片分享、视频和音频播放以及发邮件等功能。在实际应用中,该软件取得了较好的效果。

  关键词Android系统;文件浏览器;办公文档;摇一摇截屏;图片分享

0 引言

  近年来,智能手机在国内的普及率越来越高,国内手机市场主要以Android手机和苹果手机为主流,而Android系统的开源性和免费性使其在国内手机市场占有更高的份额[1]。

  随着手机文件越来越多,迫切需要一个文件管理器来针对各种不同类型的文件,提供不同的个性化管理,例如对办公类型的文件需要能够提供查阅、分发功能;而对娱乐、生活类的文件则需要提供分享功能等。其中,对于移动办公用户来说,尤其需要支持查看常见的办公文件。目前,市面上出现了各种各样的文件管理器,例如RE文件浏览器、简易文件管理、ES文件浏览器、BlackMoon File Browser等应用,这些文件浏览器都提供了基本的文件浏览功能,但对于某些类别文件的打开,需要借助第三方软件才可以实现。由于文件浏览器本身不提供文件阅读的功能,为了查看DOC、XLS和PDF文件,用户不得不另外下载第三方软件,才能实现阅读和编辑办公文档。

  为使文件浏览器能适应更多的应用场景,本文开发了一款基于Android的多功能文件浏览器,该软件除了提供常规文件浏览功能之外,还能直接打开Word、Excel和PDF等办公文档,并能对该类文档进行简单的编辑,同时还具有换肤、扫描文件、摇一摇截屏、图片分享、视频和音频播放以及发邮件等功能。

1 相关技术

  Android是Google开发的基于Linux平台的开源手机操作系统[2]。Android平台主要在操作系统和中间件支撑下,能够用于用户界面设计和应用软件开发[3],Android自身集成丰富的API,且大部分代码开源。Android的应用框架层采用结构化设计,从而简化了Android应用程序的开发[4],Android四大组件包括Activity、Service、BroadCastReceiver、ContentProvider[5],Android应用程序的开发环境只需Eclipse和插件ADT即可[6]。

2 需求分析

  2.1 功能描述

  本系统具有基本文件浏览、媒体文件浏览(图片浏览、音频浏览、视频浏览)、扫描、摇一摇截屏、发邮件、换肤等功能。

  (1)具有基本的文件(包括Word、Excel、PDF文件)浏览功能并实现文件夹和文件复制、粘贴、重命名、属性修改等功能;

  (2)媒体文件浏览,包括对图片、音频、视频的浏览功能;

  (3)文件扫描功能,通过手机摄像头来扫描报纸杂志并将其转换为PDF文件;

  (4)截屏功能,摇一摇手机,即可在编辑或浏览状态下截取手机屏幕内容保存成图片格式,并可将图片转换为PDF文件;

  (5)实现将文件以附件形式发送邮件功能,不需绑定第三方邮件系统即可完成邮件发送等操作;

  (6)具有换肤功能,可根据用户喜好更换背景。

  2.2 用例分析

  根据以上的功能描述,得出图1所示的用户用例图。

001.jpg

3 系统设计

  3.1 文件浏览器架构设计

  系统架构主要划分为前端界面、业务逻辑层和底层工具类。

  对于所有展示在文件浏览器中的文件,无论是何种格式,底层都统一提供文件管理的工具类,统一实现对文件的复制、剪切和删除的功能。由于本系统具备的邮件附件发送、平台分享的功能需要网络连接,因此在底层工具类中增加网络连接模块,提供常用的网络连接操作。

  业务逻辑层包括移动办公和娱乐分享功能,无论是移动办公还是娱乐分享功能,都是建立在对手机文件浏览的基础之上的。因此,在业务逻辑层中,将文件浏览作为业务逻辑的基层,在其上实现移动办公的功能模块和娱乐分享的功能模块。而移动办公的功能模块又细化为DOC、XLS、PDF文件查看、文件扫描转换、摇一摇截屏、发送电邮功能,娱乐分享模块包括图片等媒体文件的分享和换肤功能。

  系统架构如图2所示。

002.jpg

  3.2 主要功能时序图

  3.2.1 办公文档操作时序图

  对办公文档PDF进行操作时,需要先对其进行解码操作,然后才能显示和编辑,而对Word、Excel文件则可直接进行读操作。办公文档操作时序图如图3所示。

003.jpg

  3.2.2 分享图片时序图

  用户对图片进行分享时,首先通过分享界面选择图片所在路径,然后获取图片信息进行分享,分享图片时序图如图4所示。

004.jpg

  3.2.3 发送邮件时序图

  发送邮件时通过调用发送邮件服务进行发送,发送邮件时序图如图5所示。

4 文件浏览器主要功能的开发

  4.1 读取办公文档的方法

  读取Word和Excel文档时,首先将文档的内容写入SD Card中,并以.html的格式进行保存,然后再通过解析HTML文档的方法将原文档数据读出显示。

  以下是读取Excel文档的onCreate()函数代码:

  protected void onCreate(Bundle savedInstanceState) {

  // TODO Auto-generated method stub

  super.onCreate(savedInstanceState);

  setContentView(R.layout.view);

  view=(WebView) this.findViewById(R.id.show);

  shake.button(ExcelReadActivity.this,activitys);

  try{

  makeFile();

  Intent intent=this.getIntent();

  Bundle bundle=intent.getExtras();

  nameStr=bundle.getString("name");

  readExcel(nameStr);

  WebSettings setting=view.getSettings();

  setting.setTextSize(TextSize.SMALLEST);

  setting.setJavaScriptEnabled(true);

  view.setInitialScale(300);

  setting.setBuiltInZoomControls(true);

  setting.setCacheMode(WebSettings.

  LOAD_CACHE_ELSE_NETWORK);

  String uri="file:///mnt/sdcard/excel/excel.html";

  view.loadUrl(uri);

  }

  catch (Exception e){

  e.printStackTrace();

  }

  }

  将Excel文件以HTML格式保存的部分代码如下:

  public StringBuffer readExcel(String excelFileName)

  throws Exception {

  myFile=new File(htmlPath);

  output=new FileOutputStream(myFile);

  lsb.append("<html xmlns:o=′urn:schemas-microsoft-com:office:office′ xmlns:x=′urn:schemas-microsoft-com:office:excel′ xmlns=′http://www.w3.org/TR/REC-html40′>");

  lsb.append("<head><meta http-equiv=Content-Type content=′text/html; charset=utf-8′><meta name=ProgId content=Excel.Sheet>");

  HSSFSheet sheet=null;

  try{

  HSSFWorkbook workbook=new HSSFWorkbook(new

  FileInputStream(excelFileName)); //获整个Excel

  for(int sheetIndex=0; sheetIndex<workbook.getNumber

  OfSheets();sheetIndex++){

  sheet=workbook.getSheetAt(sheetIndex);

  //获所有的sheet

  String sheetName=workbook.getSheetName(sheetIndex); if(workbook.getSheetAt(sheetIndex)!=null){

  heet=workbook.getSheetAt(sheetIndex);

  //获得不为空的这个sheet

  if(sheet!=null){

  int firstRowNum=sheet.getFirstRowNum(); //第一行

  int lastRowNum=sheet.getLastRowNum(); //最后一行

  //……

  4.2 摇一摇截屏的实现

  当正在运行文件浏览器时,无论正在打开的是哪一个界面,只要摇一摇手机则可以对手机当前屏幕显示的内容进行截图,并且保存在SD Card[7]指定目录中。摇一摇截屏部分代码如下:

  public void button(final Activity shake,final String activity)

  {

  mVibrator=(Vibrator)shake.getApplication().getSystemService(

  shake.VIBRATOR_SERVICE);

  mShakeListener=new ShakeListener(shake);

  mShakeListener.setOnShakeListener(new OnShakeListener(){

  public void onShake(){

  mShakeListener.stop();

  startVibrato(); //振动

  new Handler().postDelayed(new Runnable(){

  public void run(){

  View vw=shake.getWindow().getDecorView();

  //shake_button ss=new shake_button();

  //shake.bu(vw,shake,activity);

  mVibrator.cancel();            mShakeListener.start();

  }

  }, 2000);

  }

  });

  }

5 多功能文件浏览器的应用

  多功能文件浏览器采用Android 4.2.2开发。系统的菜单列表、文件浏览以及音乐浏览界面如图6所示。

005.jpg

  阅读PDF文件、扫描文档和保存PDF界面如图7所示。

006.jpg

  发送邮件、文件分享以及换肤界面如图8所示。

007.jpg


6 结论

  本文详细介绍了一款基于Android平台的多功能文件浏览器,软件实现了基本文件浏览、办公文件阅读和简单编辑、媒体文件浏览、扫描文件、摇一摇截屏、发邮件、换肤等功能,该软件达到了预期的效果并成功上线使用。

参考文献

  [1] 李冬睿,赵建保,许统德,等.基于Android的多人定位系统的设计与实现[J].微型机与应用,2015,34(8):76-79.

  [2] 张亚杰.基于Android平台的移动终端应用程序的研究与开发[D].郑州:郑州大学,2013.

  [3] 代敏.基于Android平台下手机定位程序的设计及实现[J].计算机与数字工程,2012,40(4):143-145.

  [4] 农丽萍,王力虎,黄一平.Android在嵌入式车载导航系统的应用研究[J].计算机工程与设计,2010,31(11):2473-2476.

  [5] 曾晓辉,文成玉,陈超,等.基于二维码的移动巡检新系统的设计与实现[J].电子技术应用,2014,40(9):122-125.

  [6] 程涛,陈慧琴,孙萍,等.基于Android的手机相册分享软件的设计与实现[J].微型机与应用,2014,33(13):1-2.

  [7] 张义芳.基于Android的SD卡测试系统的设计和实现[D].广州:广东工业大学,2014.


此内容为AET网站原创,未经授权禁止转载。