
Android
文章平均质量分 87
fdsafwagdagadg6576
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Android终端Qos
原创 2022-03-20 09:44:22 · 4734 阅读 · 0 评论 -
Windows终端推流sdk流程
分成3个部分:CLiveCurlDownloadFile.cpp:新增部分;CURL层是外部通信接口,用于Janus通信。 发送request,将respond结果通过内容windows post-get机制发送给conductConductor.cc :webrtc example 的通信接口;通过window postmessage--getmessage实现内部发送接收消息PeerConnec...原创 2022-03-15 18:12:03 · 4550 阅读 · 0 评论 -
Android终端推流--ShareContext
下面这个结构图太给力了.分成surfaceTexture和Opengl 两个部分GLES又分成普通渲染和离屏渲染。这里使用离屏渲染,输出两个方向codec和surfaceViewEGL-->OPENGL filter基础知识要想使用OpenGL ES,一般包括如下几个步骤: (1)EGL初始化 (2)OpenGL ES初始化 (3)OpenGL ES设置选项&绘制 (4)OpenGL ES资源释放(可选) (5)EGL资源释放...原创 2022-03-05 20:25:44 · 759 阅读 · 0 评论 -
Android 终端推流-采集
占位留用原创 2022-03-10 22:55:53 · 2158 阅读 · 0 评论 -
Android终端推流--滤镜Filter处理
占位留用原创 2022-03-10 22:56:39 · 3696 阅读 · 0 评论 -
Android编解码流程
整体步骤编码:dequeueinputBuffer(从input缓冲队列申请empty buffer)---inputbuffer(拷贝mp4文件的一帧到empty buffer)--mediacodec(从input buffer 取一帧)---dequeueOutputBuffer(从output缓冲区队列申请编解码后的buffer)--编码后的数据渲染--releaseOutputBuffer(放回到output缓冲区队列)解码:dequeueinputBuffer(从input缓冲队列申请em原创 2021-01-06 22:18:10 · 1490 阅读 · 0 评论 -
Android材料备用
Android知识体系框架接下来,我们具体讲一讲各个部分的内容。四大组件UI 设计常用view使用网络线程和进程数据存储进阶学习编程基础网络协议数据库开源框架测试基础任何一个开发都不能把产品的质量完全依赖于专业的测试人员,相反,应该直接把上行质量作为自测目标。所以,开发人员需要学习必要的测试方法,常见的测试方法包括:其他补充学习讲完知识体系,下面讲讲作为一个新人如何快速入门和进阶的一些经验。想要.原创 2020-12-08 15:30:28 · 203 阅读 · 0 评论 -
Android OpenGL ES(五)-结合相机进行预览/录制及添加滤镜
文章的steps都是正确的,其中流程图画的很给力,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,上文中我们已经实现了在纹理上添加滤镜的效果。这编文章就是将OpenGl和相机结合到一起。预览与拍照整体流程理解预览的整体流程.png将Camera中得到的ImageStream由SurfaceTexture接受,并转换成OpenGL ES纹理。 创建GLSurfaceView。转载 2021-03-01 21:42:58 · 2411 阅读 · 0 评论 -
Android 录屏流程图
采集部分录屏不同于主播,采集采用setOnFrameAvailableListener---onFrameavaliable,而不是onPreviewFrame.其他部分和直播系统一样原创 2022-03-11 21:07:18 · 2327 阅读 · 1 评论 -
Android四大组件源码分析
下面的activity启动内容转载自:https://blog.youkuaiyun.com/xiao_nian/article/details/81011361上面我们对Handler进行了分析,知道了Handler的工作原理以及作用,这里有几个问题需要探讨一下:1、主线程是一个无法退出的Looper循环,那么界面绘制、事件分发、Activity生命周期回调等操作是怎样交由给loop方法处理的?根据前面了解的Handler机制,我们可以断定界面绘制、事件分发、Activity生命周期回调等所有需要主线程执原创 2021-05-24 22:58:35 · 270 阅读 · 0 评论 -
Android图形系统篇总结摘要
Android图形系统学习框架:Android图形系统简单总结下Activity启动后布局显示过程: SurfaceFlinger 是在init.rc解析的时候被创建的,执行其main方法,实例化了Surfaceflinger,并向ServiceManager注册,SurfaceFlinger运行在单独进程中。note: SF是什么和启动 在Activity创建过程中执行scheduleLaunchActivity之后,便调用到了handleLaunchActivity方法. 首.转载 2021-06-18 23:43:34 · 1162 阅读 · 0 评论 -
SurfaceFlinger源码摘要
Android中两个主要的服务,AMS(ActivityManagerService)和WMS(WindowManagerService).View,AMS,WMS可以说是整个上层显示系统的三驾马车在Android中,一个窗口用一个Surface描述。多个窗口(窗口不一定都是Activity),需要同时显示,我们就需要将多个窗口进行合并。Surfaceflinger控制窗口的合成,将多个窗口合并成一个,再送到LCD。Surfaceflinger是Native的服务.Surfaceflinger中怎转载 2021-06-16 15:17:44 · 1640 阅读 · 0 评论 -
WMS和AMS
wms:计算z轴WindowManagerService服务计算窗口Z轴位置的过程就分析完成了,这个过程如下所示:1.WindowManagerService服务将窗口排列在一个窗口堆栈中;2.WindowManagerService服务根据窗口类型以及窗口在窗口堆栈的位置来计算得窗口的Z轴位置;3.WindowManagerService服务通过Java层的Surface类的成员函数setLayer来将窗口的Z轴位置设置到SurfaceFlinger服务中去;4. Java层的Surfa...转载 2021-06-11 10:39:15 · 1392 阅读 · 1 评论 -
Android四大组件与进程启动的关系摘要
startActivity启动过程分析Activity启动发起后,通过Binder最终交由system进程中的AMS来完成转载 2021-06-07 17:13:31 · 257 阅读 · 0 评论 -
Binder源码分析
一. Binder架构解析原创 2021-05-29 17:48:30 · 1664 阅读 · 0 评论 -
Android开发艺术探索笔记(含思维导图)
1 Activity的生命周期和启动模式1) onStart 和onstop是从activity是否可见这个角度来回调的,而onResume和onPause是从Activity是否位于前台这个角度来回调的。启动Activity的请求会由Instrumentation来处理,然后它通过Binder向AMS发请求,AMS内部维护着一个ActivityStack并负责栈内的Activity的状态同步,AMS通过ActivityThread去同步Activity的状态从而完成生命周期方法的调用图1...原创 2021-05-22 23:03:44 · 973 阅读 · 1 评论 -
AsyncTask使用和源码分析
本文改写自:Android 多线程:AsyncTask的原理 及其源码分析https://www.jianshu.com/p/37502bbbb25a基础知识: 参见: xxxx //必须先搞懂callable&futuretask3 复合使用AsyncTask : 使用和实现(基于futuretask实现)AsyncTask原理是doInBackground是new子线程实现。其他,比如:new task,处理结果都是run在主线程AsyncTask使用实例AsyncTask...原创 2021-05-13 13:29:50 · 238 阅读 · 1 评论 -
Android 多线程
## 目录## Android 多线程使用实例##区别## 同步## 正文**1 多线程使用**Android应用程序UI框架WindowManagerServiceSurfaceFlingerAndroid多屏支持基本概念和元素表面(Surface) Surface就是指向显存的一个物体,用来被绘制到屏幕上,所有你能看见的Window都拥有可以在上面绘制的Surface. 在安卓中,系统使用Surface Flinger服务来把Surface按照正确的深度信息渲染到最终的屏幕上原创 2021-05-02 21:12:32 · 994 阅读 · 8 评论 -
SurfaceFlinger草稿
http://gityuan.com/2017/02/05/graphic_arch/数据流程: opengl filter--surface--surfaceFinger--eglsurface--framebuffer(ANativeWindow_Buffer=windows)--display硬件中;surface是双缓冲双缓冲的时间效率可以参见:https://blog.youkuaiyun.com/xuesen_lin/article/details/8954748下面的内容引自:GUI系统之Su原创 2021-05-02 11:53:50 · 1014 阅读 · 1 评论 -
Android启动init,Zygote,systemServer,ServiceManager,app
材料引用blog:http://gityuan.com/App主要是具体的UI业务需求.AMS则是管理系统四大组件以及进程管理,尤其是Activity的各种栈以及状态切换等管理;WMS则是管理Activiy所相应的窗口系统(系统窗口以及嵌套的子窗口);SurfaceFlinger则是将应用UI绘制到frameBuffer(帧缓冲区),最终由硬件完成渲染到屏幕上交互App跟AMS通信,会建立Session连接到WMS,后续便通过IWindowSesson跟WMS通信; WMS跟SF通信,.转载 2021-05-01 22:20:45 · 1630 阅读 · 2 评论 -
Android架构(框架)汇总
启动流程:点击桌面App图标,Launcher进程采用Binder IPC向system_server进程发起startActivity请求; system_server进程接收到请求后,向zygote进程发送创建进程的请求; Zygote进程fork出新的子进程,即App进程; App进程,通过Binder IPC向sytem_server进程发起attachApplication请求; system_server进程在收到请求后,进行一系列准备工作后,再通过binder IPC向App进..原创 2021-04-24 22:28:50 · 586 阅读 · 0 评论 -
MediaPlayer详解和使用
Android多媒体相关的API,网上基本都能找到很多相关的文章,使用起来也很简单,一直在犹豫要不要写这方面的内容,后来决定还是写一写,一方面算是一个归纳总结,另一方面,也方便以后查阅。这一篇就写一下MediaPlayer。状态图详解下图是一个MediaPlayer的生命周期和状态。其中,椭圆代表MediaPlayer可能驻留的状态,弧线表示MediaPlayer的播放控制操作。这里有两种类型的弧线,单箭头弧线代表同步方法调用,双箭头弧线代表异步方法调用。1、新创建的MediaPlayer对象、转载 2021-01-12 15:27:04 · 697 阅读 · 0 评论 -
音视频blog笔记汇总
音视频硬解码篇 二、音视频硬解码流程:封装基础解码框架https://www.jianshu.com/p/ff65ef5207ce小结:文章以step为主线,每个step都做了comments和实例说明,按照文章中的steps 走就行。这节主要是类的设计:定义解码器:IDecoder,继承Runnable,定义音视频数据分离器IExtractor.后面的章节就是IDecoder和IExtractor的具体实现.解码流程:按照流程图实现【解码步骤:1. 初始化,并启动解码器】【解码步骤:2.原创 2021-01-11 18:21:41 · 215 阅读 · 0 评论 -
一文了解surface,surfaceview,surfaceTexture,GLsurfaceView
1 元素SurfaceTexture和TextTexture都是把内容流上的图像转成纹理,然后输出.SurfaceTexture:如Camera滤镜,桌面特效等TextTexture=SurfaceView+SurfaceTexture。前者在主线程,后者渲染线程GLsurfaceview是最高级的,render,egl都被包装了。直接使用最上层即可.SurfaceTexture 绑定surface.SurfaceTexture 是jave view 层,surface 是 native层。sur原创 2021-01-10 15:34:17 · 3099 阅读 · 0 评论 -
OpenGL汇总
opengl es基本概念:https://blog.youkuaiyun.com/mabeijianxi/article/details/79186086render=new CameraRender(this);setRender(render);setRenderMode(...);public interface Render {//窗口画布准备完成void onSurfaceCreated(GL10 gl, EGLConfig config);//画布发生改变(比如:横竖切换)voi..原创 2021-01-02 11:39:57 · 890 阅读 · 0 评论 -
java jni & 反射草稿
jni:JNI开发流程编写java类,声明了native方法编写native代码(c语言)将native代码编译成so文件在java类中引入so库,调用native方法https://blog.youkuaiyun.com/c10WTiybQ1Ye3/article/details/107010668jni实例分析:https://www.jianshu.com/p/0f34c097028a用了jni,在c文件中有了jint,jclass,jlong等是入参。是jini的int,long等类型。理解为ji原创 2020-12-20 16:23:36 · 248 阅读 · 0 评论 -
Handler机制源码分析
目录前言Handler使用,请参见:https://blog.youkuaiyun.com/fdsafwagdagadg6576/article/details/110293636正文一 整体框架总体流程 Handler通过sendMessage()发送Message到MessageQueue队列; Looper通过loop(),不断提取出达到触发条件的Message,并将Message交给target来处理; 经过dispatchMessage()后,交回给Handler的hand.原创 2020-12-16 23:41:44 · 347 阅读 · 0 评论 -
Broadcast&ContentProvider&eventBus拾遗草稿
一 Broadcast 分成静态注册和动态注册.广播的注册不同于service的sm注册,binder的实现主体是os,与sm没关系。广播是转发主体是ams转发的。register和发送消息都是binder. 转发消息是hashmap.key 是消息,value是接收方.每种系统都有异步通信机制。linux的信号回到,angularjs的observerable event.动态注册静态注册虚线为逻辑实现,也是代码实现。mActivityThread.post 发送,...原创 2020-12-15 11:02:45 · 199 阅读 · 0 评论 -
改写android Context
原文地址:打脸现场!Android面试官:Context都说不明白也来面高工?你是来搞笑的吧?https://www.jianshu.com/p/2a0cf846ade3.本文是对原文的改写一 前言Activity mActivity =new Activity();QA:android的new对象和java的new对象一样吗?an:不一样. java是new一个对象.android是new一个组件。组件包括对象和Context.二 Context定义:语境; 上下文;...原创 2020-12-13 11:05:12 · 636 阅读 · 0 评论 -
图解view材料收集
框架图关系图源码分析:原创 2020-12-11 10:58:28 · 291 阅读 · 0 评论 -
Android四大组件总结
intent blogintent是什么?作用?是进程通信还是线程通信,在activity之间应该是对象通信,在aidl中又是进程通信?activity,intent ,provider,bundle分别的作用??intent可以通过extras使用bundle对象发送data传递机制是intent, 传递的数据结构是bundle or 序列化.Parcel的作用类du似于Java中的serialize,即对象的序列化。Parcel的最主要作用是在各个activity之间传递数据and.原创 2020-12-09 15:09:46 · 331 阅读 · 0 评论 -
《Service史上最全面解析》理解和补充
目录image《Service史上最全面解析》地址:https://blog.youkuaiyun.com/carson_ho/article/details/53160049.本文是在读完上面blog之后,对没有完全理解的service内容的补充.1. 简介作用:提供 需在后台长期运行的服务 Service不需要界面,提供一种服务.在后台执行耗时的操作.比如:download 文件,数据库操作.如:复杂计算、音乐播放、下载等特点:无用户界面、在后台运行、生命周期长2...原创 2020-12-05 16:19:21 · 374 阅读 · 0 评论 -
Handler总结和补充
目录:1 定义&作用2 分类3 使用:示意图,steps+code4 使用场景适用场景角色作用模块框架消息流程使用框架1. 定义一套Android消息传递机制2. 作用在多线程的应用场景中,将工作线程中需更新UI的操作信息 传递到UI主线程,从而实现 工作线程对UI的更新处理,最终实现异步消息的处理why 要使用handle呢?如果不用handle的话,子线程和主线程如何传递msg呢?自己写一个生产者-消费者模型,轮询读取msg.handle实际就是...原创 2020-11-29 16:43:49 · 464 阅读 · 0 评论 -
Activity总结和补充
目录:导图1作用: service 是服务(类似守护进程).它不需要界面,在后台执行耗时的操作.比如:download 文件,数据库操作.Service的执行与后台线程方式极大不同,Service只是一种代码逻辑的抽象,实际上它还是运行在Activity同一线程上下文环境activity and service 关系?它们运行在同一个进程,如果结束当前activity所在进程,service也同样会结束,因此他们两个是运行在同一个进程中的.activity是运行在主线程中的ser.原创 2020-11-24 16:15:28 · 384 阅读 · 0 评论 -
《第一行代码》思维导图
原始思维导图在https://www.zhihu.com/question/27596017,本思维导图在此基础上增加了实例,去掉了一些非重点原创 2020-11-22 15:02:25 · 356 阅读 · 0 评论 -
Android Binder&Aidl理解和补充
前言下面这篇是读过的最好的关于binder和aidl的blog。图文详解 Android Binder跨进程通信的原理:https://www.jianshu.com/p/4ee3fd07da14.Android:远程服务Service(含AIDL & IPC讲解)https://www.jianshu.com/p/34326751b2c6下文是对上面blog的一些补充.0 什么是binderbinder是一套实现进程通信的系统。binder是client-server结构,.原创 2020-11-21 23:22:47 · 780 阅读 · 0 评论 -
GSon 实例和解析
Gson 是一个 Java 库,可用于将 Java 对象转换为 JSON 字符串表示。1 Gson 实例1.1 class 和 string 转化JSONObject是个好东东,可以将java class 分分钟变成json 传递语法说明keyword: toJson and fromJsoneg1: // 简单的bean转为json St...原创 2019-01-25 21:34:36 · 471 阅读 · 0 评论 -
Andriod Timer,ScheduledExecutorService ,ACTION_TIME_TICK ,handler,calendar
1 Schedule 作用是指定时间interval, 执行回调函数1) ScheduleExecutorServiceschedulescheduleAtFixedRatescheduleWithFixedDelay用法:private ScheduledExecutorService executor;executor = Executors.newSingleThreadS...原创 2018-09-05 16:03:36 · 412 阅读 · 0 评论