
Android Framework
894508923
像只蜗牛的搬运工
展开
-
Android framework : 应用的UI线程如何启动
慕课网 剖析framework 笔记4-3 应用的UI线程是怎么启动的考察1,什么是UI线程2,UI线程的启动流程,消息循环是怎么创建的3,了解Android的UI显示原理,UI线程和UI之间的关联1,什么是UI线程1)UI线程是刷新UI所在的线程。非UI线程不能刷新UI2)UI是单线程刷新的。如果多个线程都能刷新UI就无所谓是不是UI线程了,为什么...原创 2019-06-05 14:47:45 · 995 阅读 · 0 评论 -
Android framework : 对context的理解
慕课网 framework 笔记3-4 谈谈对context的理解考察:了解context的作用熟悉context初始化流程深入理解不同应用组件之间context的区别回答问题:1,应用里多少个context,不同context之间由上面区别2,Activity里面的this和geteBaseContext有什么区别3,getAppliccation和ge...原创 2019-06-03 16:53:18 · 729 阅读 · 0 评论 -
Android framework:Activity的显示原理
慕课网 剖析framework 笔记4-2 Activity的显示原理看看相关问题,了解UI涉及的内容;对比他们考察的点,不要弄混:1,Activity的显示原理:它是关于Window/DecorView/ViewRoot的概念的2,Activity的UI刷新机制是关于Vsync/Choreographer的3,UI的绘制原理关于Measure/Layout/...原创 2019-06-05 14:45:06 · 808 阅读 · 0 评论 -
Android显示系统 SurfaceFlinger内部机制 3 APP申请创建Surface的过程
韦东山 笔记3,APP申请创建Surface的过程看看Surface_test的过程1,获取SF服务,2,创建Surface,3,得到buffer,4,写buffer,5,回顾下获取SF服务过程:AP获取SF服务,调用createConnection创建连接,SF创建mClient,AP端得到它通过它的createSurface创建Surface...原创 2019-06-13 18:55:37 · 879 阅读 · 0 评论 -
Android显示系统 SurfaceFlinger内部机制 4 AP申请buffer的过程,lock
韦东山 笔记04, AP申请buffer的过程,lockAP显示界面需要用到SF的服务,1,SF端用client表示要使用界面的APP,2,AP端创建Surface,SF端对应Layer,Layer有生产者和消费者,Surface里有mGraphicBufferProducer,它是一个代理类,指向SF端的Layer的生产者,所以AP端可以使用生产者的所有函数Surf...原创 2019-06-13 18:58:39 · 1081 阅读 · 0 评论 -
Android显示系统 SurfaceFlinger内部机制 6 应用端request buffer过程
Android显示系统 SF内部机制 06 应用端request buffer过程上节讲了分配buffer的过程,如果发现某个slot的buffer需要重新分配,则使用mGraphicBufferProducer->requestBuffer(buf, &gbuf);远程调用来更新重新分配的buffer的信息,下面分析requestBufferSurfac...原创 2019-06-13 19:00:13 · 752 阅读 · 0 评论 -
Android显示系统 SurfaceFlinger内部机制 7 unlock and post buffer过程
回顾,1,AP,要显示界面,必然会使用SF服务,SF端用Client表示APP,2,AP可以创建多个Surface:client->CreateSurface;3,AP端得到SurfaceControl有生产者代理, SF端对应为Layer,Layer含有生产者和消费者,它们指向同一个的mCore和mSlots引用,mCore指向BufferQueueCore对象,mSl...原创 2019-06-13 19:02:26 · 952 阅读 · 1 评论 -
Android显示系统 vsync机制 01 vsync的产生和分发
学习流程:先看文章,再看代码,再看文章,再画图很多文章写的太长,看了后面忘了前面,必须画出来我只是知识的搬运工和总结者ButterProject,1,引入Vsyncandroid 4.1之前,是两个buffer的,如果CPU和GPU不按照Vsync的节奏执行,比如第二帧vsync马上要到了,CPu和GPU才去执行,就出现Jank,改进是,vsync来的时...原创 2019-06-13 19:05:26 · 4247 阅读 · 0 评论 -
Android显示系统 SurfaceFlinger内部机制 1 AP如何获取SurfaceFlinger服务
韦东山 Android framework 笔记1,显示系统框架a,显示驱动framebuffer的原理和改进b,多任务系统的显示:一定有一个显示管理者c,android显示系统框架4,SurfaceFlinger的内部机制4.1 APP跟SurfaceFlinger之间的重要数据结构,一个APP可以构造多个界面,它一般只有一个Surface,也可以有多...原创 2019-06-10 18:53:14 · 1159 阅读 · 0 评论 -
Android Framework : Surface跨进程传递原理
慕课网 剖析framework 笔记6-3 Surface跨进程传递原理问题:1,怎么理解Surface,它是一个buffer吗2,如果是,如果SUrface底层就是一块buffer,Surface跨进程传递怎么带上这个buffer?3,如果不是,那Surface和buffer又有什么关系?4,surface到底是怎么跨进程传递的?看看Surface类的定义...原创 2019-06-10 18:58:10 · 3397 阅读 · 0 评论 -
Android Framawork : IPC总结
7-1 Android Frmawork用到了哪些IPC考察:1,看你是否了解Linux常用的跨进程通信,比较Android底层是Linux,它很多底层实现依赖于Linux的OS调用,2,是否研究过Android Framework的一些原理3,是否了解Framwork各个组件之间的通信原理。 组件之间通信都要跨进程,而且并不只是用了binder这节课不讲binde...原创 2019-06-10 19:01:25 · 398 阅读 · 0 评论 -
Android显示系统 SurfaceFlinger内部机制 2 AP如何创建SurfaceFlinger Client
韦东山 Android Framework 笔记4-2 APP创建SurfaceFlinger client的过程Surface_test的第一句就是:sp<SurfaceComposerClient> client = new SurfaceComposerClient();看看它的过程,做了时序图001_create_client通过上面的学习...原创 2019-06-10 19:02:38 · 461 阅读 · 0 评论 -
Android framework : 对Application的理解
慕课网 剖析framework 笔记3-3 谈谈对Application的理解考察:1,是否了解Application作用,刚接触Android开发时都会接触Application2,是否熟悉Application的类的继承关系,和生命周期3,是否深入理解Application的初始化原理从简单的开始一,Application有什么作用?Applicaton是...原创 2019-06-03 16:51:22 · 477 阅读 · 0 评论 -
Android framework : Activity启动流程
慕课网 剖析framework 笔记4-1 说说Activity的启动流程考察:1,启动Activity经历哪些声明周期回调2,冷启动流程,涉及的组件,组件通信过程是怎么样的3,Activity启动过程中,生命周期回调的原理1,Activity的启动原理:1)startActivity:这个要跨进程调用到AMS,为什么?因为Activity是应用组...原创 2019-06-03 16:47:47 · 433 阅读 · 0 评论 -
Android framework 应用进程如何启动binder机制
慕课网 剖析framework 笔记3-2 应用是怎么启动binder机制的?考察:了解binder是干嘛的? 跨进程通信的AP哪些地方用了binder机制? 调用系统服务,启动Activity,发广播,涉及到应用组件都要和AMS交互,就涉及binder机制。AP的启动流程? 因为binder机制是在AP启动过程中启动的进程怎么启动binder机制?一,什么...原创 2019-06-03 16:29:37 · 765 阅读 · 0 评论 -
Android framework : UI刷新机制:Vsync and Choreographer
慕课网 剖析framework 笔记6-1 说说android的UI刷新机制这个和界面优化有关系,卡顿会影响用户体验,理解UI刷新机制对解决问题有帮助的问题:1,丢帧是什么原因引起的?2,Android的刷新频率是60帧/s,是每隔16ms就调用onDraw绘制一次?3,onDraw之后屏幕会马上刷新吗?4,如果界面没有重绘,还会每隔16ms刷新屏幕嘛》...原创 2019-06-05 14:53:30 · 1399 阅读 · 0 评论 -
android图形系统架构
深入剖析android新特性 第九章 笔记第九章 图形系统改进早期android卡顿,jelly bean 4.0后有改进9.1 图形系统整体架构AP有两种绘制图形方法,canvas:android.graphics.Canvas是2D的图形API,Canvas API的硬件加速通过一个名为OpenGLRenderer的绘图库实现,它将Canvas操作转换为...原创 2019-04-01 20:36:00 · 807 阅读 · 0 评论 -
android图形系统组件
深入剖析android新特性 笔记9.2 图形系统组件图形系统的实现涉及比较多的模块,代码在:frameworks/base/core/jni/frameworks/native/libs/ui/frameworks/native/libs/gui/frameworks/native/service/.surfaceflinger/.hardware/libhardwa...原创 2019-04-02 21:05:01 · 792 阅读 · 0 评论 -
Android Project Butter 黄油计划
深入剖析android新特性 笔记9.3 Project Butter 黄油计划Android4.1 Jelly Bean引入了ProjectButter先说背景,再讲解为什么ProjectButter能提升流畅性用户感受到流畅性在于自己的输入事件与返回结果之间的延迟,若事件延迟短,则跟手,流畅,这只是用户的角度看问题,系统中,从事件输入到最终结果响应,过程非常复杂...原创 2019-04-02 21:05:49 · 1940 阅读 · 0 评论 -
Android GUI系统 View体系
深入理解Android内核思想 第十一章 笔记第十一章 GUI系统-View体系前面分析了ANDROIDGUI系统底层支撑框架,SF和WMS两个系统服务的内部原理。但是从用户角度,他们不关心。真正与用户联系的,是View体系,。所有APK应用程序的UI界面都是它描述的。这里有个AP进程里面的View框架图Activity是API各个组件中使用率最高的 ,专门设计...原创 2019-04-17 09:58:03 · 352 阅读 · 0 评论 -
Android GUI系统 SurfaceFlinger
深入理解android内核设计思想 第九章 笔记第九章,GUI系统-surfaceFlinger流畅性,友好性,可拓展性9.1,openGL ES,EGLSurfaceFlinger是GUI系统的核心,但是对于GLES,只是一个APP整体框架:由底层到上层顺序分析:1,Linux内核提供统一的framebuffer显示驱动。在/dev/graphics/fb,...原创 2019-04-30 14:05:06 · 1088 阅读 · 0 评论 -
Android framework : zygote概况
慕课网 Android Framework 笔记一,zygote1,了解zygote作用,初级2,zygote启动流程,中级3,zygote工作原理,高级1,zygote的作用:启动SystemServer孵化应用进程system server也是通过zygete启动的,因为它需要zygote的资源:常用类,JNI函数,主题资源,共享库,And...原创 2019-05-29 17:17:51 · 657 阅读 · 2 评论 -
Android framework 系统服务的启动流程
慕课网 android framework 笔记二,android系统的启动流程1, Android有哪些系统进程2,系统进程如何启动3,进程启动后做了什么事情android有哪些系统进程?可以看看init.rc里面定义了很多service,就是要单独启动的系统服务进程service zygote /system/bin/app_processservi...原创 2019-05-29 17:19:04 · 1348 阅读 · 0 评论 -
Android framework 如何添加系统服务
慕课网 android framework 笔记2-3 三,怎么添加一个系统服务1,了解如何使用系统服务2,了解系统服务调用的基本原理,服务和应用的通信过程,如何跨进程调到服务的,3,了解服务的注册原理,服务是注册制,不是绑定的。service注册到service managerclient要用service要先拿到service的binder,然后发起binder调...原创 2019-05-29 17:19:54 · 2082 阅读 · 0 评论 -
Android framework 系统服务和应用服务的区别
慕课网 android framework 笔记2-4 系统服务和bind的应用服务有什么区别?为什么专门提到的bind的应用服务?因为它与系统服务更有可比性考察:启动方式的区别注册方式的区别使用方式的区别1,启动方式的区别1)系统服务的启动,系统服务大部分跑在system server里,也是在它里面启动的,在system server启...原创 2019-05-29 17:24:09 · 3552 阅读 · 0 评论 -
Android framework 应用进程如何启动
慕课网 剖析framework 笔记3-1 应用进程如何启动考察:Linux如何启动进程,有什么系统调用Android里应用进程启动的基本流程,进程由谁启动,谁发起深入理解应用进程启动的原理,各个组件之间的通信过程1,进程启动方式前面讲过,两种。都是 通过fork,子进程返回的pid是0,父进程返回的pid是子进程的pid。区别:第二种在子...原创 2019-06-03 16:26:34 · 630 阅读 · 0 评论 -
Android Framawork : Binder概况
7-2 对binder的理解考察:1,binder是干嘛的,2,binder存在的意义,为什么不用别的方案3,架构原理1,binder干嘛的就是通信的,Client端和Server可以在同进程,不同进程,Client端可以发起远程函数调用,也可以传数据,数据当做函数参数传特点是,远程调用的进程边界很模糊,不用关心对方是什么进程如果我们设计远程调...原创 2019-06-10 19:07:05 · 397 阅读 · 0 评论