
java
hunter800421
这个作者很懒,什么都没留下…
展开
-
abstract class和interface的区别
在Java语言中,abstract class和interface是支持抽象类定义的两种机制。正是由于这两种机制的存在,才赋予了Java强大的面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进行抽象类定义时对于abstract class和interface的选择显得比较随意。其实,两者之间还是有很大的区转载 2017-03-01 11:57:08 · 199 阅读 · 0 评论 -
Android多媒体框架(5)—— MediaMuxer.jara源码分析
MediaMuxer.jara源码分析音视频通过Codec(编码器)编码之后,还需要经过MediaMuxer(混合器)“混合”。混合器在framework的实现就是MediaMuxer类。MediaMuxer中又个内部类OutputFormat:public static final class OutputFormat {80 /* Do not change these v...原创 2019-02-07 17:38:42 · 2971 阅读 · 0 评论 -
argus-apm-main中的task(1) —— FpsTask
argus-apm-main中的task(1) —— FpsTaskargus-apm-main中定义和实现了各个具体的监控task,包括Activity,网络,fps等等。这里我们先从fps作为例子入手分析。FpsTask类FpsTask类定义了fps监控的task,相当于是fps task的入口。先来看一下这个类的代码。public class FpsTask extends Base...原创 2019-02-15 12:08:30 · 406 阅读 · 0 评论 -
360 Argus APM 源码分析(4)—— argus-apm-okhttp源码分析
argus-apm-okhttp源码分析OkHttp3Aspect类OkHttp3Aspect类是OKHTTP3的切面文件。@Aspectpublic class OkHttp3Aspect { @Pointcut("call(public okhttp3.OkHttpClient build())") public void build() { } ...原创 2019-02-14 20:15:46 · 535 阅读 · 0 评论 -
360 Argus APM 源码分析(2)—— argus-apm-gradle源码分析
argus-apm-gradle源码分析argus-apm-gradle工程定义了一个gradle plugin,主要有以下两个作用:支持AOP编程,方便ArgusAPM能够在编译期织入一些性能采集的代码;通过Gradle插件来管理依赖库,使用户接入ArgusAPM更简单。argus-apm-gradle使用kotlin语言开发。这里我们假定大家已经熟悉gradle plugin的开发...原创 2019-01-24 20:48:21 · 1533 阅读 · 2 评论 -
360 apm框架Argus源码解析(1)——开始
开始先看一个简单的代码示例,演示如何集成360 Argus APM:public class ArgusAPMApplication extends Application { @Override protected void attachBaseContext(Context base) { super.attachBaseContext(base); ...原创 2019-01-23 20:15:20 · 1254 阅读 · 0 评论 -
Android多媒体框架(1)——MediaCodec.java源代码分析
概述MediaCodec勇于访问底层的编解码器,是Android底层多媒体支持框架的一部分。它可以操作三种数据:压缩后的,原始的音频数据,以及原始的视频数据。MediaCodec以异步的方式处理数据,会用到一组输入和输出缓冲区,后文会详细介绍。MediaCodec有内部类BufferInfo来描述缓冲区。BufferInfo的代码如下:public final static class B...原创 2019-01-12 22:02:22 · 3450 阅读 · 0 评论 -
google官方android ndk demo解析(一)——audio echo
最近重新学习ndk,主要关注使用android studio进行ndk开发。google官方的demo无疑是最好的学习源码。首先分析audio echo这个项目。一、CMakeList.txtcmake_minimum_required(VERSION 3.4.1)set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall -W原创 2017-09-18 14:39:37 · 3357 阅读 · 0 评论 -
Android开发(1)——第一个NDK应用
一、下载NDK1. 打开Android Studio,选择Tools->Android->SDK Manager。2. 选择SDK tools选项卡。3. 选中LLDB,CMake,以及NDK。4. 选中Apply,在下一个页面点击OK。5. 下载完成之后,点击finish,然后点击OK。二、创建包含C/C++的项目创建支持native代码的项目和创建普通项目的步骤基本原创 2017-09-15 15:22:32 · 364 阅读 · 0 评论 -
360 Argus APM 源码分析(3)—— argus-apm-aop源码分析
argus-apm-aop源码分析argus-apm-aop主要实现了面向Activity的切面和面向HttpClient和URLConnection的切片。阅读代码需要有AOP和aspectj的基础知识。TraceActivityTraceActivity类实现对Activity(还有Application)的切面。@Aspectpublic class TraceActivity...原创 2019-02-13 20:39:06 · 830 阅读 · 0 评论