Android NDK入门开发案例
2014-12-30 15:16
225 查看
最近准备学习android的NDK开发,在网上找了不少教程,各个教程的方法都不太一样,自己捣腾了一天了,才搭好环境做了两个小demo,写个教程方便以后查找。
首先是搭开发环境,这一步骤参考点击打开链接,我的方法大致与链接的一样,感觉这个比较简单点,Android的NDK从r8后可以不安装Cygwin。
搭好环境后,下面开始做一个小demo:
一,创建一个android应用取名FirstHelloJni
二,.编写TestJniActivity.java和xml布局文件
三,向工程中加入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文件如下
七,配置jni文件下的Android.mk
运行如下图
首先是搭开发环境,这一步骤参考点击打开链接,我的方法大致与链接的一样,感觉这个比较简单点,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)
运行如下图
相关文章推荐
- Android NDK开发入门指引(有源码)
- Android NDK开发入门实例
- android NDK开发入门。
- Android NDK开发入门实例
- Android NDK开发入门实例
- Android驱动开发入门及手机案例开发分析
- Android NDK开发入门实例
- Android NDK开发轻松入门
- Android NDK开发轻松入门
- Android NDK开发轻松入门
- Android NDK(JNI)开发入门
- Android NDK开发轻松入门
- Android NDK开发轻松入门
- Android NDK开发轻松入门
- Android NDK开发轻松入门
- Android NDK开发入门实例
- Android NDK开发入门实例
- Android NDK开发轻松入门
- ANDROID NDK 开发入门步骤示范
- Android NDK开发入门实例