ndk ----hello

    技术2022-05-13  29

    第一,建立android 工程

     

    package com.ghd.test;

     

    public class Hello extends Activity{

     

            static {

                  System.loadLibrary("hello");

            }

     

           public natvie stringFromJni();

     

           public void onCreate(Bundle bundle){

     

                       TextView tv  = new TextView(this);

                        tv.setText(stringFromJni());

                        setContentView(tv);

     

                  }

     

    }

     

    第二,javah    -jni 生成头文件

     

    进入工程bin目录下,运行javah -jni com.ghd.test.Hello

     

    会生成文件com_ghd_test_Hello.h  内容如下:

     

     

    /* DO NOT EDIT THIS FILE - it is machine generated */

    #include <jni.h>

    /* Header for class com_ghd_test_Hello */

     

    #ifndef _Included_com_ghd_test_Hello

    #define _Included_com_ghd_test_Hello

    #ifdef __cplusplus

    extern "C" {

    #endif

    /*

     * Class:     com_ghd_test_Hello

     * Method:    stringFromJni

     * Signature: ()Ljava/lang/String;

     */

    JNIEXPORT jstring JNICALL Java_com_ghd_test_Hello_stringFromJni

      (JNIEnv *, jobject);

     

    #ifdef __cplusplus

    }

    #endif

    #endif

     

     

     

    第三建立目录jni

     

    新建文件hello.c

     

     

    #include <string.h>

    #include <jni.h>

     jstring  Java_com_ghd_test_Hello_stringFromJni

      (JNIEnv *env, jobject thiz)

    {

        return (*env)->NewStringUTF(env,"ghd214,first programe for ndk test");

     

     

    };

     

    新建文件Android.mk

     

     

    LOCAL_PATH := $(call my-dir)

     

    include $(CLEAR_VARS)

     

    LOCAL_MODULE := hello

    LOCAL_SRC_FILES := hello.c

     

    include $(BUILD_SHARED_LIBRARY)

     

    然后在目录jni 下运行命令    ndk-build

     

     

    生成目录libs 和obj

     

    最后运行Hello 工程。

     

     

     

     


    最新回复(0)