1、NDK编译so并调用so的方法详见
https://www.jianshu.com/p/bc2b5dd88d61
博主用NDK编译出来的so是可以导入使用的。
2、在源码下编译so(这里整了好长时间)
MyLib.h
#ifndef TESTNDK_MYLIB_H
#define TESTNDK_MYLIB_H
class MyLib {
public:
MyLib();
~MyLib();
int add(int a,int b);
};
#endif //TESTNDK_MYLIB_H
MyLib.cpp
#include "MyLib.h"
MyLib::MyLib()
{
}
MyLib::~MyLib()
{
}
int MyLib::add(int a,int b)
{
return a+b;
}
Android.mk
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE:=libmylib
LOCAL_SRC_FILES:= \
MyLib.cpp
include $(BUILD_SHARED_LIBRARY)
在源码目录:/home/dongying/android9/development/下新建一个 screen的文件夹,把上面的三个文件放到该文件夹中
再回到源码根目录执行:make clean
source build/envsetup.sh
再回到/home/dongying/android9/development/screen执行:mm
生成的so文件会出现在:/home/dongying/android9/out/target/product/generic/system/lib/ 目录下,可以看到虽然很简单的例子,但生成了好几个so文件

这篇博客详细介绍了如何使用Android NDK编译SO库并进行调用,以及如何在源码下编译SO库。通过一个简单的示例,作者展示了从编写头文件和实现文件,到执行`make`命令生成SO库的过程。在源码编译的情况下,生成的SO文件需要拷贝到Android项目中,并进行CMakeLists.txt和build.gradle的配置,以实现对源码编译SO库的调用。最终,通过JNI类和Java活动类完成调用,运行成功。
3185

被折叠的 条评论
为什么被折叠?



