Android JNI学习之二 demo
2010-09-28 13:58
218 查看
Android JNI学习之二 demo
主要参考了文章http://www.cnblogs.com/wmj/archivse/2010/07/25/1784872.html
1. 建立android工程,两个类,一个是activity,一个包含声明native方法的类
4. 下载工具链,并安装
在这里
http://www.codesourcery.com/gnu_toolchains/arm/download.html
Windows: http://www.codesourcery.com/gnu_toolchains/arm/portal/package3400/public/arm-none-linux-gnueabi/arm-2008q3-41-arm-none-linux-gnueabi.exe
Linux: http://www.codesourcery.com/gnu_toolchains/arm/portal/package3399/public/arm-none-linux-gnueabi/arm-2008q3-41-arm-none-linux-gnueabi.bin
我当时用的是ubuntu(10.4)平台
所以是linux那个链接
5. 编译。c文件产生so文件
root@ubuntu:~/project/JNI/JNItest# /root/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-gcc -I /home/tools/jdk1.6.0_21/include -I /home/tools/jdk1.6.0_21/include/linux -fpic -c org_simon_Nadd.c
root@ubuntu:~/project/JNI/JNItest# /root/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-ld -T /root/CodeSourcery/Sourcery_G++_Lite/arm-none-linux-gnueabi/lib/ldscripts/armelf_linux_eabi.xsc -share -o libNadd.so org_simon_Nadd.o
6. 将so文件push进模器
root@ubuntu:/home/tools/android-sdk-linux_x86-1.5_r1/tools# ./adb remount
remount succeeded
root@ubuntu:/home/tools/android-sdk-linux_x86-1.5_r1/tools# ./adb push /root/project/JNI/JNItest/libNadd.so /system/lib
28 KB/s (1969 bytes in 0.068s)
7. 运行工程,测试。
主要参考了文章http://www.cnblogs.com/wmj/archivse/2010/07/25/1784872.html
1. 建立android工程,两个类,一个是activity,一个包含声明native方法的类
package org.simon; public class Nadd { static { System.loadLibrary("Nadd"); } public native int nadd(int a, int b); }
2. 用JDK自带的javah生成.h头文件。
具体办法参见前一篇文章
/article/6187716.html
3. 编辑.c文件实现native方法。
com_hello_jnitest_Nadd.c文件:
#include <stdlib.h>
#include "com_hello_jnitest_Nadd.h"
JNIEXPORT jint JNICALL Java_com_hello_jnitest_Nadd_nadd(JNIEnv * env, jobject c, jint a, jint b)
{
return (a+b);
}
4. 下载工具链,并安装
在这里
http://www.codesourcery.com/gnu_toolchains/arm/download.html
Windows: http://www.codesourcery.com/gnu_toolchains/arm/portal/package3400/public/arm-none-linux-gnueabi/arm-2008q3-41-arm-none-linux-gnueabi.exe
Linux: http://www.codesourcery.com/gnu_toolchains/arm/portal/package3399/public/arm-none-linux-gnueabi/arm-2008q3-41-arm-none-linux-gnueabi.bin
我当时用的是ubuntu(10.4)平台
所以是linux那个链接
5. 编译。c文件产生so文件
root@ubuntu:~/project/JNI/JNItest# /root/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-gcc -I /home/tools/jdk1.6.0_21/include -I /home/tools/jdk1.6.0_21/include/linux -fpic -c org_simon_Nadd.c
root@ubuntu:~/project/JNI/JNItest# /root/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-ld -T /root/CodeSourcery/Sourcery_G++_Lite/arm-none-linux-gnueabi/lib/ldscripts/armelf_linux_eabi.xsc -share -o libNadd.so org_simon_Nadd.o
6. 将so文件push进模器
root@ubuntu:/home/tools/android-sdk-linux_x86-1.5_r1/tools# ./adb remount
remount succeeded
root@ubuntu:/home/tools/android-sdk-linux_x86-1.5_r1/tools# ./adb push /root/project/JNI/JNItest/libNadd.so /system/lib
28 KB/s (1969 bytes in 0.068s)
7. 运行工程,测试。
相关文章推荐
- Ubuntu下Android JNI初步学习之——搭建相关环境和测试Demo
- Android内核学习之二------JNI的使用
- android JNI学习之二 调用第三方动态库
- android学习轨迹之二:Android权限标签uses-permission的书写位置
- Android学习小Demo(21)ListView的联动选择
- Android 学习笔记——利用JNI技术在Android中调用、调试C++代码
- 打造自己的Android源码学习环境之二:在虚拟机中安装Ubuntu(上)
- android jni 学习1
- Android JNI 学习笔记
- Android MVP架构学习(附demo)
- Android中JNI学习博客
- Android动画学习Demo(1) 关于ViewAnimation的用法及总结
- Android学习小Demo(19)利用Loader来实时接收短信
- Android 通知栏Notification的整合 全面学习 (一个DEMO让你完全了解它)
- 一起学习Android开发_1_已下载文件的管理demo
- Android学习小Demo(15)一个自定义AlertDialog的实现
- android Fragment demo学习
- Android 通知栏Notification的整合 全面学习 (一个DEMO让你完全了解它)
- android学习总结(五)---简单浏览器demo的实现
- Android中关于JNI 的学习(六)JNI中注冊方法的实现