Android-NDK______2.helloJni

public class MainActivity extends Activity {

	static {
		System.loadLibrary("mylib");
	}

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		setTitle(getMyData());
	}

	public native String getMyData();

}
 
 
创建jni文件夹,天假Android.mk文件
 
 
LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE	:= mylib
LOCAL_SRC_FILES	:= com_example_firstndk_MainActivity.c

include $(BUILD_SHARED_LIBRARY)



这里面需要根据 javah命令 生成相应的 xxx.h 头文件
1.在Eclipse里面,使用externl tools来生成
  a. run->externl tools->externl tools Configurations->new Program

Android-NDK______2.helloJni_第1张图片

Location:是命令的位置

Working Diretory:是在哪个目录下执行命令

Arguments:就是参数了

      b.点击Refresh,勾选Refresh resources upon completion

         选择Specific resources ,点击Specify Resources Button

          选择工程下的jni

然后apply--->run ,就能生成相应的xxx.h头文件了

 


实现文件:

#include "com_example_firstndk_MainActivity.h"

JNIEXPORT jstring JNICALL Java_com_example_firstndk_MainActivity_getMyData(
		JNIEnv * pEnv, jobject pThis)
{

	return (*pEnv)->NewStringUTF(pEnv,"My native project talks C++");
}


---------------插入一个例子,如果打开eclipse_workspace的设置

Android-NDK______2.helloJni_第2张图片


这就是打开eclipse_workspace



--------------------------------------------------------------------------------------------

在Eclipse里面编译C/C++代码(先安装CDT)

1.将android工程 convert to C/C++ project


2.工程-->propotices->C/C++ Build

不要勾选Use default build command

Build command:/Users/mac/work/android-ndk-r8e/ndk-build 

为了让修改代码后,自动编译,

点击Behaviour选项卡:

勾选 Build on resources save(Auto build) all

Apply-->OK


3.由于程序里面用到了一些头文件,所以需要引入

C/C++ General->Path and Symbols

Includes (就是引入头文件) Add-->加上使用了的就可以了 

Sources Location (就是代码位置)暂时先不管 Apply->OK


4.由于Eclipse的语法检验C/C++不怎么好,正确的代码也会报错

C/C++ General->Code Analysis

勾选 Use project settings

使 下面 Syntax and Semantic Errors 不要勾选上。


然后就可以开始Run了







   

你可能感兴趣的:(NDK)