sunwengang blog

developer | android display/graphics

C++对象和类

类型指定基本类型完成了三项工作: 决定数据对象需要的内存数量 决定如何解释内存中的位(long和float所占位数相同,但是将他们转换成数值的方法不同) 决定可使用数据对象执行的操作和方法 阅读全文

C++头文件、作用域、内存模型和名称空间

单独编译C++提供#include语法,因而可以将程序划分,大致可以分成三部分: 头文件a.h:包含结构声明和使用这些结构的函数原型 源代码文件a.cpp:包含与结构相关的函数的代码 源代码文件b.cpp:包含调用与结构相关的函数的代码 阅读全文

Android JNI理解

概述 JNI,即Java Native Interface,Java本地调用。通过JNI可以实现: Java程序函数可以调用Natvie语言(C/C++)写的函数 Natvie程序函数可以调用Java层的函数 阅读全文

Android中的makefile(Android.mk)

makefile是和make命令一起使用,在Android中,可以使用mm、mmm、mma进行编译。Makefile可以组织项目中各种库和代码之间的依赖,构建项目,和maven、gradle一样属于构建工具。常用于大型项目。 阅读全文

C++内联函数、引用变量、函数重载、函数模板

内联函数 常规函数调用使程序跳到另一个地址(函数的地址),并在函数结束后返回。来回跳跃并记录跳跃位置意味着一定的开销。内联函数使得编译器将相应的函数代码替换函数调用。程序无需跳到另一个位置处执行代码,再调回来。因而,内联函数运行速度比常规函数快,但是代价是需要占用更多的内存。如果程序在10个不同的地方调用调用同一个内联函数,则该程序将包含该函数代码的10个副本。 阅读全文

C++函数模块(函数指针、递归)

本章节主要是围绕函数为圆心,涉及到字符串、指针、C++11特性auto、typedef。由于接触android源码、opengl,需将C++学习一遍,之前只是用过java、c、c#这些。涉及到android源码,例如frameworks/native的surfaceflinger,gui,ui, 以及vender,hardware都是需要仔细的阅读C++代码才能够理解。再如graphics的测量、绘制渲染、硬件加速、合成显示,私以为学习一些图形学是有必要的。人生在勤,不索何获。 阅读全文

ubuntu搭建opengl环境

安装1234sudo apt-get install build-essentialsudo apt-get install libgl1-mesa-devsudo apt-get install libglu1-mesa-devsudo apt-get install freeglut3-dev 阅读全文

C++内存分配方式和模板类vector, array

使用new创建动态结构 在运行时创建数组优于编译时创建数组,对于结构也是如此。需要在程序运行时为结构分配所需的空间,可以使用new完成。动态意味着内存是在运行时,而不是编译时分配的。例如inflatable *ps = new inflatable;其中inflatable是一个结构类型。这句代码将把存储结构inflatable的一块可用内存的地址赋值给ps。箭头成员运算符->,可用于指向结构的指针。例如ps指向一个inflatable结构的成员price,即ps->price 阅读全文

C++复合类型之枚举、指针

枚举enum C++的enum工具提供了另一种创建符号常量的方式,可以代替const。它还允许定义新的类型,但是必须严格按照格式。使用enum语法格式和结构相似,例如 阅读全文

C++复合类型之数组、字符串、结构、共用体

题外话: 在我眼里,我实习的第一家公司教会了我两件事,一是让自己忙起来,二是代码规范整洁。有时候有所悟会很晚,但终究不迟。序: C++提供了基于整型和浮点类型创建的复合类型。影响最深远的复合类型是类。然而,C++还支持几种普通的复合类型。例如,数组 可以存储多个同类型的值。结构 可以存储多个不同类型的值。指针 则是一种将数据所处位置告诉计算机的类型。 阅读全文

linux配置zsh终端

从echo $SHELL可以查看当前使用的终端是/bin/bash。zsh是Ubuntu的一种终端工具,虽然听说功能很强很给力,事实上我只是被他的众多主题迷住了。具体查看文档 阅读全文

C++浮点常量表示、算术运算符、类型转换

浮点常量 默认情况下,8.27和3.4E5这类浮点常量都属于double类型。如果希望常量是float类型,使用f或者F后缀对于long double的类型,使用l和L的后缀 例如: 12341.234f //float2.2L //long double2.34F //float23.231E24 //double (defalut) 阅读全文

Ubuntu18系统安装(无需制作启动盘)

数据备份准备工具 Ubuntu系统(官网选择版本下载ISO文件) U盘(之前有一个U盘是做了window10的启动盘) 安装步骤 移除备份好的机械硬盘 制作一个启动盘(win10系统不需要用软碟通UltraISO作启动盘) 阅读全文

C++多字节char、bool、字符常量、浮点数

wchar_t 程序需要处理的字符集可能无法用一个8位的字节表示,比如日文、汉字等此时有两种处理方法: 编译器厂商将char定义16位的字节或者更长 char表示8位的字节,另一种wchar_t表示宽字符类型,可以扩展字符集 阅读全文