【系统移植】JNI
jni代码
java调用jni的接口:
1, 调用动态库
System.loadLibrary("led_jni"); // system/lib/libled_jni.so
}
2, 调用驱动方法名:
public native int openDev();
3, 直接去调用,不需要去实现openDev()
public native int openDev();
public native int DevOn();
public native int DevOff();
public native int closeDev();
jni的接口代码: jni代码(*.cpp)==>libled_jni.so
参考模板:Native.cpp development\samples\simplejni\Jni 2599 2011-5-17
a, 获取jni的版本,和dvm的运行环境对象 env (提供操作jni的方法)
原型
错误
b, 构建映射表, 注册给dvm
表示映射表]));
Android.mk
include $(CLEAR_VARS)
LOCAL_SRC_FILES:= led_jni.cpp
LOCAL_MODULE :=libled_jni
#指定连接动态库< 类似于gcc -lxx
LOCAL_SHARED_LIBRARIES := \
libcutils
#指定头文件路径, 类似于gcc -Ixxx
LOCAL_C_INCLUDES += \
$(JNI_H_INCLUDE)
#编译成so,需要一个标志
LOCAL_PRELINK_MODULE := false
include $(BUILD_SHARED_LIBRARY)
编译:
target SharedLib: libled_jni (out/target/product/fs100/obj/SHARED_LIBRARIES/libled_jni_intermediates/LINKED/libled_jni.so)
target Non-prelinked: libled_jni (out/target/product/fs100/symbols/system/lib/libled_jni.so)
target Strip: libled_jni (out/target/product/fs100/obj/lib/libled_jni.so)
Install: out/target/product/fs100/system/lib/libled_jni.so
make:离开目录“/home/ldswfun/src_s5pc/eclair_2.1_farsight”
运行:
so ==> /syste/lib/
cp -raf out/target/product/fs100/system/lib/libled_jni.so /opt/myrootfs/system/lib
@成鹏致远
(blogs:http://lcw.cnblogs.com)
(email:wwwlllll@126.com)
)
【系统移植】JNI的更多相关文章
- 第一章 Android系统移植与驱动开发概述
本书第一章首先简单概要地介绍了关于Android系统移植和驱动开发的相关内容. 所谓“移植”是指为特定的自己的设备,如手机定制Android的过程.自己开发一些程序(移植)装载在设备上,使得Andro ...
- 浅谈Android系统移植、Linux设备驱动
一.Android系统架构 第一层:Linux内核 包括驱动程序,管理内存.进程.电源等资源的程序 第二层:C/C++代码库 包括Linux的.so文件以及嵌入到APK程序中的NDK代码 第三层:An ...
- 第一章Android系统移植与驱动开发概述--读书笔记
以前,初步学习过嵌入式Linux驱动开发的基础课程,对于驱动开发可以说是有了一点点微末的基础吧.首先我们要对Android嵌入式系统有一个初步的认识,Android系统发展到今天已经具备了完善的架构. ...
- 第一章 Andorid系统移植与驱动开发概述 - 读书笔记
Android驱动月考1 第一章 Andorid系统移植与驱动开发概述 - 读书笔记 1.Android系统的架构: (1)Linux内核,Android是基于Linux内核的操作系统,并且开源,所以 ...
- MiniCRT 64位 linux 系统移植记录:64位gcc的几点注意
32位未修改源码与修改版的代码下载: git clone git@github.com:youzhonghui/MiniCRT.git MiniCRT 64位 linux 系统移植记录 MiniCRT ...
- 1Android系统移植与驱动开发概述
1.Android系统架构分为四层,从下至上依次为Linux内核层,C/C++代码库.Android SDK API.应用程序,要熟悉每一层的内容以及功能: 2.Android移植分为应用移植和系统移 ...
- 1.2Android系统移植的主要工作
1.Android移植分为两部分:应用移植和系统移植: 2.应用移植:指将第四层的应用程序一直到某一特定硬件平台上. (1)为保证应用程序能在新的平台上正常运行,需要对源代码就行一些修改,因为硬件平台 ...
- ARM开发板系统移植-----u-boot的编译
本文和另外两篇姊妹篇都是为了说明如何裁剪出适合在mini2440 开发板上运行的Linux系统,以记录自己的学习成果.其中本文先介绍了嵌入式系统的软件组成部分,然后介绍编译出适合在mini2440开发 ...
- Android系统移植与驱动开发----第一章
第一章 Android系统移植与驱动开发 Android源代码定制完全属于自己的嵌入式系统,但是支持的设备不多,所以要移植,而在移植的过程中使用的不得不提的是驱动开发. Android系统构架主要包括 ...
- 【课程分享】深入浅出嵌入式linux系统移植开发 (环境搭建、uboot的移植、嵌入式内核的配置与编译)
深入浅出嵌入式linux系统移植开发 (环境搭建.uboot的移植.嵌入式内核的配置与编译) 亲爱的网友,我这里有套课程想和大家分享,假设对这个课程有兴趣的,能够加我的QQ2059055336和我联系 ...
随机推荐
- Python—元组tuple
列表的知识其实就类似于c语言中的数组,可插入.修改.list=[a,b,c,d] 而元组tuple,一旦初始化即不可修改.好处与绝对安全. 定义一个空的元组:t=() 定义只有一个元素的元组:t=(1 ...
- Eclipse PHP Studio(EPP)
Eclipse PHP Studio (EPP) 中文版官方网站 :http://epp.php100.com/ EclipsePHP Studio 简体中文版介绍 - EPP EclipsePHP ...
- 自定义Dialog之信息提示
对话框对于应用也是必不可少的一个组件,在Android中也不例外,对话框对于一些提示重要信息,或者一些需要用户额外交互的一些内容很有帮助. 自定义Dialog步骤: 1.主要创建Java类,并继承Di ...
- C语言学习笔记(一)_hello world
一.建立一个文件a.c,写入: #include <stdio.h> //使用printf库函数之前,必须include <stdio.h>int main()//main函数 ...
- Solr Zookeeper ACL权限配置
首先注意:在配置ACL的时候,请关闭solr运行实例!!否则可能对集群造成不可恢复的损坏 开始: 1.修改solr.xml,在solrCloud节点添加,告诉solr要使用的provider: < ...
- swift 定制自己的Button样式
swift的UIButton类中有些公开方法可以重写,所以,如果想写出自己的UIButton,只要继承UIButton类,并重写相应的方法即可. 系统的UIButton可以添加图片,也可以添加标题,但 ...
- AngularJS学习--- AngularJS中模板链接和图像 ng-src step6
接上一篇文章,本文将主要介绍angularjs中的模板链接,和图像显示? 首先,切换分支,启动项目: git checkout step- npm start 1.效果 相较于前一篇文章,明显感觉多了 ...
- 使用jquery form插件进行异步带文件的表单提交
引入form插件与jquery 的js文件后 获取表单的jq对象 然后.ajaxSubmit提交表单即可 实现添加品牌的异步表单提交 function addBarandImg(formId) { $ ...
- WPF中获得控件相对于控件的相对位置
GeneralTransform generalTransform = lstitem.TransformToAncestor(this.BackStack); Point point = gener ...
- [Shell]Bash变量:环境变量的配置文件和登录信息
----------------------------------------------------------------------------------------- 只有把环境变量放入配 ...