2.2 Android Libffi调用
在/android2.1/dalvik/vm/Dvm.mk中有以下语句:
ifeq ($(MTERP_ARCH_KNOWN),false)
# unknown architecture, try to use FFI
LOCAL_C_INCLUDES += external/libffi/$(dvm_os)-$(dvm_arch)
LOCAL_SRC_FILES += \
arch/generic/Call.c \
arch/generic/Hints.c \
mterp/out/InterpC-allstubs.c
在android2.1里,对于未知架构android将调用libffi来处理不同语言的函数调用问题,调用的源文件位于/android2.1/dalvik/vm/arch/generic/Calls.c和Hints.c;而对于确定的架构(例如ARM、X86、MIPS等)则采用他们架构相关的方法来处理该问题。