手机
当前位置:查字典教程网 >软件教程 >编程开发 >使用NDK进行开发android
使用NDK进行开发android
摘要:在eclips中配置NDK路径在eclipse中点击菜单栏window-Perferences,配置NDK的路径。在工程中添加nativel...

在eclips中配置NDK路径

在eclipse中点击菜单栏window-Perferences,配置NDK的路径。

使用NDK进行开发android1

在工程中添加native lib

新建一个空白的Android工程,在根目录上点击右键Adnroid Tools - Add Native Support...

使用NDK进行开发android2

在弹出的对话框中输入要新建的lib的名称,点击Finish,在工程目录下会多出一个jni文件夹,里面有一个空白的cpp文件和一个Android.mk文件

使用NDK进行开发android3

Android.mk文件的内容是

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := TestJni

LOCAL_SRC_FILES := TestJni.cpp

include $(BUILD_SHARED_LIBRARY)

TestJni就是要加载的lib的名称,LOCAL_SRC_FILES 是资源文件的路径。

hello jni

MainActivity.java代码如下:

package com.example.testjni;

import android.os.Bundle;

import android.app.Activity;

import android.widget.TextView;

public class MainActivity extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

TextView textView = new TextView(this);

textView.setText(helloFromJni());

setContentView(textView);

}

public native String helloFromJni();

static {

System.loadLibrary("TestJni");

}

}

TestJni.cpp代码如下:

#include <jni.h>

extern "C" jstring Java_com_example_testjni_MainActivity_helloFromJni(JNIEnv *env, jobject thiz) {

return env->NewStringUTF("Hello From Jni");

}

直接运行程序,可以在Console窗口中看到NDK build的输出

使用NDK进行开发android4

有一点要注意:由于我使用的是x86的Android虚拟机来运行,所有使用的是x86的编译器。制定编译器的方法是在jni目录新建一个Application.mk的文件,输入以下内容

#APP_ABI := armeabi

APP_ABI := x86

#APP_ABI := armeabi armeabi-v7a x86 mips mips-r2 mips-r2-sf

#APP_ABI := all

APP_STL := stlport_static

如果是普通arm处理器的Android手机,使用APP_ABI := armeabi,如果是x86处理器的,使用APP_ABI := x86,等等。

如果APP_ABI := all,会编译所有指令的so。

运行结果如下:

使用NDK进行开发android5

至于C/C++的编译是怎么实现的,我们可以查看一下工程的Properties

使用NDK进行开发android6

在Builders里面有多了两项,一个是CDT Builder,一个是Scanner Configuration Builder。

现有的工程添加Builder

如果工程里面已经有jni目录了,但是没有配置C/C++的编译器,高手们可以自己添加Builder,对于我这种爱投机取巧的小菜鸟,工程右键菜单,新添加一个空白的so,然后再删除,CDT Builder和Scanner Configuration Builder就出来了。

【使用NDK进行开发android】相关文章:

notepad中怎么使用一键运行批处理命令?

使用Arcgis Engine 二次开发的使用和总结

Sublime Text 3怎么设置为Markdown编辑器?

Visual Studio怎么开启代码段管理功能?

Android studio怎么这是代码检查错误警报?

android studio中怎么在新窗口中打开项目?

keil c51破解版如何使用 keil c51破解版安装使用图文教程(附下载地址)

Notepad++ 使用心得

SQL Server中事务和并发详解

Dreamweaver如何建立超链接?DW建立超链接方法介绍

精品推荐
分类导航