说明:此文章主要针对新手,大神可以跳过,不足之处请指教
1 android5.1 launcher分为系统的Launcher2跟一个叫home sample的东东(这个没去具体研究过),有时候我们明明把lanuncher2干掉了,并且在/packzge/app/Launcher2/AndroidMainfest.xml做了如下操作
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<!--category android:name="android.intent.category.HOME"/>
<category android:name="android.intent.category.LAUNCHER" /-->
<category android:name="android.intent.category.MONKEY"/>
</intent-filter>
可还是会出现让我们选择home samples跟我们自己的laucher选择(这个在一片博客有详细解释)
所以想要加载自己luancher需要删掉Launcher2跟home sample(android/development/samples/Home)
2 做完以上步骤虽然自己的launcher能够顺利启动,新的问题又来了,动画完成后中间有好几秒的黑屏让人看着很不爽,原来5.1在在out/system/下多了一个pri-app的目录,这个目录下是存放systemui,launcher等等系统权限较高的东西,所以仿照laucher2把自己的apk放在这个目录下
include $(CLEAR_VARS)
LOCAL_MODULE := DigitalPhotoFrame
LOCAL_MODULE_TAGS := optional
LOCAL_CERTIFICATE := PRESIGNED
##LOCAL_MODULE_PATHLOCAL_MODULE_PATH := $(TARGET_OUT)/preinstall
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_SRC_FILES := DigitalPhotoFrame.apk
LOCAL_PRIVILEGED_MODULE := true
include $(BUILD_PREBUILT)
然后在build/target/product/core.mk 加载我们自己的luancher就ok了
PRODUCT_PACKAGES += \
BasicDreams \
Calculator \
Calendar \
CalendarProvider \
CaptivePortalLogin \
CertInstaller \
Contacts \
DeskClock \
DocumentsUI \
DownloadProviderUi \
Email \
Exchange2 \
ExternalStorageProvider \
FusedLocation \
InputDevices \
KeyChain \
Keyguard \
LatinIME \
DigitalPhotoFrame \
ManagedProvisioning