android視頻播放器課程設計_第1頁
已閱讀1頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p><b>  摘 要</b></p><p>  如今,隨著基于android的智能手機的興起,一款具有個性化的多功能播放器是消費者的一個主要需求。因此,設計一個基于android手機的簡單音頻播放器,具有重要的實際意義。遵循軟件工程規(guī)范,文中主要介紹了基于android的簡單影音播放器的設計和實現(xiàn)過程,實現(xiàn)了手機中視頻文件的過濾讀取、播放、暫停、重復、停止等功能。同時簡單的

2、實現(xiàn)了實時流協(xié)議RTSP(Real Time Streaming Protocol)網(wǎng)上視頻流的播放功能。選用的開發(fā)環(huán)境是基于Eclipse和Android ADT 的Java編寫代碼,使用了具有信息緩沖的surface view控件、美化界面布局的Android Activity和存放數(shù)據(jù)的數(shù)據(jù)庫SQLite。</p><p>  關鍵詞:Android;簡單影音播放器; 視頻播放器</p>&l

3、t;p><b>  目錄</b></p><p>  第1章 開發(fā)工具與環(huán)境1</p><p>  1.1 Android平臺1</p><p>  1.2 Java開發(fā)環(huán)境1</p><p>  1.3 Eclipse2</p><p>  1.4 Android程序基礎—Andr

4、oid應用程序的構成3</p><p>  1.5 JDK安裝4</p><p>  1.6 Android SDK安裝以及系統(tǒng)設置4</p><p>  1.7 Eclipse安裝以及ADT工具的安裝5</p><p>  第2章 系統(tǒng)分析與設計6</p><p>  2.1系統(tǒng)的可行性分析6</p

5、><p>  2.2 系統(tǒng)的需求分析6</p><p>  2.3系統(tǒng)的用例分析7</p><p>  第3章 系統(tǒng)詳細設計8</p><p>  3.1 本系統(tǒng)的主要代碼VideoActivity8</p><p>  3.2 軟件布局設計11</p><p>  3.3 視頻文件搜索功

6、能的設計13</p><p>  3.3 其他功能的設計13</p><p><b>  總結14</b></p><p><b>  參考文獻15</b></p><p>  第1章 開發(fā)工具與環(huán)境</p><p>  1.1 Android平臺</p>

7、<p>  1. 谷歌與開放手機聯(lián)盟合作開發(fā)了Android, 這個聯(lián)盟由包括中國移動、摩托羅拉、高通、宏達和T-Mobile在內的30多家技術和無線應用的領軍企業(yè)組成。</p><p>  2. Android是一個真正意義上的開放性移動設備綜合平臺。通過與運營商、設備制造商、開發(fā)商和其他有關各方結成深層次的合作伙伴關系,來建立標準化、開放式的移動電話軟件平臺,在移動產(chǎn)業(yè)內形成一個開放式的生態(tài)系統(tǒng)

8、,這樣應用之間的通用性和互聯(lián)性將在最大程度上得到保持。</p><p>  3. 所有的Android應用之間是完全平等的。</p><p>  4. 所有的應用都運行在一個核心的引擎上面,這個核心引擎其實就是一個虛擬機,它提供了一系列用于應用和硬件資源間進行通訊的API。撇開這個核心引擎,Android的所有其他的東西都是“應用”。</p><p>  5. An

9、droid打破了應用之間的界限,比如開發(fā)人員可以把Web上的數(shù)據(jù)與本地的聯(lián)系人,日歷,位置信息結合起來,為用戶創(chuàng)造全新的用戶體驗。</p><p>  1.2 Java開發(fā)環(huán)境</p><p>  Java技術包含了一個編程語言及一個平臺。Java編程語言具有很多特性,如面向對象、跨平臺、分布式、多線程、解釋性等等。Java編程語言起源于Sun公司的一個叫“Green”的項目,目的是開發(fā)嵌

10、入式家用電器的分布式系統(tǒng),使電氣更加智能化。1996年1月發(fā)布了JDK1.1版本,一門新語言自此走向世界。之后,1998年12月發(fā)布了1.2版本,2002年2月發(fā)布1.4版本,2004年10月發(fā)布1.5版本(5.0),2006年12月發(fā)布1.6(6.0)版本,這是目前的最新版本。Java1.2版本是一個重要的版本,基于該版本,Sun將Java技術分為J2SE、J2ME、J2EE,其中J2SE為創(chuàng)建和運行Java程序提供了最基本的環(huán)境,J

