03 2022 档案
摘要:学以致用,这一节来native binder实战! android 12中的service用到的Bp、Bn文件多由aidl生成,所以实战中也用aidl来生成。 1、文件目录结构 文件目录结构如上,偷懒没有把头文件放到include目录当中去 2、aidl文件 package android.test
阅读全文
摘要:前面一节学习了ServiceManager这个特殊service的工作过程,这一节来看看普通service的工作过程。 就用media.extractor这个service来当例子! 1、服务的注册及启动 media.extractor这个service的注册及启动在 frameworks/av/s
阅读全文
摘要:今天开始了解一下binder,就先从ServiceManager开始学习。 网上的相关博文普遍是Android 11之前的,阅读时对比Android 11或12的代码发现有很多内容找不到了,比如 frameworks/native/cmds/servicemanager 下面的binder.c没有了
阅读全文
摘要:来写个demo试试看到底是ALooper AHandler AMessage是怎么运行的,源文件以及Android.bp如下: // EvenHandler.h #ifndef __MESSAGE_TEST_H__ #define __MESSAGE_TEST_H__ #include <media
阅读全文
摘要:卧榻之侧岂容他人酣睡,到现在ALooper AHandler AMessage的工作原理一直都没搞懂,很慌!看他们的路径都在libstagefright/foundation下,作为一个foundation怎么能不去搞明白,今天必须解决他们! 相关代码路径: AHandler.cpp - OpenG
阅读全文
摘要:NuPlayer的AVSync由Renderer实现,接下来主要来看AVSync的工作原理 相关代码位置: NuPlayerRenderer.cpp - OpenGrok cross reference for /frameworks/av/media/libmediaplayerservice/n
阅读全文
摘要:本节来看一下NuPlayer Source中的GenericSource,GenericSource主要是用来播放本地视频的,接下来着重来看以下5个方法: prepare,start,pause,seek,dequeueAccessUnit 相关代码位置: http://aospxref.com/a
阅读全文
摘要:接下来将会从4个角度来记录NuPlayerDecoder部分 相关代码路径: http://aospxref.com/android-12.0.0_r3/xref/frameworks/av/media/libmediaplayerservice/nuplayer/NuPlayer.cpp http
阅读全文
摘要:之前几节看到MediaPlayer的java接口最终会调用到native层中的NuPlayer,NuPlayer由Render,DecoderBase,Source三部分组成。 Render:负责AVSync DecoderBase:负责解码 Source:负责数据的读取 之前以为这三部分相互独立,
阅读全文
摘要:getMediaPlayerService方法获取到的是media.player服务 IMediaDeathNotifier::getMediaPlayerService() { // ...... sp<IServiceManager> sm = defaultServiceManager();
阅读全文
摘要:上一篇MediaPlayer中看到实现一个最简单的播放器只需要5个接口,接下来会看看这些接口实现内容 /********************************************************** * Java -> C++ * 构造函数 构造函数 * setDataSour
阅读全文
摘要:Android提供了MediaPlayer这样一个简单易用的音视频java播放接口,通过几个接口调用即可实现音视频播放。 源码位置 http://aospxref.com/android-12.0.0_r3/xref/frameworJavaks/base/media/java/android/me
阅读全文
摘要:这个系列将会作为自己学习android多媒体的笔记,如果有错误请帮忙指正。 本系列的学习均基于Android 12(S),代码来源:http://aospxref.com/
阅读全文