最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

Android-NDK开发

来源:动视网 责编:小OO 时间:2025-09-22 22:53:14
文档

Android-NDK开发

Android-NDK开发NDK的全称是NativeDevelopmentKit,即Android应用程序可以调用C语言写好的编程接口,不仅可以提高程序执行速度,也解决了有些底层函数java不支持的情况。一.安装eclipse开发环境。首先要安装javasdk,选下面的文件双击即可完成安装。装好javasdk后,Eclipse是不用安装的,直接进入eclipse文件夹运行eclipse.exe就可以执行了。装好java后将java的安装路径添加到windows环境变量的Path中,以免后面调用
推荐度:
导读Android-NDK开发NDK的全称是NativeDevelopmentKit,即Android应用程序可以调用C语言写好的编程接口,不仅可以提高程序执行速度,也解决了有些底层函数java不支持的情况。一.安装eclipse开发环境。首先要安装javasdk,选下面的文件双击即可完成安装。装好javasdk后,Eclipse是不用安装的,直接进入eclipse文件夹运行eclipse.exe就可以执行了。装好java后将java的安装路径添加到windows环境变量的Path中,以免后面调用
Android-NDK开发

NDK的全称是Native Development Kit,即Android应用程序可以调用C语言写好的编程接口,不仅可以提高程序执行速度,也解决了有些底层函数java不支持的情况。

一.安装eclipse 开发环境。

首先要安装java sdk , 选下面的文件双击即可完成安装。

装好java sdk后,Eclipse 是不用安装的,直接进入eclipse文件夹运行eclipse.exe就可以执行了。

装好java后将java的安装路径添加到windows环境变量的Path中,以免后面调用javah是找不到命令。

二.安装Android sdk

安装ADT工具。ADT工具是一个eclipse的插件,专门用来进行Android开发。

a)打开eclipse,选择Help->Install New Software…

b)选择Add ,进行添加

c)   选择Archive , 再选择ADT-8.0.1.zip,我的电脑因为已经装过了,所以显示Duplicate location.之后点击OK即可。

 

d)  之后把几个选项前面的复选框全部选中,再点击下一步就好了,在下一步的操作中,要因为要分析一些依存性问题,所以可能比较慢,如果觉得很长时间也没反应,可以点击停止,重新再装ADT-8.0.1。

e)增加Android-sdk的路径

在eclipse菜单中选择Window->preference,左侧列表中选择Android , 在SDK Location中选择Android-sdk-windows 的路径,在列表出现下图相应的选项,即表示可用,最后点击ok即可。

三.安装android-ndk

1.安装cygwin

那个cygwin-store是自己安装时存储的文件,若是用这个文件安装不好用,那就选择从Internet上安装:

在下一步选择缓存的文件夹即可:

安装时Devel包必须要选Install,如下图示:

之后点击下一步,装好之后运行即可。运行时请确认一下make和gcc工具都好用。输入make –v和gcc –v查看显示正确即可。

2.安装android-ndk

把android-ndk-r3-windows.zip解压,把解压后的文件拷贝到c:/cygwin文件夹下面,具体路径请自己选择,我的是拷贝到C:\\cygwin\\program\\android-ndk-r3。

打开\\home\\Administrator\\.bash_profile文件,在该文件的最后加上

ANDROID_NDK_ROOT=/program/android-ndk-r3

export ANDROID_NDK_ROOT

就是设置NDK的本地路径。

        在cygwin中运行cd $ANDROID_NDK_ROOT

        再运行  ./build/host-setup.sh

        出现下图所示画面即表示安装成功。

        

四.用NDK编写Android程序。

1.建立AVD

AVD就是一个Android虚拟设备,必须先建立一个AVD,用eclipse编写的代码才可以运行,建立方法:

点击eclipse工具栏上的Android小图标:

打开后左侧选择Virtual Devices , 右侧选择New

在target中必须选择Googlr APIs , Name 字段自己写即可,其他保持默认即可。

2.建立Android项目,选择File->New->Project,在下图中选择Android Project.

在新弹出的窗口中Name中输入项目的名称,这里用jnitest

Build Target还是选择Google APIs,下面的Properties可以自己更改,其中package name是要打包好的java包的命名空间,都可以自己更改。

    建好后程序的目录结构如图示:

