Android.mk 包含其他项目

3

解释

我的问题是想知道如何创建一个能够构建和运行以下项目结构的 Android.mk (makefile).

  1. 库 (在 Eclipse 中为库)
    • [/data/projectLibrary/]
  2. 项目 (界面)
    • 包含 1 个静态库 (lib1.jar)
    • 依赖于上述库
    • [/data/projectUI/]
  3. 项目 (服务)
    • 包含 2 个静态库 (lib1.jar、lib2.jar)
    • [/data/projectService/]

问题

  1. 我应该为每个“项目”都有一个 Android.mk 吗?
  2. 还是我应该有一个包含所有其他“项目”的 Android.mk?

Android MK (服务)

LOCAL_PATH:= $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE_TAGS := optional

LOCAL_STATIC_JAVA_LIBRARIES := android-common 
LOCAL_STATIC_JAVA_LIBRARIES += jsr305 
LOCAL_STATIC_JAVA_LIBRARIES += android-common-chips 
LOCAL_STATIC_JAVA_LIBRARIES += lib1 
LOCAL_STATIC_JAVA_LIBRARIES += lib2

LOCAL_JAVA_LIBRARIES += telephony-common mms-common

LOCAL_SRC_FILES := $(call all-java-files-under, src)
LOCAL_SRC_FILES += $(call all-java-files-under, ../projectLibrary/src)

LOCAL_RESOURCE_DIR += $(LOCAL_PATH)/res
LOCAL_RESOURCE_DIR += ../projectLibrary/res

# Include res dir from chips
chips_dir := ../../../frameworks/ex/chips/res
res_dirs := $(chips_dir) res
$(shell rm -f $(LOCAL_PATH)/chips)
LOCAL_RESOURCE_DIR += $(addprefix $(LOCAL_PATH)/, $(res_dirs))

LOCAL_AAPT_FLAGS := --auto-add-overlay 
LOCAL_AAPT_FLAGS += --extra-packages com.android.ex.chips

LOCAL_REQUIRED_MODULES := SoundRecorder

LOCAL_PROGUARD_FLAG_FILES := proguard.flags

LOCAL_CERTIFICATE := myCertificate

LOCAL_PACKAGE_NAME := MyAppName    

include $(BUILD_PACKAGE)

# make the jni
include $(call all-makefiles-under, jni)

# make the static libs
include $(CLEAR_VARS)    
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := lib1:libs/lib1.jar
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := lib2:libs/lib2.jar    
include $(BUILD_MULTI_PREBUILT)

# make the other makefiles, if necessary
include $(call all-makefiles-under, $(LOCAL_PATH))

其他

我已经在网上搜索过了,

[]的

1个回答

2
  1. 不需要。
  2. 可以参考AOSP源代码中的“packages/apps/Dialer”路径。它正好符合你所声明的情况。Dialer包括“packages/app/ContactsCommon”和“packages/app/InCallUI”。你会发现,在InCallUI的路径下没有Android.mk文件。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接