1.在进行ndk开发前,进行eclipse的Android环境搭建。(eclipse jdk adt sdk )
2.安装Linux虚拟机Cygwin (可以百度有具体的安装步骤,建议修改改虚拟机的配置文件时候采用Uedit文本编辑器,用windows的记事本和写字板编辑文本启动虚拟机会报错,具体安装步骤可以百度)在Cygwin环境下可以采用命令生成项目需要的.so库文件。步骤1和2安装需要的时间很久。
3.建立一个普通Android项目
项目的内容可以如下:package com.wang.myfirsthellojni;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
static {
System.loadLibrary("MyJNIHello");
}
public native static void say1();
public native static void say2();
public native static void say3();
}
4.在windows下使用cmd命令 javah生成.h或者用Cygwin切换到项目bin目录下(切换到包的上一级目录)采用javah 命令生成.h头文件这个文件是c/c++需要的,拿着这个头文件编写对应的c/c++程序。
5.编写好.c文件,手写一个mk文件,这两个文件都放到项目的jni文件夹里。
mk文件
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := MyJNIHello
LOCAL_SRC_FILES := MyJNIHello.c
include $(BUILD_SHARED_LIBRARY)
做对应的修改(有时候修改会很复杂不怎么懂)。
6.在Cygwin中打开到5中提到的jni目录:
输入$NDK/ndk-build,命令。运行结果
这样的话一个自己的.so库文件就编译完成。