自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 资源 (5)
  • 收藏
  • 关注

原创 ubuntu22.04 samba连接速度过慢修复

ubuntu samba速度慢

2022-06-09 21:56:06 8642 3

原创 Vulkan入门(14)-VkImage图像的创建.md

文章目录参考资料简述一. 纹理贴图1.1 图像库1.1 读取图片1.2 缓存读取的图片1.3 纹理图像(Texture Image)1.3.1 VkImageCreateInfo1.3.2 vkCreateImage1.3.3 createImage1.4 布局转换1.4.1 VkImageMemoryBarrier1.4.1.1 VkImageSubresourceRange1.4.1.2 VkImageAspectFlags1.4.2 vkCmdPipelineBarrier1.5 拷贝缓存数据至Ima

2021-04-06 00:13:25 3145

原创 Vulkan入门(13)-描述符布局及缓存.md

文章目录参考资料简述一. 描述符集布局1.1 VkDescriptorSetLayoutBinding1.1.1 VkDescriptorType1.1.2 VkShaderStageFlags1.2 创建VkDescriptorSetLayout1.2.1 VkDescriptorSetLayoutCreateInfo1.2.2 vkCreateDescriptorSetLayout1.3 管道指定描述符集布局1.4 统一缓存1.5 更新统一缓存数据二. 描述符2.1 描述符池2.1.1 VkDescri

2021-04-05 18:02:12 1437

原创 Vulkan入门(12)-暂存缓冲和索引缓冲.md

文章目录参考资料简述一. 传输队列二. 暂存缓冲区2.1 VkBufferUsageFlagBits2.2 VkMemoryPropertyFlags2.3 缓冲区拷贝函数2.2.1 vkCmdCopyBuffer 拷贝缓冲区2.3 缓冲区拷贝三. 索引缓冲区3.1 创建索引缓冲区3.2 使用顶点缓冲四. 绘制命令概述4.1 非索引绘图命令4.1.1 vkCmdDraw4.1.2 vkCmdDrawIndirect4.1.3 vkCmdDrawIndirectCount、vkCmdDrawIndirectC

2021-04-04 12:58:19 1202

原创 Vulkan入门(11)-顶点输入描述及顶点缓冲的创建.md

文章目录参考资料简述一. 顶点数据1.1 绑定描述1.1.1 VkVertexInputBindingDescription1.1.2 绑定1.2 属性描述1.2.1 VkVertexInputAttributeDescription1.2.2 绑定1.3 管道输入顶点二. 顶点缓冲区2.1 创建缓冲区2.1.1 VkBufferCreateInfo2.1.2 vkCreateBuffer2.1.3 createVertexBuffer2.2 给顶点缓冲区分配内存2.2.1 vkGetBufferMemor

2021-04-04 12:36:03 841

原创 Vulkan入门(10)-重建交换链.md

文章目录参考资料简述一. 重建交换链1.1 cleanupSwapChain1.2 获取窗口最新大小1.3 次优或过时的交换链1.3.1 fence1.3.2 vkQueuePresentKHR1.4 主动处理窗口变化1.4.1 监听窗口变化1.5 窗口最小化参考资料简述在上一篇里,我们已经成功绘制了一个颜色渐变的三角形,并将其显示在窗口上了。但是窗口Surface可能会发生变化,从而使交换链不再与之兼容,比如是窗口大小的变化。所以我们必须捕获这些事件并重新创建交换链。一. 重建交换链创建一个新的

2021-03-31 12:26:08 763 1

原创 Vulkan入门(9)-渲染和显示.md

文章目录参考资料简述一. 同步1.1 信号量同步1.2 创建信号量 vkCreateSemaphore二. 从交换链获取图像三. 提交指令缓冲区四. Subpass依赖五. 显示5.1 VkPresentInfoKHR5.2 显示设置5.2.1 vkQueuePresentKHR六. Frames in flight6.1 fence机制七. 总结参考资料简述在这一章里,所有的事情都要集中起来。我们将编写drawFrame函数,该函数将在主循环中被调用,以将三角形置于屏幕上。创建函数并从mainLoo

2021-03-28 11:39:51 1714

