在原生的Android系统中,已经有动态壁纸Livewallpapers的相关代码,只是Android默认没有将其编译进去,所以实现动态壁纸需要将其编译进Android系统,尤其是在TV项目中往往需要动态壁纸使界面更炫。
动态壁纸的相关代码位置:
android\packages\wallpapers\Basic:主要是编译为LiveWallpapers.apk的package
android\packages\wallpapers\LivePicker:主要是编译为LiveWallpapersPicker.apk的package
android\packages\wallpapers\MagicSmoke:主要是编译为MagicSmokeWallpapers.apk的package
android\packages\wallpapers\MusicVisualization:主要是编译为VisualizationWallpapers.apk的package
android\packages\wallpapers\Galaxy4 android\packages\wallpapers\HoloSpiral
android\packages\wallpapers\NoiseField android\packages\wallpapers\PhaseBean
1. 编译进Android系统
需要找一个你确定能编译进源码的mk文件,在其中加入:
PRODUCT_PACKAGES += \
LiveWallpapers \
LiveWallpapersPicker \
MagicSmokeWallpapers \
VisualizationWallpapers \
2. 底层库的支持:
将以上包编入系统后,还需要一些底层库的支持,其实主要是RenderScript的支持,(livewallpapers的实现就是使用google的RenderScript)
主要需要两个库的支持:libRS和librs_jni。Android的代码中也有,也是没有编译进来,在
/android_source/build/target/product/core.mk中的PRODUCT_PACKAGES后加入编译选项。
libRS \
librs_jni \
OK,android的LiveWallpaers的支持已经完成