11、2ME與J2EE建立在J2SE的基礎上,J2ME為嵌入式應用(如運行在手機里的Java程序)提供開發(fā)與運行環(huán)境,J2EE為分布式的企業(yè)應用提供開發(fā)與運行環(huán)境。</p><p>  1.3 Eclipse</p><p>  Eclipse的基礎是富客戶機平臺(Rich Client Platform,即RCP)。</p><p>  RCP包括下列組件:</p

12、><p>  1. 核心平臺(Eclipse,運行插件)</p><p>  2. 標準集束框架(OSGi : Open Service Gateway initiative)</p><p>  3. 可移植構件工具包(SWT : Eclipse's Standard Widget Toolkit)</p><p>  5. JFace

13、(文件緩沖,文本處理,文本編輯器)</p><p>  Eclipse采用的技術是IBM公司開發(fā)的SWT,這是一種基于Java的窗口組件,類似Java本身提供的AWT和Swing窗口組件:不過IBM聲稱SWT比其他Java窗口組件更有效率。Eclipse的用戶界面還使用了GUI中間層JFace,從而簡化了基于SWT的應用程序的構建。Eclipse的設計思想是:一切皆插件。Eclipse核心很小,其他所有功能都以插

14、件的形式附加于Eclipse核心之上。Eclipse基于內核包括:圖形API(SWT/JFace),Java開發(fā)環(huán)境插件(JDT),插件開發(fā)環(huán)境(PDE)等。Eclipse的插件機制是輕型軟件組件化架構。在富客戶機平臺上,Eclipse使用插件來提供所有的附加功能,例如支持Java以外的其他語言。已有的分離的插件已經(jīng)能夠支持C/C++(CDT)、Perl、Ruby、Python、telnet和數(shù)據(jù)庫開發(fā)。插件架構能夠支持將任意的擴展加入

15、到現(xiàn)有環(huán)境中,例如配置管理,而決不僅僅限于支持各種編程語言。</p><p>  1.4 Android程序基礎—Android應用程序的構成</p><p>  1.Activity 顧名思義,Activity就是活動。應用程序必須至少包含一個Activity。Activity提供了一個虛擬的用戶接口,每一個Activity都有一個默認的窗口可以用來顯示用戶界面,一般情況下,它

16、是全屏的窗口。例如,影音播放軟件的每個用戶界面就是Activity。</p><p>  2.Service Service與Activity的主要區(qū)別在于,Service是在后臺活動的,它沒有用戶界面。典型的應用場景是,用戶選擇了一個播放列表開始播放后,離開了該用戶界面(Activity),如果仍然希望歌曲不會暫停,就可以用Service去調用播放器,而不是在Activity中調用播放器。</

17、p><p>  3.Intent 在Android中,每一個行為都可以抽象為一個Intent??梢院唵蔚匕袸ntent理解為一個包含了數(shù)據(jù)的消息。Intent可以用于啟動一個Act-ivity或者Service,可以用于進程間的通信。事實上,應用程序的啟動也是通過Intent實現(xiàn)的。</p><p>  4.Content providers Android平臺內置了一套SQLit

18、e數(shù)據(jù)儲存機制,并包含一系列管理SQLite Database的相關方法。在應用程序中,可以通過Content prov-iders訪問數(shù)據(jù)庫。每個Content provider都定義了一系列的方法用于訪問它對應的數(shù)據(jù)庫。應用程序在新建數(shù)據(jù)庫時也可以定義相應的Con-tent provider用于向其他應用程序共享數(shù)據(jù)。一般情況下,應用程序不直接調用Content provider定義的函數(shù),而是通過ContentResolver間接

19、調用。</p><p><b>  1.5 JDK安裝</b></p><p>  JDK是Java語言的原創(chuàng)者推出的原始開發(fā)環(huán)境。采用JDK開發(fā)Java程序能夠很快理解程序中各部分代碼之間的關系,有利于理解Java面向對象的設計思想。在Windows上安裝JDK非常簡單,訪問Oracle官方網(wǎng)站下載頁面,網(wǎng)址為http://www.oracle.com/techne

20、twork/indexes/downloads/index.html,也可從其他網(wǎng)站下載。下載完成后,雙擊運行JDK安裝程序并根據(jù)提示設定環(huán)境變量。</p><p>  1.6 Android SDK安裝以及系統(tǒng)設置</p><p>  下載好SDK包后,將zip文件解壓縮至合適的地方。在下文中,默認SDK安裝目錄為$SDK_ROOT 。</p><p>  1.

21、Linux下,打開文件~/.bash_profile或者~/.bashrc,找到設定PATH環(huán)境變量的一行,將$SDK_ROOT/tools的完整路徑加入其中。如果沒有找到設定PATH變量的行,可以自己添加一行: export PATH=${PATH}:<$SDK_ROOT/tools的完全路徑></p><p>  2. Mac下,在home目錄中找到文件.bash_profile,和Linux的一

22、樣處理。如果還沒有在機器上設定這個文件,可以創(chuàng)建一個.bash_profile文件。</p><p>  3. Windows下,右鍵點擊【我的電腦】,選擇【屬性】,在【高級】頁中,點擊【環(huán)境變量】按鍵,在彈出的對話框中雙擊“系統(tǒng)變量”中的變量“Path”,將$SDK/tools的完全路徑加入其中。</p><p>  通過將$SDK/tools加入系統(tǒng)路徑,在運行adb和其它一些命令行工

23、具時就不需要鍵入完全路徑名了。需要注意到是,當升級了SDK后,如果安裝路徑有變動的話,不要忘記了更新PATH變量的設置,將其指向變動后的路徑。</p><p>  配置SDK有兩種方法:第一種,通過SDK下載器自動下載和配置。適合網(wǎng)絡好,下載速度快的情況;第二種,借助工具下載SDK文件,手工配置。適合網(wǎng)絡不是很好,下載速度慢的情況下。</p><p>  1.7 Eclipse安裝以及AD

24、T工具的安裝</p><p>  下載Eclipse安裝包后,無需安裝,只需解壓縮,點擊“eclipse.exe”文件即可運行。</p><p>  Android為Eclipse定制了一個插件,即Android Develpoment Tools(ADT),目的是為用戶提供一個強大的綜合環(huán)境用于開發(fā)Android應用程序。ADT擴展了Eclipse的功能,可以讓用戶快速建立Android

25、項目,創(chuàng)建應用程序界面,在基于Android框架API的基礎上添加組件,以及用SDK工具集調試應用程序,甚至導出簽名(或未簽名)的APKs以便發(fā)行應用程序。安裝ADT:啟動Eclipse,選擇Help>Install New Software,在出現(xiàn)的對話框里,點擊Add按鈕,在對話框的name一欄輸入"ADT",然后點擊Archive...,瀏覽和選擇已經(jīng)下載的ADT插件壓縮文件,點擊OK。返回可用軟件的視圖

26、,你會看到這個插件,然后選擇Developmer Tools,點擊Next,最后重啟Eclipse。</p><p>  軟件開發(fā)環(huán)境搭建好后,便可以開始創(chuàng)建項目了。</p><p>  第2章 系統(tǒng)分析與設計</p><p>  2.1系統(tǒng)的可行性分析</p><p>  可行性研究是為了弄清楚系統(tǒng)開發(fā)的項目是不是可以實現(xiàn)和值得進行研究的過

27、程,實際上是一次大大簡化系統(tǒng)分析和系統(tǒng)設計的過程,所以,進行可執(zhí)行性的分析是非常必要的,也是很重要的,經(jīng)過最初的設計目標和進行的實時調查得出以下四點的可行性分析:</p><p> ?。?)技術可行性:Eclipse + Android ADT的技術已經(jīng)較為成熟,通過SUN公司(現(xiàn)被ORCEL公司收購)推出的跨平臺、動態(tài)的JAVA語言進行開發(fā)。</p><p> ?。?)運行可行性:該系統(tǒng)

