技术宅改变世界 技术宅改变世界

android studio 使用 java 调用 c/c++代码

in Dev read (789) 文章转载请注明来源!

1、创建cpp文件

右键src目录,new-Directory创建一个目录,方便管理c/c++代码。
右键刚创建的目录,new-C/C++ Source File,创建一个cpp文件。

2、创建java类

找到src-main-java-包名称(com.ghostcir.xxx),右键,新建一个Java Class

3、编辑java类

public class Jni {
        public native void foo();
        //Java_com_ghostcir_myapplication_Jni_foo
        //c函数命名规则:Java_packageName_className_methodName
}

4、编辑c函数

#include <jni.h>
// env表示Java虚拟机
// obj表示Java对象
// extern C要求编译器不要对该函数进行变名,否则java虚拟机找不到该函数
extern "C" void Java_com_ghostcir_myapplication_Jni_foo(JNIEnv* env, jobject obj)
{
}

5、编辑Android.mk

右键c/c++代码目录,创建File,命名Android.mk,输入以下内容。

# 设置路径是当前路径
LOCAL_PATH:=$(call my-dir)
# 清除变量
include $(CLEAR_VARS)
# 需要参与编译的源代码文件
LOCAL_SRC_FILES:= helloworld.cpp
# 输出目标文件
LOCAL_MODULE:= mylib # libmylib.so
# 目标文件的类型
include $(BUILD_SHARED_LIBRARY)

6、link C++ Gradle

选中app目录,右键Link C++ Project with GradleBuild System选择ndk-build,Project Path找到上一步创建Android.mk,点ok。

7、正式开始调用

找到java类MainActivity,在方法中加入

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Jni jni = new Jni();//生成第二步所创建的java类
        jni.foo();//调用c函数
    }
c++android studiondkjava
发表新评论
博客已萌萌哒运行
© 2020 • Powered by Typecho • Theme for yotu
PREVIOUS NEXT
雷姆
拉姆