自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一航jason

IT民工,爱好:Android、C/C++、HTML5、Flutter、Framework、PHP、Unity

  • 博客(20)
  • 资源 (2)
  • 收藏
  • 关注

原创 《android framework常用api源码分析》之Activity启动流程

Activity的启动流程是一个源码分析非常重要的一个知识点,其实通过这篇学习你可以对android内部源码有个大致的了解,应为他耐括基本上最重要的几处只是,有binder机制、handler机制、antivity strack、context等重要内容。Activity的启动流程相对复杂一下,涉及到了Activity中的生命周期方法,涉及到了Android体系的CS模式,涉及到了Android中进程通讯Binder

2017-12-14 12:03:20 1911

原创 《android多媒体api》之摄像头camera采集原始视频数据

如何通过camera摄像头采集nv21原始数据?直播开发中经常需要获取视频原始帧数据然后前置处理例如:美颜、水印、特效等然后通过编码在通过rtmp或者rtsp等协议方式推流出去,可以完成实时图像传递。那么如何获取原始视频帧数据?安装camera api有一个设置回调的方法,可以将可以通过它来获取原始视频数据如nv21 、 nv12 、 yv12 等。下面构建了一个demo就是当surfaceview控件构建完成后可

2017-12-17 15:22:03 4131 1

原创 《android多媒体api》之AudioTrack原始音频pcm播放api

AudioTrack是什么?AudioRecord是可以播放原始音频数据pcm的api,pcm一般的播放器都是无法播放的,AudioRecord可以播放pcm,不过需要制定播放时候的采样率、声道数位宽,现在在android下面做了一个demo,主要是播放pcm录音文件。pcm录音时候需要制定几个重要参数,播放的时候还需要设置录制缓冲区大小,缓存区越大,内存溢出风险越小。

2017-12-15 14:41:38 1401

原创 《android多媒体api》之AudioRecord原始音频pcm录制api

AudioRecord是什么?AudioRecord是可以录制原始音频数据pcm的api,如果是一些音乐录制,或者直播语音等都需要使用音频数据前置处理,比如:降噪、多音频合成、特效音效处理等等。那么就需要获取原始音频数据后处理完毕后在编码,因为编码后的数据是不能够处理降噪、特效等操作的。那么就下来看看怎么用AudioRecord来录制原始音频数据;下面做了一个demo,主要是录制音频后保存到文件中去。pcm录音时候

2017-12-15 14:20:44 1271

原创 《android多媒体api》之MediaRecorder音视频录制api

MediaRecorder是什么?MediaPlayer类主要用于音频视频录制的api。现在有很多短视频app非常火爆,所以了解视频录制api是非常重要的,android自带多媒体录制api都是在硬编码(依靠硬件驱动编码)基础上进行封装,所以如果要达到专业级别的短视频应用开发工程师还要了解如何前置处理pcm 、jpg等处理算法。

2017-12-15 12:10:07 2899 4

原创 《android多媒体api》之MediaPlayer自定义视频播放器

MediaPlayer是什么?MediaPlayer类可用于控制音频/视频文件或流的播放。前面介绍了VideoView 跟MediaPlayer用法基本相同,不过MediaPlayer使用时候注意他有个缓存机制,如果没有缓存视频是不能够播放的;这里实现了一个基于MediaPlayer实现自定义视频播放器,具有功能播放、暂停、停止、进度条调整视频播放进度等。案例是通过surfaceview来显示画面,用seekbar

2017-12-15 10:44:07 2150

原创 《android多媒体api》之camera配合surface预览相机画面和拍照

android开发自定义相机或者一些扫描功能的时候经常会遇到相机预览的问题了,这个必须获取相机然后将画面预览到手机界面上,那么输出界面用的就是surface控件。首先看看surfaceview是什么?SurfaceView是视图(View)的继承类,这个视图里内嵌了一个专门用于绘制的Surface。你可以控制这个Surface的格式和尺寸。Surfaceview控制这个Surface的绘制位置。surface

2017-12-14 15:21:41 1428

原创 《android多媒体api》之VideoView 视频播放控件

