Android NDK 配置和实现
2015-08-19 23:25
344 查看
从ndk7以后,无需在配置cygwin等模拟unix/linux操作环境。ndk内部集成了这些功能。
2014年以后,google被封,Android官网无法访问,这里推荐一个国内的映像http://wear.techbrood.com/
http://wear.techbrood.com/tools/sdk/ndk/index.html
下载完成后,直接解包就可以。
第二部:配置eclipse
1、环境变量
Window环境下cmd命令设置
set PATH=%PATH%;F:/java/android-ndk-r10
F:/java/android-ndk-r10是ndk解压后的路径
注意:英文字母,不要出现汉字,切不要有“空格“
2、配置Eclpise
Window-》Preference-》android-》NDK
执行这些之前需要配置好Android开发的基本环境
第二步:在src文件下新建包com.test.classes
第三步:在第二步新建的包下建立class类 JNIClass.java
第四步:右键工程选择Android tools-》Android native support……
填入LIB的name,即将来生成so的名字。会自动生成jni文件夹,在文件夹内自动生成demo.cpp和Android.mk文件。
第五步:打开demo.cpp增加
Java_com_test_classes_JNIClass_getString是包名+文件名+函数名
若是新建的cpp文件,则必须要带extern ”C“,否则会提示找不到本地实现
第六步:在Activity中调用本地文件
第七步:直接运行工程就会生成so文件。
可以将libs文件下的so文件拷贝到别的工程直接使用。
2014年以后,google被封,Android官网无法访问,这里推荐一个国内的映像http://wear.techbrood.com/
NDK环境配置
第一步:NDK下载http://wear.techbrood.com/tools/sdk/ndk/index.html
下载完成后,直接解包就可以。
第二部:配置eclipse
1、环境变量
Window环境下cmd命令设置
set PATH=%PATH%;F:/java/android-ndk-r10
F:/java/android-ndk-r10是ndk解压后的路径
注意:英文字母,不要出现汉字,切不要有“空格“
2、配置Eclpise
Window-》Preference-》android-》NDK
执行这些之前需要配置好Android开发的基本环境
NDK生成SO文件
第一步:新建Android工程第二步:在src文件下新建包com.test.classes
第三步:在第二步新建的包下建立class类 JNIClass.java
package com.test.classes;
public class JNIClass { static{ System.loadLibrary("demo");//一定要注意名称没有“lib" } public native int plus(int a,int b);
}
第四步:右键工程选择Android tools-》Android native support……
填入LIB的name,即将来生成so的名字。会自动生成jni文件夹,在文件夹内自动生成demo.cpp和Android.mk文件。
第五步:打开demo.cpp增加
JNIEXPORT jint JNICALL Java_com_test_classes_JNIClass_plus(JNIEnv* env, jobject obj, jint a, jint b) { //返回计算结果 return a+b; }
extern "C"{ JNIEXPORT jint JNICALL Java_com_test_classes_JNIClass_plus(JNIEnv* env, jobject obj, jint a, jint b); }
Java_com_test_classes_JNIClass_getString是包名+文件名+函数名
若是新建的cpp文件,则必须要带extern ”C“,否则会提示找不到本地实现
第六步:在Activity中调用本地文件
public class MainActivity extends Activity {
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); TextView tv = new TextView(this); tv.setText(new hello().helloFromJni() ); tv.append("\n\r"); tv.append(new JNIClass().plus(9, -10)+""); setContentView(tv); } }
第七步:直接运行工程就会生成so文件。
可以将libs文件下的so文件拷贝到别的工程直接使用。
相关文章推荐
- Android中View类setTag()和getTag()的理解
- android从应用到驱动之—camera(1)---程序调用流程
- 值得阅读的android技术文章
- Android View的绘制流程
- Android中View的绘制过程 onMeasure方法简述
- win下xamarin和64位Android Studio共存
- Android TextView 横向滚动(跑马灯效果)
- Android动画学习--帧动画,补间动画,属性动画的基本用法
- android ListView之——BaseAdapter使用
- ubuntu14.04下Android源代码的下载与编译,以及将源代码导入到Intellij(针对只需要看android源代码)
- 深入学习Android异步任务-AsyncTask
- Android学习笔记(十三)
- 配置使用Android数据库开源框架GreenDao
- Android学习0819<三>(Activity的操作)
- Android Api Demos登顶之路(三十九)Fragment-->show hide
- Android高手速成1--第一部分 个性化控件(View) - Aways.Online
- android ListView 及adapterView的使用
- mediarecorder学习,android4.0后mediarecorder start failed的原因
- Android 事件分发机制
- Android SDK Download List