Android5.1锁屏和以往的版本有了很大的变化,也增加了一个新的特性:在锁屏上可以显示通知(Notification)。Keyguard的本身也不再是一个独立的APK,跟SystemUI 合并,并作为SystemUI的lib。这点在SystemUI的Android.mk文件中就有体现。对比Android5.1 和 Android4.4 SystemUI 的mk文件一目了然:
Android4.4-SystemUI-Android.mk :
LOCAL_JAVA_LIBRARIES := telephony-common
LOCAL_PACKAGE_NAME := SystemUI
LOCAL_CERTIFICATE := platform
LOCAL_PRIVILEGED_MODULE := true
LOCAL_PROGUARD_FLAG_FILES := proguard.flags
include $(BUILD_PACKAGE)
include $(call all-makefiles-under,$(LOCAL_PATH))
Android5.1-SystemUI-Android.mk :
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := $(call all-java-files-under, src) \
src/com/android/systemui/EventLogTags.logtags
LOCAL_STATIC_JAVA_LIBRARIES := Keyguard
LOCAL_JAVA_LIBRARIES := telephony-common
LOCAL_PACKAGE_NAME := SystemUI
LOCAL_CERTIFICATE := platform
LOCAL_PRIVILEGED_MODULE := true
LOCAL_PROGUARD_FLAG_FILES := proguard.flags
LOCAL_RESOURCE_DIR := \
frameworks/base/packages/Keyguard/res \
$(LOCAL_PATH)/res
LOCAL_AAPT_FLAGS := --auto-add-overlay --extra-packages com.android.keyguard
include $(BUILD_PACKAGE)
include $(call all-makefiles-under,$(LOCAL_PATH))
两者对比一下,差别显而易见,其中:
LOCAL_STATIC_JAVA_LIBRARIES := Keyguard #表示Keyguard是一个static lib。
LOCAL_AAPT_FLAGS := --auto-add-overlay --extra-packages com.android.keyguard #表示Keyguard 和 SystemUI被整合到一起,这样修改源码代码以后,只要mm SystemUI。