自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(158)
  • 资源 (3)
  • 收藏
  • 关注

原创 OpenGL 坐标变换

将物体从自身的局部坐标系(如建模时的坐标)转换到世界坐标系。:将3D相机坐标压缩到2D投影平面(模拟人眼透视或正交投影):将世界坐标转换为以相机为原点的坐标系。(因为移动相机等价于反向移动整个世界):物体自身变换(移动/旋转/缩放)如果一个立方体的中心局部坐标是。(Clip Space),范围。视图矩阵实际上是相机变换的。后,它的世界坐标变为。

2025-08-01 16:16:27 305

原创 OpenGL Camera

矩阵是相机位置和旋转的逆矩阵(因为移动相机等价于反向移动整个世界)所有物体都会根据这个视角被重新计算坐标。它的本质是一个"相机坐标系变换矩阵"矩阵决定了你站在哪里(假设相机是你的眼睛,

2025-08-01 15:57:23 232

原创 OpenGL 深度测试/背面剔除

想象你有一个不透明的篮球,你只能看到它朝外的一面(外表面),看不到内壁。给每个像素发一个"身份证号"(深度值,也叫Z值),记录它离屏幕的远近。默认情况下,三角形的正面(朝外的面)和背面(朝内的面)都会被渲染。→ 如果新像素比原来的更近(Z值更小),就覆盖它(显示新的)。想象你在画一幅风景画,画里有远处的山、中景的树和近处的一只猫。→ 丢掉所有"看不见"的背面三角形(比如立方体的内侧面)。→ 如果更远(Z值更大),就丢掉它(不显示)。→ 解决"别画没用的"问题(像偷懒的裁缝)。

2025-07-30 16:29:38 215

原创 OpenGL 绘制流程

生成(glGen***)> 绑定(glBind***)> 填充(glBufferData)VAO 管理(记录)VBO 的配置。

2025-07-30 13:42:17 271

原创 OpenGL为什么要用4X4矩阵

让计算机能统一处理移动、旋转、缩放和透视。让平移失效(方向向量不受位置影响)。:3×3矩阵的平移项会乘以。齐次坐标是给普通3D坐标。代表“方向”,比如光线)代表“这是一个点”,

2025-07-28 09:28:44 191

原创 OpenGL 4. 变换

【代码】OpenGL 1. 变换。

2025-07-10 15:54:44 213

原创 OpenGL 3. 纹理

【代码】OpenGL 3. 纹理。

2025-07-09 13:19:57 220

原创 OpenGL 2. 着色器

【代码】OpenGL 2. 着色器。

2025-07-09 09:31:10 152

原创 OpenGL 1. 你好,三角形

【代码】OpenGL 01. 你好,三角形。

2025-07-08 14:49:33 105

转载 终于弄懂「报文、数据包、数据报和帧」的区别了!

报文由应用层产生,被称作报文(Message)/数据(Data),经过传输层的封装形成报文段(Segment)/数据报(Datagram),再经过网络层的封装形成分组/数据包(Packet),然后经过数据链路层的封装形成帧(Frame),最后在物理层以二进制比特流的方式完成数据传输。二是UDP(User Datagram Protocol)协议,即用户数据包协议,它是无连接的,数据传输的单位是用户数据报,不保证提供可靠的交付,只能提供“尽最大努力交付”。将上层传输的数据添加一个头部和尾部,组成了帧。

2024-07-01 11:29:06 5840 1

转载 Docker生命周期

2024-06-13 10:09:14 136 1

转载 OSI模型

数据报是面向无连接的数据传输,采用数据报方式传输时,被传输的分组称为数据报。如传输层TCP的分组叫做数据段,UDP的叫做数据报。还有一种说法是数据报是网络层的传输基本单位,数据包是IP协议中完整的数据单元,由一个或多个数据报组成(待确认)数据包是网络层传输的数据单元。帧是数据链路层的传输单元。它将上层传入的数据添加一个头部和尾部,组成了帧,帧根据MAC地址寻址。还有一种说法是数据报是数据包的分组,一个完整的数据包由一个或多个数据报组成(待确认)报文包含了应用层的完整的数据信息。数据段是传输层的信息单元。

