Android NDK使用的小问题
来源:互联网 发布:readonly dos linux 编辑:程序博客网 时间:2024/05/01 23:45
阿涛,你要认真对待每一件事,你要潇洒,你要懂自己,要做自己,要成为自己!
Android NDK 路径配置命令:
执行命令后打开配置文件:
如上图,在文件后面加上 export那句话。后面的路径当然要变成你解压ndk的目录。
然后退出终端,再打开一次,在ndk的sample的任何一个例子中进行测试是否配置成功
测试命令:
如上图,依次进入工程更目录,ndk-build测试,配置成功的话会显示生成的 .so文件。
头文件的生成:
终端下进入工程根目录:
我看其他教程上说bin 后面不需要写什么了,可是我操作的适合没有后面的classes找不到对应的文件,也许视情况而定吧。
-d后面是存放生成头文件的文件夹,只能命名为jni.
否则:
再后面是要生成的头文件名,头文件名必须前面是你的三级包名,最后面是你的主程序的名字。
然后输入
ndk-build
没有出错的话会产生相应的so文件。
ok,NDK 的工作基本做完了。
下面我们总结一下NDK 的使用流程:
1:新建Android 工程Test, 包名:com.cozy.man 主程序名:Test
2: 在主程序中声明本地方法
3:编译工程,生成class文件
4:到工程根目录下生成头文件
5:实现头文件的源文件,制作Android.mk文件
6:ndk-build,生成so文件
7:再编译工程,OK了!
代码如下:
主程序:
package com.cozy.man;import android.app.Activity;import android.os.Bundle;import android.widget.TextView;public class NDKTest extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); TextView textview=new TextView(this); textview.setText(stringTestNdk()); setContentView(textview); } /* * 声明本地函数 */ public native String stringTestNdk(); public native int IntTestNdk(); //加载本地函数 static { //名字就是你的源文件名字 System.loadLibrary("com_cozy_man_NDKTest"); }}头文件是自动生成的,不再粘贴。
C 的源文件:
#include"com_cozy_man_NDKTest.h"#include<jni.h>jstring JNICALL Java_com_cozy_man_NDKTest_stringTestNdk (JNIEnv *env, jobject thiz){return (*env)->NewStringUTF(env,"Hello NDK!");}jint JNICALL Java_com_cozy_man_NDKTest_IntTestNdk (JNIEnv *env, jobject thiz){return 0;}
Android.mk文件:
LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE := com_cozy_man_NDKTestLOCAL_SRC_FILES := com_cozy_man_NDKTest.cinclude $(BUILD_SHARED_LIBRARY)
- Android NDK使用的小问题
- android ndk的使用
- Android NDK的使用
- Android NDK的使用
- Android - NDK的使用
- android使用ndk编译的.so库的问题
- Android使用NDK时编译头文件的问题
- Android使用NDK开发项目时的一些问题
- Android使用NDK开发项目时的一些问题
- Android使用NDK开发项目时的一些问题
- Android使用NDK开发项目时的一些问题
- android NDK使用过程中遇到的一些问题
- Android 7.0使用私有NDK库的问题
- Android Studio 使用NDK编译时常见的问题
- Android NDK 配置的问题
- Android NDK 遇到的问题
- 使用NDK时的一些小知识点
- Ubuntu Android NDK的使用
- 天之道,利而不害;圣人之道,为而不争.
- [每天一点C语言]根据公式C = (5/9)(F-32)打印华氏温度与摄氏温度对应表
- windows7升级为IE9后网页显示为空白或者网页显示不正常
- 419
- zen-cart五大必用插件,模块和工具
- Android NDK使用的小问题
- 检查IPv4和IPv6地址的正则表达式
- BGA焊盘设计的一般规则
- kmp poj 3450 3461
- 月薪800终于买新车~爽~500公里感受
- PHP中的乱码问题
- [Arch iwlist issue] Allocation failed
- Spring3, Hibernate3.6与Proxool连接池配置
- VC++内联汇编(MSDN相关内容完整翻译)