前言
基于mtk6580,添加多logo和开关机动画切换
描述
目前android开机画面由三个部分(阶段)组成,第一部分在bootloader启动时显示(静态),第二部分在启动kernel时显示(静态),第三部分在系统启动时(bootanimation)显示(动画)。
添加资源
1.在device/tangxun/tx6580_weg_m/ProjectConfig.mk,找到BOOT_LOGO=这项,记住这项内容(如hd720,),在vendor/mediatek/proprietary/bootable/bootloader/lk/dev/logo/目录下找到BOOT_LOGO=对应的文件夹把你的图片放进去,图片我是这样命名的hd720_kernel_i7.bmp.(如果你只是替换的话更换hd720_kernel.bmp和hd720_uboot.bmp这两张图片即可,新图片的名字需与旧图片一致)
2.在vendor/mediatek/proprietary/bootable/bootloader/lk/dev/logo/rules.mk下修改RESOURCE_OBJ_LIST列表,如图:
最后两项就是我添加的
3.同目录下update文件中添加
添加标识区分不同logo
思路:首先我们添加的标识,不能被轻易清除,包括恢复出厂设置情况下。所以我选择在protect_f分区下创建空文件的方式,在show logo的时候判断相应文件是否存在,来展示不同的logo和动画。
1.选择一种要展示的logo和动画,在protect_f分区下创建.dat后缀的文件,删除其他类型动画在protect_f分区下的相应文件
private void createOrDeleteFile(String str){ String sDir = "/protect_f"; File fDir = new File(sDir); if (fDir.exists()){ try { Runtime.getRuntime().exec("chmod 777"+sDir); } catch (IOException e) { e.printStackTrace(); } } File mFile = new File(sDir,File_moto_logo); if (mFile.exists()){ mFile.delete(); } mFile = new File(sDir,File_samsun_logo); if (mFile.exists()){ mFile.delete(); } mFile = new File(sDir,"sysBoot_logo_null.dat"); if (mFile.exists()){ mFile.delete(); } if (str != null){ mFile = new File(sDir,str); if (!mFile.exists()){ try { mFile.createNewFile(); } catch (IOException e) { e.printStackTrace(); } } } }
2.在vendor/mediatek/proprietary/external/libshowlogo/charging_animation.cpp文件中,添加logo切换
const char LOGO_ON5_ANI[] = "/protect_f/sysBoot_logo_moto.dat"; const char LOGO_I7_ANI[] = "/protect_f/sysBoot_logo_samsun.dat"; /* * Show kernel logo when phone boot up * */ void show_kernel_logo(){ //这是系统本来就有的 SLOGD("[libshowlogo: %s %d]show kernel logo, index = 38 \n",__FUNCTION__,__LINE__); if (error_flag == 0) { if(open(LOGO_ON5_ANI,O_RDONLY) >= 0){ anim_show_logo(kernel_logo_position+1); property_set("ani_type","custom"); property_set("animation_num","On5_Ani"); }else if (open(LOGO_I7_ANI,O_RDONLY) >= 0) { anim_show_logo(kernel_logo_position+2); property_set("ani_type","custom"); property_set("animation_num","I7_Ani"); }else{ anim_show_logo(kernel_logo_position); property_set("ani_type","android"); property_set("animtion_num","android"); } } }
3.framworks/base/cmds/bootanimation/BootAnimation.cpp文件中,在void BootAnimation::initBootanimationZip()方法中添加切换动画
char anitype[PROPERTY_VALUE_MAX]; char aninum[PROPERTY_VALUE_MAX]; property_get("ani_type",anitype,""); property_get("animation_num",aninum,""); if (strcmp("custom",anitype) == 0) { if (strcmp("On5_Ani", aninum)==0) { if (access("/system/media/bootanimation_custom.zip", R_OK) == 0) { if ((zipFile = ZipFileRO::open("/system/media/bootanimation_custom.zip")) != NULL) { mZip = zipFile; } } }else if (strcmp("I7_Ani", aninum)==0){ if (access("/system/media/bootanimation_s6.zip", R_OK) == 0) { if ((zipFile = ZipFileRO::open("/system/media/bootanimation_s6.zip")) != NULL) { mZip = zipFile; } } } } if (zipFile == NULL) {
总结
以上所述是小编给大家介绍的Andorid 系统实现多种开机动画和logo切换功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对呐喊html" target="_blank">教程网站的支持!
本文向大家介绍Android实现系统语言切换功能,包括了Android实现系统语言切换功能的使用技巧和注意事项,需要的朋友参考一下 简单介绍下这个需求的缘由,这段时间因公司业务需要,其中有一项“设置系统语言”功能,就是在使用APP的过程中,动态的去切换整个Android机器的语言,具体参照手机设置页面有语言切换功能。起初想来是很简单的事情嘛,不就是个简单的资源国际化嘛,strings.xml资源文
本文向大家介绍Vue多系统切换实现方案,包括了Vue多系统切换实现方案的使用技巧和注意事项,需要的朋友参考一下 前言 公司分好几个后台模块,统一使用vue+elementUi框架开发,每一个后台模块都是单独团队开发的。并且几个系统整体的风格、布局一样的,包括左侧边栏,上方的面包屑等 用户在使用的时候,可能要切换别的系统就要在浏览器里,新打开窗口,再输入网址,回车。 总结来说,低效,所以现在想将几个
本文向大家介绍Android 修改系统关机动画的实现,包括了Android 修改系统关机动画的实现的使用技巧和注意事项,需要的朋友参考一下 在Android 系统移植做自己的移动设备,肯定会遇到更改开机或者关机画面,配置自己产品logo 这点是必须的,这些都要在源码中修改,然后编译,下面给大家介绍个关机动画修改,一个简单示例! 文件路径:frameworks\base\services\
本文向大家介绍Android实现页面滑动切换动画,包括了Android实现页面滑动切换动画的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了Android实现页面滑动切换动画的具体代码,供大家参考,具体内容如下 实现两个页面滑动切换,一些相册的效果也是如此 一个Activity的界面配置文件 activity_main.xml: MainActivity.java: 在res/anim
本文向大家介绍js实现多图左右切换功能,包括了js实现多图左右切换功能的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了js多图左右切换功能,供大家参考,具体内容如下 效果图: 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。
实现各种页面过渡切换效果。前4种是UIView,后面都是 Core Animation。 下面8种是传说中的私有API(作者测试过,能通过审核,请放心使用)。所有效果整合到一个例子里,代码较清晰,适合新手阅读。 [Code4App.com]