2024-05-30 10:08:59 127

原创 ServiceManager,SystemServer,SystemService,SystemServiceManager

SystemServer是Zygote调用forkSystemServer启动的第一个进程,system_server进程承载着整个framework的核心服务,例如: ActivityManagerService,PowerManagerService,DisplayManagerService,PackageManagerService,WindowManagerService,LauncherAppsService等80多个核心系统服务。除此之外,它还支持系统服务启动状态的通知及处理。

2024-05-15 09:45:45 487

原创 Android Audio相关

Android Audio相关

2024-03-21 10:34:55 461

转载 《道德经》全文和译文

第一章道可道(可以语言交流的道),非常道(非真正意义上的道);名可名(可以明确定义的名),非常名(非真正意义上的名)。无名天地之始(天地在开始时并无名称),有名万物之母(名只是为了万物的归属)。故常无欲以观其妙(因此常用无意识以发现其奥妙),常有欲以观其徼(常用有意识以归属其范围)。两者同出异名(两种思维模式同出自一个地方但概念却不相同),同谓玄之又玄(这就是玄之又玄的玄关窍)。众妙之门(它是打开一切奥妙的不二法门)。第二章天下皆知美之为美(天下皆知美...

2021-12-08 14:32:45 1848

原创 NLP的12个信条

没有两个人是一样的:每一个人都有自己的性格、能力、特点,你们在不同的环境里长大,经历了不同的人生,形成了不同的价值观和信念系统,因此对待同一个问题,你们会有不同的看法,你要学会接受和欣赏。你只有尊重别人的不同之处,别人才会尊重你独特的地方。 一个人不能控制另外一个人:每个人的信念、价值观、行为习惯等,只对自己有效,不应该强加给另外一个人。己所不欲勿施于人,己所欲也不能施于人。一个人不能改变另外一个人,一个人只能改变自己,影响别人。我们能推动的,只能是我们自己。当你想要改变另一个人的时候,你的悲惨命运就此开

2021-10-12 14:11:28 726

转载 无线电工作原理

看不见的无线电波通常跨越数百万公里的距离在空中传送音乐、谈话、图片和数据——这种无线电波每天都以成千上万种不同的方式进行! 虽然无线电波对人而言是看不见且完全不被察觉的,但它们却完全改变了整个社会。 无论是我们谈论的手机、婴儿监护器、无绳电话,还是成千上万种其他无线技术中的任何一种,它们都是通过无线电波进行通信的。下面是基于无线电波的一些常见技术:AM和FM无线电广播 无绳电话 车库门遥控器 无线网络 遥控玩具 电视广播 手机 GPS接收器 业余无线电 卫星通信...

2021-08-04 09:44:05 3746

原创 记事本_2021

Android 操作系统架构开篇http://gityuan.com/android/

2021-07-07 09:24:05 652

转载 Linux 源码编译详解

前言源码要运行,必须先转成二进制的机器码。这是编译器的任务。比如,下面这段源码(假定文件名叫做test.c)。#include<stdio.h>intmain(void){ fputs("Hello,world!\n",stdout); return0;}要先用编译器处理一下,才能运行。$gcctest.c$./a.outHello,world!对于复杂的项目,编译过程还必须分成三步。$./configure$make...

2021-02-05 14:35:51 3363

转载 Android Framework,HAL,Kernel调用关系

1 . JNI技术:1)JNI技术简单的说就是在本地Java语言声明本地方法和加载动态链接库(.so文件)2)动态链接库(.so文件)是由NDK编译C/C++文件而成的。2 . HAL层开发:1)HAL是Hardware Abstraction Layer的简称。也称为硬件抽象层。2)硬件访问服务是在Framework层实现的。3)硬件访问服务是用Java语言实现的,硬件抽象层是用C++语言编写的。因此硬件访问服务必须通过JNI技术调用硬件抽象层的接口。4)硬件抽象层调用Linux Ker.

2021-01-22 11:44:03 3009

原创 Linux 学习(作者:Vamei 向大佬致敬)

