zoukankan      html  css  js  c++  java
  • android NDK 开发步骤

    NDK开发一般分为一下几个步骤:(默认你已经安装好了NDK和android开发环境)

    1.创建一个项目

    2.创建JNI目录

    3.编写nativejava层方法

    4.生成JNI头文件

      (1)编写javaNative代码
      (2)执行命令javah
      (3)添加android.jar包到环境变量

    5.创建一个.c文件导入相应的头文件

    6.在jni目录下添加mk文件。

    7.最后在项目路径下执行ndk-build命令。

    8.最后运行代码就可以看到结果了。

    下面是详细步骤和截图:

    创建一个android项目就不说了。

    然后我们声明一个native方法

    下面我们在项目下面添加一个jni目录

    然后进入cmd控制台进入当前工作的目录下面:

    然后执行javah命令用来生成.h文件

    (其中,D:androidandroid_sdk_windowsplatformsandroid-19android.jar,
    是android sdk目录下的目录文件,为了简单,可以把android.jar文件目录添加到path路径下;
    最后com.example.hellondk_1.MainActivity是包名加类名)

    刷新项目可以看到jni目录下多了一个.h文件

    然后我们创建一个.c文件用来实现.h文件用定义的方法。

    创建一个.c文件导入相应的头文件
    (
    如:创建一个hello.c文件
    #include<stdio.h>
    #include<stdlib.h>
    #include"com_example_hellondk_1_MainActivity.h"

    JNIEXPORT jstring JNICALL Java_com_example_hellondk_11_MainActivity_getStringFromC
    (JNIEnv *env, jclass jclass){

    return (*env)->NewStringUTF(env, "Hello from C !....");
    }
    其中实现了头文件中的方法Java_com_example_hellondk_11_MainActivity_getStringFromC(JNIEnv *, jclass);
    )

    在jni目录下添加mk文件。

    (这个可以导入ndk的实例下面的mk文件然后做修改就可以了)如下
    LOCAL_PATH := $(call my-dir)

    include $(CLEAR_VARS)

    LOCAL_MODULE := hello
    LOCAL_SRC_FILES := hello.c

    include $(BUILD_SHARED_LIBRARY)
    其中,
    LOCAL_MODULE 表示编译生成的so叫什么名字
    LOCAL_SRC_FILES 表示要编译的.c文件是哪个

    最后在项目路径下执行ndk-build命令。

    执行完之后对项目进行刷新可以看到项目下面多了一个obj目录里面多了一个.so文件。
    然后在java文件中添加静态代码块。添加.so文件。

    最后运行代码就可以看到结果了。

    这里如果你用的是genymotion模拟器,那么需要对genymotion进行配置要安装一个genymotion arm translation,下载好之后直接拖拽就可以安装了。

    下载地址:

    http://download.csdn.net/detail/u014132820/9044875

  • 相关阅读:
    Windows环境下消息中间件RabbitMq的搭建与应用
    6.异常释放锁的情况
    5.synchronized锁重入
    4.脏读
    3.多线程(同步、异步)
    2.多线程(同步类级别锁)
    1.多线程同步
    24.Semaphore
    23.读写锁ReadWriteLock
    22.线程通信Condition
  • 原文地址:https://www.cnblogs.com/BasilLee/p/4757049.html
Copyright © 2011-2022 走看看