Android NDK之环境配置及HelloJni

转载请注明出处:http://blog.csdn.net/enyusmile/article/details/46581141

一.开发环境搭建

1. 首先,我的硬件/软件环境为:i5 4G,ubuntu 14.04LTS 64位.Eclipse Kepler Service Release 2,JDK 1.7.0.51,android SDK最新至22,build_tools至24.2,介绍完毕(这样的软硬件环境也不是必须需要的).
2.下载NDK开发包,官方地址.下载的是一个.bin文件,进行安装,然后配置环境变量(我是在~/.bashrc里配置的).如下:
export NDK_HOME=/你的安装目录/android-ndk-r10e
export PATH=$NDK_HOME:$PATH
3.验证NDK配置是否成功:
ndk-build -v

如果成功,则显示如下内容:

GNU Make 3.81
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.

二.HelloJni

说明:在NDK的安装目录下/samples/有很多示例,其中之一就有”hello-jni”这个项目.不过,下文是简化了的这个项目,指在注重动手来体会android NDK的开发流程.

1.新建一个Android项目,项目名称为:HelloJni,将MainActivity更改成HelloJni,同时编写代码,如下:
package com.example.hellojni;

import android.app.Activity;
import android.widget.TextView;
import android.os.Bundle;

public class HelloJni extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        TextView tv = new TextView(this);
        tv.setText(stringFromJNI());
        setContentView(tv);
    }

    public native String stringFromJNI();

    public native String unimplementedStringFromJNI();

    static {
        System.loadLibrary("hello-jni");
    }
}
2.编写相应的C/C++代码
2.1生成相应的.h文件

在项目的根目录下新建jni文件夹,然后在终端命令行里键入:

abc@ubuntu:~/workspace/android/NDK/hello-jni$javah -classpath /home/android_sdk/platforms/android-21/android.jar:bin/classes -d jni com.example.hellojni.HelloJni

如果操作成功,则项目的jni目录下则出现了com_example_hellojni_HelloJni.h这个文件

2.2编写相应的.c文件

#include <string.h>
#include <jni.h>

jstring
Java_com_example_hellojni_HelloJni_stringFromJNI( JNIEnv* env,
                                                  jobject thiz )
{
    return (*env)->NewStringUTF(env, "Hello from JNI !");
}
3.编译hello-jni.c生成相应的库
3.1编写Android.mk

在jni文件夹目录下,新建一个文件,名称为:Android.mk,编写代码:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE    := hello-jni
LOCAL_SRC_FILES := hello-jni.c

include $(BUILD_SHARED_LIBRARY)
3.2生成.so共享库文件

在项目根目录下,在终端命令行键入:

abc@ubuntu:~/workspace/android/NDK/hello-jni$ndk-build

如果成功,则,在项目的libs/armeabi/目录下,生成了”libhello-jni.so”文件

4.运行APK

eclipse中刷新下HelloJni工程,ctrl+F11(运行)项目,生成apk,libhello-jni.so共享库会一起打包在apk文件内.在模拟器中看看运行结果:
运行结果截图


以上,就完成了本次标题所示的全部内容.

有任何问题,请留言.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值