原创 Vulkan入门(8)-帧缓冲区和指令缓冲区.md

文章目录参考资料简述一. VkFramebuffer 创建帧缓冲区二. Command buffers 指令缓冲区2.1 Command pools 指令池2.1.1 创建指令池2.1.2 VkCommandPoolCreateInfo2.1.3 VkCommandPoolCreateFlags2.1.4 vkDestroyCommandPool2.2 Command buffer allocation 指令缓冲区分配2.2.1 vkAllocateCommandBuffers2.2.2 VkCommand

2021-03-28 11:38:26 1310

原创 Vulkan入门(7)-渲染过程及创建图形管道.md

文章目录参考资料简述一. Attachment description 附件说明1.1 loadOp1.2 storeOp1.3 内存中像素的布局二. Subpasses and attachment references 子过程和附件引用三. Render pass 渲染过程四. 创建 pipeline参考资料简述Render passes, 即渲染过程。在完成创建管道之前,我们需要告诉Vulkan渲染时将使用的帧缓冲区附件。我们需要指定将有多少颜色和深度缓冲区,为每个缓冲区使用多少个样本,以及在

2021-03-28 11:36:45 1101

原创 Vulkan入门(6)-创建管道的几个固定操作.md

文章目录参考资料简述一. Vertex input二. Input assembly三. Viewports and scissors3.1 Viewports3.2 Scissors3.3 使用方式四. Rasterizer (光栅化)五. Multisampling 多重采样六. Color blending 颜色混合6.1 VkPipelineColorBlendAttachmentState 结构6.2 VkPipelineColorBlendStateCreateInfo 全局颜色混合设置七. D

2021-03-28 11:35:25 884

原创 Binder(4)--binder驱动的加载.md

参考资料简介一. Linux内核init call过程1.1 android/kernel/msm-4.9/init/main.c1.2 android/kernel/msm-4.9/init/main.c:kernel_init_freeable1.3 android/kernel/msm-4.9/init/main.c:do_initcall_level二. binder驱动的初始化2.1 binder.c:binder_init2.1.1 操作函数的定义2.1.2 DE..

2020-12-19 15:05:10 1488 3

原创 Binder(3)--sayHello之ioctl.md

参考资料简介一. IBinder.transact1.1 BinderProxy.transact1.2 android_util_Binder#android_os_BinderProxy_transact1.3 BpBinder#transact1.4 IPCThreadState#transact1.4.1 IPCThreadState#writeTransactionData1.5 IPCThreadState#waitForResponse1.6 IPCThreadS..

2020-12-19 15:04:16 295 1

原创 Binder(2)--sayHello之BinderProxy的创建过程.md

参考资料简介一. asInterface方法1.1 IDemoInterface.Stub.asInterface1.2 Binder.queryLocalInterface1.3 创建IDemoInterface.Stub.Proxy对象二. sayHello2.1 Proxy.sayHello2.2 BinderProxy.transact2.3 android_util_Binder.cpp#android_os_BinderProxy_transact2.3.1 a..

2020-11-20 21:07:30 894 1

原创 Binder(1)--App使用Binder通信.md

参考资料简介一. 在App之间使用Binder通信1.1 创建Interface1.2 实现服务端接口1.3 客户端调用相关类图二. 通信过程2.1 Client=>ContextImpl.bindService2.1.1 LoadedApk.getServiceDispatcher2.2 SytemServer=>AMS.bindIsolatedService2.3 Client=>LoadedApk.ServiceDispatcher.Inner..

2020-11-19 21:20:12 614

原创 Android UI架构(十三)--App请求切换帧率(4)之SurfaceFlinger切换帧率.md

文章目录参考资料简述一. SurfaceFlinger接受帧率变化1.1 SurfaceFlinger.setDesiredActiveConfig1.2 SurfaceFlinger.repaintEverythingForHWC1.3 Scheduler.resyncToHardwareVsync1.3.1 Scheduler.setVsyncPeriod1.3.2 VSyncReactor.setPeriod1.3.3 VSyncReactor.startPeriodTransition1.4 VSy

2020-10-09 14:42:08 4710 1

原创 Android UI架构(十二)--App请求切换帧率(3)之SurfaceFlinger计算最佳帧率.md

