成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

深度剖析谷歌Android架構(gòu)問題

移動開發(fā) Android
下面進(jìn)行對Android架構(gòu)介紹,主要介紹的是Android中很重要也最為復(fù)雜的媒體播放器部分的架構(gòu),僅供大家學(xué)習(xí)思考。

想要充分的掌握Android架構(gòu)的相關(guān)問題,那么就要對Android架構(gòu)的性質(zhì)、語句、變量、函數(shù)、預(yù)處理指令、輸入和輸出等內(nèi)容進(jìn)行了解掌握,這樣就會使開發(fā)人員的工作效率提高。

對于Android架構(gòu)這樣一個完整又相對復(fù)雜的系統(tǒng),一個MediaPlayer功能的實現(xiàn)不在其具體的功能,而是具體功能如何適應(yīng)Android系統(tǒng)Android MediaPlayer的主要具體實現(xiàn)在OpenCore的Player中。

這部分不是本文的關(guān)注點,本文關(guān)注的是MediaPlayer系統(tǒng)的架構(gòu),其他的一些Android的應(yīng)用程序也使用類似的架構(gòu)對于開源事業(yè)在中國的發(fā)展,hanchao3c認(rèn)為應(yīng)該共享的不僅僅是代碼,文檔、設(shè)計思想、理念甚至對于技術(shù)的理解都應(yīng)該得到充分的共享。

Android架構(gòu)為中國人進(jìn)入大規(guī)模的開源項目提供了很好的機(jī)遇,對于走在技術(shù)前沿的人們,不應(yīng)將技術(shù)視為私有財產(chǎn)。而應(yīng)該將自己理解更好地奉獻(xiàn)給大眾,提高大眾的學(xué)習(xí)速度,從中也可以得到反饋,從而促進(jìn)自己的進(jìn)步。僅以此文奉獻(xiàn)給所有關(guān)系技術(shù)的朋友,希望可以拋磚引玉,促進(jìn)我們共同的技術(shù)進(jìn)步!

在各個庫中,libmedia.so位于核心的位置,它對上層的提供的接口主要是MediaPlayer類,類libmedia_jni.so通過調(diào)用MediaPlayer類提供對JAVA的接口,并且實現(xiàn)了android.media.MediaPlayer類。

libmediaplayerservice.so是Media的服務(wù)器,它通過繼承l(wèi)ibmedia.so的類實現(xiàn)服務(wù)器的功能,而libmedia.so中的另外一部分內(nèi)容則通過進(jìn)程間通訊和libmediaplayerservice.so進(jìn)行通訊。libmediaplayerservice.so,

真正功能通過調(diào)用OpenCore Player來完成。MediaPlayer部分的頭文件在frameworks/base/include/media/目錄中,這個目錄是和libmedia.so庫源文件的目錄frameworks/base/media/libmedia/相對應(yīng)的。主要的頭文件有以下幾個:

  1. notify_callback_f notifyFunc)  
  2. {  
  3.     sp<MediaPlayerBase> p;  
  4.     switch (playerType) {  
  5.         case PV_PLAYER:  
  6.             LOGV(" create PVPlayer");  
  7.             p = new PVPlayer();  
  8.             break;  
  9.         case SONIVOX_PLAYER:  
  10.             LOGV(" create MidiFile");  
  11.             p = new MidiFile();  
  12.             break;  
  13.         case VORBIS_PLAYER:  
  14.             LOGV(" create VorbisPlayer");  
  15.             p = new VorbisPlayer();  
  16.             break;  
  17.     }  
  18. //……  
  19.     return p;  

在這些頭文件mediaplayer.h提供了對上層的接口,而其他的幾個頭文件都是提供一些接口類(即包含了純虛函數(shù)的類),這些接口類必須被實現(xiàn)類繼承才能夠使用。由于具有純虛函數(shù)。

IMediaPlayerService 以及BnMediaPlayerService必須被繼承實現(xiàn)才能夠使用,在IMediaPlayerService定義的create和decode等接口。事實上是必須被繼承者實現(xiàn)的內(nèi)容。注意,create的返回值的類型是sp<IMediaPlayer>,這個IMediaPlayer正是提供實現(xiàn)功能的接口。

(OGG Vobis是一種音頻壓縮格式,與MP3等的音樂格式類似,它具有完全免費(fèi)、開放和沒有專利限制的特點。)值得注意的是PVPlayer、MidiFile和VorbisPlayer三個類都是繼承MediaPlayerInterface得到的。

Android架構(gòu)又是繼承MediaPlayerBase得到的,因此三者具有相同接口類型。只有建立的時候會調(diào)用各自的構(gòu)造函數(shù),在建立之后,將只通過MediaPlayerBase接口來MediaPlayerBase控制它們。在frameworks/base/media/libmediaplayerservice目錄中,MidiFile.h和MidiFile.cpp的實現(xiàn)MidiFile,VorbisPlayer.h和VorbisPlayer.cpp實現(xiàn)一個VorbisPlayer。

責(zé)任編輯:chenqingxiang 來源: IBMdW
相關(guān)推薦

2010-02-05 18:00:18

Android源代碼

2010-02-07 15:42:46

Android單元測試

2010-02-01 13:34:59

Python 腳本

2010-02-23 10:05:52

Python歷史

2010-03-05 16:38:30

2010-02-04 15:38:39

Android 手機(jī)

2024-03-12 12:57:07

Redis主從架構(gòu)

2009-12-07 18:43:29

WCF框架

2010-01-08 14:06:49

JSON 形式

2010-03-01 16:48:02

Python模塊

2010-05-24 16:58:44

SVN安裝

2012-05-11 10:38:15

Cloud Found

2010-02-07 14:29:10

Android SDK

2010-03-02 09:42:42

Android平臺

2010-02-05 15:33:29

Android JDK

2010-01-27 15:50:23

C++復(fù)雜性

2010-01-27 09:31:39

C++Test測試

2025-04-16 01:00:00

2010-02-04 14:01:44

Android應(yīng)用

2010-01-11 10:19:57

C++開發(fā)工具
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 色综合天天综合网国产成人网 | 国产精品日韩在线观看一区二区 | 国产高清精品一区二区三区 | 久久久高清 | 超碰伊人久久 | 看亚洲a级一级毛片 | 亚洲天堂一区 | 精品粉嫩aⅴ一区二区三区四区 | 国产在线精品一区 | 久热精品在线观看视频 | 欧美a在线| 欧美日一区 | 久久综合久久久 | 久久久久久女 | 在线视频 欧美日韩 | chinese中国真实乱对白 | 国产一区二区三区免费观看在线 | 中文字幕一区二区三区乱码在线 | 久久久久国产精品一区二区 | 国产精品一区二区日韩 | 黑人性hd| 国产精品成人一区二区三区夜夜夜 | www.欧美| 视频一区二区在线观看 | 国产精品1区2区 | 在线看免费 | 综合久久一区 | 成人午夜在线 | 欧美成人久久 | 亚洲人成人一区二区在线观看 | 精品少妇一区二区三区日产乱码 | 婷婷在线免费 | av一级毛片 | 日韩精品一区二区三区第95 | 亚洲精品视频在线看 | 久久久久久久一区 | 欧美一二三 | 成人免费视频观看视频 | 欧美日韩在线一区二区 | 中文字幕日韩一区 | 四虎成人精品永久免费av九九 |