
NDK
文章平均质量分 83
tongxintong
这个作者很懒,什么都没留下…
展开
-
Android Binder设计与实现 - 设计篇
转自https://blog.youkuaiyun.com/universus/article/details/6211589,神级博客,转载以防丢失关键词Binder Android IPC Linux内核驱动摘要Binder是Android系统进程间通信(IPC)方式之一。Linux已经拥有管道,system V IPC,socket等IPC手段,却还要倚赖Binder来实现进程间通信,说明Binder具有无可比拟的优势。深入了解Binder并将之与传统IPC做对比有助于我们深入领会进程间通信...转载 2020-10-31 19:21:00 · 377 阅读 · 0 评论 -
JNI
#1. c里面 JNIEnv是个二级指针,c++里直接是个指针,因为c++里有this指针表示结构体自己;#2. JNIEnv代表java运行环境,在c中调用java代码#3. java调用的native方法命名规则 Java_完整类名_方法名(JNIEnv * env,jobject thiz......)每个native方法至少有两个参数JNIEnv ,jclass(静态)或者jo原创 2016-12-07 16:24:55 · 286 阅读 · 0 评论 -
C——指针
1. 指针保存的是内存地址,但是指针是有类型的,内存地址是没有类型的;2. 指针类型的数据大小和指定的平台位数有关,指定32位系统,指针占4字节,指定64位系统,占8字节。注意:是编译器指定的位数,跟电脑系统的位数没有关系;#include void main(){int a = 10;int* p = &a;printf("int pointer size -->%d\n原创 2016-12-06 22:13:04 · 221 阅读 · 0 评论 -
C——动态内存
c内存结构1. stack 栈区,有一个最大的大小限制,一般是2M,超过之后会报stack overflow 错误系统自动管理这块内存,自动分配,自动释放,比如一些局部变量分配方式 int a[100];2. heap 堆区,可以分配系统内存80%的空间;由程序员自己手动分配,手动释放分配方式 int *p=malloc(字节数);//malloc 返回任意原创 2016-12-06 22:13:48 · 248 阅读 · 0 评论 -
C——字符串
使用char数组保存字符串字符串API http://www.kuqin.com/clib/#include void main(){char str[] = {'h','e','l','l','o'};//字符串必须以'\0' 结束,否则会打印到未知数据char str2[6] = { 'h', 'e', 'l', 'l', 'o' };char str3[20] =原创 2016-12-06 22:14:22 · 254 阅读 · 0 评论 -
C——结构体
16位系统:long是4字节,int是2字节32位系统:long是4字节,int是4字节64位系统:long是8字节,int是4字节c结构体 不能包含函数,但可以包含函数指针(就是个指针变量)c++结构体可以包含函数;struct StructA{//返回值 (*函数名)(参数列表...)int (*func_p) (int, i原创 2016-12-06 22:15:07 · 338 阅读 · 0 评论 -
C——union、enum、file
联合体(共用体)不同类型的变量共同占用一段内存(相互覆盖),联合变量任何时刻只有一个成员存在,节省内存,联合体变量的大小=最大的成员所占的字节数;枚举不可用指针遍历,枚举值默认从0开始,可自定义,必须为整型常量表达式,不可为中文typedef enum Aenum{星期一,星期二,星期三} Aenum;计算机的文件存储在物理上都是二进制文本文原创 2016-12-06 22:15:45 · 258 阅读 · 0 评论 -
C——预编译
1. 预编译:在编译之前,直接替换相应的代码文本2. 编译:形成目标文件 .obj3. 连接:将目标代码与C函数库连接合并,形成最终的EXE文件头文件告诉编译器存在这样的一个函数,连接器负责找到这个函数#include //把代码包含进来void main(){#include "my.txt"; getchar();}my.txt的内容为pri原创 2016-12-06 22:16:19 · 334 阅读 · 0 评论