android 预制32 64 位so, bin

来源:互联网 发布:2017流行的网络用语 编辑:程序博客网 时间:2024/06/05 06:24

对于有源码编译32 64 bit

LOCAL_PATH := $(call my-dir)

sources := \

   tvini.c \

   mmap.c \

   spi.c

cincludes := \

   $(TARGET_OUT_HEADERS) \

   $(TARGET_UTOPIA_LIBS_DIR)/include \

    external/iniparser

# libmutils.so

#==============================================================================

include $(CLEAR_VARS)

LOCAL_MODULE := libmutils

LOCAL_MODULE_TAGS := optional

LOCAL_SRC_FILES := $(sources)

LOCAL_C_INCLUDES := $(cincludes)

LOCAL_CFLAGS := -DMSOS_TYPE_LINUX-DENABLE_LOGGER

LOCAL_SHARED_LIBRARIES := liblog libutopialibiniparser libcutils

include $(BUILD_SHARED_LIBRARY)

对于有源码,只编译32 libso


LOCAL_PATH := $(call my-dir)

sources := \

   tvini.c \

   mmap.c \

   spi.c

cincludes := \

   $(TARGET_OUT_HEADERS) \

   $(TARGET_UTOPIA_LIBS_DIR)/include \

   external/iniparser

# libmutils.so

#==============================================================================

include $(CLEAR_VARS)

LOCAL_MODULE := libmutils

LOCAL_MODULE_TAGS := optional

LOCAL_SRC_FILES := $(sources)

LOCAL_C_INCLUDES := $(cincludes)

LOCAL_CFLAGS := -DMSOS_TYPE_LINUX-DENABLE_LOGGER

LOCAL_SHARED_LIBRARIES := liblog libutopialibiniparser libcutils

LOCAL_32_BIT_ONLY := true

include $(BUILD_SHARED_LIBRARY)

 

或者采用下面的这种方法

LOCAL_PATH := $(call my-dir)

sources := \

   tvini.c \

   mmap.c \

   spi.c

cincludes := \

   $(TARGET_OUT_HEADERS) \

   $(TARGET_UTOPIA_LIBS_DIR)/include \

   external/iniparser

# libmutils.so

# ==============================================================================

include $(CLEAR_VARS)

LOCAL_MODULE := libmutils

LOCAL_MODULE_TAGS := optional

LOCAL_SRC_FILES := $(sources)

LOCAL_C_INCLUDES := $(cincludes)

LOCAL_CFLAGS := -DMSOS_TYPE_LINUX -DENABLE_LOGGER

LOCAL_SHARED_LIBRARIES := liblog libutopialibiniparser libcutils

LOCAL_MODULE_TARGET_ARCH:= arm

LOCAL_MULTILIB := 32

include $(BUILD_SHARED_LIBRARY)

 

对于有源码,但是只需要编译64 bit的so

LOCAL_PATH := $(call my-dir)

sources := \

   tvini.c \

   mmap.c \

   spi.c

cincludes := \

   $(TARGET_OUT_HEADERS) \

   $(TARGET_UTOPIA_LIBS_DIR)/include \

   external/iniparser

# libmutils.so

#==============================================================================

include $(CLEAR_VARS)

LOCAL_MODULE := libmutils

LOCAL_MODULE_TAGS := optional

LOCAL_SRC_FILES := $(sources)

LOCAL_C_INCLUDES := $(cincludes)

LOCAL_CFLAGS := -DMSOS_TYPE_LINUX-DENABLE_LOGGER

LOCAL_SHARED_LIBRARIES := liblog libutopialibiniparser libcutils

LOCAL_MODULE_TARGET_ARCH:= arm64

LOCAL_MULTILIB := 64

include $(BUILD_SHARED_LIBRARY)

 

 

下面在说一下没有源码,预制so的方式

对于有32 跟64 bit so的东西,都想预制进入可以采用:

## libutopia.so

##==============================================================================

include $(CLEAR_VARS)

LOCAL_MODULE_TAGS := optional

LOCAL_MODULE_SUFFIX := .so

LOCAL_MODULE := libutopia

LOCAL_MODULE_CLASS := SHARED_LIBRARIES

LOCAL_SRC_FILES_arm :=lib/libutopia.so

LOCAL_SRC_FILES_arm64 :=lib64/libutopia.so

LOCAL_MODULE_TARGET_ARCHS:= arm arm64

LOCAL_MULTILIB := both

include $(BUILD_PREBUILT)

 

如果只预制32 bit的so

## libutopia.so

##==============================================================================

include $(CLEAR_VARS)

LOCAL_MODULE_TAGS := optional

LOCAL_MODULE_SUFFIX := .so

LOCAL_MODULE := libutopia

LOCAL_MODULE_CLASS := SHARED_LIBRARIES

LOCAL_SRC_FILES_arm :=lib/libutopia.so

LOCAL_MODULE_TARGET_ARCHS:= arm

