性能优化 启动黑白屏优化

2023-05-16

启动黑白屏优化 

 

前言

这是Google设计者为了让用户体会到点击图标后立马就有响应,而让App创建的过程中先展示一个空白窗口。

正是这个设计,我们在点击App应用图标之后,会看到一段时间的空白屏幕,这就是所谓的安卓应用启动白屏。

总结就是,谷歌设计App启动的时候有一个预览的界面,在应用完成启动初始化之前都会显示这个预览界面,目的是为了让用户点击APP图标的时候有一个瞬间响应的交互体验。

而这个预览界面是由我们app应用主题android:theme中的android:windowBackground属性决定的,当我们不指定的时候android:windowBackground的时候默认是一个近乎白色的颜色#fffafafa。

优化

方案一 去掉这个默认的白色背景效果的方法

<!-- 方案1  (以下二选一)直接将预览页面去掉或者改为透明 缺点:同样还是让用户感觉“卡顿”;-->

<item name="android:windowDisablePreview">true</item>
<item name="android:windowIsTranslucent">true</item>

方案二 给主题设置一个自定义的背景

<!-- 方案2 -->
<item name="android:windowBackground">@mipmap/ic_launcher</item>

方案三 自定义主题

<!-- 方案3(终极版本) -->

<style name="Theme.Mnstartopt.LauncherTheme2">

    <item name="android:windowNoTitle">true</item>
    <item name="android:windowFullscreen">true</item>
    <item name="android:windowBackground">@drawable/splash_preview</item>
</style>

将此主题用在activity上

<activity android:name=".SplashActivity"
    android:theme="@style/Theme.Mnstartopt.LauncherTheme2">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

启动时间的测量

系统日志输出

获取启动时间1: Displayed com.mnstartopt/.SplashActivity: +955ms  通过系统获取启动时间;

ADB 命令

        //adb命令获取启动时间2: adb shell am start -W com.mnstartopt/.SplashActivity

        // launch:COLD,WARM,HOT

        // ThisTime: 925  代表最后一个Activity启动时间;

        // TotalTime:925  代表所有Activity的启动时间;

        // WaitTime: 977  所有时间:ams启动activity总耗时;

手动获取

    @Override

    public void onCreate() {

        super.onCreate();

        // 方法耗时统计

        Debug.startMethodTracing("Launcher");

        coreSize = Runtime.getRuntime().availableProcessors();

        executorService = Executors.newFixedThreadPool((Math.max(2,Math.min(coreSize-1,4))));

        a();//3s

        application = this;

        context = this.getApplicationContext();

        Debug.stopMethodTracing();



        async(new Runnable() {

            @Override

            public void run() {

                a();

            }

        });

      // 启动优化 一定是减少时间;

        // 有些资源懒加载,异步加载;

        // 并不是所有资源都能这么做;资源要用,没初始化完怎么办?

        // 如果你初始化的资源跟UI线程有关,也不能放在子线程;

        // 1:把资源拆分;

}

分析如下图

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

