編輯:關於Android編程
今天改導入/導出聯系人方面的東西,導入/導出聯系人的這個面板是一個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之前是沒有這個東西的),相當於一個中間人吧。
先聲明授人與魚不如授人與漁,只能提供一個思路,當然需要源碼的同學可以私下有償問我要源碼:QQ:508181017 工作了將近三年時間了,一直沒正兒八
GreenDAO是一個可以幫助Android開發者快速將Java對象映射到SQLite數據庫的表單中的ORM解決方案,通過使用一個簡單的面向對象API,開發者可以對Ja
需求:通過以上例子我們修改測試數據後,拿到的View圖像是這樣的:而我們要的效果是縱坐標7.45以上與5.97以下的部分為紅色,7.45與6.43間為綠色,6.18與6.
在ios7中有一種扁平風格的控件叫做分段選擇控件UISegmentedControl,控件上橫放或豎放著幾個被簡單線條隔開的按鈕,每次點擊能切換不同的按鈕和按鈕所對應的界