Android.mk file必须定义好LOCAL_PATH变量。它用于在开发树中查找源文件。函数’my-dir’, 由编译系统提供,用于返回当前路径(即包含Android.mk file文件的目录)。 include $( CLEAR_VARS) CLEAR_VARS由编译系统提供,指定让GNU MAKEFILE为你清除许多LOCAL_XXX变量(例如 LOCAL_MODULE, LOCAL_SRC_FILES,LOCAL_STATIC_...
LOCAL_MULTILIB := bothinclude$(BUILD_PREBUILT)...# 引用include$(CLEAR_VARS)LOCAL_SHARED_LIBRARIES += mylib2include$(BUILD_PACKAGE)... *预置apk LOCAL_PATH :=$(callmy-dir)include$(CLEAR_VARS)# 模块名称LOCAL_MODULE := NewGallery2# 要覆盖掉的模块名称LOCAL_OVERRIDES_PACKAGES := Gallery Gall...
LOCAL_PREBUILT_JNI_LIBS := jniLibs/xx/libxxx.so LOCAL_MULTILIB := 32 LOCAL_PROGUARD_FLAG_FILES := proguard.flags LOCAL_AAPT_FLAGS := --auto-add-overlay LOCAL_AAPT_FLAGS += --extra-packages android.support.v7.appcompat LOCAL_AAPT_FLAGS += --extra-packages android.support.v7.gridlayout...
所以在自己编写的Android.mk可不显示的指定LOCAL_MODULE_CLASS的值。 但当遇到include$(BUILD_PREBUILT)的预编译选项时不会指定模块模块编译输出的类型CLASS,需要在自己编写的Android.mk中明确指定LOCAL_MODULE_CLASS的值如ETC/APP等,使其值为非空,从而帮助系统确定LOCAL_MODULE_PATH的路径,比如最终编译输出LOCAL_MODUL...
LOCAL_SRC_FILES:=ModuleName.apk LOCAL_PREBUILT_JNI_LIBS:=\@lib/armeabi-v7a/lib37CF018B.so # LOCAL_MULTILIB:=32include $(BUILD_PREBUILT) 2.2编译第三方apk,包含so LOCAL_PATH:=$(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE:=ModuleNameLOCAL_MODULE_CLASS:=APPS ...
这篇文档对Android.mk里面LOCAL_MULTILIB分析写的比较到位,也做了很多实验,总体结论是,LOCAL_MULTILIB :=32会拷贝32bit库到apk安装的路径,根据上面apk‘运行cpu api确定流程’可以知道,系统会根据lib库确定是32bit还是64bit, 如果确定了是32bit,最后还要根据系统同一个组uid的进程,调整cpu api, 这样最终确定当前apk...
4.1.Android.mk的LOCAL_MULTILIB在纯java app编译中,编译出的apk运行时不受LOCAL_MULTILIB影响,也就是说LOCAL_MULTILIB不起作用,解开LOCAL_MULTILIB 不设置和设置LOCAL_MULTILIB := 32编译出来的apk结构上没有区别。4.2.Android.mk的LOCAL_MULTILIB在纯java app带jni或第三方库的编译中,C/C++工程中的Android.mk中...
Android.mk 通过LOCAL_MULTILIB来控制编译。例如, LOCAL_PATH := $(call my-dir)include$(CLEAR_VARS) LOCAL_MULTILIB := both# 同时编译32位和64位# LOCAL_MULTILIB := 32 # 只编译32位# LOCAL_MULTILIB := 64 # 只编译64位# LOCAL_MULTILIB := first # 根据主ABI的arch编译TARGET_PREFER_32_BIT :...
1、LOCAL_PATH := $(call my-dir) 每个Android.mk 文件必须以定义 LOCAL_PATH 为开始,它用于在开发 tree 中查找源文件。 2、include $(CLEAR_VARS) CLEAR_VARS 变量由 Build System 提供,并指向一个指定的 GNU Makefile,由它负责清理很多LOCAL_xxx。
在Android.mk 中描述模块 你可以使用LOCAL_MULTILIB变量中配置你要构建的 32 位或者 64 位以及重写全局的变量TARGET_PREFER_32_BIT。 按照下列中的一个设置你的LOCAL_MULTILIB: “both”:同时构建 32 位和 64 位 “32”:只构建 32 位 “64”:只构建 64 位 ...