Eclipse下创建jni
来源:互联网 发布:零一数据分析 编辑:程序博客网 时间:2024/05/19 23:57
Eclipse下创建jni文件
之前自己有看了很多的关于ndk的相关论坛,但终究看的云里雾里.这次经过自己的使用和研究,大致知道了eclipse项目中生成ndk的步骤及需要注意的几个地方.
这里我就以一个简单的案例来说明eclipse下生成jni的相关流程.
1.建立一个新工程,只有一个MainActivity,里面加载库文件并且调用若干本地方法,然后使用javah生成对应的.h文件.(主要需要注意的是里面的native静态方法)
package com.example.alldemo;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class MainActivity extends Activity {
private TextView tv;
public static native String getStringFromJni();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv=(TextView) findViewById(R.id.tv);
tv.setText(getStringFromJni());
}
}
2.切换到项目下,使用javah -classpath bin/classes -d jni com.example.alldemo.MainActivity,如果发现找不到android.app.Activity的类文件.
这是因为没有加载android.jar文件.这时候需要切换到android.jar加载android.jar文件.这时候需要用到的指令如下:
javah -classpath bin/classes;F:\sdk\platforms\android-20\android.jar -d jni com.example.alldemo.MainActivity
加载android.jar包之后再执行javah指令
可以看到我们的jni文件夹下面已经成功生成了.h文件
到这里,生成.h文件的步骤已经完成.另外需要注意,在android stuido下面需要使用javah -d jni -classpath ./java activity.msd.com.jnidemo.MainActivity生成.h文件
3.在jni文件夹下面,自己新建一个File.这个.c文件名称可以自己命名.这里我命名为test.c文件..c文件需要声明一些头文件.表示该文件符合C语法.
#include<stdio.h>
#include<stdlib.h>
#include <jni.h>
#include <string.h>
#include "com_example_alldemo_MainActivity.h" //这个表示需要引入的c文件是那个文件.这个就是我们的刚生成的.h文件.
4.引入这些头文件之后,这时候就需要将com_example_alldemo_MainActivity.h里面的声明的方法复制到testJni.c文件里面并实现它.
这里表示的是返回一个字符串.至此,.c文件就已经好了.
5.接着我们就需要配置Android.mk文件了.我这个android.mk文件是从其他项目复制过来的,这里我只说下需要修改的两个地方.
其中LOCAL_MODULE表示的是生成的so库名称,这个可以自己命名,LOCAL_SRC_FILES表示需要引入的.c文件.也就是我们刚自己新创建的c文件.修改完这两个地方就已经配置好Android.mk文件了.
6.打开cygwin控制台,切换到项目根目录下面,使用$ndk/ndk-build指令生成.so库文件.cygwin的配置网上有很多教程,这里我就不再去详述了.
这时可以查看lib目录下面多了个个armeabi文件,里面就有我们的生成的so文件.
7.现在我们就可以在项目中使用我们的so库了.在MainActivity中加入一句静态代码块,使用System.loadLibrary加载我们的so库文件.
static{
System.loadLibrary("ndk_mode");
}
loadLibrary里面的so库名称就是我们在Androd.mk里面自定义的名字
调用so库之后的MainActivity文件结构.运行之后会在我们的界面上显示个test
- Eclipse下创建jni
- eclipse下jni初试
- eclipse下jni初试
- eclipse下测试JNI
- Eclipse下JNI开发
- eclipse下jni初试[转]
- 手把手Eclipse下使用JNI
- Eclipse环境下使用JNI
- Eclipse和AS分别创建Jni工程
- 【JNI】拒绝各种坑!Android Studio 下创建JNI项目
- eclipse下JNI的初步实现
- cygwin+ndk+eclipse下JNI技术入门
- eclipse下编译jni的配置
- JNI 之 Eclipse下NDK环境配置
- eclipse 下jni自动编译无需cygwin
- Android-Eclipse下开发JNI过程介绍
- eclipse下android JNI开发小实例
- Eclipse下的Android JNI 开发
- 指针与数组
- 6358630
- 文章标题
- dubbo中关于protocol的配置
- android TBS 腾讯浏览服务 集成
- Eclipse下创建jni
- java中几种JSON库的解析速度对比
- MyBatis配置文件全解析
- TP5分页类使用——超级简单好用
- js获取地址栏参数
- usb单片机程序
- A+B for Input-Output Practice (III)
- 常用vim操作快捷键
- recyclerView的item行高不能随布局变化