在原生的Android系统(2.3.4)中,实际上已经有Livewallpapers的相关代码,只是Android默认没有将其编译进去,所以增加对LiveWallpapers的支持,只需要将其编译进Android就可以了。

Livewallpapers相关的代码位置如下:

android\packages\wallpapers\Basic:主要是编译为LiveWallpapers的package,内部有很多自带的LiveWallpaers的APK

android\packages\wallpapers\LivePicker:主要是编译为LiveWallpapersPicker的package

android\packages\wallpapers\MagicSmoke:主要是编译为MagicSmokeWallpapers的package,也就是一个MagicSmoke的LiveWallpapers

android\packages\wallpapers\MusicVisualization:主要是编译为VisualizationWallpapers的package,也是一个自带的LiveWallpapers的

1. 如何编译进Android的源代码呢?

由于我的是自己的mk文件,所以不具有参考性,所以你找一个你确定能编译进源码的mk文件,在其中加入:

PRODUCT_PACKAGES += \

LiveWallpapers \
LiveWallpapersPicker \
MagicSmokeWallpapers \
VisualizationWallpapers \

2. 底层库的支持:

将以上package编入系统后,还需要一些底层库的支持,其实主要是RenderScript的支持,(livewallpapers的实现就是使用google的RenderScript)

主要需要两个库的支持:libRS和librs_jni

android的代码中也有,也是没有编译进来,在

/android/build/target/product/core.mk中的PRODUCT_PACKAGES后加入编译选项。(或许步骤1下的编译选项也能加到这个mk文件中,没有试过)

libRS \

librs_jni \

OK,android的LiveWallpaers的支持已经完成,不过我在跑自带的LiveWallpaers老是遇到NullPointerException的问题:

这个问题的主要是一些资源文件找不到,我的做法是将步骤1中的PACKAGE中的一些放在/res目录下的资源文件:如drawable-hdpi或drawable-nodpi下面的一些图片放在drawable下就可以了。

更多相关文章

  1. 在AndroidManifest.xml文件中的android:windowSoftInputMode属性
  2. Android 记忆卡片游戏 记忆力 Android游戏 Android记忆卡片游戏
  3. android 源代码在线查看和索引
  4. FrameLayout的使用——android开发之xml布局文件
  5. android中将数据写入手机内存和sdcard中的文件
  6. Android系统默认Home应用程序(Launcher)的启动过程源代码分析(3)
  7. android+spring boot 选择,上传,下载文件

随机推荐

  1. android HAL介绍
  2. Android中的坐标系以及获取坐标的方法
  3. Android(安卓)各种实现Tab效果的实现方式
  4. Android(安卓)内核简单分析
  5. Android(安卓)开发笔记 —— AndroidStud
  6. Android层次化安全架构及核心组件概览
  7. 应用界面主题Theme使用方法
  8. Android系统移植与调试之------->如何修
  9. android的一些开源项目
  10. Android(安卓)轻松实现语音识别