28、需要Android虛擬機環(huán)境,Eclipse中安裝ADT,DDMS等Google Android相關插件。其運行環(huán)境已經(jīng)相當穩(wěn)定,它功能豐富,包括了完備的Android程序的編碼、調試、測試和發(fā)布功能,其中支持所有Android應用開發(fā)相關技術,包括SQLite,Skia,3D制作,Android XML,能夠很好的發(fā)布Android的應用程序APK包。</p><p> ?。?)法律可行性:因為是自主開發(fā)設計,

29、所以不會構成侵權,在法律上是可行的。</p><p>  通過以上的可行性分析,將采用Eclipse+Android ADT + DDMS技術,運用JAVA語言進行系統(tǒng)的開發(fā)。</p><p>  2.2 系統(tǒng)的需求分析</p><p>  根據(jù)分析需求,這個系統(tǒng)必須實現(xiàn)以下的功能:</p><p>  (1) 實現(xiàn)手機支持的視頻格式文件的播

30、放功能。</p><p>  作為播放器,其核心就是能夠流暢的播放視頻文件。手機一般不會支持對解碼要求太高的格式,如rmvb。作為手機硬件能夠承載的視頻流文件,都能夠流暢的播放,如MP3,MP4。</p><p>  (2) 能夠在手機里面定位視頻文件。</p><p>  在本播放器設計中,就是實現(xiàn)這樣一個能夠直接給出視頻文件的絕對地址,能夠對其進行相關的播放相關

