Android.mk积累

版权声明:本文为博主原创文章,未经博主允许不得转载。 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)


 
  






猜你喜欢

转载自blog.csdn.net/LEAD_SOLO/article/details/54015717