简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
JAVA有个垃圾回收机制,没有引用的对象会被虚拟机在整理内存时进行回收,所以使用弱引用java对象时,而实际调用为持久对象时将会出现问题。并且这个问题有时会随机出现,这个会内存整理回收时机有关。下面,说下对于在JNI中使用JAVA中对象代码编写方法:JAVA类方法编写:public class TestModule{static native boolean nativ
上一篇文章说到 JNIEnv 是一个与线程相关的变量,即线程A有一个 JNIEnv变量, 线程B也有一个JNIEnv变量,由于线程相关,所以A线程不能使用B线程的 JNIEnv 结构体变量。问题描述:一个java对象通过JNI调用DLL中一个send()函数向服务器发送消息,不等服务器消息到来就立即返回,同时把JNI接口的指针JNIEnv *env(虚拟机环境指针),和jobjec
JNI : Java Native Interface 即JAVA本地调用,为何需要这种技术呢?原因有二:1、运行JAVA程序的虚拟机是用Native语言编写的,而虚拟机运行在具体的平台上,所以虚拟机本身无法做到平台无关,而利用JNI技术即可对JAVA层屏蔽不同操作系统平台之间的差异,如file,socket等2、在JAVA语言诞生前,很多程序使用Native语言编写,JAVA直接利用JN
Linux内核必须使用GNU的GCC编译器来编译,而GCC提供了很多的C语言扩展,这些扩展对优化、目标代码布局、更安全的检查等提供了很强的支持。因此,内核代码所使用的C语法并不完全符合ANSIC标准,实际上,只要有可能,内核开发者总是要用到GCC提供的C语言扩展部分。所以特意找了几个常用的特性总结下。1、语句内嵌表达式(statement-embedded expressio
init是一个进程,它是linux系统中用户空间的第一个进程,其进程PID是1,父进程为linux系统内核的0号进程。所以其被赋予很多极其重要的职责,linux内核初始化完成后就开始执行它。代码路径:\system\core\init\init.c下面就分析一下先吧,只分析重点的函数功能:int main(int argc, char **argv){
底层链接时报错Unknown mandatory EABI object attribute 44,因为这个是使用NDK8.0 ARM 编译的,而到linux下编译是使用prebuilt下的盒子编译器,两者都是ARM编译器,上网搜都是说交叉编译器使用的和底层不一样。第一部分:EABI 是什么呢?Embedded application binary interface, 即嵌入式应
受朋友之托,由于他是业余进行学习,需要我帮他推荐几本书及学习方法,我在这里简要的谈谈我学习android之路吧。我以前是做嵌入式系统开发的,对于平台比较熟,所以我的学习方向是从下往上进行学习,有相同工作经历者可以效仿一下吧:)个人认为其实就是三大块,分为移植-框架-应用1、android系统移植 其实这一块工作主要集成在android linux kernel 的驱动代码
linux内核提供了一个Input子系统来实现的,Input子系统会在/dev/input/路径下创建我们硬件输入设备的节点,一般情况下在我们的手机中这些节点是以eventXX来命名的,如event0,event1等等,可以利用EVIOCGNAME获取此事件结点名称。这就是android中对于input事件处理数据的来源点,至于驱动写入数据这块就不说了。首先,简而言之的介绍一下android事
Android 权限控制代码分析前在文章介绍过android系统管理层次:http://blog.csdn.net/andyhuabing/article/details/7030212 ,这里就核心代码分析一下android系统充分利用了linux的用户权限管理方法,所以如果需要移植到其它系统,这一块也是一个相当不小的工作量。那么android系统到底是如何使用这些的有利
在程序开发过程中,LOG是广泛使用的用来记录程序执行过程的机制,它既可以用于程序调试,也可以用于产品运营中的事件记录。在Android系统中,提供了简单、便利的LOG机制,开发人员可以方便地使用。在平时开发过程中经常需要与log打交道,所以很有必要了解log的使用方法及简单的原理。1、linux内核的log输出 在标准的linux内核开发过程中,使用 printk ,这是一个与