《android多媒体api》系列是整合梳理android开发中经常用到的媒体相关api;多媒体开发主要内容有音频、视频录制播放、摄像头操作、录制操作、流媒体、直播、推流、拉流等方面;最近几年移动直播和视频应用发展犹如雨后春笋一般直插云霄,呃。。好吧这段比喻可以不用看了!!,反正行业兴起肯定催生了很多多媒体相关应用开发程序员。那么怎样才能成为多媒体开发程序员,首先必须要熟练使用和了解android自

2017-12-14 14:55:50 4023

原创 《android framework常用api源码分析》之 app应用安装流程

android app安装时候基本原理都是通过adb底层来执行,但是用户操作的安装的时候一般都会有个安装界面并且有权限提示,点击安装的话就可以进行安装流程,那么今天就来分析安装流程中这些熟悉又陌生的系统安装app程序。上一篇文章中给大家分析了一下android系统启动之后调用PackageManagerService服务并解析系统特定目录,解析apk文件并安装的过程,这个安装过期实际上是没有图形界面的,底层调用的是我

2017-12-14 11:47:01 2172

原创 《android framework常用api源码分析》之系统app启动安装流程

如果是从事系统rom工作的同学这篇文章都不用看了,但是如果app应用开发的同学想了解一下系统app是如何安装就可以通过这篇文章了解一下;首先系统app也是普通app只是放置的目录是不一样,是系统预留好的,只要手机启动就可以扫描重新安装,能够在这个目录操作要么是做系统rom时候加入进去,要么就是获取超级用户su的权限,那么就可以把自己app放入系统apk目录做成系统app。

2017-12-13 18:05:32 744

原创 《android framework常用api源码分析》之app 进程启动流程

android是建立在linux kernel上面的系统,底层不仅省去了驱动适配问题也使用了很多linux系统的功能,例如进程通讯、权限管理等,其中包括今天要说的app进程,他对应也要启动一个对应linux进程。在android guide中有这样的一段关于android应用程序进程的描述:

2017-12-13 16:33:57 488

原创 《android framework常用api源码分析》之Launcher 程序

什么是Launcher app?做应用开发的同学平时应该接触不多,android系统桌面就是Launcher app,但是他也是一个普通的app应用程序,是用户交互的第一个程序。很多手机厂商都会修改系统的默认Launcher app和系统默认主题样式,就发展成现在百花齐放的android盛世。一个自己开发app应用启动就是通过点击应用图标启动起来,如果要分析启动流程那就先看看Launcher app。

2017-12-12 21:19:40 2165

原创 《android framework常用api源码分析》之SystemServer进程

SystemServer进程?SystemServer进程是系统服务进程,SystemServer进程主要的作用是在这个进程中启动各种系统级服务,比如ActivityManagerService,PackageManagerService,WindowManagerService服务,其实以及各种系统性的服务其实都是在SystemServer进程中启动的,而当我们的应用需要使用各种系统服务的时候其实也是通过与Sys

2017-12-12 17:34:32 573

原创 《android framework常用api源码分析》之Zygote进程

Zygote进程是什么? Zygote进程是android系统启动的第一个进程(不包括kernel层次的init进程),是所有的android进程的父进程,是一个根进程,包括SystemServer和各种应用进程都是通过Zygote进程fork出来的。Zygote(孵化)进程相当于是android系统的根进程,后面所有的进程都是通过这个进程fork出来的,而Zygote进程则是通过linux系统的init进程启动的

2017-12-12 15:34:53 418

原创 《android framework常用api源码分析》之LruCache内存缓存

缓存这个词在后台开发中间经常接触例如:模板缓存 、文件缓存、内存缓存、数据库缓存等。在android开发中也每天都在与缓存打交道,但是对于一般开发中一些开源框架给完成了缓存工作,所以接触也不是很多,例如最常见的图片缓存,app中有大量网络图片下载与缓存,而大部分图片框架都支持内存缓存和文件缓存(磁盘缓存)。注意:早期一些内存管理方案中有通过强、弱、软、续引用来管理缓存已经不再可靠,容易造成内存溢出。LruCac

2017-12-12 14:36:49 849