走进Linux01.Linux的架构02.Linux文件管理03.Linux文件管理相关命令04.Linux文本流05.Linux进程基础06.Linux信号基础07.Linux进程关系08.Linux用户09.快速学习Bash深入Linux01.Linux开机启动02.Linux从程序到进程03.Linux进程间通信04.Linux并发与同步05.Linux的调度器06.Linux的内存管理07.Li...

2021-01-21 08:38:24 217

转载 半导体元件,芯片,处理器,CPU,MCU的区别

1、半导体元件与芯片的区别按照国际标准分类方式,在国际半导体的统计中,半导体产业只分成四种类型:集成电路,分立器件,传感器和光电子。所有的国际半导体贸易中都是分成这四类。上面说的这四类可以统称为半导体元件。其中集成电路(Integrated Circuit, 简称IC),又叫做芯片(chip),所以说集成电路,IC,芯片,chip这四个名字都是指一个东西。但是,在我们通常的新闻中,没有分的这么清楚,他们会把半导体元件统统叫做集成电路(比如也会把分立器件也叫做IC,芯片),所以大家要根据前后文的意

2021-01-13 13:25:27 15882

转载 CPU,GPU,TPU,NPU都是什么?

什么是CPU?中央处理器(CPU),是电子计算机的主要设备之一,电脑中的核心配件。其功能主要是解释计算机指令以及处理计算机软件中的数据。CPU是计算机中负责读取指令,对指令译码并执行指令的核心部件。中央处理器主要包括两个部分,即控制器、运算器,其中还包括高速及实现它们缓冲处理器之间联系的数据、控制的总线。电子计算机三大核心部件就是CPU、内部存储器、输入/输出设备。中央处理器的功效主要为处理指令、执行操作、控制时间、处理数据。在计算机体系结构中,CPU 是对计算机的所有硬件资源(如存储器、输入输出单

2021-01-13 13:14:20 1303

转载 Shell中的内建命令,函数,外部命令

Shell识别三种基本命令:内建命令、Shell函数以及外部命令:1)内建命令就是由Shell本身所执行的命令。一种是由于其必要性才内建的,例如cd用来改变目录。另一种内建命令的存在则是为了效率,其中最典型的就是test命令,编写脚本时经常会用到它。另外还有I/O命令,例如echo于printf.2)Shell函数是功能健全的一系列程序代码,以Shell语言写成,它们可以像命令那样引用。3)外部命令就是由Shell副本(新的进程)所执行的命令,基本的过程如下: a. 建立一个新的进程。此进程即为..

2021-01-08 09:30:21 260

转载 Linux交换空间(swap space)

每次安装Linux的时候,都会要求配置交换分区,那么这个分区是干嘛的呢?不设置这个分区有什么后果?如果一定要设置,设置多大比较合适?本篇将试图回答这些问题并尽量覆盖所有swap相关的知识。下面的所有例子都在ubuntu-server-x86_64 16.04下执行通过什么是swap?swap space是磁盘上的一块区域,可以是一个分区,也可以是一个文件,或者是他们的组合。简单点说,当系统物理内存吃紧时,Linux会将内存中不常访问的数据保存到swap上,这样系统就有更多的物理内存为各个进.

2021-01-08 08:50:03 2060

转载 C语言 函数后面加const作用

void function() const{}通常我们会看到一些函数声明后面会跟着一个const,这个const是做什么的呢?看一下下面的例子,就知道了。直接在编译前,就会提示下面的两个错误// test1107.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <iostream>using namespace std;class a{ int num;public: a(){ in

2020-12-30 10:26:22 1388

转载 前端框架库汇总

VueVue2.0:Vue2.0 文档 Vue3.0:Vue3.0 文档 Vue-Router:Vue.js 官方的路由管理器。 Vuex:Vue.js 应用程序开发的状态管理模式。 Element-UI:饿了么UI组件库 View UI:一套基于 Vue.js 的开源 UI 组件库,主要服务于 PC 界面的中后台产品。 Vuetify:用于构建功能丰富、快速的应用程序。 Buefy-UI: 简单且轻量的UI库。 Quasar: 编写代码一次并同时将其部署为网站、移动应用和/或Elect

