文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Android优化之启动页去黑屏实现秒启动

2022-06-06 07:56

关注

前言

还记得之前我们写了一篇文章,基于RxJava实现酷炫启动页,然而当我们点击桌面图标启动APP时,有时会闪一下黑色背景,有时黑色背景时间还比较长,哎呀,难看死了,这个怎么办捏,别方,我们今天就来看看启动页的优化。

一、消除启动时的黑屏

点击桌面launcher图标启动APP,闪现的黑色背景其实是出现在我们看到界面第一帧之前。那我们就要想办法让这个黑色的背景变成用户喜欢看到的画面或者让它透明化。有了思路方法也就粗现了,我们有下面两种方案:

自定义WelcomActivity的Theme

说白了,就是把出现的黑屏通过android:windowBackground属性设置为我们想要的背景。

1.在Style.xml中定义如下style


<style name="WelcomeStyle" parent="android:Theme">    
  <item name="android:windowBackground">@drawable/welcome_bg</item>  
  <item name="android:windowNoTitle">true</item>  
</style>

其中welcome_bg可以是我们APP的Logo背景。

2.在manifest文件中配置WelcomeActivity


<activity      
   android:theme="@style/WelcomeStyle" 
   android:name=".Activity.WelcomeActivity" >    
</activity>

使用透明主题android:Theme.Translucent.NoTitleBar.Fullscreen

使用透明主题,点图标后在桌面上要等上那么一小会儿,然后是整个界面才会一下子显示出来,让人误以为慢的是桌面launcher而不是应用(呜呜,手机厂商表示这个锅我不背)。是不是觉得很有小心思呢?其实微信也是这么用的,不行你点微信试试~~

1.在Style.xml中定义如下style


<style 
   name="Appwelcome" 
   parent="android:Theme.Translucent.NoTitleBar.Fullscreen">
</style>

2.在manifest文件中配置WelcomeActivity


<activity      
   android:theme="@style/Appwelcome" 
   android:name=".Activity.WelcomeActivity" >    
</activity>

好了,就这么简单,现在我们来看看第二种方法的效果:

是不是没有黑色背景闪现了呢,确实是昂。其实我们还能优化,让启动更快,请继续看。

二、启动优化,让APP秒开

优化Application

从用户点击launcher图标到看到界面第一帧为应用启动过程,主要会经过以下这些方法:


main()->Application:attachBaseContext()->onCreate()->Activity:onCreate()->onStart()->onResume()

main->Activity
创建的这个过程会经过一系列framework层的操作,对于系统自动执行的操作我们不易进行优化,但是,如果我们继承Application自定义了自己的Application,可以做如下优化:

     1.尽量不将一些业务逻辑放于Application中;

     2.不以静态变量的方式在Application中保存应用数据;

     3.不要把文件、数据库的操作放在Application

优化启动页Activity

启动页尽量不要网络请求等耗时操作。如果使用了请求网络等操作在适当的时候应该及时取消的耗时操作。例如,某些时候,当用户点击了launcher图标,但马上又想退出点击了返回键,过了几秒钟用户在使用其他APP,突然跳转到我们的APP那就用户体验感很不好了。所以可以在返回事件中取消掉耗时操作


@Override 
public void onBackPressed() { 
super.onBackPressed(); 
....                //在这里取消的耗时操作
}

或者也可以流氓一些,直接在启动页Activity重写

onKeyDown()
方法,首先判断用户按下的是否是返回按键,若是的话则直接返回true,这样就屏蔽了返回按键的后续执行逻辑达到了禁止用户返回操作的目的,看代码


@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
   if (keyCode == KeyEvent.KEYCODE_BACK) {
       return true; 
   } 
   return super.onKeyDown(keyCode, event); 
}

就这样,本文内容到这就结束了,大家有更好的优化技巧欢迎留言交流学习,希望本文对大家开发Android有所帮助。

您可能感兴趣的文章:Android项目实战教程之高仿网易云音乐启动页实例代码Android启动页出现白屏、黑屏的解决方案Android启动页解决方案(推荐)Android启动页广告(腾讯广告联盟)解决方法及源码下载Android启动页面定时跳转的三种方法Android开发之开发者头条(一)启动页实现Android启动引导页使用ViewPager实现Android实现过渡动画、引导页 Android判断是否第一次启动AppAndroid开发实战之漂亮的ViewPager引导页Android控件ViewPager实现带有动画的引导页Android开发实现的ViewPager引导页功能(动态加载指示器)详解Android实现渐变启动页和带有指示器的引导页


阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-移动开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