Android NDK入门开发案例

最近准备学习android的NDK开发,在网上找了不少教程,各个教程的方法都不太一样,自己捣腾了一天了,才搭好环境做了两个小demo,写个教程方便以后查找。

首先是搭开发环境,这一步骤参考点击打开链接,我的方法大致与链接的一样,感觉这个比较简单点,Android的NDK从r8后可以不安装Cygwin。

搭好环境后,下面开始做一个小demo:

一,创建一个android应用取名FirstHelloJni

 

 

二,.编写TestJniActivity.java和xml布局文件

 

package com.example.firsthellojni;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.TextView;

public class TestJniActivity extends Activity {
	
	private TextView textview;
	public native String getText();	//声明native 方法    
	@Override	
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_test_jni);
		textview = (TextView)this.findViewById(R.id.textview);
		String text = getText();//调用native方法   
		textview.setText(text);
	}
	static {   
	    System.loadLibrary("mylib"); //导入链接库    
	}   
}


 

三,向工程中加入native support(鼠标反键工程AnroidTools->Add Native Support),工程中会生成jni包

 

 

四.打开cmd,进入到工程所在目录,至classes目录下,我的放在了D:\Eclipse\workspace\FirstHelloJni\bin\classes下

 

然后在cmd中输入javah com.example.firsthellojni.TestJniActivity

此时D:\Eclipse\workspace\FirstHelloJni\bin\classes目录下会产生com_example_firsthellojni_TestJniActivity.h文件。

 

五,把com_example_firsthellojni_TestJniActivity.h文件后缀改为.c,并且把此文件移到jni文件下

 

 

六,修改com_example_androidndktest_JNITestActivity.c文件如下

 

/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class com_example_firsthellojni_TestJniActivity */

#ifndef _Included_com_example_firsthellojni_TestJniActivity
#define _Included_com_example_firsthellojni_TestJniActivity
#ifdef __cplusplus
extern "C" {
#endif
/*
 * Class:     com_example_firsthellojni_TestJniActivity
 * Method:    getText
 * Signature: ()Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_com_example_firsthellojni_TestJniActivity_getText
(JNIEnv* env, jobject obj){
	return (*env)->NewStringUTF(env, "Test Android NDK!");
}


#ifdef __cplusplus
}
#endif
#endif

 

七,配置jni文件下的Android.mk

 

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE    := mylib
LOCAL_SRC_FILES := com_example_firsthellojni_TestJniActivity.c

include $(BUILD_SHARED_LIBRARY)


运行如下图

 

 

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值