Vector Blog

写写看看记记 , be happy!

initFromDataSource

在 prepare 阶段 GenericSource 中有调用 initFromDataSource 来解析源文件 : status_t NuPlayer::GenericSource::initFromDataSource() { sp<IMediaExtractor> extractor; sp<DataSource> dataSource; ...

extractors

frameworks/av/media/extractors下每个目录都会生成对应的so,eg: libmp4extractor 、 libaacextractor 、 libmpeg2extractor 等等 这些so最终都在frameworks/av/apex/Android.bp中被编译成”com.android.media”(apex) apex_defaults { n...

prepare

回顾之前的内容, app 在调用 prepare 最后会到这里: frameworks/av/media/libmedia/mediaplayer.cpp status_t MediaPlayer::prepare() { ALOGV("prepare"); Mutex::Autolock _l(mLock); mLockThreadId = getThreadI...

setDataSource

回顾前面在 app 端调用 setDataSource 时最终会调用到 frameworks/av/media/libmedia/mediaplayer.cpp status_t MediaPlayer::setDataSource(int fd, int64_t offset, int64_t length) { ALOGV("setDataSource(%d, %" PRId...

media

通过上层 app 的写法来追踪一下 media 的流程, 代码基于android 11 : MediaPlayer mediaPlayer = new MediaPlayer(); mediaPlayer.setOnCompletionListener(new OnCompletionListener() { @Override public void onC...

Android NFC 文件传输

这里主要来追一下 Android Beam 发送文件的流程 来看一下 Nfc 的 AndroidManifest.xml <activity android:name=".BeamShareActivity" ...... <intent-filter> <act...

Android NFC 简单梳理

在 Android O 中NFC 主要有两个进程 : com.android.nfc 向上层app 提供 NFC 接口,另外负责分发各种 event , vendor.nxp.hardware.nfc@1.0-service 是 vendor 的 hidl service 。 vendor.nxp.hardware.nfc@1.0-service 先来看一下 vendor.nxp....

NFC NCI & NDEF

1. NCI 概述 NCI ( NFC Controller Interface ) 是介于 NFCC (NFC Controller ) 和 DH ( Device Host ) 之间的通讯协议, 类似于蓝牙的 HCI 其定义了chip 和 host 之间的数据收发及其格式。 2. NCI 架构 NCI 架构包含3类组件: NCI Core , Transport Mapping...

Android NFC 流程

先来看 NativeNfcManager : public class NativeNfcManager implements DeviceHost { // 先加载 JNI library static { System.loadLibrary("nqnfc_nci_jni"); } JNI 部分代码在 /vendor/nxp/opensou...

wifi 中的 循环扫描

记录一下 Android wifi 中的3种循环扫描 , 以下 code 从 Android O 中截取 : 1. PNO PNO (Preferred Network Offloading) 是在熄灭屏幕之后由 wifi firmware 自动扫描的机制 , firmware 自动扫描已保存的 ap 在扫描到时唤醒 aCPU trigger 连线。 这样做的好处是更快的发现并连上 ap ...