linux 网卡配置

2024-08-21
阅读 8 分钟
1.7k
通常需要以root身份登录或使用sudo以便在Linux机器上使用ifconfig工具。依赖于ifconfig命令中使用一些选项属性,ifconfig工具不仅可以被用来简单地获取网络接口配置信息,还可以修改这些配置(用ifconfig命令配置的网卡信息,在网卡重启后机器重启后,配置就不存在)。

Python 之函数

2024-08-20
阅读 3 分钟
1k
函数参数位置参数: def power(x):默认参数: def power(x, n=2): 默认参数必须指向不变对象!可变参数: def calc(*numbers):关键字参数: def person(name, age, **kw):命名关键字参数:def person(name, age, *, city, job):参数组合:在Python中定义函数,可以用必选参数、默认参数、可变参数、关键字参数和命名关键字参数...

使用sphinx自动提取python中的注释成为接口文档

2024-08-20
阅读 2 分钟
1.2k
写好了代码,交付给他人使用的时候,查看代码固然可以了解各类和函数的功能细节,但接口文档能更方便的查找和说明功能。所以,一价与代码同步的接口文档是很有必要的。sphinx可以根据python中的注释,自动的生成接口文档,这样有利于保证文档和代码功能的同步。让我们来了解如何自动生成文档。

Python 之面向对象

2024-08-19
阅读 4 分钟
1.1k
__slots__限制类的绑定属性__str__: print打印对象,返回用户看到的字符串__repr__:返回程序开发者看到的字符串,如直接输入变量,是为调试服务的 {代码...} 可以直接: {代码...} __iter__: 一个类用于for...in循环 {代码...} __getitem__:Fib实例虽然能作用于for循环,看起来和list有点像,但是,把它当成list来使用还是不...

python服务器程序部署

2024-08-19
阅读 6 分钟
1.3k
WSGI(Web Server Gateway Interface),翻译为Python web服务器网关接口,即Python的Web应用程序(如Flask)和Web服务器(如Nginx)之间的一种通信协议。也就是说,如果让你的Web应用在任何服务器上运行,就必须遵循这个协议。那么实现WSGI协议的web服务器有哪些呢?就比如uWSGI与gunicorn。两者都可以作为Web服务器。可...

python 之基础语法

2024-08-18
阅读 1 分钟
1.2k
对于作为函数中的list,方法1行不通,因为函数执行后,list长度是不变的,但是可以在函数中释放一个参数list所占内存:del list_new[:]或者list_new[:] = []达到清空列表的目的,速度快,并且彻底

Kotlin 语法

2024-08-18
阅读 3 分钟
9.5k
比较两个字符串,如果两个字符串的内容一致,在Java中使用 str1 == str2 时,是比较两个字符串的地址值,很清楚两个字符串的地址不一样,返回false,但是在kotlin中,则不是如此,比较的只是字符串的内容,而===相当于Java中的==,用来比较引用对象, 上述代码返回的是true。

CPP 小技巧

