Cygwin配合NDK开发Android程序

NDK 提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so 和java 应用一起打包成apk。怎么在eclipse装这两个我就不多说了。大家按照以前装adt和sdk的方法来搞就好了。不过有一点是要注意的:因为cygwin是在window上模拟linux的控制台环境,所以对于访问文件的路径是不能带有空格的,貌似也不能带中文。所以ndk的解压后存放的路径必须不能包括空格或中文,比如这种“D:\Program Files\Android-ndk-windows”在cygwin是不能识别成功的。

二、安装cygwin

大家可以网上搜一下

三、配置NDK环境变量

上述三样安装成功后,就是配置NDK环境变量的问题了。

1、  首先找到cygwin的安装目录,找到一个home\<你的用户名>\.bash_profile文件,我的是:E:\cygwin\home\Administrator\.bash_profile。(注意:我安装的时候我的home文件夹下面神马都没有,解决的办法:首先打开环境变量,把里面的用户变量中的HOME变量删掉,在E:\cygwin\home文件夹下建立名为Administrator的文件夹(是用户名),然后把E:\cygwin\etc\skel\.bash_profile拷贝到该文件夹下)。

2、  打开bash_profile文件,(此处必须要使用UltraEdit文件编辑器打开,并且打开后不要转换格式!使用其他编辑工具打开的话编辑后是乱码,不能执行!)添加NDK=/cygdrive/<你的盘符>/<android ndk 目录> 例    如:

NDK=/cygdrive/e/android-ndk-r5

export NDK

NDK这个名字是随便取的,为了方面以后使用方便,选个简短的名字,然后保存

3、打开cygwin,输入cd $NDK,如果输出上面配置的/cygdrive/e/android-ndk-r5信息(输出的信息为ndk的安装目录),则表明环境变量设置成功了。

四:用NDK来编译程序

1、现在用安装好的NDK来编译一个简单的程序。在NDK的安装目录下新建一个apps目录存放工程。在apps目录下新建一个myjni目录。打开eclipse,新建一个android工程,新建工程时需要取消复选框“Use default location”,并指定预先建立的myjni文件夹作为工程文件夹。

2、在eclipse里编写Jnitest.java文件:

package minQ.android;


import android.app.Activity;

import android.os.Bundle;

import android.widget.TextView;


public class Jnitest extends Activity {

private TextView tvTextView;

public native String speak();//声明共享库的函数,不需要在java里实现

String string;

static{

System.loadLibrary("myjni");//动态加载共享库

}

public void onCreate(Bundle savedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

string = speak();

tvTextView = (TextView)findViewById(R.id.myTextView01);

tvTextView.setText(string);

}

}

说明:

程序开始运行的时候会加载myjni, static区声明的代码会先于onCreate方法执行。如果你的程序中有多个类,而且如果myjni这个类不是你应用程序的入口,那么myjni(完整的名字是libmyjni.so)这个库会在第一次使用myjni这个类的时候加载

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/pxgfp.html