Android4.4 Makefile屬性:LOCAL_AAPT_FLAGS的使用

來源:互聯網
上載者:User

標籤:android   源碼   應用程式   local_aapt_flags   

    今天改匯入/匯出連絡人方面的東西,匯入/匯出連絡人的這個面板是一個DialogFragment,跟了下代碼發現其實現packages/apps/ContactsCommon中,那麼在其中添加了一些Log,進入到packages/apps/ContactsCommon/目錄下,mm,編譯產生了一個com.android.contacts.common.apk,把此程式push到系統中,添加的Log資訊卻怎麼也打不出來,開始懷疑是不是弄錯了,並不是這個地方實現的(Android源碼中還是有一些重複的代碼的),於是又整個工程搜尋了一遍,那個匯入/匯出連絡人的DialogFragment只在這裡定義了,於是就鬱悶了。。。在Android.mk中也看不出什麼問題:

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

LOCAL_MODULE_TAGS := optional

LOCAL_SRC_FILES := $(call all-java-files-under, src)
LOCAL_RESOURCE_DIR := $(addprefix $(LOCAL_PATH)/, res)

LOCAL_JAVA_LIBRARIES := telephony-common
LOCAL_STATIC_JAVA_LIBRARIES := \
    com.android.phone.shared \
    com.android.vcard \
    guava \
    android-common \
    android-support-v13 \
    android-support-v4 \

LOCAL_PACKAGE_NAME := com.android.contacts.common

LOCAL_PROGUARD_ENABLED := disabled
LOCAL_PROGUARD_FLAG_FILES := proguard.flags

include $(BUILD_PACKAGE)

# Use the folloing include to make our test apk.
include $(call all-makefiles-under,$(LOCAL_PATH))

=========================================================================

後來搜尋了一下com.android.contacts.common,發現在packages/apps/Dialer和packages/apps/Contacts中都有引用,

Contacts的Android.mk檔案:


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

LOCAL_MODULE_TAGS := optional

contacts_common_dir := ../ContactsCommon

src_dirs := src $(contacts_common_dir)/src
res_dirs := res $(contacts_common_dir)/res

LOCAL_SRC_FILES := $(call all-java-files-under, $(src_dirs))
LOCAL_RESOURCE_DIR := $(addprefix $(LOCAL_PATH)/, $(res_dirs))

LOCAL_AAPT_FLAGS := \
    --auto-add-overlay \
    --extra-packages com.android.contacts.common

LOCAL_JAVA_LIBRARIES := telephony-common voip-common
LOCAL_STATIC_JAVA_LIBRARIES := \
    com.android.phone.shared \
    com.android.vcard \
    android-common \
    guava \
    android-support-v13 \
    android-support-v4 \
    android-ex-variablespeed \

LOCAL_REQUIRED_MODULES := libvariablespeed
LOCAL_PACKAGE_NAME := Contacts
LOCAL_CERTIFICATE := shared
LOCAL_PROGUARD_FLAG_FILES := proguard.flags

include $(BUILD_PACKAGE)
# Use the folloing include to make our test apk.
include $(call all-makefiles-under,$(LOCAL_PATH))

=================================================================


其中有這一段:

LOCAL_AAPT_FLAGS := \
    --auto-add-overlay \
    --extra-packages com.android.contacts.common

而且在Contacts的AndroidManifest.xml中也註冊了很多ContactsCommon中的類,於是我想ContactsCommon是通過這種方式整合到Contacts這個程式中去了,編譯了一下Contacts,push進系統,發現Log果然可以出來了。


在Android系統中,撥號程式(packages/apps/Dialer)和連絡人程式(packages/apps/Contacts)之間的耦合性非常的大,在撥號中可以調取連絡人資訊,在連絡人中可以進入到撥號介面(當然,還有一個簡訊程式也是互相聯通的),所以我覺得,為了更好的使這些程式誇進程訪問,就引出來了這個ContactsCommon的程式(Android4.3之前是沒有這個東西的),相當於一個中間人吧。

Android4.4 Makefile屬性:LOCAL_AAPT_FLAGS的使用

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.