- 博客(196)
- 收藏
- 关注
转载 Android API Demo程序框架
前言 android API Demo程序主要演示了Android常见API的使用方法, 本文将该程序的框架提取出来,以作为自己研究和学习Android编程的一个示例收集框架,即将所有自己研究过的例子按照分类收集起来, 方便日后查找。 正文 下面只贴出框架相...
2019-09-17 16:32:24
292
转载 EGLImage与纹理
EGLImage代表一种由EGL客户API(如OpenGL,OpenVG)创建的共享资源类型。它的本意是共享2D图像数据,但是并没有明确限定共享数据的格式以及共享的目的,所以理论上来讲,应用程序以及相关的客户API可以基于任意的目的创建任意类型的共享数据。 关于EGL...
2019-09-17 16:32:18
1377
转载 Qt多线程编程
在Qt应用程序启动后,实际上已经产生了一个线程,叫主线程。主线程通常也称为GUI线程,因为所有的组件和其他用户界面对象都由该线程处理。 通常主线程由一个事件循环和在此线程中创建的一系列对象组成。通过继承QThread类,我们可以创建一个新的线程,拥有线程自己的事件循环和在此线程中创建的一系列...
2019-09-17 16:32:15
266
转载 采用JNI方法利用opengl es 1.x在android上绘图
我们可以在jni层上编写opengl代码, 进行3d 图形的绘制,下面这个例子就是在一个绘制四面体的例子, 实例的绘制代码是在jni层实现的, 采用c++语言编写。 1. 首先, 创建上层应用程序相关类, 组织好调用路径。 这里主要是创建活动类, 渲染类以及相关辅助类。 ...
2019-09-17 16:32:10
485
转载 QThreadPool类和QtConcurrent命名空间
一、QThreadPool类 QThreadPool管理一组线程。它负责管理和回收单个QThread对象以减少程序中线程创建的开销。每个Qt应用程序都有一个全局的QThreadPool对象,可通过方法globalInstance()获得。为了调用QThreadPool中的一个线程,需要...
2019-09-17 16:32:05
271
转载 Linux终端字符颜色设置
我们在编写程序的时候,通常需要终端对输出显示红色或者绿色等各种颜色,以便更加清楚的对用户做出提示。下面是Linux系统终端颜色的设置方式: 终端的字符颜色是用转义序列控制的,是文本模式下的系统显示功能,和具体的语言无关,shell,python,perl, C, C++等均可以调用。 转义...
2019-09-17 16:32:01
353
转载 基于textureview编写opengl程序
与SurfaceView相比,TextureView并没有创建一个单独的Surface用来绘制,这使得它可以像一般的View一样执行一些变换操作,设置透明度等。 另外,Textureview必须在硬件加速开启的窗口中。下面的例子演示了通过TextureView来创建一个opengl程序。 ...
2019-09-17 16:31:56
517
转载 YUV420转YUV444 , YUV420转RGB
我想大家应该知道了YUV的颜色表示原理即: Y = 0.299R + 0.587G + 0.114B U = -0.147R - 0.289G + 0.436B V = 0.615R - 0.515G - 0.100B R = Y + 1.14V G = Y - ...
2019-09-17 16:31:51
609
转载 Qt线程基础
原文地址:http://doc.qt.nokia.com/master-snapshot/thread-basics.html 线程基础 何谓线程? 线程与并行处理任务息息相关,就像进程一样。那么,线程与进程有什么区别呢?当你在电子表格上进行数据结算的时候,在相同的桌面上可能有...
2019-09-17 16:31:47
156
转载 CMake变量
影响CMake行为的变量 BUILD_SHARED_LIBS 如果为ON,则add_library默认创建共享库 CMAKE_ABSOLUTE_DESTINATION_FILES 安...
2019-09-17 16:31:42
237
转载 Qt输入输出
QIODevice类是对所有读和写一段字节块的一个抽象。Qt包含了下面的一些子类: QFile 访问本地文件系统中的文件或嵌入的资源。 QTemporaryFile 创建或访问本地文件系统中的临时文件。...
2019-09-17 16:31:38
528
转载 Qt下使用Shader绘制三角形
在Qt下使用可编程管线编写OpenGL的流程是怎样的呢? 下面演示了Qt下使用可编程管线的基本代码:(绘制三个不同的三角形,并做些旋转变换) 在Qt中,我们从QGLWidget继承,来实现OpenGL的一些绘制,主要实现其中的initializeGL(), paintGL()以及resize...
2019-09-17 16:31:33
1345
转载 binder IPC TRANSACTION过程分析(BC_TRANSACTION->Binder Driver)
在Binder IPC通信过程中,进程间通信都要先通过向Binder驱动发送BC_XXX命令,然后Binder 驱动稍做处理后通过对应的BR_XXX将命令转给给目标进程。 如果有返回值,进程也是先将返回结果以BC_REPLY的形式先发给Binder驱动,然后通过驱动以BR_REPLY命令转发...
2019-09-17 16:31:28
1105
转载 CMake命令之set_property和get_property
set_property:在指定域中设置一个命名属性 set_property(<GLOBAL | DIRECTORY [dir] | ...
2019-09-17 16:31:24
2206
转载 DirectFB实例1--加载一幅图片
在DirectFB中加载一幅图片,并显示: 1. 通过IDirectFBImageProvider加载一幅图片. 2. 创建一个DirectFBSurface,并将图片数据放入其中. 3. 将该Surface的内容Blit到主Surface, 以更进行显示. 下面用代码解...
2019-09-17 16:31:21
341
转载 Problem 63 何时该用glDrawTexiOES?
Problem 63 何时该用glDrawTexiOES? Ans: 首先,这个函数的作用是将指定的纹理贴到视图中的一个矩形区域,无须坐标变换,渲染速度加快。 使用的步骤大概如下: glGenTextures(...) glBindTex...
2019-09-17 16:31:17
260
转载 Qt5下OpenGL程序的新写法
在Qt5中,引入了QOpenGL*系列类,以取代Qt4时代的QGL*系列类。 下面是从Qt5例子中抠出的两种OpenGL程序模板,方便参考。 第一种写法: #ifndef TRIANGLEWINDOW_H#define TRIANGLEWINDOW_H#includ...
2019-09-17 16:31:12
194
转载 利用CMake编译内核模块
最近在做LDD书上的一些例子, 为了统一管理代码的编译,使内核模块的编译跟应用程序的编译过程一致,决定使用CMake来做工程的编译,编译脚本如下: cmake_minimum_required(VERSION 2.8)project(ldd)set(KERNEL_DIR...
2019-09-17 16:31:08
1157
转载 内核数据结构之映射
映射也称之为关联数组,它是一组唯一键的集合,每个键与特定的值相关。一般支持至少三个操作: Add(key,value) Remove(key) value=Lookup(key) Linux提供了一个简单而有效的映射数据结构,它不是通用目的的映射,而是为特殊用...
2019-09-17 16:31:00
151
转载 CMake常见变量——Project和CMake相关信息
CMAKE_AR: 静态库的归档工具的名称。这个变量指定了用于创建档案或静态库的程序的名称。 CMAKE_ARGC: 在脚本模式下传给CMake的命令行参数的个数。当运行在-P脚本模式下,CMake设置该变量为命令行参数的个数。 CMAKE_ARGV0: 在脚本模式下传给CM...
2019-09-17 16:30:56
593
转载 CMake命令之add_custom_comand 和 add_custom_target
add_custom_command: 增加客制化的构建规则到生成的构建系统中。对于add_custom_command,有两种使用形式。第一种形式是增加一个客制命令用来产生一个输出。 add_custom_command(OUTPUT output1 [output2 ...
2019-09-17 16:30:51
1269
转载 min3d 引擎学习笔记之一
min3d是一个小巧的android 3d UI引擎, 最近想对其进行深入源码分析, 在深入学习之前, 还是先学会怎么用它吧。 min3d是基于opengl es 1.x的, 它封装了opengl 的一些基本的绘图操作以及绘图管理和渲染操作,形成了一个框架。核心类主要包括场景类(Scene)...
2019-09-17 16:30:47
324
转载 内核数据结构之红黑树
红黑树是一种自平衡的二叉查找树,是Linux主要的二叉树结构。红黑树有一个特殊的颜色属性,要么红色,要么黑色。红黑树通过强制以下条件来保证红黑树仍然是半平衡的。 所有结点要是红色或黑色的。 叶子结点是黑色的。 叶子结点不包含数据。 所有非叶子结点有两个孩子。 ...
2019-09-17 16:30:42
186
转载 CMake命令之execute_process
用途:执行一个或多个子进程 execute_process(COMMAND <cmd1>[args1...]] [COMMAND <cmd2>[args2...] [...]] [WOR...
2019-09-17 16:30:38
2318
转载 CMake编译Widget UI Qt程序
自从CMake被引入到KDE项目的编译系统中后,CMake的使用者日益增多,Qt也不例外,除了使用QMAKE编译Qt程序外,也可以使用CMake来编译Qt程序,并且CMake在使用上更灵活,特别是大型程序。 CMake对于Qt4和Qt5都支持,不过使用上有点差异,这里主要看下Qt5下使...
2019-09-17 16:30:34
365
转载 DirectFB编译环境
DirectFB是用于嵌入式平台的一个2D图形库,主要面向嵌入式平台。不过,也支持在PC平台进行开发,测试相关功能,只要对应的Linux支持FrameBuffer设备。 本文以DirectFB源码自带的例子的编译介绍编译环境的搭建,使用版本为1.2.9 使用CMake作为编译工具。...
2019-09-17 16:30:30
223
转载 CMake设置交叉编译程序
SET(TOOLCHAIN_DIR "/home/fuyajun/Public/toolchain/gnuarm/vfp_4.5.1_2.6.27_cortex-a9-rhel4/i686") set(CMAKE_CXX_COMPILER ${TOOLCHAIN_DIR}...
2019-09-17 16:30:26
277
转载 Android系统初始化过程分析(Android 4.3)
在内核初始化完成后,最后会启动第一个用户空间进程,路径名为/init,它对应的代码是在/system/core/init/init.c。 下面将从main函数开始一步步分析其中的执行过程。 if (!strcmp(basename(argv[0]),...
2019-09-17 16:30:22
197
转载 内核中的几种内存分配器
内存管理是内核是最复杂同时也是最重要的一部分,其中就涉及到了多种内存分配器,如果内核初始化阶段使用的bootmem分配器,分配大块内存的伙伴系统,以及其分配较小块内存的slab、slub和slob分配器。 1.bootmem分配器 bootmem分配器用于在启动阶段早期分配内存。该分...
2019-09-17 16:30:18
264
转载 Qt动画框架
状态机框架提供了创建和执行状态图的一些类.这些概念和表示都是基于Harel状态图中的一些概念和记法.它也是UML状态图表的基础.状态机执行的语义是基于状态图XML(SCXML). 状态图提供了一种图形化的方式来对一个系统建模,从而反映它怎么响应外部触发.这是通过定义系统可能进入的一些状...
2019-09-17 16:30:13
96
转载 Qt中的容器类
Qt提供了两种类型的容器类:序列容器和关联容器。例如QVector<T>,QLinkedList<T>和QList<T>属于序列容器,而QMap<K,T>和QHash<K,T>属于关联容器。 Qt提供了通用的算法,对这些容器类执行一...
2019-09-17 16:30:07
245
转载 第一个OpenGL程序
OpenGL包含200多个函数,大致分为如下几类函数: 图元函数(primitive function)指定要生成屏幕图像的图元。包括两种类型:可在二维、三维或四维空间进行定义的几何图元,如多边形;离散实体,如位图。 属性函数(attribute function)负责控制图...
2019-09-17 16:30:02
114
转载 内存管理
内核将物理页作为内存管理的基本单位,而处理器最小的处理单位可能是一个字节或一个字。对于内存管理来说,页是最小的管理单元。MMU维护着以页为最小粒度的页表。不同的平台页的大小也不同。许多平台支持多种页大小。大部分32位平台拥有4KB个页,而64位平台拥有8KB个页。 区域(Zone) ...
2019-09-17 16:29:58
94
转载 [内存管理] linux kernel内存映射实例分析
作者:JHJ(jianghuijun211@gmail.com ) 日期:2012/08/24 欢迎转载,请注明出处 引子 现在android智能手机市场异常火热,硬件升级非常迅猛,arm cortex A9 + 1GB DDR似乎已经跟不上主流配置了。虽说硬件是王道,可...
2019-09-17 16:29:54
165
转载 QProcess
QProcess类用于启动另一个外部应用程序,并可与之进行通信。该类的运行方式是异步的。QProcess类在外部进程拥有数据或完成时发送一个信号以通知相关的对象。 QProcess的使用模板如下: class XXX : public XXXX{ Q_OBJECT…priv...
2019-09-17 16:29:49
562
转载 Linux内核模块
Linux内核的整体结构非常庞大,其包含的组件也非常多,我们需要包含所需的部分功能组件。有两种方法:一种是将所需的功能组件编译进内核。二是,将所需的功能组件编译成独立于内核的模块,需要时动态加载进内核。通常采用第二种方式,它的好处是: n 模块本身不被编译入内核映像,从而控制了内核的大小...
2019-09-17 16:29:45
132
转载 专题 18 Inline Assembly(在C语言中嵌套使用汇编)
1.调用形式 标准形式: asm("movl %ecx %eax");/* moves the contents of ecx to eax */ __asm__("movb %bh(%eax)"); /*moves the byte from bh to the memory po...
2019-09-17 16:29:40
289
转载 Android日志系统分析之开篇
在android系统中, 提供了一个轻量级的日志系统。该日志系统基于在内核中实现的一个字符设备驱动 logger(misc字符设备驱动)。通过该字符设备驱动,android分别提供了C/C++和Java层的日志输出函数接口。 Java接口主要分布在android.util.Log类...
2019-09-17 16:29:35
202
转载 字符设备驱动程序框架
1, 设备号的内部表示形式 类型:dev_t 32=12(主设备号) + 20(次设备号) 相关宏:<linux/kdev_t.h> MAJOR(dev_t dev) MINOR(dev_t dev) MKDEV(i...
2019-09-17 16:29:30
140
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人