其实很简单,通过这个文件就可以看到设置动态桌面背景的整个流程:
/packages/LivePicker/src/com/android/wallpaper/livepicker/LiveWallpaperPreview.java
这个类通过调用PackageManager.queryIntentServices获取系统当中已经安装的动态墙纸的列表。
其实,每一个动态墙纸就是一个WallpaperService,当用户点击其中某一项时,就会通过WallpaperManager调用WallpaperManagerService中的bindWallpaperComponentLocked方法,将墙纸服务绑定。
开发一个动态墙纸的话,就是继承这个WallpaperService,按照系统提供的接口去实现就好了。
这里有一个外国人写的如何开发一个动态墙纸的教程,简单实用,大家可以参考:
http://www.codeproject.com/KB/android/AndroidLiveWallpaper.aspx