文章目录参考资料简述一. SurfaceFlinger接受帧率变化1.1 SurfaceControl.setDesiredDisplayConfigSpecs1.1.1 android_view_SurfaceControl.nativeSetDesiredDisplayConfigSpecs1.1.2 SurfaceComposerClient.setDesiredDisplayConfigSpecs1.2 SurfaceFlinger.setDesiredDisplayConfigSpecs1.2.1

2020-09-22 00:32:26 3141 12

原创 Android UI架构(十一)--App请求切换帧率(2)之DisplayModeId.md

文章目录参考资料一. preferredDisplayModeId改变1.1 RootWindowContainer.applySurfaceChangesTransaction1.2 DisplayContent.applySurfaceChangesTransaction()1.3 DisplayContent.mApplySurfaceChangesTransaction1.4 DisplayManagerService.setDisplayProperties二. DisplayModeDirect

2020-09-20 20:11:25 4269 2

原创 Android UI架构(十)--App请求切换帧率(1).md

文章目录参考资料背景查看设备可支持的刷新率和分辨率App设置设备帧率Android Q及以下版本Android R参考资料https://zhuanlan.zhihu.com/p/142212769?from_voters_page=true背景随着手机屏幕硬件能力的提升,越来越多的厂商提供支持多档次刷新率的Android设备。而在Android Q上也是支持App指定当前屏幕帧率的,也有一套帧率分辨率切换的逻辑。查看设备可支持的刷新率和分辨率使用命令:adb shell dumpsys

2020-09-20 13:48:45 3565 3

原创 Android UI架构(九)--探秘刷新动力Vsync(5)之Layer合成composer.md

参考资料[Android Synchronization Fences – An Introduction]http://netaz.blogspot.com/2013/10/android-fences-introduction-in-any.html[Android 4.0.3 显示系统深入理解]https://www.linuxidc.com/Linux/2012-03/55898p4.htm[Clang 10 documentation ATTRIBUTES IN CLANG]https:/

2020-06-16 20:18:21 3659

原创 Android UI架构(八)--探秘刷新动力Vsync(4)之Layer&Surface准备.md

参考资料[Android Synchronization Fences – An Introduction]http://netaz.blogspot.com/2013/10/android-fences-introduction-in-any.html[Android中的GraphicBuffer同步机制-Fence]https://blog.csdn.net/jinzhuojun/article/details/39698317[深入浅出Android BufferQueue]https://b

2020-06-10 21:08:04 2646 2

原创 Android UI架构(七)--探秘刷新动力Vsync(3)之AppEventThread接受vsync信号.md

文章目录参考资料一. 前言二. App进程与AppEventThread建立通信过程2.1 Choerographer初始化2.2 FrameDisplayEventReceiver初始化2.3 android_view_DisplayEventReceiver.cpp:nativeInit2.5 DisplayEventDispatcher 初始化2.6 DisplayEventReceiver初始化2.6.1 SurfaceFlinger.createDisplayEventConnection2.6.

2020-06-10 20:56:55 1141

原创 Android UI架构(六)--探秘刷新动力Vsync(2)之DispSync.md

文章目录参考资料一. DispSync二. DispSync初始化2.1 SurfaceFlinger2.2 DispSync创建2.3 SurfaceFlinger::SurfaceFlinger2.4 DispSync.init2.4.1 DispSyncThread.threadLoop三. enableVysncLocked后续3.1 DispSync.addEventListener3.2 DispSync.DispSyncThread.addEventListener四. setPeriod4.

2020-06-01 21:33:12 1658 1

原创 Android UI架构(五)--探秘刷新动力Vsync(1)之EventThread.md

文章目录参考资料一. SFEventThread1.1 BitTube二. EventThread启动2.1 SurfaceFlinger.init2.2 EventThread初始化2.3 EventThread.threadMain2.4 EventThread.waitForEventLocked2.5 EventThread.Connection.postEvent三. SF EventThread 添加Connection3.1 SurfaceFlinger.init3.2 MessageQueu

2020-05-30 15:35:18 1649

原创 Android UI架构(四)--SurfaceFlinger的初始化.md