31、的控制相應。如直接播放,暫停,重播等。</p><p>  2.3系統(tǒng)的用例分析</p><p>  視頻基本播放用例如圖2.1所示。</p><p>  圖2.1 視頻基本播放用例圖</p><p>  第3章 系統(tǒng)詳細設計</p><p>  3.1 本系統(tǒng)的主要代碼VideoActivity</p>

32、<p>  VideoActivity中包含了播放器的所有的功能動作。詳細代碼如下:</p><p>  import android.app.Activity;</p><p>  import android.media.AudioManager;</p><p>  import android.media.MediaPlayer;</p&

33、gt;<p>  import android.os.Bundle;</p><p>  import android.util.Log;</p><p>  import android.view.SurfaceHolder;</p><p>  import android.view.SurfaceView;</p><p>

34、;  import android.view.View;</p><p>  import android.widget.EditText;</p><p>  import android.widget.ImageButton;</p><p>  public class VideoActivity extends Activity {</p>&

35、lt;p>  private static final String TAG = "VideoActivity";</p><p>  private EditText filenameText;</p><p>  private SurfaceView surfaceView;</p><p>  private MediaPlayer

36、 mediaPlayer;</p><p><b>  @Override</b></p><p>  public void onCreate(Bundle savedInstanceState) {</p><p>  super.onCreate(savedInstanceState);</p><p>  set

37、ContentView(R.layout.main);</p><p>  ButtonClickListener listener = new ButtonClickListener();</p><p>  ImageButton playButton =(ImageButton) this.findViewById(R.id.play);</p><p>  

38、playButton.setOnClickListener(listener);</p><p>  ImageButton pauseButton =(ImageButton) this.findViewById(R.id.pause);</p><p>  pauseButton.setOnClickListener(listener);</p><p>  I

39、mageButton resetButton =(ImageButton) this.findViewById(R.id.reset);</p><p>  resetButton.setOnClickListener(listener);</p><p>  ImageButton stopButton =(ImageButton) this.findViewById(R.id.stop

40、);</p><p>  stopButton.setOnClickListener(listener);</p><p>  filenameText =(EditText) this.findViewById(R.id.filename);</p><p>  surfaceView =(SurfaceView) this.findViewById(R.id.s

41、urfaceView);</p><p>  /*下面設置Surface不維護自己的緩沖區(qū),而是等待屏幕的渲染引擎將內容推送到用戶面前*/</p><p>  surfaceView.getHolder().setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);</p><p>  surfaceView.getHolde

42、r().setFixedSize(176, 144);//設置分辨率</p><p>  mediaPlayer = new MediaPlayer();</p><p><b>  }</b></p><p><b>  @Override</b></p><p>  protected voi

43、d onDestroy() {</p><p>  if(mediaPlayer.isPlaying()) mediaPlayer.stop();</p><p>  mediaPlayer.release();</p><p>  super.onDestroy();</p><p><b>  }</b></p

44、><p><b>  @Override</b></p><p>  protected void onPause() {</p><p>  if(mediaPlayer.isPlaying()) mediaPlayer.pause();</p><p>  super.onPause();</p><

45、p><b>  }</b></p><p><b>  @Override</b></p><p>  protected void onResume() {</p><p>  if(!mediaPlayer.isPlaying()) mediaPlayer.start();</p><p>

46、;  super.onResume();</p><p><b>  }</b></p><p>  private class ButtonClickListener implements View.OnClickListener{</p><p><b>  @Override</b></p><p

47、>  public void onClick(View v) {</p><p><b>  try {</b></p><p>  String filename = filenameText.getText().toString();</p><p>  switch (v.getId()) {</p><p>

48、;  case R.id.play://來自播放按鈕</p><p>  mediaPlayer.reset();</p><p>  mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);</p><p>  mediaPlayer.setDataSource("/sdcard/"+

49、 filename);//設置需要播放的視頻</p><p>  mediaPlayer.setDisplay(surfaceView.getHolder());//把視頻畫面輸出到SurfaceView</p><p>  mediaPlayer.prepare();</p><p>  mediaPlayer.start();</p><p&

50、gt;<b>  break;</b></p><p>  case R.id.pause://來自暫停按鈕</p><p>  if(mediaPlayer.isPlaying()){</p><p>  mediaPlayer.pause();</p><p><b>  }else{</b>&

51、lt;/p><p>  mediaPlayer.start();</p><p><b>  }</b></p><p><b>  break;</b></p><p>  case R.id.reset://來自重新播放按鈕</p><p>  if(!mediaPlayer

52、.isPlaying()){</p><p>  mediaPlayer.reset();</p><p>  mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);</p><p>  mediaPlayer.setDataSource("/sdcard/"+ filename);/

53、/設置需要播放的視頻</p><p>  mediaPlayer.setDisplay(surfaceView.getHolder());//把視頻畫面輸出到SurfaceView</p><p>  mediaPlayer.prepare();</p><p>  mediaPlayer.start();</p><p><b>

54、  }</b></p><p>  mediaPlayer.seekTo(0);</p><p><b>  break;</b></p><p>  case R.id.stop://來自停止按鈕</p><p>  if(mediaPlayer.isPlaying()){</p><p

55、>  mediaPlayer.stop();</p><p><b>  }</b></p><p><b>  break;</b></p><p><b>  }</b></p><p>  } catch (Exception e) {</p>&l

56、t;p>  Log.e(TAG, e.toString());</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p>&l

57、t;p>  3.2 軟件布局設計</p><p>  此為一個簡單的視頻播放器,設計的軟件需要支持快進、快退、暫停、繼續(xù)和進度拖曳等功能。視頻播放軟件工程文件主要包括src文件夾(Java源碼)、res文件夾(資源文件)和AndroidMainfest.xml(程序清單)。軟件主要由Activities組成,每個Activity對應一個模塊。不同的Activity通過Intent進行通信和相互調用。軟件的布

58、局(main.xml)如下:</p><p>  <?xml version="1.0" encoding="utf-8"?></p><p>  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"</p>

59、<p>  android:background="#FFFFFF"</p><p>  android:orientation="vertical"</p><p>  android:layout_width="fill_parent"</p><p>  android:layout_he

60、ight="fill_parent"</p><p><b>  ></b></p><p>  <TextView </p><p>  android:layout_width="fill_parent" </p><p>  android:layout_hei

61、ght="wrap_content" </p><p>  android:text="@string/filename"</p><p><b>  /></b></p><p>  <EditText </p><p>  android:layout_width

62、="fill_parent" </p><p>  android:layout_height="wrap_content" </p><p>  android:text="oppo.mp4"</p><p>  android:id="@+id/filename"</p>

63、<p><b>  /></b></p><p>  <LinearLayout</p><p>  android:orientation="horizontal"</p><p>  android:layout_width="fill_parent"</p>

64、<p>  android:layout_height="wrap_content"</p><p><b>  ></b></p><p>  <ImageButton</p><p>  android:layout_width="wrap_content" </p>

65、<p>  android:layout_height="wrap_content" </p><p>  android:src="@drawable/play"</p><p>  android:id="@+id/play"</p><p><b>  /></b&

66、gt;</p><p>  <ImageButton</p><p>  android:layout_width="wrap_content" </p><p>  android:layout_height="wrap_content" </p><p>  android:src="

67、;@drawable/pause"</p><p>  android:id="@+id/pause"</p><p><b>  /></b></p><p>  <ImageButton</p><p>  android:layout_width="wrap_co

68、ntent" </p><p>  android:layout_height="wrap_content" </p><p>  android:src="@drawable/reset"</p><p>  android:id="@+id/reset"</p><p>

69、;<b>  /></b></p><p>  <ImageButton</p><p>  android:layout_width="wrap_content" </p><p>  android:layout_height="wrap_content" </p><

70、p>  android:src="@drawable/stop"</p><p>  android:id="@+id/stop"</p><p><b>  /></b></p><p>  </LinearLayout></p><p>  <Su

71、rfaceView</p><p>  android:layout_width="fill_parent" </p><p>  android:layout_height="240dip"</p><p>  android:id="@+id/surfaceView"</p><p&

72、gt;<b>  /></b></p><p>  </LinearLayout></p><p>  布局主體為LinearLayout,由多個TextView、Button等類組成。視頻播放器設計的運行效果如圖3.1所示。</p><p>  圖3.1 視頻播放器設計圖</p><p>  3.3

73、視頻文件搜索功能的設計</p><p>  此程序需要輸入文件的絕對路徑,例如"/sdcard/video.mp4";輸入文件名字之后,部分程序如下:</p><p>  if(video.exists()){</p><p>  videoView.setVideoPath(video.getAbsolutePath());//文件絕對路徑&l

74、t;/p><p>  videoView.setMediaController(mediaController);//設置videoView與mediaControler的關聯(lián)</p><p>  mediaController.setMediaPlayer(videoView);</p><p>  videoView.requestFocus();</p>

75、;<p><b>  } </b></p><p>  3.3 其他功能的設計</p><p>  此程序還能處理簡單的異常,輸入文件后,若文件不存在,會提醒你“很抱歉,您輸入的文件不存在,請重新輸入”,若文件格式不符合,也會有相應的提示。部分程序如下:</p><p>  if(video.exists()){......}&l

76、t;/p><p><b>  else{</b></p><p>  Toast.makeText(VideoPlayerActivity.this,"很抱歉,您輸入的文件不存在,請重新輸入", Toast.LENGTH_LONG).show();</p><p><b>  }</b></p>

77、<p><b>  總結</b></p><p>  在此次課程設計中,不僅了解到了android的有關知識,而且學習了Java語言以及eclipse等硬件環(huán)境。有幾點需要特別注意:</p><p>  1. 要明確課程設計的要求,想好系統(tǒng)應該包含哪些功能模塊。否則,在軟件設計的后期,再想添加新的功能就需要花費大量的時間。</p><

78、p>  2. 要對android系統(tǒng)有一定的了解。在軟件設計過程中,大量的用到了android系統(tǒng)的四大組件:Activity(提供可視化的界面)、Service(運行在后臺的服務程序)、Broadcast Receiver(廣播事件處理機制)、Content Provider(使應用程序相互訪問數(shù)據(jù))。只有對這些組件熟練掌握后,才能夠真正設計出穩(wěn)健搞笑的多媒體播放器。</p><p>  3. 要對Jav

79、a語言熟練掌握。Android軟件開發(fā)都是用Java語言寫的,而Java又是由類組成的。而Java語言本身又含有眾多機制,只有深刻理解這些機制后,才能輕松地實現(xiàn)自己想要的功能。</p><p>  4. 要對界面設計有一定的了解。Android所有的布局都放在了res/layout中,而所有的菜單選項都放在了res/menu中。合理的布局對人性化的界面也是至關重要的。</p><p>  

80、5. 要具備快速上網(wǎng)查資料的能力。面對從沒接觸過的知識,要有信心才是最重要的。另外,網(wǎng)上的很多現(xiàn)成的資料都可借鑒、學習。在熟練理解了別人的應用程序的基礎上,再做二次開發(fā)。</p><p><b>  參考文獻</b></p><p>  [1] 余志龍,陳昱勛. Google Android SDK開發(fā)范例大全(第二版)[M].

81、人民郵電出版社.2010 </p><p>  [2] 王志超,王敏.基于Android平臺的MP3播放器的分析與設計.[J].Forum論壇.2011.9 </p><p>  [3] 何曉杰. Android開發(fā)經(jīng)驗談[J].移動開發(fā)大勢圖.2010.9 </p><p>  [4] Ed&#

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論