eclipse中加载C/C++源文件生成对应的so文件(图文教程) 2020最新

准备工作:

确保eclipse正确配置了ndk开发环境;

第一步、新建一个安卓项目

第二步、添加一个ndk支持

第三步、在确认系统配置了ndk的环境变量情况下引入jni支持;

第四步、在jni文件夹下创建(.c、.h、Android.mk、Application.mk)等文件;

1、Application.mk文件解析

====== Application.mk  ============
#默认,不做修改;
APP_CFLAGS += -fexceptions  

#默认,不做修改;
APP_STL := gnustl_static

#应用程序平台
APP_PLATFORM := android-19

#APP_ABI := all 表示编译全平台的;
#APP_ABI := armeabi,mips,x86 表示编译armeabi, mips和x86三个平台的;
APP_ABI := armeabi armeabi-v7a  

2、Android.mk文件解析

====== Android.mk ============
#这个mk文件标识了两个模块,一个是共享库so文件,一个是bin文件

#第一个模块编译的是共享的so库

# 这个基本上就是个固定的格式了,放在 Android.mk的一个个有效行,表示本文件的路径。
LOCAL_PATH := $(call my-dir)

#清除之前定义的 LOCAL_XXX 变量,通常每个模块都要写一次。
include $(CLEAR_VARS)

# 模块名,本例中 LOCAL_MODULE    := util ,生成的共享库文件 libutil.so
LOCAL_MODULE    := util

# 模块中的源文件列表
LOCAL_SRC_FILES := UninstalledObserver.c kesyPrint.c 

# 预先定义的宏定义,预编译时使用到。这里定义了 KE_DEBUG 宏
#KE_DEBUG :print log when it is defined
LOCAL_CFLAGS += -DKE_DEBUG

# 引用的链接库,和linux命令行一样, -L后接寻找库的目录, -l后接库的名称,本例中是log
LOCAL_LDLIBS += -L$(SYSROOT)/usr/lib -llog

# BUILD_SHARED_LIBRARY表示编译的是so共享库
# BUILD_STATIC_LIBRARY 编译静态库
# BUILD_EXECUTABLE 编译可执行文件 
include $(BUILD_SHARED_LIBRARY)

2.h文件:.c文件里用到的方法(类似java里的接口定义)和结构体(类似java里的实体类)的定义;

第五步、右键运行安卓项目BuildProject,程序会自动在lib下生成你需要的SO;

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值