《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于Android的多功能文件瀏覽器的設(shè)計與開發(fā)
基于Android的多功能文件瀏覽器的設(shè)計與開發(fā)
2015年微型機與應(yīng)用第22期
李冬睿,邱尚明
(廣東農(nóng)工商職業(yè)技術(shù)學(xué)院 計算機系,廣東 廣州 510507)
摘要: 針對目前大多數(shù)Android手機文件瀏覽器只能瀏覽多種格式的文件,不支持直接打開和編輯Word、Excel和PDF等辦公文檔的特點,開發(fā)了一款基于Android的多功能文件瀏覽器。該軟件除了提供常規(guī)文件瀏覽功能之外,還能直接打開Word、Excel和PDF等辦公文檔,并能對該類文檔進行簡單的編輯,同時還具有換膚、掃描文件、搖一搖截屏、圖片分享、視頻和音頻播放以及發(fā)郵件等功能。在實際應(yīng)用中,該軟件取得了較好的效果。
Abstract:
Key words :

  摘  要: 針對目前大多數(shù)Android手機文件瀏覽器只能瀏覽多種格式的文件,不支持直接打開和編輯Word、Excel和PDF等辦公文檔的特點,開發(fā)了一款基于Android的多功能文件瀏覽器。該軟件除了提供常規(guī)文件瀏覽功能之外,還能直接打開Word、Excel和PDF等辦公文檔,并能對該類文檔進行簡單的編輯,同時還具有換膚、掃描文件、搖一搖截屏、圖片分享、視頻和音頻播放以及發(fā)郵件等功能。在實際應(yīng)用中,該軟件取得了較好的效果。

  關(guān)鍵詞Android系統(tǒng);文件瀏覽器;辦公文檔;搖一搖截屏;圖片分享

0 引言

  近年來,智能手機在國內(nèi)的普及率越來越高,國內(nèi)手機市場主要以Android手機和蘋果手機為主流,而Android系統(tǒng)的開源性和免費性使其在國內(nèi)手機市場占有更高的份額[1]。

  隨著手機文件越來越多,迫切需要一個文件管理器來針對各種不同類型的文件,提供不同的個性化管理,例如對辦公類型的文件需要能夠提供查閱、分發(fā)功能;而對娛樂、生活類的文件則需要提供分享功能等。其中,對于移動辦公用戶來說,尤其需要支持查看常見的辦公文件。目前,市面上出現(xiàn)了各種各樣的文件管理器,例如RE文件瀏覽器、簡易文件管理、ES文件瀏覽器、BlackMoon File Browser等應(yīng)用,這些文件瀏覽器都提供了基本的文件瀏覽功能,但對于某些類別文件的打開,需要借助第三方軟件才可以實現(xiàn)。由于文件瀏覽器本身不提供文件閱讀的功能,為了查看DOC、XLS和PDF文件,用戶不得不另外下載第三方軟件,才能實現(xiàn)閱讀和編輯辦公文檔。

  為使文件瀏覽器能適應(yīng)更多的應(yīng)用場景,本文開發(fā)了一款基于Android的多功能文件瀏覽器,該軟件除了提供常規(guī)文件瀏覽功能之外,還能直接打開Word、Excel和PDF等辦公文檔,并能對該類文檔進行簡單的編輯,同時還具有換膚、掃描文件、搖一搖截屏、圖片分享、視頻和音頻播放以及發(fā)郵件等功能。

1 相關(guān)技術(shù)

  Android是Google開發(fā)的基于Linux平臺的開源手機操作系統(tǒng)[2]。Android平臺主要在操作系統(tǒng)和中間件支撐下,能夠用于用戶界面設(shè)計和應(yīng)用軟件開發(fā)[3],Android自身集成豐富的API,且大部分代碼開源。Android的應(yīng)用框架層采用結(jié)構(gòu)化設(shè)計,從而簡化了Android應(yīng)用程序的開發(fā)[4],Android四大組件包括Activity、Service、BroadCastReceiver、ContentProvider[5],Android應(yīng)用程序的開發(fā)環(huán)境只需Eclipse和插件ADT即可[6]。

2 需求分析

  2.1 功能描述

  本系統(tǒng)具有基本文件瀏覽、媒體文件瀏覽(圖片瀏覽、音頻瀏覽、視頻瀏覽)、掃描、搖一搖截屏、發(fā)郵件、換膚等功能。

 ?。?)具有基本的文件(包括Word、Excel、PDF文件)瀏覽功能并實現(xiàn)文件夾和文件復(fù)制、粘貼、重命名、屬性修改等功能;

 ?。?)媒體文件瀏覽,包括對圖片、音頻、視頻的瀏覽功能;

 ?。?)文件掃描功能,通過手機攝像頭來掃描報紙雜志并將其轉(zhuǎn)換為PDF文件;

  (4)截屏功能,搖一搖手機,即可在編輯或瀏覽狀態(tài)下截取手機屏幕內(nèi)容保存成圖片格式,并可將圖片轉(zhuǎn)換為PDF文件;

 ?。?)實現(xiàn)將文件以附件形式發(fā)送郵件功能,不需綁定第三方郵件系統(tǒng)即可完成郵件發(fā)送等操作;

 ?。?)具有換膚功能,可根據(jù)用戶喜好更換背景。

  2.2 用例分析

  根據(jù)以上的功能描述,得出圖1所示的用戶用例圖。

