首页 > 移动平台 > 详细

Android NDK 之 Hello World

时间:2017-05-31 20:33:23      阅读:271      评论:0      收藏:0      [点我收藏+]

首先编写Jni接口的c文件,此文件命名有些特殊,具体的命名方式可以参考文档来做。

#include <jni.h>
#include <string.h>
#include <stdio.h>


JNIEXPORT jstring JNICALL
Java_com_renhui_mplayer_MainActivity_displayHelloWorld(JNIEnv *env, jobject obj)
{
    return (*env)->NewStringUTF(env, "11111");
}

配置Android.mk

#定义本地路径变量 LOCAL_PATH
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := native-lib
LOCAL_SRC_FILES := native-lib.c
include $(BUILD_SHARED_LIBRARY)

配置好mk文件后,在jni目录下执行ndk-build,即可获得当前所有的cpu平台的so文件。将so文件导入到项目中后,再写Java层的代码。

Java 代码

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

    // Example of a call to a native method
    TextView tv = (TextView) findViewById(R.id.sample_text);
    tv.setText(displayHelloWorld());
    }

    /**
     * A native method that is implemented by the ‘native-lib‘ native library,
     * which is packaged with this application.
     */
    public native String displayHelloWorld();

    // Used to load the ‘native-lib‘ library on application startup.
    static {
        System.loadLibrary("native-lib");
    }

写完后,执行可以在真机上看到屏幕中有11111的内容输出。此时,NDK的hello world的学习就结束了,后续理解其他的NDK项目时,可以根据此思路来做相应的理解和调整。

 

Android NDK 之 Hello World

原文:http://www.cnblogs.com/renhui/p/6925810.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!