asysbang

标题: android makefile [打印本页]

作者: admin    时间: 2016-2-14 17:46
标题: android makefile
=====================jni 中========================

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)  
LOCAL_MODULE :=avcodec-57-prebuilt  
LOCAL_SRC_FILES :=prebuilt/libavcodec-57.so  
include $(PREBUILT_SHARED_LIBRARY)  
   
include $(CLEAR_VARS)  
LOCAL_MODULE :=avfilter-6-prebuilt  
LOCAL_SRC_FILES :=prebuilt/libavfilter-6.so  
include $(PREBUILT_SHARED_LIBRARY)  
   
include $(CLEAR_VARS)  
LOCAL_MODULE :=avformat-57-prebuilt  
LOCAL_SRC_FILES :=prebuilt/libavformat-57.so  
include $(PREBUILT_SHARED_LIBRARY)  
   
include $(CLEAR_VARS)  
LOCAL_MODULE :=  avutil-55-prebuilt  
LOCAL_SRC_FILES :=prebuilt/libavutil-55.so  
include $(PREBUILT_SHARED_LIBRARY)  
   
include $(CLEAR_VARS)  
LOCAL_MODULE :=  avswresample-2-prebuilt  
LOCAL_SRC_FILES :=prebuilt/libswresample-2.so  
include $(PREBUILT_SHARED_LIBRARY)  
   
include $(CLEAR_VARS)  
LOCAL_MODULE :=  swscale-4-prebuilt  
LOCAL_SRC_FILES :=prebuilt/libswscale-4.so  
include $(PREBUILT_SHARED_LIBRARY)

include $(CLEAR_VARS)

LOCAL_MODULE    := hello-jni
LOCAL_SRC_FILES := hello-jni.c
LOCAL_LDLIBS := -llog
LOCAL_SHARED_LIBRARIES:= avcodec-57-prebuilt avfilter-6-prebuilt avformat-57-prebuilt avutil-55-prebuilt  swscale-4-prebuilt   avswresample-2-prebuilt  

include $(BUILD_SHARED_LIBRARY)


=========================makefile 中================================
LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)
LOCAL_MODULE := libFTDictSync
LOCAL_SRC_FILES := libFTDictSync.so
LOCAL_MODULE_CLASS := SHARED_LIBRARIES
LOCAL_MODULE_SUFFIX := .so
include $(BUILD_PREBUILT)

include $(CLEAR_VARS)
LOCAL_MODULE := libFTHWEngine
LOCAL_SRC_FILES := libFTHWEngine.so
LOCAL_MODULE_CLASS := SHARED_LIBRARIES
LOCAL_MODULE_SUFFIX := .so
include $(BUILD_PREBUILT)

include $(CLEAR_VARS)
LOCAL_MODULE := libFTInputCloud
LOCAL_SRC_FILES := libFTInputCloud.so
LOCAL_MODULE_CLASS := SHARED_LIBRARIES
LOCAL_MODULE_SUFFIX := .so
include $(BUILD_PREBUILT)

include $(CLEAR_VARS)
LOCAL_MODULE := libFTInputEngine
LOCAL_SRC_FILES := libFTInputEngine.so
LOCAL_MODULE_CLASS := SHARED_LIBRARIES
LOCAL_MODULE_SUFFIX := .so
include $(BUILD_PREBUILT)


include $(CLEAR_VARS)
LOCAL_MODULE := libqihoospeech
LOCAL_SRC_FILES := libqihoospeech.so
LOCAL_MODULE_CLASS := SHARED_LIBRARIES
LOCAL_MODULE_SUFFIX := .so
include $(BUILD_PREBUILT)


include $(CLEAR_VARS)
LOCAL_MODULE := libvxproto-1.0.1
LOCAL_SRC_FILES := libvxproto-1.0.1.so
LOCAL_MODULE_CLASS := SHARED_LIBRARIES
LOCAL_MODULE_SUFFIX := .so
include $(BUILD_PREBUILT)