Main.java是主程序,AndroidManifest.xml是整个项目的配置文件,Main.xml是Android窗体的布局文件。

    把Main.java的代码改成:

package net.test.jni;

import android.app.Activity;

import android.widget.TextView;

import android.os.Bundle;

public class Main extends Activity

{

    /** Called when the activity is first created. */

    @Override

    public void onCreate(Bundle savedInstanceState)

    {

        super.onCreate(savedInstanceState);

        TextView  tv = new TextView(this);

        tv.setText( stringFromJNI() );

        setContentView(tv);

    }

    public native String  stringFromJNI();

    static {

        System.loadLibrary("jnitest");

    }

}

3.建立jni的C接口文件,用命令行进入jnitest的项目目录,进入其中的bin目录,输入javah –jni net.test.jni.Main ,前面的net.test.jni 是在建立项目输入的Package的名称,后面的Main表示Main.java文件。

    输入命令后即可在当前目录下生成net_test_jni_Main.h文件,此文件定义了C语言函数的接口:JNIEXPORT jstring JNICALL Java_net_test_jni_Main_stringFromJNI (JNIEnv *, jobject);,此接口函数在后面的调用中会用到。

4.建立ndk下面的编译项目

在cygwin\\program\\android-ndk-r3\\apps下建立jnitest文件夹,并在此文件夹下建立Application.mk文件和project文件夹。

其中Application.mk中输入:

APP_PROJECT_PATH:=$(call my-dir)/project

APP_MODULES        :=jnitest

其中APP_MODULES表示要生成的模块的名称。

再在project文件夹中建立jni文件夹,在jni文件夹下建立Android.mk和jnitest.c两个文件。

Android.mk中输入:

LOCAL_PATH:=$(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE    :=jnitest

LOCAL_SRC_FILES    :=jintest.c

include $(BUILD_SHARED_LIBRARY)

其中LOCAL_MODULE还是生成模块的名称,LOCAL_SRC_FILES是编译模块需要的文件。

在jnitest.c中输入:

#include

#include

JNIEXPORT jstring JNICALL Java_net_test_jni_Main_stringFromJNI ( JNIEnv* env,

                                                  jobject thiz )

{

return (*env)->NewStringUTF(env, "Hello from JNI !");

}

这个函数的声明格式是在第3步中生成的net_test_jni_Main.h中的内容。

这里格式都是固定的,jni.h是进行jni操作必须包括的头文件,JNIEXPORT JNICALL Java 都是固定的关键字,net_test_jni_Main_stringFromJNI 表示net.test.jni包下面的Main类里的stringFromJNI函数,JNIEnv* env, jobject thiz 是jni的固有参数,因为stringFromJNI函数的参数为空,所以生成的c函数就只有这两个参数。

return (*env)->NewStringUTF(env, "Hello from JNI !");的作用是把"Hello from JNI !"这个字符串作为返回值返回。

5.编译ndk项目

进入android-ndk-r3目录,运行make APP=jnitest 即可生成libjnitest.so文件,注意APP必须大写。

6.C库与java整合。

第5步编译好之后会在jnitest文件夹下生成一个lib文件夹,里面有libjnitest.so文件,

现在把整个lib文件夹拷贝到eclipse项目的根目录即可:

6.运行。

在eclipse左侧的列表中点右键选择“refresh”或按”F5”,这是防止文件不同步的问题。

在eclipse的菜单中选择Run->Run , 再在弹出的列表中选择Android Application , 点OK即可,模拟器启动成功后,把键盘解锁,程序会自动安装并运行,运行效果如下图:

第一次编译完后可能会出现程序崩溃的情况,多试几次或者关掉eclipse再启动可能会解决问题。

附:

若要导入已存在的eclipse项目,选择File->Import即可。

文档

Android-NDK开发

Android-NDK开发NDK的全称是NativeDevelopmentKit,即Android应用程序可以调用C语言写好的编程接口,不仅可以提高程序执行速度,也解决了有些底层函数java不支持的情况。一.安装eclipse开发环境。首先要安装javasdk,选下面的文件双击即可完成安装。装好javasdk后,Eclipse是不用安装的,直接进入eclipse文件夹运行eclipse.exe就可以执行了。装好java后将java的安装路径添加到windows环境变量的Path中,以免后面调用
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top