您现在的位置是:首页 > 智能机电
Android 开机问题分析
智慧创新站
2025-05-29【智能机电】278人已围观
简介和你一起终身学习,这里是程序员Android本篇文章主要介绍Android开发中的部分知识点,通过阅读本篇文章,您将收获以下内容:Android开机时间信息Android开机大致流程Android开机震动添加方法(MTK、展讯平台)Android开机动画、铃声、LogoAndroid开机动画预制规范...
和你一起终身学习,这里是程序员Android
本篇文章主要介绍Android开发中的部分知识点,通过阅读本篇文章,您将收获以下内容:
Android开机时间信息
Android开机大致流程
Android开机震动添加方法(MTK、展讯平台)
Android开机动画、铃声、Logo
Android开机动画预制规范要求
1.Android开机时间信息Android开机时间信息保存在/proc/bootprof文件中
MTK平台开机时间信息如下:
----------------------------------------//开机时间,单位:毫秒//查看/proc/bootprof文件0BOOTPROF(unit:msec)----------------------------------------3642:preloader3128:lk(Start-Showlogo:2431)----------------------------------------247.401615::1-swapper/0:initcall:of_:1-swapper/0:initcall:wakeup_sources_debugfs_:1-swapper/0:initcall:init_mtk_:1-swapper/0:initcall:mt_power_management_:1-swapper/0:initcall:arm64_device_:1-swapper/0:initcall:pm_sysrq_:1-swapper/0:probe:probe=platform_drv_probedrv=mtk_cmdq(ffffffc000f4f9a0)15.886000:1-swapper/0:initcall:cmdq_:1-swapper/0:initcall:cfg80211_:1-swapper/0:initcall:event_trace_:1-swapper/0:probe:probe=platform_drv_probedrv=mt-pmic(ffffffc000f43728)30.178077:1-swapper/0:initcall:pmic_mt_:1-swapper/0:initcall:populate_:1-swapper/0:initcall:emi_mpu_mod_:1-swapper/0:probe:probe=platform_drv_probedrv=mt-gpufreq(ffffffc000f3bed0)35.099077:1-swapper/0:initcall:_mt_gpufreq_:1-swapper/0:probe:probe=i2c_device_probedrv=bq24157(ffffffc000f489f8)139.402385:1-swapper/0:probe:probe=platform_drv_probedrv=mt-i2c(ffffffc000f41248)147.644154:1-swapper/0:probe:probe=platform_drv_probedrv=mt-i2c(ffffffc000f41248)22.310308:1-swapper/0:initcall:mt_i2c_:1-swapper/0:probe:probe=i2c_device_probedrv=mt6311(ffffffc000f48588)8040.412481:1-swapper/0:initcall:mt6311_:1-swapper/0:probe:probe=platform_drv_probedrv=musb-hdrc(ffffffc000f49398)34.715769:1-swapper/0:initcall:musb_:1-swapper/0:probe:probe=mtkfb_probedrv=mtkfb(ffffffc000f59048)136.957770:1-swapper/0:initcall:mtkfb_:1-swapper/0:initcall:BTIF_:1-swapper/0:probe:probe=platform_drv_probedrv=mtk-msdc(ffffffc000f87d98)78.343461:1-swapper/0:probe:probe=platform_drv_probedrv=mtk-msdc(ffffffc000f87d98)47.790000:1-swapper/0:initcall:mt_msdc_:1-swapper/0:probe:probe=i2c_device_probedrv=AP3426(ffffffc000f3fc18)627.960386:1-swapper/0:initcall:alsps_:1-swapper/0:probe:probe=i2c_device_probedrv=BMA222(ffffffc000f400b0)64.251307:1-swapper/0:probe:probe=i2c_device_probedrv=KXTJ2_1009(ffffffc000f40340)22.436462:1-swapper/0:initcall:acc_:1-swapper/0:probe:probe=i2c_device_probedrv=ITG-1010A(ffffffc000f409a8)20.424462:1-swapper/0:initcall:gyro_:1-swapper/0:probe:probe=i2c_device_probedrv=akm09911(ffffffc000f40f10)18.620385:1-swapper/0:initcall:mag_:1-swapper/0:initcall::102-kworker/u8:1:probe:probe=i2c_device_probedrv=fts_ts(ffffffc000f805a0)261.157769:102-kworker/u8:1:probe:probe=platform_drv_probedrv=mtk-tpd(ffffffc000f7ef40)277.659001:1-swapper/0:probe:probe=platform_drv_probedrv=battery-dts(ffffffc000f83c88)15.676384:1-swapper/0:initcall:battery_//Kernel初始化时间10822.916717:1-swapper/0:Kernel_init_:1-init:INIT::1-init:INIT:late-init//挂载分区时间12689.421183:1-init:INIT:Mount_:1-init:INIT:Mount_:1-init:INIT::1-init:INIT::1-init:post-fs-data::302-ccci_mdinit:ccci_md3:md_:301-ccci_mdinit:ccci_md1:md_:1-init:INIT::301-ccci_mdinit:ccci_md1::1-init::328-vold:vold:decrypt_master_key::309-wmt_loader:probe:probe=platform_drv_probedrv=mtk_wmt(ffffffbffc077af8)78.718769ms//预加载类所消耗时间,此时开始播放开机动画15512.853420:360-SurfaceFlinger::BOOT_Animation::328-vold:vold:decrypt_master_key::328-vold:vold:cryptfs_restart_internal::1-init:INIT:=trigger_post_fs_:1-init:INIT::1-init:post-fs-data::328-vold:vold:cryptfs_restart_internal::407-zygote64:boot_progress_:1-init:INIT:=trigger_restart_:407-main:Zygote::408-main:Zygote::301-ccci_mdinit:ccci_md1::301-ccci_mdinit:ccci_md1::301-ccci_mdinit:ccci_md1::407-main:Zygote::407-main:Zygote::407-main:Zygote::301-ccci_mdinit:ccci_md1::407-main:Zygote::731-system_server:Android:SysServerInit_:60-kworker/1:1:USBconfigured//扫描手机安装包27665.097911:731-system_server:Android:PackageManagerService_:731-system_server:Android:PMS_scan_:731-system_server:Android:PMS_scan_data:/vor/:731-system_server:Android:PMS_scan_data:/system/:731-system_server:Android:PMS_scan_data:/system/:731-system_server:Android:PMS_scan_data:/system/:731-system_server:Android:PMS_scan_data:/vor/:731-system_server:Android:PMS_scan_data:/system/:731-system_server:Android:PMS_scan_data:/data/:731-system_server:Android:PMS_scan_:731-system_server:PMS::731-system_server:Android:PMS_READY//AP端初始化时间36525.345624:408-main:Zygote::408-main:Zygote::408-main:Zygote::731-system_server:AMS::731-system_server:AMS:AMS_READY//初始化输入法、systemUI、网络、三方APK、多媒体、Dialer、:731-system_server:AP_Init:[service]:[]:[/]:pid:120842511.370331:731-system_server:AP_Init:[service]:[]:[/.ImageWallpaper]:pid:1224:(PersistAP)42982.213178:1011-system-server-i:AP_Init:[]:[WebViewLoader-armeabi-v7a]:pid:126143108.493640:1011-system-server-i:AP_Init:[]:[WebViewLoader-arm64-v8a]:pid:128043123.569563:731-system_server:SystemServer::731-system_server:SystemServer::731-system_server:SystemServer::731-system_server:SystemServer::731-system_server:AP_Init:[addedapplication]:[]:[]:pid:1357:(PersistAP)45228.915953:731-system_server:AP_Init:[addedapplication]:[]:[]:pid:1369:(PersistAP)45453.339338:731-system_server:AP_Init:[activity]:[]:[/.FallbackHome]:pid:138745503.338184:731-system_server:Android:SysServerInit_:1013-ActivityManager:AMS:ENABLE_:1040-Binder:294_4:BOOT_Animation:END//开机动画结束52764.718663:OFF----------------------------------------2.Android开机大致流程
从打印的开机Log信息可以总结出Android开机的大致流程如下:
Android开机大致流程
二、开机Logo
开机Logo存放路径如下:
vor\mediatek\proprietary\bootable\bootloader\lk\dev\logo\
根据使用的运营商或者分辨率修改kernelLogo,以及ubootLogo,或者使用覆盖图片覆盖以上目录的图片资源
alps/sprocomm_proj/PD5503SM/vor/mediatek/proprietary/bootable/bootloader/lk/dev/logo/hdplus/hdplus_/sprocomm_proj/PD5503SM/vor/mediatek/proprietary/bootable/bootloader/lk/dev/logo/hdplus/hdplus_5.Android开机动画预制规范要求
解压开机动画文件如下,里面包含多张开机图片。
开机动画压缩包文件内容
开机动画规范要求
1.存储格式压缩
2.在3个文件目录下存储压缩,不能包含bootanimation文件夹
3.保证压缩包下的图片Size和格式完全统一
规范的配置文件
每个参数的实际意义,以如下的case为例:
720128010p10folder1p00folder2
1.第一行的参数前两位720和1280分别表示要显示动画的width和height.
默认情况下应该与Display的width和height一致,如果设置比Display的size要小,则动画会居中显示,周边将用黑框填充.
2.第一行的第三个参数10是定义动画播放的预订帧率(FPS)
这个帧率fps是指:每秒动画播放的帧数。此帧数是一个理想值,并不一定代表动画实际帧率,假设预订帧率为FPS_I,预订每一帧解析的时间t_I,则t_I=1/FPS_I。实际帧率的规则是:
假设某一帧从解析到渲染耗时为t_r,当t_r=t_l,则渲染完这一帧后,动画这个thread会sleep(t_l-t_r)的时间,也就说这一帧最后的耗时就t_l;
假设某一帧从解析到渲染耗时为t_r,当t_rt_l,则渲染完这一帧后,动画这个thread会马上开始下一帧,也就说这一帧最后的耗时就t_r。
所以,内设置的这个帧率并不能代表动画的实际帧率,实际的帧率是和系统开机的performance有关,因此不是说在设置帧率越大越好,反而容易出现当某一帧耗时较长,就容易给用户某一帧卡顿的体验,目前这个FPS的值一般设置在13左右。
当然,设置FPS为13并不是说系统的performance比较低,本身在开机动画阶段,系统进入BootupAndroid阶段,许多进程需要启动,系统的主要工作应该集中与开机启动的进程,因此不建议动画的图片过于复杂,导致系统开机的Performance变差。
3.第二行和第三行情况类似,一般用于分别设置顺序播放和无限循环播放的相关参数.
第一个参数p是googledefault的设计,请保留以p开头。
第二个参数1表示这一行对应folder所需要循环播放的次数,如果是0则表示是无限循环播放,直到系统ready后通过被动退出。
第三个参数0表示这一行对应folder里面的每一帧图片依次解析渲染完成后,要进入下一个循环,动画这个线程需要pause多久。
第四个参数folder1表示对应设置规则的folder的path。
很赞哦!(187)