如何在AOSP中按名称找到Android模块?

时间:2016-04-12 01:31:47

标签: android linux android-source build-tools

我正在构建AOSP Kitkat(4.4)并尝试查找定义 libnfc-nci 模块的Android.mk文件。 libnfc_nci_jni 模块依赖于此本地共享库(下面包含Android.mk),我想查看生成此.so文件的源代码。我知道nfc.h存在于/hardware/libhardware/include/hardware/nfc.h中,但这只是标题。

据我所知,搜索android源代码的可用工具是cgrep,jgrep和resgrep。但是,据我所知,这些不会搜索Android.mk文件。是否有一个我可以用来查找包含模块 libnfc-nci 的目录的工具?

以下是libnfc_nci_jni的Android.mk(可在/packages/apps/Nfc/nci/jni/Android.mk找到)

VOB_COMPONENTS := external/libnfc-nci/src
NFA := $(VOB_COMPONENTS)/nfa
NFC := $(VOB_COMPONENTS)/nfc

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_PRELINK_MODULE := false

ifneq ($(NCI_VERSION),)
LOCAL_CFLAGS += -DNCI_VERSION=$(NCI_VERSION) -O0 -g
endif

LOCAL_CFLAGS += -Wall -Wextra

define all-cpp-files-under
$(patsubst ./%,%, \
  $(shell cd $(LOCAL_PATH) ; \
          find $(1) -name "*.cpp" -and -not -name ".*") \
 )
endef

LOCAL_SRC_FILES:= $(call all-cpp-files-under, .)

LOCAL_C_INCLUDES += \
    bionic \
    bionic/libstdc++ \
    external/stlport/stlport \
    external/libxml2/include \
    external/icu4c/common \
    frameworks/native/include \
    libcore/include \
    $(NFA)/include \
    $(NFA)/brcm \
    $(NFC)/include \
    $(NFC)/brcm \
    $(NFC)/int \
    $(VOB_COMPONENTS)/hal/include \
    $(VOB_COMPONENTS)/hal/int \
    $(VOB_COMPONENTS)/include \
    $(VOB_COMPONENTS)/gki/ulinux \
    $(VOB_COMPONENTS)/gki/common

LOCAL_SHARED_LIBRARIES := \
    libicuuc \
    libnativehelper \
    libcutils \
    libutils \
    liblog \
    libnfc-nci \
    libstlport

LOCAL_STATIC_LIBRARIES := libxml2

LOCAL_MODULE := libnfc_nci_jni
LOCAL_MODULE_TAGS := optional

include $(BUILD_SHARED_LIBRARY)

我正在运行Ubuntu 14.04

2 个答案:

答案 0 :(得分:0)

在更多google搜索后,我在/ external / libnfc-nci中找到了libnfc-nci。似乎没有更好的工具来搜索aosp的模块而不是google(除非你自己编写脚本)。

正如Gabe Sechan所说,grep解决方案是可能的。这是我使用的命令,似乎可以解决这个问题(工作目录是AOSP的根目录)。

grep -inIEr "LOCAL_MODULE := libnfc-nci" .

答案 1 :(得分:0)

你应该尝试: godir libnfc-nci 如果有几个这样的目录,它应该给你选择