include $(CLEAR_VARS)
LOCAL_MODULE := PalmInput
LOCAL_SRC_FILES := PalmInput_1.9.0.736_2004.apk
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_CERTIFICATE := PRESIGNED
LOCAL_SHARED_LIBRARIES :=  \
    libFTDictSync \
    libFTHWEngine \
    libFTInputCloud \
    libFTInputEngine \
    libqihoospeech \
    libvxproto-1.0.1
include $(BUILD_PREBUILT)

!!!!!!!!!!!!!!!!!注意是64 还是32的!!!!!!!!!
可以参考 Bluetooth的Android.mk文件  这里面就是只有32位的

或者参考http://www.2cto.com/kf/201506/408335.html

# Copyright 2007-2008 The Android Open Source Project

LOCAL_PATH:= $(call my-dir)

include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := Msc:libs/Msc.jar
LOCAL_PREBUILT_LIBS := libmsc:/libs/armeabi/libmsc.so
include $(BUILD_MULTI_PREBUILT)

include $(CLEAR_VARS)
LOCAL_SRC_FILES := $(call all-java-files-under, src) \
        $(call all-java-files-under, wearableSDK)

LOCAL_SRC_FILES += \
        src/com/mediatek/wearable/ipc/IControllerCallback.aidl \
        src/com/mediatek/wearable/ipc/IControllerInterface.aidl

LOCAL_PACKAGE_NAME := AppManager
LOCAL_CERTIFICATE := platform
LOCAL_MODULE_TAGS := optional
LOCAL_STATIC_JAVA_LIBRARIES := wearableD Msc
LOCAL_SHARED_LIBRARIES := libmsc

LOCAL_PROGUARD_ENABLED := disabled

include $(BUILD_PACKAGE)

include $(call all-makefiles-under,$(LOCAL_PATH))

=======================上面都是把so独立出来,下面是打包到apk中=============

core/package.mk  会调用
core/package_internal.mk   根据jni_shared_libraries 变量确认是否打包到apk

$(LOCAL_BUILT_MODULE): $(all_res_assets) $(jni_shared_libraries) $(full_android_manifest)
    @echo "target Package: $(PRIVATE_MODULE) ($@)"
    $(create-empty-package)
    $(add-assets-to-package)
ifneq ($(jni_shared_libraries),)
    $(add-jni-shared-libs-to-package)

jni_shared_libraries   这个变量 在core/install_jni_libs.mk


include $(BUILD_SYSTEM)/install_jni_libs_internal.mk
jni_shared_libraries += $(my_jni_shared_libraries)
jni_shared_libraries_abis += $(my_jni_shared_libraries_abi)
jni_shared_libraries_with_abis += $(addprefix $(my_jni_shared_libraries_abi):,\
    $(my_jni_shared_libraries))
extracted_jni_libs += $(my_extracted_jni_libs)

core/install_jni_libs_internal.mk 中  my_embed_jni  如果这个没有这个变量就会清空my_jni_shared_libraries  
!!!!!!!!!android系统编译的bug 这个判断是错误的,应该用 ifneq!!!!!!!!!!!!!!
ifeq ($(filter $(TARGET_OUT)/% $(TARGET_OUT_VENDOR)/% $(TARGET_OUT_OEM)/%, $(my_module_path)),)
# If this app isn't to be installed to system partitions.
my_embed_jni := true
endif

development/samples/SimpleJNI  可以用这个apk来调试 这个BUG
============打包so到apk中,需要修改上面build的判断=======
LOCAL_PATH:= $(call my-dir)

include $(CLEAR_VARS)
LOCAL_SRC_FILES := $(call all-subdir-java-files)

LOCAL_PACKAGE_NAME := SnTool
LOCAL_CERTIFICATE := platform
LOCAL_MODULE_TAGS := optional
LOCAL_JNI_SHARED_LIBRARIES := libSn
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR)/operator/app
LOCAL_PROGUARD_ENABLED := disabled

include $(BUILD_PACKAGE)

include $(call all-makefiles-under,$(LOCAL_PATH))









欢迎光临 asysbang (http://asysbang.com/) Powered by Discuz! X2.5