LOCAL_MULTILIB := 32

include $(BUILD_PREBUILT)

 

 

如果只想预制64 bit的so

## libutopia.so

##==============================================================================

include $(CLEAR_VARS)

LOCAL_MODULE_TAGS := optional

LOCAL_MODULE_SUFFIX := .so

LOCAL_MODULE := libutopia

LOCAL_MODULE_CLASS := SHARED_LIBRARIES

LOCAL_SRC_FILES_arm64 :=lib64/libutopia.so

LOCAL_MODULE_TARGET_ARCHS:= arm64

LOCAL_MULTILIB := 64

include $(BUILD_PREBUILT)

 

 

预置 apk,请参考下面的写法预置 apk

1,预置system app下的apk

define PREBUILT_system_apps_template

 include $(CLEAR_VARS)

 LOCAL_MODULE_TAGS := optional

 LOCAL_MODULE := $(1)

 LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)

 LOCAL_MODULE_CLASS := APPS

 LOCAL_CERTIFICATE := platform

 LOCAL_SRC_FILES := $$(LOCAL_MODULE)$(COMMON_ANDROID_PACKAGE_SUFFIX)

 include $(BUILD_PREBUILT)

endef

 

,2,预置system下的apk, force apk 跑 32 bit, libbluetooth_jni部分是一个32 bitlib

define PREBUILT_system_apps_template_32only

 include $(CLEAR_VARS)

 LOCAL_MODULE_TAGS := optional

 LOCAL_MODULE := $(1)

 LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)

 LOCAL_MODULE_CLASS := APPS

 LOCAL_CERTIFICATE := platform

 LOCAL_SRC_FILES := $$(LOCAL_MODULE)$(COMMON_ANDROID_PACKAGE_SUFFIX)

 LOCAL_MULTILIB := 32

 LOCAL_JNI_SHARED_LIBRARIES := libbluetooth_jni

 include $(BUILD_PREBUILT)

endef

,3,预置system app, 不用系统签名, 用预签名

definePREBUILT_system_apps_template_32only_presigned

 include $(CLEAR_VARS)

 LOCAL_MODULE_TAGS := optional

 LOCAL_MODULE := $(1)

 LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)

 LOCAL_MODULE_CLASS := APPS

 LOCAL_CERTIFICATE := PRESIGNED

 LOCAL_SRC_FILES := $$(LOCAL_MODULE)$(COMMON_ANDROID_PACKAGE_SUFFIX)

 LOCAL_MULTILIB := 32

 LOCAL_JNI_SHARED_LIBRARIES := libbluetooth_jni

 include $(BUILD_PREBUILT)

endef

,4,预置system vendor apk

define PREBUILT_vendor_apps_template

 include $(CLEAR_VARS)

 LOCAL_MODULE_TAGS := optional

 LOCAL_MODULE := $(1)

 LOCAL_MODULE_CLASS := APPS

  LOCAL_MODULE_PATH:= $(TARGET_OUT)/vendor/app

 LOCAL_CERTIFICATE := platform

 LOCAL_SRC_FILES := $(1).apk

 include $(BUILD_PREBUILT)

endef

,5,预置system vendor apk, 并force 32 bit

define PREBUILT_vendor_apps_template_32only

 include $(CLEAR_VARS)

 LOCAL_MODULE_TAGS := optional

 LOCAL_MODULE := $(1)

 LOCAL_MODULE_CLASS := APPS

 LOCAL_MODULE_PATH := $(TARGET_OUT)/vendor/app

 LOCAL_CERTIFICATE := platform

 LOCAL_SRC_FILES := $(1).apk

 LOCAL_MULTILIB := 32

 LOCAL_JNI_SHARED_LIBRARIES := libbluetooth_jni

 include $(BUILD_PREBUILT)

endef

,6,预置data app下的apk,使用系统签名

define PREBUILT_data_apps_template

 include $(CLEAR_VARS)

 LOCAL_MODULE_TAGS := optional

 LOCAL_MODULE := $(1)

 LOCAL_MODULE_CLASS := APPS

 LOCAL_MODULE_PATH := $(TARGET_OUT_DATA_APPS)

 LOCAL_CERTIFICATE := platform

 LOCAL_SRC_FILES := $(1).apk

 include $(BUILD_PREBUILT)

endef

 

,7,预置data app下的apk,使用预签名

definePREBUILT_data_apps_presigned_template

 include $(CLEAR_VARS)

 LOCAL_MODULE_TAGS := optional

 LOCAL_MODULE := $(1)

 LOCAL_MODULE_CLASS := APPS

 LOCAL_MODULE_PATH := $(TARGET_OUT_DATA_APPS)

 LOCAL_CERTIFICATE := PRESIGNED

 LOCAL_SRC_FILES := $(1).apk

 include $(BUILD_PREBUILT)

endef

 

2 0
原创粉丝点击