2020-12-09 08:54:34 1139

原创 C语言 ‘\0‘的含义

'\0' 是字符串的结束符,任何字符串之后都会自动加上'\0'。如果字符串末尾少了'\0'转义字符,则其在输出时可能会出现乱码问题。'\0'转义字符在ASCII表中并不表示阿拉伯数字0,阿拉伯数字0的ASCII码为48,'\0'转义字符的ASCII码值为0,它表示的是ASCII控制字符中空字符的含义。'\0'是C++中字符串的结尾标志,存储在字符串的结尾。比如char cha[5]表示可以放4个字符的数组,由于c/c++中规定字符串的结尾标志为'\0',它虽然不计入串长,但要占内存空间,而一个汉字一

2020-12-04 10:00:32 17974

转载 C语言 结构体四种初始化方法

定义struct InitMember{ int first; double second; char* third; float four;};方法一:定义时赋值struct InitMember test = {-10,3.141590,"method one",0.25};需要注意对应的顺序,不能错位。方法二:定义后逐个赋值struct InitMember test;test.first = -10;test.sec..

2020-12-04 09:42:44 1011

转载 Linux 内核空间与用户空间

本文以 32 位系统为例介绍内核空间(kernel space)和用户空间(user space)1 . 内核空间和用户空间对 32 位操作系统而言,它的寻址空间(虚拟地址空间,或叫线性地址空间)为 4G(2的32次方)。也就是说一个进程的最大地址空间为 4G。操作系统的核心是内核(kernel),它独立于普通的应用程序,可以访问受保护的内存空间,也有访问底层硬件设备的所有权限。为了保证内核的安全,现在的操作系统一般都强制用户进程不能直接操作内核。具体的实现方式基本都是由操作系统将虚拟地址空间.

2020-12-03 13:57:47 245

转载 多CPU,多核,多进程,多线程

当面临这些问题的时候,有两个关键词无法绕开,那就是并行和并发。首先,要先了解几个概念:进程是程序的一次执行。 进程是资源分配的基本单位(调度单位)。 一个进程可以包括多个线程。 在单CPU计算机中,有一个资源是无法被多个程序并行使用的:CPU。 操作系统调度器:拆分CPU为一段段时间的运行片,轮流分配给不同的程序。 操作系统内存管理模块:管理物理内存、虚拟内存相关的事务。由于CPU同时刻只能执行一个进程,如果我们不加以控制的话,一个进程可能使用CPU直到运行结束,于是出现了操作系统调度

2020-12-02 10:12:50 660

转载 寄存器用途和英文全称

寄存器类别和用途基本程序执行寄存器(basic program execution registers)。8 个通用寄存器,6 个段寄存器,一个处理器状态标志寄存器(EFLAGS),和一 个指令指针寄存器(EIP)。EAX、AX、AH和AL一些寄存器的组成部分可以处理 8 位的值。例如,AX 寄存器的高 8 位被称为 AH,而低 8 位被称为 AL。同样的重叠关系也存在于 EAX、EBX、ECX 和 EDX 寄存器中:32 位 16 位 8 位(高) 8 位(低)

2020-12-01 13:12:57 4838 1

转载 计算机是如何执行程序的

转载自一位大神的文章:http://blog.chinaunix.net/uid-28032128-id-3953048.html我最近在写一本关于操作系统的书,下面的章节原本是放在本书的开始,后我感觉不好就扔了,今天把它帖到这里吧。你或许已经卷起了衣袖,或许在摩拳擦掌,正准备大干一场,打一场硬仗。年轻人嘛,行事总是风风火火的。但不是笔者扫你的兴,泼你冷水,在我们写代码之前还有很长一段路要走,要静下心来。如果写操作系统是一次旅行的话,那么千万不要错过沿途的风景……我们先来看看本章节都有些什么,.

2020-11-30 14:57:57 2044

转载 CPU如何执行代码

