随着Android Studio的普及,越来越多的Android开发者也要开始了解和学习Gradle这款强大的代码构建工具了。我们在学习和了解一项新事物的时候,最快速的方法往往是与已知的事物进行比较,对于熟悉Makefile编译机制的Linux程序员而言,认识和掌握Gradle最好的方法莫过于比较它 ...
分类:
其他好文 时间:
2018-06-25 20:22:58
阅读次数:
180
目录 1、JNI:Java Native Interface 3、用C语言编写程序本地方法 一、编写带有 native 声明的方法的java类 二、使用 javac 命令编译所编写的java类,生成.class文件 三、使用 javah -jni java类名 生成扩展名为 h 的头文件 四、使用C ...
分类:
其他好文 时间:
2018-06-23 15:37:33
阅读次数:
184
配置AndroidSDK,NDK,CDT 添加JNI支持: Android Tools -> Add Native Support 生成头文件:javah -classpath "projectpath\bin\classes;android-sdkpath\platforms\android-23 ...
分类:
系统相关 时间:
2018-06-23 01:36:57
阅读次数:
188
是什么 全称compare and swap,一个CPU原子指令,在硬件层面实现的机制,体现了乐观锁的思想。 JVM用C语言封装了汇编调用。Java的基础库中有很多类就是基于JNI调用C接口实现了多线程同步更新的功能。 原理 CMS有三个操作数:当前主内存变量的值V,线程本地变量预期值A,线程本地待 ...
分类:
编程语言 时间:
2018-06-22 01:06:36
阅读次数:
217
1、编写native接口 2、根据native接口生成声明文件(.h) 3、编写接口代码调动so动态库(.c) 4、根据.h、.c编译生成so,如下makefie文件make生成libengine.so 5、java调用native接口 6、配置动态库路径 ...
分类:
其他好文 时间:
2018-06-17 17:53:57
阅读次数:
212
对象锁和类锁wait sleepAMSactivity启动流程handler消息机制JNI相关 1.looper.prepare()做了啥操作https://www.cnblogs.com/ganchuanpu/p/5979103.html2.looper如何知道当前线程是哪个线程https://b ...
分类:
其他好文 时间:
2018-06-12 23:32:15
阅读次数:
366
Java操作系统硬件的方法Unsafe Java中通过Unsafe类native方法,通过JNI绕过JVM来操作系统cpu、内存等硬件,实现更高效率的操作,在Java基础类库和第三方开源库中都有广泛的应用,比如JUC、Netty、Kafka等。通过Unsafe你可以自己内存管理、实例化对象、操作类、 ...
分类:
其他好文 时间:
2018-06-10 15:25:34
阅读次数:
170
Java实现中client端的RPC层(java实现)如何通过JNI来调用IPC层(C++实现)发送数据 TestServer通过addService向Service_manager注册的时候TestServer是Client端,Service_manager是Server端; TestClient ...
分类:
编程语言 时间:
2018-06-09 00:54:10
阅读次数:
235
1.JNI函数注册方式 在Android开发中,由于种种原因我们需要调用C/C++代码,在这个时候我们就需要使用jni了, jni在使用时要对定义的函数进行注册,这样java才能通过native关键字定义的方法找到对应的C/C++函数 注册函数的方法有两种: 静态注册和动态注册。由于静态注册已经在上 ...
分类:
移动开发 时间:
2018-06-06 18:24:53
阅读次数:
263
1、框架 APP(java语言实现) JNI(c++语言实现) 向上提供Java执行c函数的接口 向下访问HAL HAL(c或c++语言实现) 封装硬件操作细节 Driver(c语言实现) 操作硬件 如果JNI是自己写的,那么其接口就只有自己知道,应用程序只能自己写,因此必须使用android现有的 ...
分类:
移动开发 时间:
2018-06-03 12:23:41
阅读次数:
168