性能优化 启动黑白屏优化 的相关文章

  • 老旧电脑在虚拟机安装ubuntu运行环境的步骤及注意事项

    花了一天的时间在我的老电脑上用虚拟机装上了ubuntu xff0c 多灾多难 xff0c 记录一下问题和注意事项 老电脑的配置 xff1a cpu xff1a Intel Core TM 2 Duo CPU E7500 64 2 93GHz
  • x11vnc

    x11vnc display 0 auth guess rfbport 5900 forever shared noxdamage noncache repeat amp auth 关窗口退出 auth guess 关窗口不退出 用户注销退
  • 多个生产者和消费者线程

    span class token comment 作者 xff1a kuma 版本 xff1a v1 0 span span class token keyword public span span class token keyword
  • C/C++ 开源库及示例代码

    C C 43 43 开源库及示例代码 说明 本页面汇总俺收集的各种 C 和 C 43 43 的开源代码库 xff0c 不定期更新 如果你发现本页面的开源库有错漏之处 xff0c 非常欢迎给俺提供反馈 有 GitHub 帐号的同学 xff0c
  • UEFI分区的重建办法,不需要额外软件

    如果你的EFI分区还在 只是被破坏需要修复的话 xff0c 执行 bcdboot c windows l cn zh 即可 xff0c c是Windows安装的盘符 xff0c 如果是装机工具启动可能window的分区不是显示的c 如果连E
  • powershell 设置环境变量

    cmd 是用set 导出变量 xff0c 到了powershell中不好使了 xff0c 下面介绍下导出变量的方法 xff0c 比如想设置 ETCDCTL API 61 3 在powershell中执行下面命令就可以了 Env ETCDCT
  • Httpd 服务

    httpd服务 1 httpd服务简介 Apache HTTP Server xff08 简称Apache或httpd xff09 是Apache软件基金会的一个开放源代码的网页服务器软件 xff0c 旨在为unix xff0c windo
  • Lottie—json文件解析

    Lottie主要类图 xff1a Lottie对外通过控件LottieAnimationView暴露接口 xff0c 控制动画 LottieAnimationView继承自ImageView xff0c 通过当前时间绘制canvas显示到界
  • Android中获取应用程序(包)的信息-----PackageManager的使用

    Android系统为我们提供了很多服务管理的类 xff0c 包括ActivityManager PowerManager 电源管理 AudioManager 音频管理 等 除此之外 xff0c 还提供了一个PackageManger管理类
  • Android开发与调试二:串口uart Debug

    安卓智能硬件开发板 xff0c 往往会预留一个 uart口 xff0c 串口的形式打出 log出来 xff0c 便于我们开发的时候 debug 工具 xff1a 1个 FT232的模块 xff08 如下图 xff0c 淘宝有卖 xff09
  • 正则表达式以及Java中的一个正则表达式处理库

    如果你不熟悉这个术语 xff0c 那么 正则表达式 xff08 Regular Expression xff09 就是一个字符构成的串 xff0c 它定义了一个用来搜索匹配字符串的模式 正则表达式30分钟入门教程 常用正则表达式 许多语言
  • Ubuntu包安装问题(E: Broken packages)[2014-01-03更新]

    问题描述 使用apt get安装软件包时不能正确安装 xff0c 出现提示如下 xff1a apt get install libgtk2 0 dev Reading package lists Done Building dependen
  • c#文案语音配图片一键生成视频

    高手略过吧 xff0c 功能太简单 xff0c 我自己都不好意思 这个是我自己的需要 xff0c 做产品类的短视频 xff0c 东搞西搞剪辑啊啥的 xff0c 特别麻烦 xff0c 所以先搞这个最简版 xff0c 以后再一步步丰富功能 需求
  • 操作系统 使用C语言实现生产者和消费者问题

    生产者与消费者问题描述及原理在这里不赘述 xff0c 这是用c语言简单实现了一下 xff0c 加上代码不超过100行 include lt stdio h gt include lt windows h gt define N 10 typ
  • docker配置容器内的systemctl

    span class token builtin class name cd span root span class token function vi span startFrpc sh span class token comment
  • android setting之Settings.system设置

    在开发调试android 系统的Setting时 xff0c 总是会见到以下的代码 span class token class name Settings span class token punctuation span System
  • [851]反反爬--如何巧过CloudFlare 5秒盾

    巧破 Cloudflare 5秒盾 相信下面这个界面大家都不会陌生 图1 1 当我们第一次访问使用 CloudFlare 加速的网站时 xff0c 网站就会出现让我们等待 5 秒种的提示 xff0c 当我们需要的通过爬虫爬取这类网站的时候
  • [513]linux设置开机自启动

    文章目录 自启动方法1自启动方法2方法3 xff1a 在 96 etc rc d init d 96 目录下添加自启动脚本关机要执行的命令 自启动方法1 1 权限编辑 etc rc d rc local cd etc rc d vim rc
  • 个人网页制作(教你制作简单网页)

    我相信很多人或多或少都曾想建立一个个人网站吧 xff0c 或分享生活瞬间 或分享学习心得 或者是分享技术文章 又或者是有其他想法 xff08 打造个人ip 商业变现或是其他 xff09 今天跟大家分享一下一般网站的搭建流程 xff0c 对建
  • 程序员学习能力提升三要素

    IT技术的发展日新月异 xff0c 新技术层出不穷 xff0c 具有良好的学习能力 xff0c 能及时获取新知识 随时补充和丰富自己 xff0c 已成为程序员职业发展的核心竞争力 多年的学习经验总结出了提高程序员学习能力的三个要点 学习人人

