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

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

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

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

 

Android NDK入门开发案例_第1张图片

 

二,.编写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 方法    @Overrideprotected 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包

 

Android NDK入门开发案例_第2张图片

 

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

 

Android NDK入门开发案例_第3张图片

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

Android NDK入门开发案例_第4张图片

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

 

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

 

Android NDK入门开发案例_第5张图片

 

六,修改com_example_androidndktest_JNITestActivity.c文件如下

 

/* DO NOT EDIT THIS FILE - it is machine generated */#include /* Header for class com_example_firsthellojni_TestJniActivity */#ifndef _Included_com_example_firsthellojni_TestJniActivity#define _Included_com_example_firsthellojni_TestJniActivity#ifdef __cplusplusextern "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    := mylibLOCAL_SRC_FILES := com_example_firsthellojni_TestJniActivity.cinclude $(BUILD_SHARED_LIBRARY)


运行如下图

Android NDK入门开发案例_第6张图片

 

 

 

 

 

更多相关文章

  1. 【Android】Android快速入门教程(二)——Android Studio在Windows
  2. 【Android】图片(文件)上传的请求分析结构
  3. NDKNDK编程入门笔记
  4. Android获取.Gradle文件中的值和Manifests文件中的值
  5. Android编译系统中头文件搜索路径顺序的一个问题
  6. Android中 将布局文件/View显示至手机屏幕的 整个过程分析
  7. Android res/raw文件以及raw与res/assets异同
  8. Windows环境下编译Assimp库生成Android可用的.so文件

随机推荐

  1. 转 Android(安卓)SDK Manager国内无法更
  2. android实现显示阳历和农历源码
  3. Android计时器TimerTask,Timer,Handler
  4. Android通信之 Bluetooth
  5. Android——Handler和AsyncTask的使用
  6. Android Fragments 详细使用详细介绍
  7. Android安全模型之Android安全机制(进程通
  8. Android 的启动流程
  9. 应用phprpc协议实现Android客户端的一些
  10. Windows环境下Android Studio v1.0安装教