分享优化安卓端从点击app图标到显示启动页需要1 您所在的位置:网站首页 安卓40图标 分享优化安卓端从点击app图标到显示启动页需要1

分享优化安卓端从点击app图标到显示启动页需要1

2024-07-01 12:22| 来源: 网络整理| 查看: 265

这几天开始接触uniapp开发,发现官方demo安卓端点击app图标到显示启动页(Hbuildx图标页)会卡个1-2秒 明显比原生app体验差很多,作为一个强迫症,这点当然是不能忍的。具体问题详情查看以下链接: https://ask.dcloud.net.cn/question/133649

先说下大概为什么卡顿的原因,我也不太明白,我猜是因为启动安卓app时需要启动webview或者weex等底层引擎导致的卡顿。(这个问题望官方的人可以解答一下,我看了PandoraEntry的源码也没有找到答案)

下面说一下优化原理,就是用原生安卓代码先启动一个页面,然后在该页面中再启动uni的主activity(PandoraEntry) 这样,点击app图标后,就跟原生一样会立马显示我们原生开发的第一个页面(而不会卡个1、2秒才显示界面,让人感觉以为自己没点击图标成功)

下面说下流程

一、在AS中新建一个empty activity:菜单file->new->activity->empty activity。 界面xml代码:

没什么东西,就是一个空白页面

java代码如下:

package com.xiefeng; import androidx.appcompat.app.AppCompatActivity; import android.content.Intent; import android.os.Bundle; import com.android.simple.R; import io.dcloud.PandoraEntry; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Thread myThread=new Thread(){//创建子线程,启动uni的主activity @Override public void run() { try{ sleep(1000);//使程序休眠五秒 Intent it=new Intent(MainActivity.this, PandoraEntry.class);//启动MainActivity startActivity(it); finish();//关闭当前活动 }catch (Exception e){ e.printStackTrace(); } } }; myThread.start();//启动线程 } }

二、AndroidManifest.xml修改: 1、在android节点加上主题android:theme="@style/AppTheme2" 2、新增我们自定义的activity并设为main 3、将uni的主activity的main注释掉

完整代码如下:

三、最后在values/styles.xml加上主题:

true shortEdges false #6200EE #6200EE #6200EE

如果要加上自己的启动图片,可以加上节点:@drawable/splash,并把图片放到drawable文件夹下。 建议原生启动图和Hbuildx设置的启动图为同一张,这样两张启动图无缝对接,体验比较好。 (注:加上启动图后启动会更慢个0.1秒不知道为什么,希望大神们解答一下)

完毕。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有