没有合适的资源?快使用搜索试试~ 我知道了~
android-ndk初学,一个简单实例实现
需积分: 9 18 下载量 44 浏览量
2011-03-04
18:23:42
上传
评论
收藏 20KB DOCX 举报
温馨提示
试读
2页
android ndk可以是程序员方便的调用c/c++书写的代码,完成高效的运行
资源推荐
资源详情
资源评论
第一个 ndk 实例操作过程:
使用的环境:ubuntu, eclipse 3.5,android sdk 2.2, linux ndk r5b,cdt, adt
过程:
1、在 eclipse 中创建一个 android project,在项目顶级目录中(src 同级目录下)创建一个 jni 文件夹(
该文件夹用于保存原生的 c 文件,和编译所需的 Android.mk 文件,jni 头文件)。
2、在布局文件中添加一个按照自己的喜欢按钮,然后在默认创建的 Activity 中实例化该按钮,并且添加点
击事件,调用方法(步骤 3 中写到的方法)。
3、在 jni 文件夹中创建一个 native.c 的 c 文件,书写代码:
#include <string.h>
#include <jni.h>
#include <android/log.h>
#define DEBUG_TAG "NdkActivity"
JNIEXPORT void JNICALL Java_com_sample_ndk1_JNI_helloLog(JNIEnv * env,
jobject this, jstring logThis)
{
jboolean isCopy;
const char * szLogThis = (*env)->GetStringUTFChars(env, logThis,
&isCopy);
__android_log_print(ANDROID_LOG_DEBUG, DEBUG_TAG, "NDK:LC: [%s]",
szLogThis);
(*env)->ReleaseStringUTFChars(env, logThis, szLogThis);
}
4、在 Activity 包中创建一个 JNI 类,用于进行 native 方法的声明,代码如下:
public class JNI {
/**
* 声明本地调用方法,helloLog
* 它告诉编译和链接系统该方法将在原生代码中实现
*/
public native void helloLog(String logThis);
}
5、下来生成头文件,在 linux 终端命令行中进入到项目目录下,进入到 bin 目录中,运行命令 javah –jni
包名.JNI
6、将生成的头文件文件拷贝到 jni 文件夹下。
7、在 Activity 添加代码:
public class NdkActivity extends Activity {
/** Called when the activity is first created. */
private Button btnHelloLog = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btnHelloLog = (Button) findViewById(R.id.btnHelloLog);
1
资源评论
VoidHope
- 粉丝: 103
- 资源: 11
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功