1 在项目配置信息:./mediatek/config/bbb77_cu_jb/ProjectConfig_PDXXXXMA.mk,文件中加入
# by xxxxxxxx
BBB_FEATURE_DUMP_PCMLOG = yes
# end
这样在framework层就可以判断此宏是否定义,但是必须在对应的Android.mk文件中加入声明才可以使用它
如在AudioStreamIn.cpp中判断如下形式:
#ifdef BBB_FEATURE_DUMP_PCMLOG
......
#endif
在Android.mk中判断如下形式:
# xxxxxxxx
ifeq ($(strip $(BBB_FEATURE_DUMP_PCMLOG)), yes)
LOCAL_CFLAGS += -DBBB_FEATURE_DUMP_PCMLOG
LOCAL_C_INCLUDES += $(TOP)/vendor/bbb/audio/dumplog
LOCAL_LDFLAGS += $(TOP)/vendor/bbb/audio/dumplog/libaudio.dump.pcmlog.a
# LOCAL_STATIC_LIBRARIES += $(TOP)/vendor/bbb/audio/dumplog/libaudio.dump.pcmlog.a
endif
# end
2 静态库的编译
2.1写好AudioDumpPcmLog.h和AudioDumpPcmLog.cpp文件,
2.2 加入到Android.mk中,生成libaudio.dump.pcmlog.a静态库文件
# The audio dump pcmlog
include $(CLEAR_VARS)
# xxxxxxxxx
ifeq ($(strip $(BBB_FEATURE_DUMP_PCMLOG)), yes)
LOCAL_CFLAGS += -DBBB_FEATURE_DUMP_PCMLOG
endif
# end
LOCAL_SRC_FILES := aud_drv/AudioDumpPcmLog.cpp
LOCAL_C_INCLUDES := $(TOP)/mediatek/platform/mt6577/hardware/audio/aud_drv
LOCAL_STATIC_LIBRARIES := \
libmedia_helper
LOCAL_SHARED_LIBRARIES += \
libmedia \
libcutils \
libutils \
libbinder \
libhardware_legacy
LOCAL_ARM_MODE := arm
LOCAL_MODULE := libaudio.dump.pcmlog
#LOCAL_MODULE_TAGS := user
LOCAL_MODULE_TAGS := optional
include $(BUILD_STATIC_LIBRARY)
2.3 然后把上述语句去掉,在该Android.mk中加入如下语句,使该静态库被对应的动态库文件引用到
# xxxxxxxxxxxxx
LOCAL_CFLAGS += -DBBB_FEATURE_DUMP_PCMLOG
LOCAL_C_INCLUDES += $(TOP)/vendor/bbb/audio/dumplog
LOCAL_LDFLAGS += $(TOP)/vendor/bbb/audio/dumplog/libaudio.dump.pcmlog.a
# LOCAL_STATIC_LIBRARIES += $(TOP)/vendor/bbb/audio/dumplog/libaudio.dump.pcmlog.a
endif
# end
2.4 重新编译生成对应的.so动态库文件,此时.a静态库文件已经被.so动态库文件引用了