Android开机动画叫源码位于frameworks/base/cmds/bootanimation下,这个程序会将/data/local/bootanimation.zip或/system/media/bootanimation.zip里面的png图片以动画的形式播放出来,这段代码不支持音乐播放的,添加几段代码就能达到开机显示动画的时候播放音乐的效果了。

添加如下代码:

1.添加所需要的音频库头文件。在frameworks/base/cmds/bootanimation/BootAnimation.h添加

#include <media/AudioSystem.h>#include <media/mediaplayer.h>

2.在frameworks/base/cmds/bootanimation/BootAnimation.h中添加public方法:

起名为bootMusic(),形式如下:


class BootAnimation : public Thread, public IBinder::DeathRecipient{public:                BootAnimation();    virtual     ~BootAnimation();    sp<SurfaceComposerClient> session() const;    void bootMusic();


3.在frameworks/base/cmds/bootanimation/BootAnimation.cpp中添加bootMusic的实现方法:
void BootAnimation::bootMusic(){    int index;    MediaPlayer* mp = new MediaPlayer();    if (mp->setDataSource("/system/etc/poweron.wav", NULL) == NO_ERROR) {        mp->setAudioStreamType(AUDIO_STREAM_ENFORCED_AUDIBLE);        mp->prepare();    }    AudioSystem::getStreamVolumeIndex(AUDIO_STREAM_ENFORCED_AUDIBLE, &index);    if (index != 0) {        mp->seekTo(0);        mp->start();    }}

4.在frameworks/base/cmds/bootanimation/bootanimation_main.cpp中

在sp<BootAnimation> boot = new BootAnimation();与IPCThreadState::self()->joinThreadPool();之间添加如下代码:

 sp<BootAnimation> boot = new BootAnimation();        BootAnimation *animation = new BootAnimation();        animation->bootMusic();        IPCThreadState::self()->joinThreadPool();



5.修改frameworks/base/cmds/bootanimation/Android.mk

在LOCAL_SHARED_LIBRARIES字段中添加libmedia共享库,最后的形式如下:


LOCAL_SHARED_LIBRARIES := \    libcutils \    libutils \    libbinder \    libui \    libskia \    libEGL \    libGLESv1_CM \    libgui\    libmedia

最后编译:mmm frameworks/base/cmds/bootanimation/

将生成的bootanimation push进去,命令:adb push out/target/product/ventana/system/bin/bootanimation /system/bin/

同时将名字为poweron.wav的音频格式push到/system/etc/下 。

进入adb shell可以测试一下效果,在命令行上敲bootanimation命令即可。

#bootanimation

更多相关文章

  1. android studio 碰到问题
  2. Android(安卓)开关机动画显示源码分析
  3. Android使用动画的注意事项
  4. Android单元测试思路
  5. Activity之生命周期
  6. 在手机上开发程序之AIDE(Android集成开发环境)介绍
  7. Android(安卓)4.0的图形硬件加速及绘制技巧
  8. 使用android中自己实现可用xml配置的动画类
  9. Android(安卓)Systrace使用介绍

随机推荐

  1. 联发科智能机战略转投Android(安卓)加速
  2. 谁说Android的动画不廉价(二)之转场动画
  3. Android内核和驱动篇-Android内核介绍
  4. android高仿抖音、点餐界面、天气项目、
  5. Android调用输入法软键盘,返回输入的内容
  6. Android的BUG(三) - 广为人知的诟病:频繁重
  7. 2017年起至今的android各版本占比(持续更
  8. [置顶] Android内核和驱动篇-Android内核
  9. 如何检索Android设备的唯一ID
  10. Android(安卓)studio 中NDK的配置和JNI实