Android NDK 第一行代码

步骤

1. 在项目根目录新建jni文件夹 
2. 新建C文件 
3. 新建Android.mk配置文件 
4. 新建Application.mk配置文件 
5. 生成*.so库文件 
6. java文件中调用 
7. 调试到手机



在项目根目录新建jni文件夹

这里写图片描述

回到目录



新建C文件

结果如下: 
这里写图片描述

C文件代码如下

此处为了以后方便管理jni目录下的库项目,所以把此处代码文件放到hello目录下

#include <jni.h>
#include <string.h>
/*
* 由于此示例用于MainActivity.java文件里的stringFromJni()方
* 法,所以C文件内的函数定义名如下:
*/
jstring
Java_com_example_testjni_MainActivity_stringFromJni(JNIEnv* env, jobject thiz)
{
    return (*env)->NewStringUTF(env, "Hello from jni!");
}
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

回到目录

新建Android.mk配置文件

结构如下

这里写图片描述

Android.mk内代码如下

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := hello-jni
LOCAL_SRC_FILES := ./hello/hello-jni.c

include $(BUILD_SHARED_LIBRARY)
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

回到目录

新建Application.mk配置文件

结构如下

这里写图片描述

Application.mk代码如下

#构建适合全支持的cpu架构的.so库
APP_API := all
 
 
  • 1
  • 2

回到目录

生成*.so库文件

进入项目根目录使用ndk-build命令

这里写图片描述

回到目录

Java文件中调用

package com.example.testjni;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TextView;

public class MainActivity extends Activity
{

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ((TextView)findViewById(R.id.tv)).setText(stringFromJni());

    }

    public native String stringFromJni();

    static {
        System.loadLibrary("hello-jni");
    }
}
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

回到目录

调试到手机

这里写图片描述

回到目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值