android的 makefile -- Android.mk 分析

引用动态库、静态库。

关于静态库,如果是需要是在自己应用中的jar包,需要预编译,但是不知道为什么。

关于动态库,如果是自己应用中的so库,那么需要预编译,为什么呢,因为你要把这些动态库放到系统的lib或者lib64中,否则动态加载时就找不到了,而在BUILD_PACKAGE时使用LOCAL_JNI_SHRAED_LIBRARIES引用预编译后的so模块,听说会把so库包含在apk中,而不止是放进系统lib中,但是实践证明,无论是5.0还是6.0系统都不会把so库放到apk中的;如果是源码,则只需直接编译好就行,而不用预编译这些so了,因为编译时就会将so库放进系统lib中,而预编译的作用也只是这样,所以就不用做重复的事了。因为如果一个动态库是在系统中的,那么apk中并不需要包含这个so文件,在加载该动态库时再找就好了,不用提前说明。而静态库就不一样,需要在BUILD_PACKAGE时指定要使用哪些静态库,如果静态库不是系统编译生成的,还需要预编译。

include $(BUILD_PREBUILT):预编译静态库或者动态库使用的makefile

include $(BUILD_MULTI_PREBUILT):预编译多个库时使用的makefile

LOCAL_SHARED_LIBRARIES:在编译动态库时用于指定需要链接哪些动态库

LOCAL_SHARED_LIBRARIES := \
	libblf \
    libutils \
    libcutils

LOCAL_STATIC_JAVA_LIBRARIES:在编译apk时,指定需要链接哪些静态库

OCAL_STATIC_JAVA_LIBRARIES:= androidsupport android-support-v7-recyclerview settingslib2 settingslib3 settingslib4 com.mediatek.settings.ext

LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES:预编译时指定对哪些静态库进行预编译

include $(CLEAR_VARS)
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := \
	androidsupport:libs/android-support-v4.jar \
	settingslib2:libs/core-3.0.0.jar \
	settingslib3:libs/my_gson-2.3.1.jar \
	settingslib4:libs/BreathLedController.jar
include $(BUILD_MULTI_PREBUILT)

预编译so库:

include $(CLEAR_VARS)

LOCAL_MODULE := libBreathLed
LOCAL_SRC_FILES_32 := libs/armeabi/libBreathLed.so
LOCAL_MULTILIB := 32
LOCAL_MODULE_CLASS := SHARED_LIBRARIES
LOCAL_MODULE_SUFFIX := .so
include $(BUILD_PREBUILT)

 

 

 

android的 makefile -- Android.mk 分析

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
android.mk 是一种用于构建 Android 应用程序的 Makefile 文件格式,而 android.bp 是将要取代 android.mk 的一种新的构建系统文件格式,它是用于生成 Android 系统的 Blueprint 构建系统的配置文件。 要将 android.mk 转成 android.bp,首先需要了解 android.mk 的结构和语法规则,然后根据这些规则来编写对应的 android.bp 文件。由于 android.bp 是基于 Blueprint 构建系统的配置文件,所以需要通过编写规范的 Blueprint 描述文件来完成对 android.mk 的转换。 在转换过程中,需要注意以下几点: 1. 将 android.mk 文件中的每个模块(例如库,可执行文件,模块等)的描述转换为对应的 android.bp 格式。 2. 考虑和处理 android.bp 特有的新特性和语法规则,例如 module {} 块的使用。 3. 更新外部依赖项的描述,如库的引入方式、依赖关系的定义等。 4. 调整路径和命名规则,使之符合 android.bp 的文件组织结构和命名规范。 在转换完成后,需要进行测试和验证,确保转换后的 android.bp 文件可以正确地生成相应的 Android 应用程序。同时,也需要注意在转换过程中可能会出现的兼容性问题,确保转换后的 android.bp 文件能够正常地被构建系统接受并使用。 总的来说,将 android.mk 转成 android.bp 需要对 android.mk 的结构和语法进行理解,并根据 Blueprint 构建系统的规则和特性来进行相应的转换和调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值