Android源码下各种Android.mk的编写

原文地址:https://blog.csdn.net/tkwxty/article/details/43341217

Android源码下各种Android.mk的编写
    快过年了公司不景气,也么有很多的事情要忙。正好趁着有时间,总结一下在Android源码下各种模块Android.mk的编写!关于Android.mk详细的语法描述和细节我这里就不做过多的描述了,因为网上关于这方面的知识有很多,我这里列举出来的是几个经常用到的模块编写实例。希望对在Android源码下开发的Android新人们有一定的帮助。废话不多说直接上实例。
     1.编写生成普通的APK,该APK中没有包含.so文件也没有引用第三方jar包
  1. # Copyright 2011 The Android Open Source Project  
  2.   
  3. LOCAL_PATH:= $(call my-dir)  
  4. include $(CLEAR_VARS)  
  5.   
  6. LOCAL_MODULE_TAGS := optional  
  7.   
  8. LOCAL_SRC_FILES := $(call all-java-files-under, src)  
  9.   
  10. LOCAL_PACKAGE_NAME := CoshipUpgrade  
  11.   
  12. LOCAL_CERTIFICATE := platform  
  13.   
  14. include $(BUILD_PACKAGE)  
  15.   
  16. # This finds and builds the test apk as well, so a single make does both.  
  17. include $(call all-makefiles-under,$(LOCAL_PATH))  

    2.编写生成引用第三方jar包的APK
  1. LOCAL_PATH:= $(call my-dir)  
  2. include $(CLEAR_VARS)  
  3.   
  4. LOCAL_MODULE_TAGS := optional   
  5. LOCAL_MODULE_PATH := $(TARGET_OUT_APPS)/apk  
  6.   
  7. LOCAL_SRC_FILES := $(call all-subdir-java-files)  
  8.   
  9. LOCAL_STATIC_JAVA_LIBRARIES := cling-core-1.0.5     \  
  10.                                cling-support-1.0.5  \  
  11.                                teleal-common-1.0.13 \  
  12.                                universal-image-loader \  
  13.                                core-zxing  
  14.                                  
  15.   
  16. LOCAL_PACKAGE_NAME := coshareservice  
  17. LOCAL_CERTIFICATE := platform  
  18. #LOCAL_JNI_SHARED_LIBRARIES := libmouse_cmd  
  19.   
  20. include $(BUILD_PACKAGE)  
  21.   
  22. MY_PATH := $(LOCAL_PATH)  
  23. LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := cling-core-1.0.5:libs/cling-core-1.0.5.jar \  
  24.                                         cling-support-1.0.5:libs/cling-support-1.0.5.jar \  
  25.                                         teleal-common-1.0.13:libs/teleal-common-1.0.13.jar \  
  26.                                         universal-image-loader:libs/universal-image-loader-1.9.2-SNAPSHOT-with-sources.jar \  
  27.                                         core-zxing:libs/core.jar  
  28.   
  29. include $(BUILD_MULTI_PREBUILT)  
  30. #include $(call all-makefiles-under,$(LOCAL_PATH))  


    3.预编译只提供APK没有提供源码,且不包含.so文件
    
  1. LOCAL_PATH := $(call my-dir)  
  2.   
  3.   
  4. ###############################################  
  5. include $(CLEAR_VARS)  
  6. LOCAL_MODULE_TAGS := optional  
  7. LOCAL_MODULE := FlyUI_Wallpaper_mtk  
  8. LOCAL_MODULE_PATH := $(TARGET_OUT_APPS)/apk  
  9. LOCAL_SRC_FILES := $(LOCAL_MODULE).apk  
  10. LOCAL_MODULE_CLASS := APPS  
  11. LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)  
  12. LOCAL_CERTIFICATE := platform  
  13. include $(BUILD_PREBUILT)  

    4.预编译只提供APK没有提供源码,且不包含.so文件
    
  1. LOCAL_PATH:= $(call my-dir)  
  2.   
  3. ###############################################  
  4. include $(CLEAR_VARS)  
  5. LOCAL_MODULE_TAGS := optional  
  6. LOCAL_MODULE := YOUKU  
  7. LOCAL_MODULE_PATH := $(TARGET_OUT_APPS)  
  8. LOCAL_SRC_FILES := $(LOCAL_MODULE).apk  
  9. LOCAL_MODULE_CLASS := APPS  
  10. LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)  
  11. LOCAL_CERTIFICATE := platform  
  12. include $(BUILD_PREBUILT)  
  13.   
  14. include $(CLEAR_VARS)  
  15. LOCAL_PREBUILT_LIBS := libhello-jni.so  
  16. LOCAL_MODULE := libhello-jni      
  17. LOCAL_MODULE_TAGS := optional  
  18. include $(BUILD_MULTI_PREBUILT)  
  19.   
  20.   
  21. include $(CLEAR_VARS)  
  22. LOCAL_PREBUILT_LIBS := libalgmsyoukutv.so  
  23. LOCAL_MODULE := libalgmsyoukutv  
  24. LOCAL_MODULE_TAGS := optional  
  25. include $(BUILD_MULTI_PREBUILT)  
  26.   
  27.   
  28. include $(CLEAR_VARS)  
  29. LOCAL_PREBUILT_LIBS := libluajavayoukutv.so  
  30. LOCAL_MODULE := libluajavayoukutv  
  31. LOCAL_MODULE_TAGS := optional  
  32. include $(BUILD_MULTI_PREBUILT)  

    4.编译生成可执行文件
    
  1. LOCAL_PATH:= $(call my-dir)  
  2.   
  3. include $(CLEAR_VARS)  
  4.   
  5. LOCAL_MODULE_TAGS := optional  
  6.   
  7. LOCAL_C_INCLUDES += \  
  8.      $(LOCAL_PATH)  
  9.        
  10. LOCAL_SRC_FILES:= \  
  11.         gpio-server.c  
  12.   
  13. LOCAL_SHARED_LIBRARIES := \  
  14.     libcurl \  
  15.     libcutils  
  16.   
  17. LOCAL_MODULE:= gpio-server  
  18.   
  19. include $(BUILD_EXECUTABLE)  
  20.   
  21. include $(call all-makefiles-under,$(LOCAL_PATH))  

     5.编译生成共享库,这里生成的是libandroid_servers.so。由于涉及到的文件太多这里就不截图了
    
  1. LOCAL_PATH:= $(call my-dir)  
  2. include $(CLEAR_VARS)  
  3.   
  4. LOCAL_SRC_FILES:= \  
  5.     com_android_server_AlarmManagerService.cpp \  
  6.     com_android_server_BatteryService.cpp \  
  7.     com_android_server_InputApplicationHandle.cpp \  
  8.     com_android_server_InputManager.cpp \  
  9.     com_android_server_InputWindowHandle.cpp \  
  10.     com_android_server_LightsService.cpp \  
  11.     com_android_server_PowerManagerService.cpp \  
  12.     com_android_server_SystemServer.cpp \  
  13.     com_android_server_UsbDeviceManager.cpp \  
  14.     com_android_server_UsbHostManager.cpp \  
  15.     com_android_server_VibratorService.cpp \  
  16.     com_android_server_location_GpsLocationProvider.cpp \  
  17.     com_android_server_connectivity_Vpn.cpp \  
  18.     com_android_server_ConnectivityService.cpp \  
  19.     onload.cpp  
  20.   
  21. LOCAL_C_INCLUDES += \  
  22.     $(JNI_H_INCLUDE) \  
  23.     frameworks/base/services \  
  24.     frameworks/base/core/jni \  
  25.     external/skia/include/core  
  26.   
  27. LOCAL_SHARED_LIBRARIES := \  
  28.     libandroid_runtime \  
  29.     libcutils \  
  30.     libhardware \  
  31.     libhardware_legacy \  
  32.     libnativehelper \  
  33.     libsystem_server \  
  34.     libutils \  
  35.     libui \  
  36.     libinput \  
  37.     libskia \  
  38.     libgui \  
  39.     libusbhost  
  40.   
  41. ifeq ($(WITH_MALLOC_LEAK_CHECK),true)  
  42.     LOCAL_CFLAGS += -DMALLOC_LEAK_CHECK  
  43. endif  
  44.   
  45. LOCAL_MODULE:= libandroid_servers  
  46.   
  47. include $(BUILD_SHARED_LIBRARY)  

    6.编译生成jar静态库
    
  1. LOCAL_PATH := $(call my-dir)   
  2. include $(CLEAR_VARS)   
  3.    
  4. # 获取所有子目录中的 Java 文件  
  5. LOCAL_SRC_FILES := $(call all-subdir-java-files)   
  6.    
  7. # 当前模块依赖的动态 Java 库名称  
  8. LOCAL_JAVA_LIBRARIES := android.test.runner   
  9.    
  10. # 当前模块的名称  
  11. LOCAL_MODULE := sample   
  12.    
  13. # 将当前模块编译成一个静态的 Java 库  
  14. include $(BUILD_STATIC_JAVA_LIBRARY)  
  • 本文已收录于以下专栏:
阅读更多
换一批

没有更多推荐了,返回首页