推荐使用 读书导航极客导航 :125啦极客导航(http://www.biumall.com/jike.html)
Android开机动画有2种模式,一种是使用两张图片利用某种效果来造成动态,另一种则是用一个图包循环显示的方式来形成动态。
当然,这时因为mediaplayer已经起来,播放开机动画的时候可以同时播放开机音乐。
第一种双图片模式称为android模式
第二种图包模式称为movie模式
他们在循环时通过条件变量来选择其一:
if (mAndroidAnimation) {
r = android(); //Android原生的经典开机动画
} else {
r = movie(); //用户客户自定开机动画
}
1、android模式
第一种android模式:
initTexture(&mAndroid[0], mAssets, "images/android-logo-mask.png");
initTexture(&mAndroid[1], mAssets, "images/android-logo-shine.png");
这两张图片都在frameworks/base/core/res/assets/images目录下,替换即可。
2、movie模式
这个用户可以自定义,也就是在打包时通过.mk文件拷贝到system/media中
xxx/device/media/bootanimation_7inch_horizontal_1024x600.zip:system/media/bootanimation.zip
上面的是我项目中的。
我在源码中看到开机动画可以存放的路径有如下:
static const char* mResourcePath[MNC_COUNT][PATH_COUNT] =
{"/system/media/bootanimation1.zip", "/custom/media/bootanimation1.zip", "/data/local/bootanimation1.zip", /* 0 */
"/system/media/bootanimation2.zip", "/custom/media/bootanimation2.zip", "/data/local/bootanimation2.zip", /* 1 */
};
#endif
static const char* mAudioPath[2][PATH_COUNT] =
{"/system/media/bootaudio.mp3", "/custom/media/bootaudio.mp3", "/data/local/bootaudio.mp3", /* bootaudio path */
"/system/media/shutaudio.mp3", "/custom/media/shutaudio.mp3", "/data/local/shutaudio.mp3", /* shutaudio path */
};
#define CUSTOM_BOOTANIMATION_FILE "/custom/media/bootanimation.zip"
#define USER_BOOTANIMATION_FILE "/data/local/bootanimation.zip"
#define SYSTEM_SHUTANIMATION_FILE "/system/media/shutanimation.zip"
#define CUSTOM_SHUTANIMATION_FILE "/custom/media/shutanimation.zip"
#define USER_SHUTANIMATION_FILE "/data/local/shutanimation.zip"
#define OEM_BOOTANIMATION_FILE "/oem/media/bootanimation.zip"
#define SYSTEM_BOOTANIMATION_FILE "/system/media/bootanimation.zip"
#define SYSTEM_ENCRYPTED_BOOTANIMATION_FILE "/system/media/bootanimation-encrypted.zip"
#define EXIT_PROP_NAME "service.bootanim.exit"
至于bootanimation.zip的格式和要求,请看《Android开机动画bootanimation.zip文件制作以及注意事项》
3、删除开机动画
具体代码在这目录下
\frameworks\base\cmds\bootanimation
Android.mk
AudioPlayer.cpp //开机声音
AudioPlayer.h
BootAnimation.cpp //开机动画
BootAnimation.h
bootanimation_main.cpp //动画入口
在bootanimation_main.cpp中
setpriority(PRIO_PROCESS, 0, ANDROID_PRIORITY_DISPLAY);
char value[PROPERTY_VALUE_MAX];
property_get("debug.sf.nobootanimation", value, "1"); //默认是0 表示有动画,1表示关闭动画,这里被我关闭了
int noBootAnimation = atoi(value); // 1--> true 0-->false
ALOGI_IF(noBootAnimation, "boot animation disabled");
if (!noBootAnimation) {
....//执行动画
}
当然,如果你只是删除system/media/bootanimation.zip或者/data/local/shutanimation.zip等时候,也就说说没有了movie模式,Android系统会走android模式。
如果你一个也不想要,只需要把
property_get("debug.sf.nobootanimation", value, "1"); //默认是0 表示有动画,1表示关闭动画
默认改为1
或者把debug.sf.nobootanimation的值改为1即可。
目前就这些啦。
本文参考了网络大神分享,感谢,如下:
© 版权声明