- 博客(143)
- 资源 (6)
- 收藏
- 关注
原创 OpenGL ES 3.0 Programming guide 4-6
Chapter 4 Shaders and ProgramsChapter 2 we created two shader objects(vertex shader and fragment shader) and a single program object to render the triangle.4.1 shaders and programsThe best...
2019-11-22 09:34:02
317
原创 OpenGL ES 3.0 Programming Guide 1-3
一,introduction to OGLES 3.0OGLES 3.0 Graphics Pipeline:VertexBuffer/ArrayObj => VertexShader(texture)===(transform feedback)===> primitives assembler => Rasterizer Stage => fragment...
2019-11-21 16:22:52
467
原创 Linux设备驱动程序 三 字符设备驱动
Linux设备驱动程序 三 字符设备驱动 笔记第三章 字符驱动设备本章会编写一个完整的字符设备,字符设备简单,易于理解,名字是scull:Simple Caracter Utility for Loading Localities,区域装载的简单字符工具,scull是一个操作内存区域的字符设备driver,这片内存区域就相当于一个设备。它不和硬件相关,只是操作...
2019-06-13 19:11:07
1746
原创 Linux设备驱动程序 二 构造和运行模块
第一章 设备驱动程序简介driver在于提供机制,而不是策略。要提供什么功能,如何使用这些功能。内核功能:进程管理,内存管理,文件系统,设备控制,网络设备类型:字符模块、块模块、网络模块字符设备:是能像字节流一样被访问的dev,如中断/dev/console和串口/dev/tty0通常至少要实现open,close,read,write,,大...
2019-06-13 19:07:53
492
原创 Android显示系统 vsync机制 01 vsync的产生和分发
学习流程:先看文章,再看代码,再看文章,再画图很多文章写的太长,看了后面忘了前面,必须画出来我只是知识的搬运工和总结者ButterProject,1,引入Vsyncandroid 4.1之前,是两个buffer的,如果CPU和GPU不按照Vsync的节奏执行,比如第二帧vsync马上要到了,CPu和GPU才去执行,就出现Jank,改进是,vsync来的时...
2019-06-13 19:05:26
4231
原创 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
940
1
原创 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
750
原创 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
1071
原创 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
870
原创 玩转数据结构 java描述 一 概况
第一章 介绍,数据结构是计算机专业的同学必学的课程数据结构研究的是数据如何在计算机进行组织和存储,使得我们可以高效的获取数据或者修改数据。数据结构可以分为三种结构:线性结构:数组;栈;队列;链表;哈希表树结构:二叉树,二分搜索树,AVL,红黑树,Treap,Splay,堆,Trie,线段树,K-D树,并查集,哈夫曼树图结构邻接矩阵,邻接表...
2019-06-13 18:50:07
15110
66
原创 玩转算法与数据结构 C++描述 插入排序
2-5 插入排序 Insertion Sort整理扑克牌的思想看后面的牌,插入到前面合适的位置//main.cpp#inlcude <iostream>#inlcude <algorithm>#include "SortTestHelper.h"#include "SelectionSort.h"using namespace std;temp...
2019-06-10 19:18:25
284
原创 玩转算法与数据结构 C++描述 选择排序
慕课网 玩转算法与数据结构 笔记1-1 我们究竟为什么学习算法计算机专业的同学对算法不陌生,为什么要学习算法?很多同学是为了应付面试,大公司都需要但是我们应该体会到,算法是至关重要的很多人认为自己工作里,和算法都没有关系但是编译器里都是算法帮助我们完成的,封装在工具中,我们意识不到他的存在,认为是理所当然的,搜索引擎:搜索算法+排序算法1...
2019-06-10 19:16:13
782
原创 Android Framawork : Binder概况
7-2 对binder的理解考察:1,binder是干嘛的,2,binder存在的意义,为什么不用别的方案3,架构原理1,binder干嘛的就是通信的,Client端和Server可以在同进程,不同进程,Client端可以发起远程函数调用,也可以传数据,数据当做函数参数传特点是,远程调用的进程边界很模糊,不用关心对方是什么进程如果我们设计远程调...
2019-06-10 19:07:05
395
原创 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
454
原创 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
392
原创 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
3383
原创 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
1152
原创 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
1394
原创 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
991
原创 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
801
原创 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
726
原创 Android framework : 对Application的理解
慕课网 剖析framework 笔记3-3 谈谈对Application的理解考察:1,是否了解Application作用,刚接触Android开发时都会接触Application2,是否熟悉Application的类的继承关系,和生命周期3,是否深入理解Application的初始化原理从简单的开始一,Application有什么作用?Applicaton是...
2019-06-03 16:51:22
476
原创 Android framework : Activity启动流程
慕课网 剖析framework 笔记4-1 说说Activity的启动流程考察:1,启动Activity经历哪些声明周期回调2,冷启动流程,涉及的组件,组件通信过程是怎么样的3,Activity启动过程中,生命周期回调的原理1,Activity的启动原理:1)startActivity:这个要跨进程调用到AMS,为什么?因为Activity是应用组...
2019-06-03 16:47:47
425
原创 Android framework 应用进程如何启动binder机制
慕课网 剖析framework 笔记3-2 应用是怎么启动binder机制的?考察:了解binder是干嘛的? 跨进程通信的AP哪些地方用了binder机制? 调用系统服务,启动Activity,发广播,涉及到应用组件都要和AMS交互,就涉及binder机制。AP的启动流程? 因为binder机制是在AP启动过程中启动的进程怎么启动binder机制?一,什么...
2019-06-03 16:29:37
761
原创 Android framework 应用进程如何启动
慕课网 剖析framework 笔记3-1 应用进程如何启动考察:Linux如何启动进程,有什么系统调用Android里应用进程启动的基本流程,进程由谁启动,谁发起深入理解应用进程启动的原理,各个组件之间的通信过程1,进程启动方式前面讲过,两种。都是 通过fork,子进程返回的pid是0,父进程返回的pid是子进程的pid。区别:第二种在子...
2019-06-03 16:26:34
627
原创 Android framework 系统服务和应用服务的区别
慕课网 android framework 笔记2-4 系统服务和bind的应用服务有什么区别?为什么专门提到的bind的应用服务?因为它与系统服务更有可比性考察:启动方式的区别注册方式的区别使用方式的区别1,启动方式的区别1)系统服务的启动,系统服务大部分跑在system server里,也是在它里面启动的,在system server启...
2019-05-29 17:24:09
3538
原创 Android framework 如何添加系统服务
慕课网 android framework 笔记2-3 三,怎么添加一个系统服务1,了解如何使用系统服务2,了解系统服务调用的基本原理,服务和应用的通信过程,如何跨进程调到服务的,3,了解服务的注册原理,服务是注册制,不是绑定的。service注册到service managerclient要用service要先拿到service的binder,然后发起binder调...
2019-05-29 17:19:54
2080
原创 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
1345
原创 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
652
2
原创 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
1077
原创 Android GUI系统 View体系
深入理解Android内核思想 第十一章 笔记第十一章 GUI系统-View体系前面分析了ANDROIDGUI系统底层支撑框架,SF和WMS两个系统服务的内部原理。但是从用户角度,他们不关心。真正与用户联系的,是View体系,。所有APK应用程序的UI界面都是它描述的。这里有个AP进程里面的View框架图Activity是API各个组件中使用率最高的 ,专门设计...
2019-04-17 09:58:03
349
原创 计算机图形学 一
计算机图形学 一 概论 笔记中国农业大学,计算机图形学1.3.2 图形显示设备显示器分四种:CRT,LCD,LED,等离子体,3d显示器CRT使用阴极射电管的显示器,我们内部把VGA接口的叫CRT显示器,工作原理:电子束,发射,偏移彩色CRT可以显示不同颜色,如何产生:荧光屏上涂有三种荧光物质,R G B三种颜色,自然界任何颜色都可以由这三种颜色...
2019-04-14 21:12:05
1676
1
原创 Android Project Butter 黄油计划
深入剖析android新特性 笔记9.3 Project Butter 黄油计划Android4.1 Jelly Bean引入了ProjectButter先说背景,再讲解为什么ProjectButter能提升流畅性用户感受到流畅性在于自己的输入事件与返回结果之间的延迟,若事件延迟短,则跟手,流畅,这只是用户的角度看问题,系统中,从事件输入到最终结果响应,过程非常复杂...
2019-04-02 21:05:49
1932
原创 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
789
原创 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
799
原创 内存管理单元MMU
嵌入式Linux应用开发 第七章 笔记7.1.1 S3c2410 MMU特性介绍,MMU:负责虚拟地址到物理地址映射,提供硬件机制的内存访问权限检查。地址映射使各进程看起来拥有一致的独立地址空间内存访问检查保护每个进程的内存不被其他进程损坏2410特性:与ARM v4兼容的映射长度,域,访问权限检查机制4种映射长度:段1MB,大页64kB,小页4KB,极小页1k...
2019-03-29 19:38:49
349
原创 C和指针 一 数据
第一章至第三章 笔记学习语言的基础不如编写程序有趣,但不知道语言的基础会使你在编写程序时缺少乐趣第一章 快速上手删除C代码更好的方法:#if 0statements#endifstdio.h使我们可以访问标准IO库strandard I/O library#define MAX_COLS 20,这是字面值常量数组参数是传引用referen...
2019-03-26 20:42:31
271
转载 System mem和AGP mem和video mem
https://blog.youkuaiyun.com/xiajun07061225/article/details/7288365这个人写了学习图形学相关的流程,可以都看一遍图形学,GPU编程,经常遇到这三种存储区,下面总结下:system memory,是main memory,就是电脑内存条上的,一般很大,显卡不能访问video memory,显卡的显示,速度最...
2019-03-26 12:27:01
525
翻译 Windows graphic driver
04 WDDM Architecturehttps://docs.microsoft.com/zh-cn/windows-hardware/drivers/display/windows-vista-and-later-display-driver-model-architecture这是WDDM的显示驱动模型架构,vista可用,由UMD和KMD组成:WDDM由user m...
2019-03-26 12:23:55
3482
转载 how TLB work
之前遇到了linux random kernel panic的问题,原因是TLB的entry对应的page其实已经释放。VIP是独立的ko,create resource是通过VA接口走到我们ko的allocation接口,unmap gart后,没有invaliate tlb,再create allocation,使用了 同样的va,从tlb 拿PA,结果write到了已经释放的p...
2019-03-26 11:13:36
337
利用python网络爬虫批量下载花瓣中个人主页中收藏的所有图片
2016-10-30
CH340驱动(USB串口驱动)_XP_WIN7共用
2014-08-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人