腾讯优测剖析android多媒体系统适配问题
腾讯优测是专业的移动云测试平台,提供全面兼容性测试,远程真机租用等多维度的测试服务,让测试更简单!
有人喜欢听着音乐high起来,有人会随时随地观看热门电视剧。大多数人都会使用Q Q、微信,语音聊天。而郭美美会拍下奢侈品炫耀干爹。这些我们再熟悉不过的手机多媒体功能已经融入到生活中,成为居家旅行必备品。因而很多手机应用都或多或少的涉及到多媒体功能。
通常,手机的多媒体功能包括拍照,录音,录像,播放音频,播放视频,视频通话等等。这些功能对硬件的依赖较大,因此不同机型不同硬件会导致很多适配问题。其中,拍照功能我们之前已经讨论过了,这里我们继续讨论其他多媒体功能和相关的适配问题。
Android多媒体系统层次结构
如上图,android多媒体的C语言库是media库,它主要由媒体播放器和媒体记录器框架组成。media库向上层通过JNI提供接口,下层通过PacketVideo等实现。
其中,Java类的目录为:
frameworks/base/media/java/android/media
Java本地调用部分JNI的目录为:
frameworks/base/media/* 这部分内容编译成为libmedia_jni.so
基于opencore的多媒体播放器和记录器的目录为:
external/opencore/
多媒体框架的media库:
frameworks/base/include/media/
frameworks/base/media/libmedia/ 这部分内容被编译成libmedia.so
多媒体服务:
frameworks/base/media/libmediaplayerservice/ 这部分内容被编译成libmediaplayerservice.so
其中,framework层是定制rom经常会修改的部分。
2.android各个多媒体功能
Android的多媒体功能主要包括拍照,摄像,录音和音视频播放,以下是各功能的调用层次图。
有人喜欢听着音乐high起来,有人会随时随地观看热门电视剧。大多数人都会使用Q Q、微信,语音聊天。而郭美美会拍下奢侈品炫耀干爹。这些我们再熟悉不过的手机多媒体功能已经融入到生活中,成为居家旅行必备品。因而很多手机应用都或多或少的涉及到多媒体功能。
通常,手机的多媒体功能包括拍照,录音,录像,播放音频,播放视频,视频通话等等。这些功能对硬件的依赖较大,因此不同机型不同硬件会导致很多适配问题。其中,拍照功能我们之前已经讨论过了,这里我们继续讨论其他多媒体功能和相关的适配问题。
Android多媒体系统层次结构
如上图,android多媒体的C语言库是media库,它主要由媒体播放器和媒体记录器框架组成。media库向上层通过JNI提供接口,下层通过PacketVideo等实现。
其中,Java类的目录为:
frameworks/base/media/java/android/media
Java本地调用部分JNI的目录为:
frameworks/base/media/* 这部分内容编译成为libmedia_jni.so
基于opencore的多媒体播放器和记录器的目录为:
external/opencore/
多媒体框架的media库:
frameworks/base/include/media/
frameworks/base/media/libmedia/ 这部分内容被编译成libmedia.so
多媒体服务:
frameworks/base/media/libmediaplayerservice/ 这部分内容被编译成libmediaplayerservice.so
其中,framework层是定制rom经常会修改的部分。
2.android各个多媒体功能
Android的多媒体功能主要包括拍照,摄像,录音和音视频播放,以下是各功能的调用层次图。