二、启动优化 直奔主题,常见的启动优化方式大概有这些: 闪屏页优化 MultipDex优化(本文重点) 第三方库懒加载 WebView优化 线程优化 系统调用优化 2.1 闪屏页优化 消除启动时的白屏/...**文章开头说过应用的启动流程,ContentProvider 初始化时机如下图: [image] ContentProvider初始化太早了,如果不在主dex中,还没启动闪屏页就已经crash了。...所以这种方案的缺点很明显: MultiDex加载逻辑放在闪屏页的话,闪屏页中引用到的类都要配置在主dex。...主进程Application 的 attachBaseContext 进入while代码块,定时轮循临时文件是否被删除,如果被删除,说明MultiDex已经执行完,则跳出循环,继续正常的应用启动流程。...总结一下这篇文章主要涉及到哪些内容: 应用启动流程 闪屏页优化 MultiDex 原理分析 ClassLoader 加载一个类的流程分析 热修复原理 MultiDex优化: 介绍了两种方式,一种是直接在闪屏页开个子线程去加载
软件介绍: 分身有术Pro是一款应用多开神器,不需要Root手机也可以实现多开; 有分身美化、无痕安装、红包助手等功能; 有分身锁、备份与恢复、清理加速等实用功能; 手机号登录即可使用!...更新日志: 2022.04.17 v3.49.0 1、解决“伊对”分身应用某些操作下闪退问题; 2、解决“陌陌”分身应用闪退问题; 3、解决“京东”分身应用搜索闪退问题; 4、解决“抖音”分身应用登录闪退问题...2021.12.08 v3.48.0 1、解决“中油好客e站”分身启动重新登录问题; 2、解决“优购心选”分身打开失败问题; 3、本地应用卸载后,启动对应分身功能优化; 4、解决其他已知bug。...最近更新: - 兼容Android 12 - 增加品牌体验的机型 - 适配宽屏设备(平板) - 深度模拟机型,默认保存上次使用参数 - 品牌体验深度模拟增加参数导入导出功能; 下载信息
闪屏页简介 闪屏页,我们手机上的每个 APP 几乎都有自己的闪屏页,就是在真正进入程序前,会有一个页面停顿几秒钟。其实我们完全可以充分利用好这几秒钟做很多的程序初始化了启动。...,并且有很多的初始化放到了 Application 中去完成了,那么这个时候刚打开程序的时候就会有个耗时,就会出现白屏的效果。...作用就是告诉用户,系统已经收到我们的操作了,正在对程序进行初始化,只要初始化完毕后就会移除这个窗口。...黑屏就是应用了 @android:style/Theme.Black,好了到这里我们就彻底明白为什么会出现白屏或者黑屏了。...splash android:windwoFullscreen">true 设置的这个背景要和我的启动页搭配起来就行了!
因为现在 App 应用启动都会先进入一个闪屏页(LaunchActivity) 来展示应用信息。...> [70] (无白屏,不过从点击到App仍然存在视觉延迟~) 设置闪屏图片主题 为了更顺滑无缝衔接我们的闪屏页,可以在启动 Activity 的 Theme中设置闪屏页图片,这样启动窗口的图片就会是闪屏页图片...2000ms - diffTime. } 所以就可以动态的设置应用闪屏的显示时间,尽量让每一部手机展示的时间一致,这样就不会让手机配置较低的用户感觉漫长难熬的闪屏页时间(例如初始化了2000ms...另外因为在闪屏页中仍然有剩余展示时间,所以在这个时间段里如果用户已经下载好了图片并且图片完整,就可以显示广告页。...应用信息也可以作为维度来聚合,比如正在打开的链接、正在播放的视频、国家、地区等。 找到了共性,可以对你下一步复现问题有更明确的指引。
应用程序无响应。那么一般什么时候会出现ANR。Android官方规定:activity如果5s内无响应事件(屏幕触摸事件或者键盘输入事件)。...应用发生冷启动时,系统一定会执行下面的三个任务: 开始加载并启动应用 应用启动后,显示一个空白的启动窗口(启动闪屏页) 创建应用信息 那么创建应用信息,系统就需要做一屁股的事: application的初始化...但启动时,系统依然会展示闪屏页,直到第一个 Activity 的内容呈现为止。 热启动 相比暖启动,热启动时应用做的工作更少,启动时间更短。...但是一般项目都会有闪屏页。然后从闪屏跳转到首页。我们可以按照大多数的项目来改善。怎么说的,我们可以看到一般项目都有倒计时显示。也就是说倒计时结束就自动进入首页。或者可以直接跳过进入首页。...我们还可以这样,闪屏页我们把他当作一个fragment嵌套在MainActivity中,那么我们可以在进入闪屏时直接预加载主页的view。倒计时我们把闪屏页remove掉直接显示首页。
App Launch time 101 提高程序的启动速度意义重大,很显然,启动时间越短,用户才越有耐心等待打开这个APP进行使用,反之启动时间越长,用户则越有可能来不及等到APP打开就已经切换到其他APP...App Launch Time & Theme Launch Screens 启动闪屏不仅仅可以作为品牌宣传页,还能够减轻用户对启动耗时的感知,但是如果使用不恰当,将适得其反。...如果程序的启动速度足够快,我们看的闪屏窗口停留显示的时间则会很短,但是当程序启动速度偏慢的时候,这个启动闪屏可以一定程度上减轻用户等待的焦虑感,避免用户过于轻易的关闭应用。...对于启动闪屏,正确的使用方法是自定义一张图片,把这张图片通过设置主题的方式显示为启动闪屏,代码执行到主页面的onCreate的时候设置为程序正常的主题。 5....作者简介: 胡凯,腾讯 Android 工程师,热爱开源与分享,维护 Android 官方培训课程协作项目,关注 Android 应用性能优化的总结与分享,推崇 Android 官方最佳实践。
为保障用户的使用体验,应用市场已在3月启动Android P版本应用适配检测工作, 针对未做适配的应用开发者陆续进行邮件通知。...中application节点下设置android:resizeableActivity=”true” 或者在AndroidManifest.xml中application中设置 刘海屏 有刘海屏真机的同学可以跳过这部分...,首先在设置中打开“开发者选项”,找到“绘图”,找到“模拟具有凹口的显示屏”,选择“长型显示屏凹口”。...第三张图是开启一个应用的闪屏页没有适配刘海屏的高度时候的样子,顶部出现了黑色区域。这个黑色区域是因为刘海缺口导致的整个界面整体向下移。...因为我们的闪屏页一般都是会全屏显示,那我们就需要适配刘海屏上的全屏样式了。 坐好了,我开始吹一波了。
场景就类似你打开微信聊了一会天这时候出去看了下日历 在打开微信 微信这时候启动就属于冷启动。...Android APP启动时会出现白屏 由于应用程序启动时冷启动,系统会默认在启动时启动空白窗口 应用程序启动有三种状态,每种状态都会影响应用程序对用户可见所需的时间:冷启动,热启动和温启动。...;/item> </style> 设置闪屏图片主题 为了更顺滑无缝衔接我们的闪屏页,可以在启动 Activity 的 Theme中设置闪屏页图片,这样启动窗口的图片就会是闪屏页图片...:windowBackground">@mipmap/launch</item> //闪屏页图片 <item name="android:windowFullscreen...2000ms - diffTime. } 所以我们就可以动态的设置应用闪屏的显示时间,尽量让每一部手机展示的时间一致,这样就不会让手机配置较低的用户感觉漫长难熬的闪屏页时间(例如初始化了2000ms
,应用解析 (系统) 预览窗口显示(根据Theme属性创建,如果Theme中指定为透明,看到的仍然是桌面) (应用) Application创建, 闪屏页/启动页 Activity创建(一系列的inflateView...为启动页/闪屏页Activity设置theme <activity android:name=".splash.SplashActivity" android:screenOrientation...闪屏优化: 预览闪屏(今日头条),预览窗口实现成闪屏效果,高端机上体验非常好,不过低端机上会拉长总的闪屏时长(建议在Android6.0以上才启用此方案); //优点:避免点击桌面图标无响应 //缺点...为启动页/闪屏页Activity设置theme <activity android:name=".splash.SplashActivity" android:screenOrientation...主进程Application 的 attachBaseContext 进入while代码块,定时轮循临时文件是否被删除,如果被删除,说明MultiDex已经执行完,则跳出循环,继续正常的应用启动流程。
众所周知,Android在6.0版本后将权限修改成了动态权限,而iOS则一直使用的是动态权限,所以在Flutter应用开发中如果涉及到一些危险权限,就需要进行动态申请,动态申请权限可以使用Flutter...PermissionGroup.contacts); 下面是一个完整的示例: ///请求权限 void _requestPermission() async { debugPrint("进入闪屏页面...PermissionStatus.granted) { debugPrint("校验权限:用户都同意了"); //用户都同意了(用&&) ///权限都申请成功初始化闪屏...Permission.camera.isDenied|isGranted等 下面是详细的使用示例: ///请求权限 void _requestPermission() async { debugPrint("进入闪屏页面...Permission.camera.isGranted) { debugPrint("校验权限:用户都同意了"); //用户都同意了(用&&) ///权限都申请成功初始化闪屏
在 Windows 上系统自带了投屏功能,然而 deepin 也有 深度演示助手 ,不过我并没有在系统中找到。论坛中的反响都是在 15 版本,现在已经是 20.2 了。...寻找到了一个叫 QTScrcpy 的应用,可以连接手机并实现实时的控制,这比投屏的功能还要强大一点,更重要的是延迟很低、并且是原生的,很轻量。便到深度商店下载使用,根据说明进行连接。...最后启动服务的时候就闪了一下没了。自觉是商店的软件打包又出问题了,就来到了星火商店下载重新下载并使用,发现依然如上次一样一闪而过。 最终直接使用 Cli 应用来启动这个服务,github仓库地址 。...=/usr/lib/android-sdk # 该路径为 Android SDK的路径 export PATH=$PATH:$ANDROID_SDK_ROOT 编译服务,如果编译失败可以下载编译好的预编译服务.../run x 启动服务。 ? ? 安装到系统 如果不想每次都进入路径使用命令,可以直接安装到系统中,或者直接设置一个别名。
在技术社区突然看到已经有比较成熟的「小程序转 App」工具后,便有了把现有小程序直接通过工具转为 App 的念头。...* 144, 192* 192 尺寸图标2、 启动闪屏配置这里是启动 App 的闪屏画面配置,根据提示上传相应尺寸的图片即可。...2、查看云打包进展打开 查看云打包进展,当前的云打包任务的进展现实编译成功,即可选择下载链接下载应用。下载后的即为可直接上传应用商店的安装包,整个小程序转 App 的过程也结束了。...结束语我个人认为这种小程序转 App 的模式非常友好,能够让已经有成熟小程序的开发者在无需掌握原生技术的情况下快速的就生成 App。...也看下官网的产品介绍写到,由于生成的 App 中运行的小程序是在 FinClip 上面跑,会对小程序的调用次数有一定限制,每月1万次的免费额度,如果后续如果每月的调用次数超过1万次,也可以购买39元50
首先科普一下关于APP冷热启动的区别: app冷启动: 当应用启动时,后台没有该应用的进程,这时系统会重新创建一个新的进程分配给该应用, 这个启动方式就叫做冷启动(后台不存在该应用进程)。...app热启动: 当应用已经被打开, 但是被按下返回键、Home键等按键时回到桌面或者是其他程序的时候,再重新打开该app时, 这个方式叫做热启动(后台已经存在该应用进程)。...其次就是关于冷启动出现的白屏解决问题,排除是代码的逻辑繁琐产生的启动白屏或是黑屏问题(可以在启动页设置一个图片,当启动完图片的时候会不会出现黑屏或者是白屏来判断是不是代码的逻辑问题,具体设置方法在底文给出...在android studio 2.0.0 之后instant run 中的 开发阶段会出现白屏,不过不要担心,这算是as 的一个副作用, release版本就不会出现这种情况了。...如果有的话, 那么就可以设置: 在style.xml文件中为启动的Activity设置主题,设置android:windowBackground属性为启动Activity显示的闪屏图片,这样才有APP
偶然一次机会,在技术社区看到已经有比较成熟的「小程序转 App」工具后,便有了把现有小程序直接通过工具转为 App 的念头。...二、App 配置 打开FinClip IDE工具,然后我们需要根据Appp打包规则,配置包括logo、开屏动画和权限等内容。打开 App 配置窗口,如下图所示。...192* 192 尺寸图标 闪屏配置 接下来,是闪屏配置,也即是启动 App 的闪屏画面配置,只需要根据提示上传相应尺寸的图片即可。...目前 iOS 与 Android 均只支持一条 URL Scheme 配置。 权限配置 当需要将 App 上架至应用商店时,需要先行配置其中的使用权限。...#1. iOS 工程配置 #,如果对应用上架流程还不是很清楚的,也可以参考:应用上架流程指引。
Android应用运行在后台的时候,经常被系统的LowMemoryKiller杀掉,当用户再次点击icon或者从最近的任务列表启动的时候,进程会被重建,并且恢复被杀之前的现场。什么意思呢?...其实很简单,直接吊起闪屏页就可以了,不过这里有一点要注意的是,在启动闪屏页面的时候,必须要设置其IntentFlag:Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_CLEAR_TASK...举个例子,最常见的就是闪屏之后跳转主界面,主界面经常有router逻辑,并且其启动模式一般都是singleTask,处理一些推送,所以其onCreate跟onNewIntent都有相应的处理,如果不设置...如果APP被杀,这个时候,希望先跳转主界面,再跳转目标页面,在效果上来看就是,用户先看到目标页面,点击返回的时候再看到主界面,如果加上闪屏,希望达到的效果是先看到闪屏、点击返回看到目标页,再点击返回看到主页面...作者:看书的小蜗牛 原文链接:被后台杀死后,Android应用如何重新走闪屏逻辑 仅供参考,欢迎指正
涉及到的有以下这些点: 闪屏页 自定义布局 下拉刷新 上拉加载更多 使用Assets 路由(页面跳转) 内嵌WebView 闪屏页 由于启动Flutter app的时候需要初始化Flutter...所以开发Flutter app的时候都需要加一个闪屏页。给Android平台上跑的Flutter app加闪屏页其实是和给一个正常的Android app加闪屏页是一样的。...那段注释的大概意思是说这个标签是用来表示让Flutter在启动过程中保持闪屏页直到第一帧画面被绘制出来。也就是说,闪屏页的隐藏不需要我们来处理了。 接下来看看这个LaunchTheme: ?...LaunchTheme 可见就定义了一个窗口的背景了,也就是我们的闪屏页本尊了,这里你可以把这个drawable改成你自己的闪屏页图片也OK。 至于ios平台的闪屏页怎么弄,可以参考这里。...自定义布局 我们都知道,在Android中,如果系统提供的布局控件不能满足我们的需求,我们会自定义布局控件来实现。Flutter同样的也提供自定义布局控件的功能。
三、热启动 定义:当应用已经被打开,但是被按下返回键、Home键等按键时回到桌面或其他程序,再重新打开该应用时,这种启动方式叫做热启动。此时程序仍然驻留在内存中,只是被系统从后台带到前台。...四、首屏启动 定义:首屏启动是指应用程序在启动后显示其主屏幕或用户首次看到的屏幕(即首屏)所需的时间 场景: 新用户首次使用:当用户首次下载并安装应用程序时,他们会看到应用程序的首屏启动。...这是用户了解应用程序、形成第一印象的重要时刻。 老用户重新打开:对于已经使用过应用程序的用户来说,他们可能会在某个时间点重新打开应用程序。...此时,首屏启动同样重要,因为它决定了用户能否快速进入应用程序并继续之前的操作或探索新的功能。 应用程序更新后:当应用程序进行更新或升级后,用户再次打开应用程序时也会看到首屏启动。...这是应用程序向用户展示新版本特性或变化的机会。 特点:首屏启动是应用程序与用户进行交互的起点。如果首屏启动时间过长,用户可能会感到不耐烦或失去兴趣,从而导致用户流失或卸载应用程序。
被打开时,PWA 会展示一个有吸引力的闪屏。chrome 提供了可选选项,可以使 PWA 得到全屏体验。...如果找到,则删除该Cache 条目,并且返回一个resolve为true的Promise对象;如果未找到,则返回一个resolve为false的Promise对象。...由于 Service Worker 限制了使用 HTTPS 地址, 在 Android Chrome 打开需要借助 ngrok 生成的 HTTPS 地址, 这样才能把 demo 添加到首屏。...)与添加到主屏幕 Web App Manifest 是一个 JSON 格式的文件用来描述应用相关的信息,目的是提供将应用添加至桌面的功能: 能够将你浏览的网页添加到你的手机屏幕上 在 Android 上能够全屏启动...,不显示地址栏 ( 由于 Iphone 手机的浏览器是 Safari ,所以不支持哦) 控制屏幕 横屏 / 竖屏 展示 定义启动画面 可以设置你的应用启动是从主屏幕启动还是从 URL 启动 可以设置你添加屏幕上的应用程序图标
Linux是开源高效率平台,Android拥有最多数量的应用。 如果两者能结合起来,也许能给你眼前一亮的感觉。 而这个尝试一直都在人在努力着。...Linux平台上直接运行Android应用 先更新系统再安装 安装完成后打开,主界面就是一个应用商城,内置了日历、计算器、电子邮件和时钟,这4个应用。 ?...Linux平台上直接运行Android应用 默认自带的app 可以直接打开,或者使用鼠标右键选择横屏启动或者竖屏启动。 第一次打开app会比较慢,估计是先启动模拟器吧。...2.CPU和内存使用率很低,基本上等同于Linux上直接运行Android APP。 3.可以选择横屏或者竖屏运行APP,可以Linux直接启动APP。 4.用户空间和Linux主机是隔离开的。...3.还是挺多应用,经常发生卡顿,遮挡,闪退等问题。 ? Linux平台上直接运行Android应用 开机第一次启动较慢 ? Linux平台上直接运行Android应用 和Android体验一致 ?
领取专属 10元无门槛券
手把手带您无忧上云