原创 《android framework常用api源码分析》之IntentService意图服务

什么是IntentService?本身继承了service,所以IntentService就是一个服务,只不过他内部实现了HandlerThread而且管理了service关闭,可以使调用这简单的调用用而不用关心他什么时候关闭;onHandleIntent是里面需要继承类实现的抽象方法,而他是在HandlerThread中执行所以在非ui线程,我们知道四大组件生命周期都是在主线程中执行,因为他们都是用handler机

2017-12-12 13:59:59 624

原创 《android framework常用api源码分析》之HandlerThread handler线程

HandlerThread是个什么东西?前面有分析handler机制,通过一个子线程run方法中调用Looper.prepare()创建消息队列和looper对象然后Looper.loop()然后就可以创建属于这个线程handler对象,而且可以使用handler进行线程通讯。HandlerThread就是封装这个机制的api。查看类的定义时有这样一段话:Handy class for starting

2017-12-12 13:29:13 646

原创 《android framework常用api源码分析》之AsyncTask异步任务

AsyncTask是使用非常方便的一个类,经常用于网络请求之后的ui更新。其原理是使用线程池执行futuretask完毕后调用handler机制更新ui。由于线程池是全局单例模式,而且是设定了同时执行线程数量只有一个,所以AsyncTask是按照顺序执行后台线程并且更新ui的。这是AsyncTask重要的特性。本文主要解析AsyncTask的的使用与源码。首先我们来看一下AsyncTask的基本使用:

2017-12-12 12:32:58 849

原创 《android framework常用api源码分析》之handler消息机制

android异步消息机制是非常重要的android机制,他属于三大机制之一,android三大机制包括view机制、binder进程通讯机制、handler消息机制。handler机制几乎贯穿与android所有地方,生命周期进程通讯之后回调,app运行之后主线程的消息looper、线程间的通讯等。所以我们来看看handler机制什么之处。

2017-12-12 12:05:48 762

原创 《android framework常用api源码分析》之apk打包过程解析

《android framework常用api源码分析》android生态在中国已经发展非常庞大了,一方面是因为手机移动端的覆盖,另一方面是从事android开发的人也月来越多。那么用人单位对android要求也变高了,对android不仅要熟练使用而且要懂得原理。而就程序员自身阅读源码有什么那些?这里我通过自己理解归纳了一下。1、提高程序执行效率,正确理解api可以高效使用,优化内存和执行效率。2

2017-12-12 11:48:01 1147

exoplayer 编译出来的ffmpeg扩展库aar

exoplayer 编译出来的ffmpeg扩展库aar,FFmpeg 模块提供 ,它使用 FFmpeg 进行解码 并且可以呈现以各种格式编码的音频。FfmpegAudioRenderer。 使用模块将aar加入项目libs。 按照上述说明进行检查后,构建并依赖 模块,下一步就是告诉ExoPlayer使用。如何 执行此操作取决于您使用的播放器 API:FfmpegAudioRenderer 如果要将 传递给 ,则 可以通过设置参数来启用使用模块 的构造函数。这将用于 播放(如果不支持输入格式)。通过以优先于 .DefaultRenderersFactoryExoPlayer.BuilderextensionRendererModeDefaultRenderersFactoryEXTENSION_RENDERER_MODE_ONFfmpegAudioRendererMediaCodecAudioRendererEXTENSION_RENDERER_MODE_PREFERFfmpegAudioRendererMediaCodecAudioRenderer 如果已子类化,则在 中的输出列表中

2023-07-24

FFmpegVideoPlayer.rar

SurfaceViewMediaPlayer-android基于ffmpeg本地视频、在线视频、直播播放器 支持rtmp、rtsp、http等协议;是从IPC摄像头管理提取出来,项目虽然说是一个播放器但是每个每个层面都是分开,例如可以做成p2p点到点媒体的传输和播放;每个api都可以独立当做工具类使用。

2020-09-11

android 插件式无刷新换肤和字体大小切换 兼容android 8.1

android 插件式无刷新换肤和字体大小切换 兼容android 8.1; theme_dome 为dome 案例工程;black_theme 皮肤包工程。

2018-07-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除