版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/LEAD_SOLO/article/details/54015717
已经编译生成apk或so或bin的集成
带so的apk
目录结构为
---Android.mk
---SeuicService.apk
---armeabi-v7a
|---libctp_jni.so
|---libkeypad_jni.so
---arm64-v8a
|---libctp_jni.so
|---libkeypad_jni.so
LOCAL_PATH := $(call my-dir)
#====== so lab =====
include $(CLEAR_VARS)
LOCAL_PREBUILT_LIBS := armeabi-v7a/libctp_jni.so
LOCAL_MULTILIB := 32
LOCAL_MODULE_TAGS := optional
include $(BUILD_MULTI_PREBUILT)
include $(CLEAR_VARS)
LOCAL_PREBUILT_LIBS := armeabi-v7a/libkeypad_jni.so
LOCAL_MULTILIB := 32
LOCAL_MODULE_TAGS := optional
include $(BUILD_MULTI_PREBUILT)
include $(CLEAR_VARS)
LOCAL_PREBUILT_LIBS := arm64-v8a/libctp_jni.so
LOCAL_MULTILIB := 64
LOCAL_MODULE_TAGS := optional
include $(BUILD_MULTI_PREBUILT)
include $(CLEAR_VARS)
LOCAL_PREBUILT_LIBS := arm64-v8a/libkeypad_jni.so
LOCAL_MULTILIB := 64
LOCAL_MODULE_TAGS := optional
include $(BUILD_MULTI_PREBUILT)
# ==== app ========================
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE := SeuicService
LOCAL_MODULE_CLASS := APPS
LOCAL_CERTIFICATE := PRESIGNED #预签名过了,不需在签名了
LOCAL_MODULE_PATH := $(TARGET_OUT)/app
LOCAL_REQUIRED_MODULES := \ #本模块加入系统,我需要的依赖模块也必须加入
libkeypad_jni \
libctp_jni
#android 5.0之后可以用这个
#LOCAL_PREBUILT_JNI_LIBS
LOCAL_SRC_FILES := SeuicService.apk
导入依赖第三方jar静态编译
zxing-1.6-core.jar放在apk源码目录的libs目录下
LOCAL_PATH :=$(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
#LOCAL_JAVA_LIBRARIES := ScannerAPI telephony-common telephony-msim
LOCAL_STATIC_JAVA_LIBRARIES :=zxing android-support-v4 android-support-v13
LOCAL_SRC_FILES :=$(call all-java-files-under, src)
LOCAL_PACKAGE_NAME := SetInput2
LOCAL_CERTIFICATE := platform #签名为platform
include $(BUILD_PACKAGE)
include $(CLEAR_VARS)
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES :=zxing:libs/zxing-1.6-core.jar
include $(BUILD_MULTI_PREBUILT)
可执行程序bin
比如我们想内置某些已编译好的busybox工具
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := busybox #起个名字
LOCAL_MODULE_TAGS := optional #编译选项,各个版本都编译
LOCAL_MODULE_CLASS := EXECUTABLES #LOCAL_MODULE_CLASS用于制定LOCAL_MODULE_PATH的路径所在。
LOCAL_SRC_FILES := busybox #源码文件为已经编译好的busybox
LOCAL_MODULE_PATH := $(PRODUCT_OUT)/system/xbin #输出目录
include $(BUILD_PREBUILT) #用PREBUILT
提供源码放在系统中编译集成
编译C文件为可执行文件的Android.mk编写
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_PATH := $(TARGET_OUT)/bin
LOCAL_SRC_FILES:=mem_test.c
LOCAL_SHARED_LIBRARIES := libcutils libc
LOCAL_MODULE :=mem_test
include $(BUILD_EXECUTABLE)