1)修改开机默认壁纸
Android开机默认资源文件为:frameworks/base/core/res/res/values/config.xml
我们找到wallpaper行:
<string name="default_wallpaper_component">@null</string>
系统默认壁纸一般是一张静态图片,这里设置的静态图片为@null空,那么壁纸到底在什么地方设置的呢?
系统是在packages/apps/Launcher2/res 目录下根据配置文件找到静态壁纸进行设置的。
修改静态默认壁纸:
直接替换frameworks/base/core/res/res/drawable-nodpi/目录下的default_wallpaper.jpg文件即可。
最后编译出来的apk文件:out/target/product/xx/system/framework/framework-res.apk
修改动态桌面壁纸:
Android的动态壁纸不是GIF图片,而是一个应用程序apk。其本质是一个Service,这个Service能够被主界面Launcher加载,那么Launcher
又是如何识别这个包含动态壁纸的Service的apk的呢?
例如:packages/wallpapers/PhaseBeam/AndroidManifest.xml
<action Android:name="android.service.wallpaper.WallpaperService" />
这里系统是通过APK的这个action把其当作一个动态墙纸加载进LivePicker列表,然后用户就可以在LivePicker列表里选择自己喜欢的墙纸设置,进而将动态墙纸显示进Launcher的背后。
所以如果需要设置默认墙纸为动态墙纸的话,直接设置上面的frameworks/base/core/res/res/values/config.xml文件:
<string name="default_wallpaper_component">com.android.phasebeam/com.android.phasebeam.PhaseBeamWallpaper</string>
packages/wallpapers/PhaseBeam目录下的AndroidManifes.xml文件中:
这里com.android.phasebeam对应着包名字
com.android.phasebeam.PhaseBeamWallpaper 对应着Service的名字
</