CPU的内部结构 我们都知道CPU是一台电脑的核心部件,所有的程序都是通过它运行的,那么CPU是如何让一个程序跑起来的呢?我们今天就来一起简单的做个了解,首先看下CPU的基本结构程序流程假如现在我们有个两个数相加的程序,当你点击运行这个程序时,系统会将这个程序复制到内存中。程序中的这些数据和指令会被存储在一个一个小的“内存空间”,并给每个空间一个“门牌号”,也就是内存中的地址。系统将程序复制到内存中后,会将程序计数器设定到程序运行的开始位置(假设这个程序的开始位...

2020-11-30 10:30:38 2052

转载 汇编语言各“标志位”含义

一、运算结果标志位1、进位标志CF(Carry Flag)进位标志CF主要用来反映运算是否产生进位或借位。如果运算结果的最高位产生了一个进位或借位,那么,其值为1,否则其值为0。使用该标志位的情况有:多字(字节)数的加减运算,无符号数的大小比较运算,移位操作,字(字节)之间移位,专门改变CF值的指令等。2、奇偶标志PF(Parity Flag)奇偶标志PF用于反映运算结果中“1”的个数的奇偶性。如果“1”的个数为偶数,则PF的值为1,否则其值为0。利用PF可进行奇偶校验检查,或产生奇

2020-11-27 15:33:55 5456

转载 嵌入式与单片机区别

如果可以按照面向对象的思想理解的话:可以说嵌入式是父类,嵌入式系统是抽象继承类,银行自助取款机是具体子类,郑州轻院正门口旁工行自助1号取款机是对象。如果这样,这个概念还不清楚的话!就来个生活中的比方:大猩猩吃香蕉,一个大猩猩要吃一棵大树上的香蕉,自己使劲跳就是够不着,于是找来了几个箱子,垫下脚就能够在树上摘下可口的香蕉了。为了做到吃香蕉这件事,大猩猩做了这么一件事,找来几个箱子,摞起来,然后摘到了香蕉,那么大猩猩和箱子是否就构成了摘香蕉的这么一个系统。如果大猩猩找来的是梯子的话,那是不是能够摘到更多好吃

2020-11-27 15:27:49 454

转载 /system/app 和 /system/priv-app 有什么区别?

关于目录/system/priv-app中包括 Launcher,SystemUI,SettingsProvider 等,均是系统的核心应用,这些应用能使用系统级的权限,4.4 之前的所有/system/app下的软件都能使用系统级的权限,Google 这样做是把内置到系统的应用也做个级别的区别。放到/system/priv-app下的应用比放到/system/app下的应用可以声明获得更多的权限。在Android中每个应用都有自己的权限声明,比如要使用系统限制的权限(例如andro...

2020-11-18 15:04:38 16474 2

原创 SystemUI中全局弹窗SystemUIDialog

/* * Copyright (C) 2014 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http:/.

2020-11-16 11:26:34 1578

转载 Android Build系统要点总结

在之前的公司参与项目开发的时候,虽然不负责系统固件编译脚本的维护,但为了工作的过程中更加的顺利,便学习了一下Android的Build系统。本文就是对之前的学习做个总结。系统版本:AOSP 5.1.11. Android Build 系统核心Android Build系统的核心位于源码目录的build/core,该目录下有几十个mk文件以及若干个shell脚本。通常是使用下面的命令来编译Android系统:$ . build/envsetup.sh$ lunch$ makeen

2020-11-12 09:36:24 1103

原创 Android Dialog去边距透明

AlertDialog dialog = new AlertDialog.Builder(this).create();dialog.show();WindowManager.LayoutParams params = dialog.getWindow().getAttributes();params.width = 180;params.height = 180;Window dialogWindow = dialog.getWindow();// 必须使用这个方法,不能使用dialog.s.

2020-11-11 10:36:13 746

Android Framework解析

Android Framework解析

2024-03-03

Linux系统教程详解

Linux系统教程详解

2024-03-03

pingtools.apk

PingTools 是一款集成多款网络工具的 Android 应用,拥有包括 Ping, Traceroute, Whois, Network Scanner, Wi-Fi scanner 在内的多项网络工具

2020-03-11

flutter_3d_pageview-master.zip

3d画廊

2021-08-04

launcher-master.zip

仿桌面应用拖拽排序

2021-08-04

空空如也

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

TA关注的人

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