参考:Vysnc虚拟化Android SurfaceFlinger SW Vsync模型Android SurfaceFlinger服务的消息队列创建过程分析Android6.0 显示系统(六) 图像的输出过程Android图形显示系统(一)文章目录一、SurfaceFlinger的启动1.1 surfaceflinger.rc1.2 main_surfaceflinger.cpp:main()1.3 实例化SurfaceFlinger1.3.1 SurfaceFling

2020-05-30 15:16:27 2263

原创 简述RecyclerView的fling过程

我们以RecyclerView为例,研究一下ListView是怎么滑动并且更新view的。首先可以肯定的是以Choreographer为基础实现的。一、fling过程研究fling动作是由input事件触发的。1.1 RecyclerView.onTouchEvent @Override public boolean onTouchEvent(MotionEvent e) { if (mLayoutFrozen || mIgnoreMotionEventTillDow

2020-05-30 14:50:01 3276 2

原创 6-ZigZag Conversion

文章目录题干Example 1:Example 2:解析当numRows=3,4时Code题干The string “PAYPALISHIRING” is written in a zigzag pattern on a given number of rows like this: (you may want to display this pattern in a fixed font f...

2019-11-03 16:14:56 114

原创 Vulkan入门(五)-图像视图及Pipeline简述.md

文章目录参考资料简述一. Image views二. 图形管道 Pipeline 简介三. 着色器(Shader modules)3.1 顶点着色器 Vertex Shader3.2 片段着色器 Fragment Shader3.3 为每个顶点着色3.4 编译着色器3.4.1 Linux平台下编译方式3.4.2 Windows平台编译方式3.5 加载着色器3.6 创建着色器模块(shader mo...

2019-05-10 18:41:46 1757

原创 Vulkan入门(四)-Surface和交换链.md

文章目录参考资料简述一. Window Surface1.1 创建窗口Surface二. Swap Chain-交换链2.1 检查GPU是否支持交换链2.2 使能设备扩展2.3 获取关于swap chain更多支持细节2.4 为swap chain-交换链选择合适的设置2.4.1 Surface格式2.4.2 呈现模式(Presentation Mode)2.4.3 交换范围(Swap exten...

2019-05-06 23:32:56 1964

原创 Vulkan入门(三)-创建物理设备和逻辑设备.md

文章目录参考资料简述一. Physical devices and queue families(物理设备和队列系列)1.1 选择物理显卡GPU1.2 基础设备适配性检查1.3 Queue families二. Logical device and queues2.1 指定要创建的队列2.2 指定使用的设备功能(feature)2.3 创建逻辑设备2.4 检索队列句柄附录vulkan featur...

2019-05-04 11:08:04 3679

原创 Vulkan入门(二)-创建Vulkan实例及验证层.md

文章目录参考资料简述一. 创建 vulkan 实例1.1 创建 Window 实例1.2 创建 Vulkan 实例二. 验证层(Validation layers)2.1 什么是 Validation layers?2.2 Validation layers示例2.3 启用验证层2.4 消息回调2.4.1 调试回调函数 debugCallback2.4.2 注册调试回调三. 代码3.1 Makef...

2019-05-01 18:33:06 1476 1

原创 Vulkan入门(一)-环境配置.md

文章目录参考资料一. 准备环境1.1 开发环境1.2 下载 SDK1.3 安装SDK1.4 安装驱动二. 运行示例程序参考资料https://vulkan.lunarg.com/doc/sdk/1.1.106.0/linux/getting_started.html一. 准备环境1.1 开发环境sudo apt-get updatesudo apt-get dist-upgrade...

2019-04-29 17:01:16 8783 2

原创 求m的最近较大的2次幂n的2^n值(n=NextPow2(m)).md

参考资料思路设 m = 13, 表示成二进制则为:m = 1101考虑到 2^n 一定是最高位为1,其余位均为0,也就是 2^n = 100…那么大于m的最小2^n一定是m的二进制最高位左移一位,其余位为0即可源码android/external/skia/src/core/SkMathPriv.h:/** * Returns the next power of 2 >= n...

2019-04-29 11:10:07 1039

原创 最长子回文序列.md

文章目录一. 题干二. 思路三. 进阶一. 题干给定一个字符串s,找到s中最长的回文子字符串。 您可以假设s的最大长度为1000。例1:输入:“babad”输出:“bab”注意:“aba”也是一个有效的答案。例2:输入:“cbbd”输出:“bb”二. 思路第一眼看到这个题目,想到的是反转字符串找相同的序列即可,然后发现具体实施更麻烦了。让我们思考回文序列的规律:aaa...

2019-04-13 17:27:26 266

原创 破解starUML3.1.0(Ubuntu18.04).md

文章目录参考博客一. 解包破解1.1 下载starUML程序1.2 解包程序1.3 去掉license验证1.3.1 安装asar1.3.2 解压app.asar1.3.3 修改源码1.3.4 替换 app.asar二. AppImageKit 打包2.1 下载AppImageKit2.2 重新打包参考博客破解StarUML3.01最新版 for Linux(Ubuntu16LTS)App...

2019-03-24 10:51:54 3136 4

原创 Android UI架构(三)--Activity的显示(2).md

文章目录参考资料一、SurfaceSession的创建1.1 SurfaceSession 的创建1.2 android_view_SurfaceSession.cpp:nativeCreate1.3 SurfaceComposerClient.cpp 的创建1.4 SurfaceComposerClient.cpp:ComposerService:getComposerService1.4.1 ...

2019-03-23 19:46:10 369

原创 最大子序列和.md

public class MaxSubSum { public static int[] queue = { 1, -2, 9 , -5, 6 , -3, -2, 10, -3, 8, -7 , 10 }; public int maxSubSum_ON3(int[] array) { if (array.length == 0) return 0; ...

2019-03-17 15:52:15 310

原创 Android UI架构(二)--Activity的显示(1).md

文章目录参考资料一. 类图二. Activity的UI创建流程2.1 ActivityThread.handleLaunchActivity2.2 ActivityThread.performLaunchActivity2.3 Activity.attach2.4 PhoneWindow.setWindowManager -- 创建WindowManager对象三. Activity的UI绘制3....

2019-03-17 12:00:37 657

原创 Android开机流程(二)--简单的性能分析技巧.md

文章目录参考资料一、通过Log文件分析1.1 event.log1.2 android.log二、通过systrace分析2.1 抓取开机systrace的步骤参考资料这里简单分享下如何分析开机速度的问题。有如下方法:通过android.log 和 event.log通过systrace通过bootchartbootchart方法暂时不研究,用的也不多,主要是log和s...

2019-03-17 11:54:21 1513

原创 Android开机流程(一)

参考文章Android系统开篇一、概述简单梳理下Andorid启动流程。一般操作系统启动流程如下图:Android系统启动流程概览:system_server服务启动流程启动过程:  Loader -> Kernel -> Native -> Framework -> App1.1  Loader层Boot ROM: 当手机...

2018-10-04 13:17:01 13335 7

原创 Andorid UI架构(一)--FrameBuffer&Gralloc.md

文章目录参考资料一、帧缓冲区FrameBuffer的驱动程序分析二、Android图形显示之硬件抽象层Gralloc参考资料Android帧缓冲区(Frame Buffer)硬件抽象层(HAL)模块Gralloc的实现原理分析FrameBuffer驱动程序分析Android图形显示之硬件抽象层Gralloc对驱动层不了解,主要是看上面的博客,顺便总结下。Android系统作为一个l...

2018-10-01 14:56:01 1043

Vulkan1_1_107_官方文档

来自:https://github.com/KhronosGroup/Vulkan-Docs/ 格式:html文档

2019-05-04

Vulkan Tutorial.pdf

Vulkan Tutorial.pdf 下载自:https://www.lunarg.com/vulkan-sdk/

2019-04-29

vulkan-sdk for Linux

vulkan-sdk下载自: https://www.lunarg.com/vulkan-sdk/

2019-04-29

starUML3.1.0-破解版

starUML3.1.0破解版,破解过程参考:https://blog.csdn.net/u014535072/article/details/88774420

2019-03-24

ABD-1.0.40 ubuntu版本

ABD version-1.0.40 ubuntu版本.用于解决版本不匹配问题

2018-09-30

空空如也

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

TA关注的人

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