随机推荐

  • 基于linux下python的学习(文件操作、模块)

    一 文件操作 操作文件的函数 方法 在python中要操作文件需要记住的1个函数和3个方法 python中一切皆对象 open 打开文件 xff0c 并且返回文件操作对象 read 将文件内容读取到内存 write 将指定内容写入文件 cl
  • 制作Ubuntu 20.04.5 LTS (Focal Fossa)系统U盘的图文教程

    文章目录 前言 一 Ubuntu系统是什么 xff1f 二 下载ubuntu系统 1 打开对应的网站 三 开始制作系统U盘 1 格式化U盘 2 下载刻录软件UltraISO软件 3 用UltraISO软件加载ubuntu20 04 5的系统
  • android:onNewIntent

    本文编写目的 xff1a 供自己查阅 1 通过Intent启到一个Activity的时候 xff0c 就算已经存在一个相同的正在运行的Activity 系统也会创建一个新的Activity实例 为了不让Activity实例化多次 xff0c
  • fedora安装kde桌面

    yum install 64 KDE desktop
  • 怎么让图片在一个正方形div中不变形展示?且超出部分截取(隐藏),且截取图片的中间位置

    divContent width 200px height 200px border 1px solid red overflow hidden divContent img margin 0 padding 0 width 100 hei
  • [并行计算]Matlab并行计算工具箱(Parallel Computing Toolbox)官方文档教程中文版(1)

    Arranged By Zhonglihao 64 2018 请确认Matlab安装时点选了并行计算工具箱 第一章 xff1a parfor循环并行计算 parfor循环介绍 parfor循环是Matlab并行计算工具箱用于并行计算单循环的
  • xquartz Firefox Error: cannot open display: localhost:14.0

    应该是缺少localhost到127 0 0 1的映射 1 export DISPLAY 61 127 0 0 1 14 0 2 firefox OK
  • 百思不得姐之图片处理(保存与下载)

    一 功能图 二 讲解思路 1 回顾上一篇内容 2 创建加载图片类 同时创建xib 3 点击图片查看大图 4 点击查看大图 查看长图 5 model出展示图片的控制器 6 保存图片 7 封装根据网络状态展示不同的图片 三 回顾上一篇内容 1
  • CMake 学习

    目录 CMake学习网站 CMake安装 CMake编译程序 单个源文件的程序编译 在当前目录执行 cmake xff0c 执行结果 执行完成后的文件列表 使用GUN make来编译程序 得到可执行文件 hello 同目录下多源文件程序编译
  • dumpsys meminfo内存详解

    dumpsys meminfo使用方法帮助 adb shell dumpsys meminfo h meminfo dump options a d c s oom process a include all available infor
  • android恢复出厂设置,关机,重启以及系统升级和充电器连接广播

    恢复出厂设置 lt uses permission android name 61 34 android permission MASTER CLEAR 34 gt if Build VERSION SDK INT lt Build VER
  • Cmake系列(三) 在 CMakeLists.txt 引入第三方so库

    将 so 库和头文件拷贝到对应的目录 app src main jniLibs arm libxxx so 修改 CMakeLists txt 文件 第三方so库 这里和之前在第二步中介绍的创建一个新的原生库类似 xff0c 区别在于最后一
  • .net core MemoryCache(本机缓存)过期策略

    过期策略 1 1 永不过期 xff1a 永远不会过期 1 2 设置绝对过期时间点 xff1a 到期后就失效 1 3 设置过期滑动窗口 xff1a 只要在窗口期内访问 xff0c 它的过期时间就一直向后顺延一个窗口长度 1 4 滑动窗口 43
  • Windows asar工具安装使用与破解StarUml

    目录 安装nodejs 使用npm安装asar asar的压缩与解压 破解StarUml windows要破解StarUml xff0c 需要用到asar进行解压与打包 asar可以借助npm来安装 xff0c mac可以用homebrew
  • logcat中 读取垃圾回收消息

    目录 Dalvik 日志消息 ART 日志消息 有时 xff0c 发生垃圾回收事件时 xff0c 相应消息会输出到 Logcat 中 Dalvik 日志消息 在 Dalvik xff08 而不是 ART xff09 中 xff0c 每个 G
  • arm64-v8a、armeabi-v7a、armeabi、x86 abiFilters 详解

    abiFilters的作用 在app的gradle的defaultConfig里面加上如下 ndk abiFilters 34 armeabi v7a 34 指定要ndk需要兼容的架构 这样其他依赖包里mips x86 armeabi ar
  • Linux shell

    目录 shell 脚本 shell 概述 shell 分类 shell 语法 shell 脚本的定义与执行 自定义变量 环境变量 预设变量 脚本变量的特殊用法 条件测试语句 gt 文件 条件测试语句 gt 字符串 条件测试语句 gt 数字
  • Linux > mmap

    目录 mmap 概念 使用 函数声明 mmap 概念 mmap 将 一个文件或者其它对象 映射到 进程的地址空间 实现 磁盘地址 和进程 虚拟的虚拟地址 的一一对应关系 通过mmap 系统调用 xff0c 我们可以 实现共享内存或者普通文件
  • C++ > STL之算法

    目录 函数对象 谓词 一元谓词 二元谓词 内建函数对象 适配器 算法概述 常用遍历算法 for each 遍历算法 transform 算法 常用查找算法 find 算法 find if 算法 adjacent find 算法 binary
  • 性能优化 启动黑白屏优化

    启动黑白屏优化 前言 这是Google设计者为了让用户体会到点击图标后立马就有响应 xff0c 而让App创建的过程中先展示一个空白窗口 正是这个设计 xff0c 我们在点击App应用图标之后 xff0c 会看到一段时间的空白屏幕 xff0