001.jpg

3 系統(tǒng)設(shè)計

  3.1 文件瀏覽器架構(gòu)設(shè)計

  系統(tǒng)架構(gòu)主要劃分為前端界面、業(yè)務(wù)邏輯層和底層工具類。

  對于所有展示在文件瀏覽器中的文件,無論是何種格式,底層都統(tǒng)一提供文件管理的工具類,統(tǒng)一實現(xiàn)對文件的復(fù)制、剪切和刪除的功能。由于本系統(tǒng)具備的郵件附件發(fā)送、平臺分享的功能需要網(wǎng)絡(luò)連接,因此在底層工具類中增加網(wǎng)絡(luò)連接模塊,提供常用的網(wǎng)絡(luò)連接操作。

  業(yè)務(wù)邏輯層包括移動辦公和娛樂分享功能,無論是移動辦公還是娛樂分享功能,都是建立在對手機文件瀏覽的基礎(chǔ)之上的。因此,在業(yè)務(wù)邏輯層中,將文件瀏覽作為業(yè)務(wù)邏輯的基層,在其上實現(xiàn)移動辦公的功能模塊和娛樂分享的功能模塊。而移動辦公的功能模塊又細化為DOC、XLS、PDF文件查看、文件掃描轉(zhuǎn)換、搖一搖截屏、發(fā)送電郵功能,娛樂分享模塊包括圖片等媒體文件的分享和換膚功能。

  系統(tǒng)架構(gòu)如圖2所示。

002.jpg

  3.2 主要功能時序圖

  3.2.1 辦公文檔操作時序圖

  對辦公文檔PDF進行操作時,需要先對其進行解碼操作,然后才能顯示和編輯,而對Word、Excel文件則可直接進行讀操作。辦公文檔操作時序圖如圖3所示。

003.jpg

  3.2.2 分享圖片時序圖

  用戶對圖片進行分享時,首先通過分享界面選擇圖片所在路徑,然后獲取圖片信息進行分享,分享圖片時序圖如圖4所示。

004.jpg

  3.2.3 發(fā)送郵件時序圖

  發(fā)送郵件時通過調(diào)用發(fā)送郵件服務(wù)進行發(fā)送,發(fā)送郵件時序圖如圖5所示。

4 文件瀏覽器主要功能的開發(fā)

  4.1 讀取辦公文檔的方法

  讀取Word和Excel文檔時,首先將文檔的內(nèi)容寫入SD Card中,并以.html的格式進行保存,然后再通過解析HTML文檔的方法將原文檔數(shù)據(jù)讀出顯示。

  以下是讀取Excel文檔的onCreate()函數(shù)代碼:

  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 搖一搖截屏的實現(xiàn)

  當正在運行文件瀏覽器時,無論正在打開的是哪一個界面,只要搖一搖手機則可以對手機當前屏幕顯示的內(nèi)容進行截圖,并且保存在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 多功能文件瀏覽器的應(yīng)用

  多功能文件瀏覽器采用Android 4.2.2開發(fā)。系統(tǒng)的菜單列表、文件瀏覽以及音樂瀏覽界面如圖6所示。

005.jpg

  閱讀PDF文件、掃描文檔和保存PDF界面如圖7所示。

006.jpg

  發(fā)送郵件、文件分享以及換膚界面如圖8所示。

007.jpg


6 結(jié)論

  本文詳細介紹了一款基于Android平臺的多功能文件瀏覽器,軟件實現(xiàn)了基本文件瀏覽、辦公文件閱讀和簡單編輯、媒體文件瀏覽、掃描文件、搖一搖截屏、發(fā)郵件、換膚等功能,該軟件達到了預(yù)期的效果并成功上線使用。

參考文獻

  [1] 李冬睿,趙建保,許統(tǒng)德,等.基于Android的多人定位系統(tǒng)的設(shè)計與實現(xiàn)[J].微型機與應(yīng)用,2015,34(8):76-79.

  [2] 張亞杰.基于Android平臺的移動終端應(yīng)用程序的研究與開發(fā)[D].鄭州:鄭州大學(xué),2013.

  [3] 代敏.基于Android平臺下手機定位程序的設(shè)計及實現(xiàn)[J].計算機與數(shù)字工程,2012,40(4):143-145.

  [4] 農(nóng)麗萍,王力虎,黃一平.Android在嵌入式車載導(dǎo)航系統(tǒng)的應(yīng)用研究[J].計算機工程與設(shè)計,2010,31(11):2473-2476.

  [5] 曾曉輝,文成玉,陳超,等.基于二維碼的移動巡檢新系統(tǒng)的設(shè)計與實現(xiàn)[J].電子技術(shù)應(yīng)用,2014,40(9):122-125.

  [6] 程濤,陳慧琴,孫萍,等.基于Android的手機相冊分享軟件的設(shè)計與實現(xiàn)[J].微型機與應(yīng)用,2014,33(13):1-2.

  [7] 張義芳.基于Android的SD卡測試系統(tǒng)的設(shè)計和實現(xiàn)[D].廣州:廣東工業(yè)大學(xué),2014.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。