原创 360 Argus APM 源碼分析(4)—— argus-apm-okhttp源碼分析

argus-apm-okhttp源碼分析 OkHttp3Aspect類 OkHttp3Aspect類是OKHTTP3的切面文件。 @Aspect public class OkHttp3Aspect { @Pointcu

原创 argus-apm-main中的task(2) —— Activity Task

argus-apm-main中的task(2) —— Activity Task Activity Task實現對Activity的性能監控。我們在“開始”一篇裏提到過,Activity的性能採集實現方式有兩種,Instrumenta

原创 argus-apm-main中的task(1) —— FpsTask

argus-apm-main中的task(1) —— FpsTask argus-apm-main中定義和實現了各個具體的監控task,包括Activity,網絡,fps等等。這裏我們先從fps作爲例子入手分析。 FpsTask類 F

原创 360 Argus APM 源碼分析(3)—— argus-apm-aop源碼分析

argus-apm-aop源碼分析 argus-apm-aop主要實現了面向Activity的切面和麪向HttpClient和URLConnection的切片。閱讀代碼需要有AOP和aspectj的基礎知識。 TraceActivi

原创 Android多媒體框架(7)—— stagefright中MediaMuxer源碼分析

stagefright中MediaMuxer源碼分析 私有屬性定義 MediaMuxer.h中定義了一些類的屬性: const OutputFormat mFormat; sp<MediaWriter> mWriter;

原创 MediaMuxer.jara源碼分析

MediaMuxer.jara源碼分析 音視頻通過Codec(編碼器)編碼之後,還需要經過MediaMuxer(混合器)“混合”。混合器在framework的實現就是MediaMuxer類。MediaMuxer中又個內部類Output

原创 MediaMuxer的jni代碼分析

MediaMuxer的jni代碼分析 jni方法的定義 MediaMuxer jni方法的定義在frameworks/base/media/jni/android_media_MediaMuxer.cpp中。 static const

原创 Android多媒體框架(4)—— AMessage源碼分析

AMessage源碼分析 AMessage繼承自RefBase類,它有AHandler和ALooper的成員mHandler和mLooper,並且ALooper還是它的友元。成員變量mWhat是消息id,成員變量mTarget指明消息

原创 libstagefright中MediaCodec源碼分析

libstagefright中MediaCodec源碼分析 和前兩篇一樣,我們按照MediaCodec的各個狀態來分析libstagefright中MediaCodec的源代碼。 configure 首先我們看一下configure

原创 Android 多媒體框架(2)—— android_media_MediaCodec.cpp源碼分析

android_media_MediaCodec.cpp源碼分析 這裏我們來分析和MediaCodec.java對應的native層類:android_media_MediaCodec.cpp的源代碼。 在該類的最後,我們會看到這樣的

原创 360 Argus APM 源碼分析(2)—— argus-apm-gradle源碼分析

argus-apm-gradle源碼分析 argus-apm-gradle工程定義了一個gradle plugin,主要有以下兩個作用: 支持AOP編程,方便ArgusAPM能夠在編譯期織入一些性能採集的代碼; 通過Gradle插件

原创 360 apm框架Argus源碼解析(1)——開始

開始 先看一個簡單的代碼示例,演示如何集成360 Argus APM: public class ArgusAPMApplication extends Application { @Override protecte

原创 MediaCodec.java源代碼分析

概述 MediaCodec勇於訪問底層的編解碼器,是Android底層多媒體支持框架的一部分。它可以操作三種數據:壓縮後的,原始的音頻數據,以及原始的視頻數據。 MediaCodec以異步的方式處理數據,會用到一組輸入和輸出緩衝區,後

原创 android 支持webrtc

公司有個項目,需要在webview中加載視頻,用到了webrtc技術。Android 4.4以後,瀏覽器內核採用的chromium,可以支持webrtc。所以基本上對於新出的手機,自動支持webrtc。使用webview時,只需要在代碼中

原创 Android h5全屏播放video

H5全屏播放,在iOS系統上基本沒有什麼問題,但是在android系統,卻又各種各樣的問題。 H5自身對全屏的支持 這個其實不難,只需在video標籤加個webkit-playsinline屬性即可,這個屬性基本上在基於webkit內核的