Android NDK中mk文件编译参数解析

本文详细介绍了使用NDK构建Android应用程序中的多个模块的过程,包括如何定义共享库和静态库,并探讨了动静结合方案的优缺点。
LOCAL_PATH := $(call my-dir)

#
#模块一
#

include $(CLEAR_VARS) #清除 local_path 以外的其他变量

LOCAL_LDLIBS 	+= -llog

LOCAL_MODULE    := NDK_Build #模块名称

LOCAL_SRC_FILES := NDK_Build.cpp NDKHello.cpp

include $(BUILD_SHARED_LIBRARY)  #构建共享模块

#
#模块二
#
include $(CLEAR_VARS)
LOCAL_LDLIBS 	+= -llog
LOCAL_MODULE 	:= NDK_Point
LOCAL_SRC_FILES := NDK_Class.cpp Point.cpp 
include $(BUILD_SHARED_LIBRARY)


#
#对于NDK支持静态库,但并不直接使用 静态库,而是把静态库源码,共享库源码合并成共享库
#
#
#include  $(CLEAR_VARS)
#
#LOCAL_MODULE		:= My_StaticModule
#LOCAL_SRC_FILES 	:= avalib.c work1.c work2.c
#
#include $(BUILD_STATIC_LIBRARY) #生成静态库
#
#include  $(CLEAR_VARS)
#
#LOCAL_MODULE		:= My_DyModule
#LOCAL_SRC_FILES 	:= Module1.c module2.c
#
#LOCAL_STATIC_LIBRARIES := My_StaticModule #将静态库加入
#
#include $(BUILD_SHARED_LIBRARY) #生成共享库
#


#
#----当然使用动静结合的方案也是有缺陷的,对于重用性较低的第三方源码可以编译进动态库,但重用性高的话会
#内存,源码体积也变大,因为静态库会成为动态库的一部分,因此,为了让重用性高的第三方源码尽可能的提高重用性,
#也提高效率,使用 共享库连接库的方式

#
# 共享链接库是把第三方源码编译成 动态库,然后链接给其他共享库,只需上述的include $(BUILD_STATIC_LIBRARY)
#改成$(BUILD_SHARED_LIBRARY),然后在其他模块中LOCAL_STATIC_LIBRARIES改成LOCAL_SHARED_LIBRARIES
#


转载于:https://my.oschina.net/ososchina/blog/366263

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值