Android 开机震动、动画、铃声添加方案


极力推荐文章:欢迎收藏
Android 干货分享

本篇文章主要介绍 Android 开发中的部分知识点,通过阅读本篇文章,您将收获以下内容:

一、 开机震动添加方案(MTK 、展讯)
二、 开机动画、铃声 添加方案
三、 开机Logo 添加方案

一、Android 开机震动添加方案(MTK 、展讯)

1.MTK 平台 震动添加方案

MT6739 平台为例,大致路径如下:
vendor\mediatek\proprietary\bootable\bootloader\lk\platform\mt6739

  • a. 修改platform.c文件

platform.c 文件中的 mboot_common_load_logo 方法显示开机Logo之前添加震动.

        // add  for lk viber
	    vibr_Enable_HW();//开启震动
        mdelay(80); //震动80ms
        vibr_Disable_HW();//关闭震动
		// add  for lk viber
		//显示开机 Logo
		mboot_common_load_logo((unsigned long)mt_get_logo_db_addr_pa(), "logo");

  • b. 查看mt_pmic.h 头文件声明方法

mt_pmic.h

extern void vibr_Enable_HW(void);
extern void vibr_Disable_HW(void);
  • c. 在对应的mt_pmic.c 文件中实现方法

image.png

void vibr_Enable_HW(void)
{
	pmic_set_register_value(PMIC_RG_VIBR_VOSEL, 5);
	pmic_set_register_value(PMIC_RG_LDO_VIBR_EN, 1);
}

void vibr_Disable_HW(void)
{
	pmic_set_register_value(PMIC_RG_LDO_VIBR_EN, 0);
}

2.展讯平台 添加开机震动的方法

展讯平台修改开机震动的文件路径为u-boot64/common/loader/boot_mode.c

boot_mode.c 中修改normal_mode(void)

void normal_mode(void)
{
        vibrator_hw_init();
        //设置 开机震动  1 :震动  0:不震动
        set_vibrator(1);  
        vlx_nand_boot(BOOT_PART, BACKLIGHT_ON);
        return;
}

二、 Android 开机动画、铃声 添加方案

开机动画、开机铃声 主要存放在手机中system/media/下,开机时候会自动扫描这个目录,播放开机动画、铃声。

国内运营商定制开机动画地址如下:

  • OP01 中国移动
  • OP02 中国联通
  • OP09 中国电信
/vendor/mediatek/proprietary/operator/frameworks/bootanimation/OP01/bootanimation/WVGA/bootanimation.zip
/vendor/mediatek/proprietary/operator/frameworks/bootanimation/OP02/bootanimation/FWVGA/bootanimation.zip
/vendor/mediatek/proprietary/operator/frameworks/bootanimation/OP09/bootanimation/WVGA/bootanimation.zip

自定义开机动画存放目录

当需要自定义开关机动画(必须存储格式压缩)时候,我们可以用脚本拷贝到手机的system/media/,在开机的时候就会自动加载自定义开机动画。
比如目录alps\vendor\......\res\boot\boot_res.mk等。

# 开机动画存放路径
LOCAL_PATH:= vendor/....../res/boot

ANIMATION_PACKAGE_DIR := $(LOCAL_PATH)/$(MODULES_FEATURE_ANIMATION_PACKAGE)
HAS_ANIMATION_PACKAGE_DIR := $(shell test -d $(ANIMATION_PACKAGE_DIR) && echo yes)  

ifeq ($(strip $(HAS_ANIMATION_PACKAGE_DIR)),yes)
    ifeq ($(MODULES_FEATURE_BOOT_ANIMATION),yes)
    PRODUCT_COPY_FILES += \
    #开机动画 拷贝到手机/system/media 下        $(ANIMATION_PACKAGE_DIR)/bootanimation.zip:system/media/bootanimation.zip 
    endif
    ifeq ($(MODULES_FEATURE_BOOT_SOUND),yes)
    PRODUCT_COPY_FILES += \
     #开机铃声 拷贝到手机/system/media 下           $(ANIMATION_PACKAGE_DIR)/bootsound.mp3:system/media/bootsound.mp3
    endif
    ifeq ($(MODULES_FEATURE_SHUT_ANIMATION),yes)
    PRODUCT_COPY_FILES += \
     #关机动画 拷贝到手机/system/media 下            $(ANIMATION_PACKAGE_DIR)/shutdownanimation.zip:system/media/shutdownanimation.zip 
    endif
    ifeq ($(MODULES_FEATURE_SHUT_SOUND),yes)
    PRODUCT_COPY_FILES += \
    #关机铃声 拷贝到手机/system/media 下                 $(ANIMATION_PACKAGE_DIR)/shutdownsound.mp3:system/media/shutdownsound.mp3
    endif
else
    $(warning $(ANIMATION_PACKAGE_DIR) Not found, use default!)
endif

三、 开机Logo 添加方案

开机Logo 存放路径如下:
vendor\mediatek\proprietary\bootable\bootloader\lk\dev\logo\,开机log必须需位图(bmp),这样方便图片读取。

uboot、kernel logo路径如下:

vendor/mediatek/proprietary/bootable/bootloader/lk/dev/logo/hdplus/hdplus_kernel.bmp
vendor/mediatek/proprietary/bootable/bootloader/lk/dev/logo/hdplus/hdplus_uboot.bmp

根据使用的运营商或者分辨率修改对应的 kernel Logouboot Logo,或者使用覆盖图片覆盖以上目录的图片资源.

至此,本篇已结束,如有不对的地方,欢迎您的建议与指正。同时期待您的关注,感谢您的阅读,谢谢!

微信关注公众号:  程序员Android,领福利

posted @ 2019-08-06 18:27  程序员Android  阅读(1179)  评论(0编辑  收藏  举报