Eclipse NDK开发基本流程

 Eclipse进行NDK开发的基本流程是:

创建Android工程--->完成java函数的编写,添加jni的接口函数(native函数)的添加--->添加jni文件夹,添加Android.mk文件和源文件--->在源文件中实现接口函数--->用ndk-build把源文件编译成lib库--->启动Android模拟器,安装运行工程。

 

 举例:

 1、打开Eclipse,添加一个android工程。工程的名称为IDETTest,然后根据提示完成Activity名称(IDETest)和java包(com.test.IDETest)的填写。注意java包的名称中最好不要有下划线,可能在以后的jni调用中调用失败,因为jni的接口函数的格式是Java_java包的名称_Activity名称_声明的函数

 2、完成java代码的编写,在需要进行jni调用的类中引入ndk交叉编译的调用:

    static {
        System.loadLibrary("IDETest");

    } 

 同时在类中声明native函数(在C文件中被创建,用NDK交叉编译)

 public native String generateID(String label);

 

完整的java文件如下所示:

package com.test.IDETest;
import android.app.Activity;
import android.widget.TextView;
import android.os.Bundle;
public class IDETest extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //setContentView(R.layout.main);
        TextView tv=new TextView(this);
        tv.setText(generateID("47766"));
        setContentView(tv);
    }
    
    /*native method implement*/
    public native String generateID(String label);
    /*******************************/
    /*import c lib*/
    static {
        System.loadLibrary("IDETest");
    }

 3、在IDETest工程中添加文件夹,名称为jni。在jni文件夹下添加c模块的实现文件(.c和.h的文件工程)和Android.mk文件

  c模块的文件(IDETest.c)的内容

  #include <string.h>

  #include <jni.h>
  #include <stdio.h>

 

jstring
Java_com_test_IDETest_IDETest_generateID( JNIEnv* env,
jobject thiz,
jstring label)
{
char *str=(char *)malloc(1024*sizeof(char));
sprintf(str,"Hello everybody! I am from XXX, and my ID is %s",(*env)->GetStringUTFChars(env,label,0));
printf("%s",str);
return (*env)->NewStringUTF(env,str);
}

 Android.mk文件

 

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE    := IDETest
LOCAL_SRC_FILES := IDETest.c
include $(BUILD_SHARED_LIBRARY)

 

 

 4、编译源代码为库文件。

 进入工程目录

 root@XXX-laptop:~/IDETest# ls

AndroidManifest.xml  bin                 gen  libs  proguard.cfg  src
assets               default.properties  jni  obj   res
root@XXX-laptop:~/IDETest# ndk-build
Compile thumb  : IDETest <= IDETest.c
SharedLibrary  : libIDETest.so
Install        : libIDETest.so => libs/armeabi/libIDETest.so
完成编译后会自动创建obj和libs文件夹

编译好的库文件就在这里面。

 5、启动Android模拟器运行工程。

 

 

转载于:https://www.cnblogs.com/imagelab/archive/2011/08/20/2147023.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值