Android 5.1 Contacts源码分析(一):Contacts模块文件结构

1 Contacts目录下Android.mk文件分析:

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

LOCAL_MODULE_TAGS := optional

contacts_common_dir := ../ContactsCommon
phone_common_dir := ../PhoneCommon

src_dirs := src $(contacts_common_dir)/src $(phone_common_dir)/src
res_dirs := res $(contacts_common_dir)/res $(phone_common_dir)/res
#编译Contacts时,会同时编译ContactsCommon,PhoneCommon模块

LOCAL_SRC_FILES := $(call all-java-files-under, $(src_dirs))
LOCAL_RESOURCE_DIR := $(addprefix $(LOCAL_PATH)/, $(res_dirs)) \
    frameworks/support/v7/cardview/res

LOCAL_AAPT_FLAGS := \
    --auto-add-overlay \
    --extra-packages com.android.contacts.common \
    --extra-packages com.android.phone.common \
    --extra-packages android.support.v7.cardview

#导入jar包,(使用include$(BUILD _JAVA_LIBRARY)生成
#telephony-common: frameworks/opt/telephony/
#voip-common: frameworks/opt/net/voip/
LOCAL_JAVA_LIBRARIES := telephony-common voip-common
#导入静态库,静态jar包(使用include$(BUILD_STATIC_JAVA_LIBRARY)生成
LOCAL_STATIC_JAVA_LIBRARIES := \
    com.android.vcard \
    android-common \
    guava \
    android-support-v13 \
    android-support-v7-cardview \
    android-support-v7-palette \
    android-support-v4 \
    libphonenumber \
    libgeocoding
#生成应用名为Contacts.apk
LOCAL_PACKAGE_NAME := Contacts
LOCAL_CERTIFICATE := shared
LOCAL_PRIVILEGED_MODULE := true

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))

2 文件结构:

(1). Contacts 模块:
– activities : Contacts中主要的Activity,例如:PeopleActivity.java,ContactEditorActivity.java,GroupDetailActivity.java等。
– preference: Contacts的设置相关类,例如:ContactsPreferenceActivity.java。
– editor: Contacts编辑界面的相关类,例如:ContactEditorFragment.java等。
– interactions:一些辅助功能类,例如GroupCreationDialogFragment.java等。
– quickcontact: Contacts详情的相关类,例如:QuickContactActivity.java等。
– group: 群组相关类,例如:GroupDetailFragment.java,GroupEditorFragment.java等。
– list: 列表相关类,例如:DefaultContactBrowseListFragment.java等。
– …
(2). ContactsCommon模块:
– model: 封装了一些数据结构,账户等信息,例如:ValuesDelta.java,RawContact.java等。
– util: 封装了一些公用工具,例如:PhoneNumberFormatter.java等。
– vcard: 封装了一些vcard相关类,例如:NfcImportVCardActivity.java等。
– list: 封装了一些公用列表相关类,例如:ContactListItemView.java,ContactEntryListAdapter.java,ContactEntryListFragment.java等。
– …

    原文作者:Android源码分析
    原文地址: https://blog.csdn.net/ximsfei/article/details/48736417
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