2024-08-17
阅读 10 分钟
1.3k
标准C语言预处理要求定义某些对象宏,每个预定义宏的名称一两个下划线字符开头和结尾,这些预定义宏不能被取消定义(#undef)或由编程人员重新定义。下面预定义宏:

cmake 语法入门

2024-08-17
阅读 13 分钟
1.9k
其中,通过 cmake_minimum_required 方法指定 CMake 使用版本,通过 project 指定工程名。而 add_executable 就是指定最后编译的可执行文件名称和需要编译的 cpp 文件,如果工程很大,有多个 cpp 文件,那么都要把它们添加进来。定义了 CMake 文件之后,就可以开始编译构建了。CMake 在构建工程时会生成许多临时文件,避...

Android声音播放与录制

2024-08-16
阅读 9 分钟
9.2k
STREAM的意思是由用户在应用程序通过write方式把数据一次一次得写到audiotrack中。这个和我们在socket中发送数据一样,应用层从某个地方获取数据,例如通过编解码得到PCM数据,然后write到audiotrack。这种方式的坏处就是总是在JAVA层和Native层交互,效率损失较大。

vscode开发android ndk的环境配置

2024-08-16
阅读 8 分钟
10.9k
最近公司新需求,要求用C/C++实现部分核心代码,打包成静态库跨平台(Android和iOS)使用。 作为Android开发出身的C/C++老白程序员兴奋不已(又可以开心的学习niubility的C/C++了),但之前写JNI代码的集成环境都是Android Studio,最后打包生成的so库也是面向Android平台的。 有什么IDE适合这种跨平台开发的呢?请教了...

NDK 编译常见问题

2024-08-15
阅读 5 分钟
8.8k
depends on undefined modules问题: {代码...} 解决方案:Android.mk中增加APP_ALLOW_MISSING_DEPS=trueshared library text segment is not shareable问题: {代码...} 解决: {代码...} shared library text segment is not shareablehas text relocations问题: {代码...} 解决:方案一This issue could be solved by chec...

Android线程思考

2024-08-15
阅读 6 分钟
8k
在编程中我们经常遇到多线程相关的问题,记得刚工作的时候对线程没有太多概念,只知道new Thread()run函数中是新的线程,函数多调用几层,特别是一些别人的回调函数中,就忽略了线程引起的并发问题,产生了并发修改异常的崩溃。今天总结一些线程相关的知识。

Android gradle 系列之配置

2024-08-14
阅读 9 分钟
7.1k
buildscript中的声明是gradle脚本自身需要使用的资源。可以声明的资源包括依赖项、第三方插件、maven仓库地址等。而在build.gradle文件中直接声明的依赖项、仓库地址等信息是项目自身需要的资源。

OpenGL PBO介绍

2024-08-14
阅读 7 分钟
6.7k
总结:虽然使用一个PBO但是效果改变不是很明显,因为单个PBO传输还是需要等待的,假如使用2个pbo,这样错开接收就会使效率大大提高,请看下篇使用2个PBO速度慢的问题。

FBO与PBuffer区别

2024-08-13
阅读 14 分钟
5.2k
渲染管线的最后一个阶段是到帧缓冲区。大部分OpenGL所做的渲染操作都是在默认的帧缓冲中进行的,这个默认的帧缓冲是我们创建一个Surface时自动创建和配置好的,默认情况下,我们使用OpenGL ES使用的窗口系统提供的帧缓冲区,这样绘制的结果是显示到屏幕上,然而实际中有很多情况并不需要渲染到屏幕上,那么使用窗口系统...

OpenGL Frame Buffer Object(FBO)介绍

2024-08-13
阅读 26 分钟
1.9k
Update: Framebuffer object extension is promoted as a core feature of OpenGL version 3.0, and is approved by ARB combining the following extensions;

OpenGL 之EGL API 介绍

2024-08-12
阅读 9 分钟
6.1k
EGL 是 OpenGL ES 和底层 Native 平台视窗系统之间的接口。OpenGL ES 本质上是一个图形渲染管线的状态机,而 EGL 则是用于监控这些状态以及维护 Frame buffer 和其他渲染 Surface 的外部层。EGL提供如下机制:

OpenGL 之 EGL 源码分析

2024-08-12
阅读 17 分钟
6.1k
frameworks/native/opengl/libs/EGL:Android EGL框架,负责加载OpenGL函数库和EGL本地实现。

OpenGL 混色实现

2024-08-11
阅读 4 分钟
1.6k
混合就是把两种颜色混在一起。具体一点,就是把某一像素位置原来的颜色和将要画上去的颜色,通过某种方式混在一起,从而实现特殊的效果。假设我们需要绘制这样一个场景:透过红色的玻璃去看绿色的物体,那么可以先绘制绿色的物体,再绘制红色玻璃。在绘制红色玻璃的时候,利用“混合”功能,把将要绘制上去的红色和原来的...

OpenGL入门一:基础知识及概念

2024-08-11
阅读 2 分钟
3.3k
OpenGL:open graphic library,即开发图形库。它被定义为“图形硬件的一种软件接口”。实质上是3D图形和模型库,它具有高度可移植性,并且具有非常快的速度。可以创建优雅漂亮的3D图形,具有出色的视觉质量。并且速度远快于光线追踪仪或软件渲染引擎。
封面图

OpenGL入门三:变换原理简介

2024-08-10
阅读 2 分钟
5.2k
我们现实世界是三维的,但是展示到屏幕上只能是二维的,我们要用二维表示三维就必须解决一系列问题,涉及到多个坐标的转换,比如物体的坐标,观察者相机的坐标,渲染最终展示到屏幕的坐标等等。

OpenGL入门二:绘制三角形

2024-08-10
阅读 3 分钟
1.5k
本文我们基于最基础,最简单的OpenGL API,最终实现三角形的绘制(基于OpenGL 1.0 Java接口)。本文只对OpenGL相关接口使用进行介绍,深入原理后续逐步剖析。

Android系统图形栈(一) OpenGL 介绍

2024-08-09
阅读 1 分钟
1.3k
OpenGL基本概念OpenGL的结构可以从逻辑上划分为下面3个部分:图元(Primitives)缓冲区(Buffers)光栅化(Rasterize)图元(Primitives)在 OpenGL 的世界里,我们只能画点、线、三角形这三种基本图形,而其它复杂的图形都可以通过三角形来组成。所以这里的图元指的就是这三种基础图形:点:点存在于三维空间,坐标用(x,y,z)表...
封面图

FFMPEG Mac版本编译

2024-08-09
阅读 7 分钟
1.7k
One is to build it yourself. Compiling on Mac OS X is as easy as any other *nix machine, there are just a few caveats(警告). The general procedure is get the source, then ./configure <flags>; make && sudo make install, though specific configure flags are possible.
封面图

Mac 下生成core dump

2024-08-07
阅读 1 分钟
1.6k
使用ulimit -c查看ulimit设置,显示unlimited表示开启,显示0表示关闭,通过ulimit -c unlimited打开设置;但是这个只在当前窗口有效果。如果需要变成系统全局设置。就需要去改/etc/profile文件,打开,然后加上ulimit -c unlimited就可以了,这样当产生Crash的时候就会自动产生dump文件。
封面图

MacOS 中Boost的安装和使用

2024-08-07
阅读 6 分钟
2.4k
Boost是一个功能强大、构造精巧、跨平台、开源并且完全免费的C++程序库,有着“C++‘准’标准库”的美誉,值得每位C++程序员学习使用。
封面图

Linux 为何不把图形用户界面写入内核?

2024-08-06
阅读 1 分钟
1.2k
90年代时的计算机都是两套图形系统:一套是普通软件窗口API9,Windows上不论是MFC还是ATL9背后都是gdi32.dl,Linux无论GTK还是QT背后都是X,后者用CPU渲染出一张图片,然后送入显存,显示适配器把显存转成VGA信号输出;另一套是游戏,他们会调用DirectX/OpenGL,后者用GPU渲染出3D图像,然后直接进显存输出。当时玩游戏进...

Docker 环境搭建

2024-08-06
阅读 8 分钟
1.2k
Docker 使用 Google 公司推出的 Go 语言 进行开发实现,基于 Linux 内核的 cgroup,namespace,以及 AUFS 类的 Union FS 等技术,对进程进行封装隔离,属于操作系统层面的虚拟化技术。由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器。最初实现是基于 LXC,从 0.7 以后开始去除 LXC,转而使用自行开发的 ...

Centos中supervisor应用

2024-08-04
阅读 4 分钟
10.5k
supervisor是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具。可以很方便的监听、启动、停止、重启一个或多个进程。用supervisor管理的进程,当一个进程意外被杀死,supervisor监听到进程死后,会自动将它重启,很方便的做到进程自动恢复的功能,不再需要自己写shell脚本来控制。