上一页 1 ··· 105 106 107 108 109 110 111 112 113 ··· 124 下一页
摘要: 转至:http://blog.csdn.net/conowen/article/details/75247441、JNINativeMethod 结构体的官方定义typedef struct { const char* name; const char* signature; void* f... 阅读全文
posted @ 2015-04-14 10:16 qiynet 阅读(636) 评论(0) 推荐(0)
摘要: bool为C中变量类型,jboolean 为JNI中变量类型,boolean为Java中变量类型;jboolean在C语言的定义为:typedef unsigned char jboolean;unsigned char是无符号字节型,char类型变量的大小通常为1个字节(1字节=8个位),且属于整... 阅读全文
posted @ 2015-04-14 10:01 qiynet 阅读(879) 评论(0) 推荐(0)
摘要: 1.关于JNIEnv和JavaVMJNIEnv:线程相关的变量JavaVM:是虚拟机在JNI层的代表,JNIEnv是一个与线程相关的变量,不同线程的JNIEnv彼此独立。JavaVM是虚拟机在JNI层的代表,在一个虚拟机进程中只有一个JavaVM,因此该进程的所有线程都可以使用这个JavaVM。当后... 阅读全文
posted @ 2015-04-13 19:20 qiynet 阅读(478) 评论(0) 推荐(0)
摘要: 上一篇说的是一个简单的应用,说明JNI是怎么工作的,这一篇主要来说一下,那个本地方法sayHello的参数的说明,以及其中方法的使用首先来看一下C++中的sayHello方法的实现:[cpp]view plaincopyJNIEXPORTvoidJNICALLJava_com_jni_demo_JN... 阅读全文
posted @ 2015-04-13 19:11 qiynet 阅读(440) 评论(0) 推荐(0)
摘要: 1.---方法①:选择网络自动布线-----已经步好:---方法②:--------布线:---方法③:------ 阅读全文
posted @ 2015-04-13 11:06 qiynet 阅读(3002) 评论(0) 推荐(0)
摘要: 在上两篇文章中,我们介绍了如何为Android系统的硬件编写驱动程序,包括如何在Linux内核空间实现内核驱动程序和在用户空间实现硬件抽象层接口。实现这两者的目的是为了向更上一层提供硬件访问接口,即为Android的Application Frameworks层提供硬件服务。我们知道,Android... 阅读全文
posted @ 2015-04-11 19:54 qiynet 阅读(511) 评论(0) 推荐(0)
摘要: Android下log的使用总结一:在源码开发模式下1:包含头文件:#include2:定义宏LOG_TAG#defineLOG_TAG"MYLOGTAG"3:链接log对应的.so库在Android.mk文件中加入如下语句:LOCAL_SHARED_LIBRARIES+=\libcutils接下来... 阅读全文
posted @ 2015-04-11 19:28 qiynet 阅读(791) 评论(0) 推荐(0)
摘要: 今天被打印信息的去除困扰了,想了想,如果靠一个一个的改动未免太繁琐。因此就仔细的看了下这部分的打印原理。当然下面只是简单的进行了知识罗列不过有需要的朋友可以随便看看。说不准会有些收获呢。Include/linux/printk.h中有如下定义:#defineKERN_EMERG""/* system... 阅读全文
posted @ 2015-04-11 17:58 qiynet 阅读(729) 评论(0) 推荐(0)
摘要: 先开个头,准备这与一篇struct hw_module_t HAL_MODULE_INFO_SYM 相关的文章。Hal层的库文件是怎么被上层调用的?上层调用时的入口(相当于main)又是什么呢?它就是HAL_MODULE_INFO_SYM。下gps.default.so库为例子:①上层gpstest... 阅读全文
posted @ 2015-04-11 17:14 qiynet 阅读(951) 评论(0) 推荐(0)
摘要: 第一部分 libutils概述 libutils是Android的底层库,这个库以C++实现,它提供的API也是C++的。Android的层次的C语言程序和库,大都基于libutils开发。 libutils中的头文件如下所示: frameworks/base/include/utils ... 阅读全文
posted @ 2015-04-11 16:58 qiynet 阅读(868) 评论(0) 推荐(0)
摘要: 在前一篇文章中,我们介绍了如何在Ubuntu上为Android系统编写Linux内核驱动程序。在这个名为hello的Linux内核驱动程序中,创建三个不同的文件节点来供用户空间访问,分别是传统的设备文件/dev/hello、proc系统文件/proc/hello和devfs系统属性文件/sys/cl 阅读全文
posted @ 2015-04-11 14:14 qiynet 阅读(492) 评论(0) 推荐(0)
摘要: 简单来说,硬件驱动程序一方面分布在Linux内核中,另一方面分布在用户空间的硬件抽象层中。接着,在Ubuntu上为Android系统编写Linux内核驱动程序(老罗学习笔记1)一文中举例子说明了如何在Linux内核编写驱动程序。在这一篇文章中,我们将继续介绍Android系统硬件驱动程序的另一方面实... 阅读全文
posted @ 2015-04-11 14:12 qiynet 阅读(1102) 评论(0) 推荐(0)
摘要: kmalloc/kfree用于划分和回收内核空间低区内存的方法。改组方法没有直接通过伙伴系统进行内存的划分,通过slab算法进行分配的。同时也为每个CPU提供一个阵列缓存,用于提高分配效率。下面对改组函数进行源码级的分析。内存分配static inline void *kmalloc(size_t ... 阅读全文
posted @ 2015-04-10 15:46 qiynet 阅读(1655) 评论(0) 推荐(0)
摘要: 最近在使用filp_open打开文件时遇到到一个问题,当打开一个并不存在的文件时,filp_open返回值值为0xfffffffe,而并不是0(NULL),这是因为内核对返回指针的函数做了特殊处理。内核中的函数常常返回指针,通常如果调用出错,会返回NULL空指针,但linux做了更精妙的处理,能够通... 阅读全文
posted @ 2015-04-10 14:33 qiynet 阅读(2966) 评论(0) 推荐(1)
摘要: #defineclass_create(owner,name)\({\ staticstructlock_class_key__key;\ __class_create(owner,name,&__key);\})扩展阅读class_create为该设备创建一个class,再为每个设备调用class... 阅读全文
posted @ 2015-04-09 21:07 qiynet 阅读(573) 评论(0) 推荐(0)
上一页 1 ··· 105 106 107 108 109 110 111 112 113 ··· 124 下一页
跳至侧栏