UniAPP点击APP图标后不立即显示(有延时)的解决方案

前两天用UniApp打包了个安卓app, 测试下来基本没什么问题, 唯独一个小问题很让人恼火: 点击App图标后有延迟, 不会立即显示, 要在桌面"卡"一会儿.

尝试了很多方案(改启动页, fast, nvue),都没有什么效果. 正好最近在学习原生安卓开发, 看到了APP冷启动的流程,意外发现了解决方案**(刚开始学安卓, 可能有不对的地方, 请在评论区指正)**

1. "卡"一下的原因

​ 起初, 安卓APP冷启动的流程大概是这样:

1. 点击图标

2. 后台创建进程

3. 初始化Application

4. 启动Activity

5. 绘制UI(此时才开始显示启动页)

可以看到, 从点击图标到显示启动页, 中间还有很多步骤, 而这些步骤势必要消耗很多时间, 导致点击图标后"卡"在桌面上. 安卓为了解决这个问题, 在创建进程的同时显示了一个简单的页面(默认为白/黑屏, 可以自定义. 后面统称为 Preview), 让用户知道已经点到图标, APP在启动了.

因为2-4步需要的时长很大程度上取决于手机的硬件配置, 所以将这段时间显示为白屏又导致了另一个问题: 用户会认为白屏是APP优化很差造成的(有可能真很差), 开发者面子不保

所以很多开发者会选择将Preview设置成透明色(Preview是不能关掉的), 点击图标后屏幕依然显示为桌面, 从而将APP优化差甩锅给手机配置低(很多大厂的APP都采用了这种方案,例如微信支付宝).

讲到这里, 你应该也猜到了, Uniapp启动时"卡"一下, 正是因为它们也采用了这种"优化"方案.(但是uniapp的Preview时间基本是固定的, 更APP性能, 大小几乎没有关系, 这就导致很多小APP也需要很长的等待时间, 严重影响用户体验)

如果你手机里的软件足够多, 应该会发现许多APP没有"甩锅", 也没有"白屏", 却能实现秒开(其实市面上大部分APP等候可以做到). 是因为它们的APP性能很好么?

然而并不是. 上面提到了, Preview是可以自定义的, 可以设置为图片/xml/纯色, 只是安卓默认是白/黑色. 大部分APP都对Preview进行了自定义, 将其设置为和APP启动页一样的画面, 从而既保住了面子, 又不用费工夫去做优化(你如果仔细看的话, 会发现很多app的启动页会好端端突然"闪"一下, 就是因为画面从Preview切换到了启动页, 两者虽然内容一致, 但无法避免切换时闪屏).

​ 所以, 只要将Uniapp默认的透明Preview改成别的东西(启动图之类), 就可以解决点击延迟了.

2. 解决方案

​ (传图片好麻烦,我直接打字吧)

  1. 点击

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值