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文件
3、调用源码编译的so
3.1、创建android项目,配置NDK环境