【Android 性能优化】应用启动优化 ( 主题背景图片设置 | 设置透明主题背景 | 设置应用启动主题背景、启动后恢复主题 )

简介: 【Android 性能优化】应用启动优化 ( 主题背景图片设置 | 设置透明主题背景 | 设置应用启动主题背景、启动后恢复主题 )

文章目录

一、 设置图片主题背景

二、 设置透明主题背景

三、 设置应用启动主题背景、启动后恢复主题





一、 设置图片主题背景


设置一个主题背景图片 , 只是将白屏问题掩盖了 , 应用真实启动时间还是很长 ;



1 . 设置背景图片代替白屏 : APP 启动时显示一张默认图片 , 这样用显示图片替代之前的白屏或黑屏 , 在这几秒钟的时间内 , 用户全程看这张图片 , 体验效果要好于黑白屏界面 ;



2 . 主题中添加背景图片 : 在资源目录 res/values/styles.xml , 编辑自定义主题 , 在主题中设置 android:windowBackground 背景图片 ;


<resources>
    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
        <!-- 设置应用启动时默认显示的图片 , 这样比白屏/黑屏体验好一些 -->
        <item name="android:windowBackground">@mipmap/ic_launcher</item>
    </style>
</resources>


3 . 设置该主题 : 将上述 AppTheme 主题 , 设置到 application 应用中 , 在 AndroidManifest.xml 配置文件中的 application 标签中配置 android:theme="@style/AppTheme" 属性 , 上述设置的背景图片即可生效 ;


 

<!--  -->
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>






二、 设置透明主题背景


设置一个透明的主题背景 , 也是将白屏问题掩盖了 , 应用真实启动时间还是很长 , 这种错发有启动延迟的感觉 , 这是因为点击应用图标时 , 应用马上启动了 , 只是显示透明的主题代替了之前的白屏 , 几秒后才显示主界面 , 造成延迟的感官效果 ;



1 . 设置透明背景代替白屏 : APP 启动时显示透明背景 , 这样用透明背景替代之前的白屏或黑屏 , 在这几秒钟的时间内静止直到界面绘制显示 , 除了有启动延迟的影响 , 体验效果要好于黑白屏界面 ;



2 . 主题中添加背景图片 : 在资源目录 res/values/styles.xml , 编辑自定义主题 , 在主题中设置 android:windowIsTranslucent 透明背景为 true ;


<resources>
    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
        <!-- 设置应用启动时默认显示的图片 , 这样比白屏/黑屏体验好一些 -->
        <!--<item name="android:windowBackground">@mipmap/ic_launcher</item>-->
        <!-- 将背景设置成透明的 -->
        <item name="android:windowIsTranslucent">true</item>
    </style>
</resources>



3 . 设置该主题 : 将上述 AppTheme 主题 , 设置到 application 应用中 , 在 AndroidManifest.xml 配置文件中的 application 标签中配置 android:theme="@style/AppTheme" 属性 , 上述设置的背景图片即可生效 ;


<!--  -->
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>




三、 设置应用启动主题背景、启动后恢复主题


1 . 应用主题设置 : 按照如上两种方法 , 设置主题背景图片 , 或设置透明主题背景 , 设置在 application 标签中 , 这是整个应用的主题 , 所有的 Activity 界面都会使用该主题 ;



2 . 启动界面主题设置 : 这里为 Launcher 启动界面设置单独的主题 , 界面启动加载完成之后 , 恢复成应用主题 ;



3 . 定义专门用于应用启动界面的主题资源 : AppTheme.Launcher.Translucent 或 AppTheme.Launcher.Picture 主题是专门设置给 Launcher 界面的 , 仅限于在启动过程中使用 ;


<resources>
    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
        <!-- 设置应用启动时默认显示的图片 , 这样比白屏/黑屏体验好一些 -->
        <!--<item name="android:windowBackground">@mipmap/ic_launcher</item>-->
        <!-- 将背景设置成透明的 -->
        <!--<item name="android:windowIsTranslucent">true</item>-->
    </style>
    <style name="AppTheme.Launcher.Translucent" parent="AppTheme">
        <!-- 将背景设置成透明的 -->
        <item name="android:windowIsTranslucent">true</item>
    </style>
    <style name="AppTheme.Launcher.Picture" parent="AppTheme">
        <!-- 设置应用启动时默认显示的图片 , 这样比白屏/黑屏体验好一些 -->
        <item name="android:windowBackground">@mipmap/ic_launcher</item>
    </style>
</resources>



4 . 为 Activity 界面配置主题 : 在 AndroidManifest.xml 中 , 为应用的启动界面 MainActivity.java 配置主题 , 可以为 MainActivity 设置 AppTheme.Launcher.Translucent 主题 , 也可以设置 AppTheme.Launcher.Picture 主题 ;


<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="kim.hsl.rtmp">
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.RECORD_AUDIO" />
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity
            android:theme="@style/AppTheme.Launcher.Translucent"
            android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>



5 . 主题恢复 : 这个 AppTheme.Launcher 主题仅限在启动的那几秒使用 , 在真正的界面中 , 是不想使用这个主题的 , 因此需要在应用启动界面加载完成后 , 再设置成别的主题 , 这里再 onCreate 方法中设置即可 ;


public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        /*
            此时应用首界面启动完成, 将主题恢复成其它主题
            此处也可以根据不同的设置, 为应用设置不同的主题
         */
        setTheme(R.style.AppTheme);
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}


目录
打赏
0
0
0
0
39
分享
相关文章
Termux安卓终端美化与开发实战:从下载到插件优化,小白也能玩转Linux
Termux是一款安卓平台上的开源终端模拟器,支持apt包管理、SSH连接及Python/Node.js/C++开发环境搭建,被誉为“手机上的Linux系统”。其特点包括零ROOT权限、跨平台开发和强大扩展性。本文详细介绍其安装准备、基础与高级环境配置、必备插件推荐、常见问题解决方法以及延伸学习资源,帮助用户充分利用Termux进行开发与学习。适用于Android 7+设备,原创内容转载请注明来源。
298 76
Android经典面试题之图片Bitmap怎么做优化
本文介绍了图片相关的内存优化方法,包括分辨率适配、图片压缩与缓存。文中详细讲解了如何根据不同分辨率放置图片资源,避免图片拉伸变形;并通过示例代码展示了使用`BitmapFactory.Options`进行图片压缩的具体步骤。此外,还介绍了Glide等第三方库如何利用LRU算法实现高效图片缓存。
120 20
Android经典面试题之图片Bitmap怎么做优化
构建高效Android应用:探究Kotlin多线程优化策略
【10月更文挑战第11天】本文探讨了如何在Kotlin中实现高效的多线程方案,特别是在Android应用开发中。通过介绍Kotlin协程的基础知识、异步数据加载的实际案例,以及合理使用不同调度器的方法,帮助开发者提升应用性能和用户体验。
117 4
深入探索iOS与Android系统的差异性及优化策略
在当今数字化时代,移动操作系统的竞争尤为激烈,其中iOS和Android作为市场上的两大巨头,各自拥有庞大的用户基础和独特的技术特点。本文旨在通过对比分析iOS与Android的核心差异,探讨各自的优势与局限,并提出针对性的优化策略,以期为用户提供更优质的使用体验和为开发者提供有价值的参考。
安卓应用开发中的线程管理优化技巧
【9月更文挑战第10天】在安卓开发的海洋里,线程管理犹如航行的风帆,掌握好它,能让应用乘风破浪,反之则可能遭遇性能的暗礁。本文将通过浅显易懂的语言和生动的比喻,带你探索如何优雅地处理安卓中的线程问题,从基础的线程创建到高级的线程池运用,让你的应用运行更加流畅。
安卓应用开发中的内存管理优化技巧
在安卓开发的广阔天地里,内存管理是一块让开发者既爱又恨的领域。它如同一位严苛的考官,时刻考验着开发者的智慧与耐心。然而,只要我们掌握了正确的优化技巧,就能够驯服这位考官,让我们的应用在性能和用户体验上更上一层楼。本文将带你走进内存管理的迷宫,用通俗易懂的语言解读那些看似复杂的优化策略,让你的开发之路更加顺畅。
134 2
|
7月前
|
Android经典实战之Textview文字设置不同颜色、下划线、加粗、超链接等效果
本文介绍了 `SpannableString` 在 Android 开发中的强大功能,包括如何在单个字符串中应用多种样式,如颜色、字体大小、风格等,并提供了详细代码示例,展示如何设置文本颜色、添加点击事件等,助你实现丰富文本效果。
478 3
深入解析Android应用开发中的高效内存管理策略在移动应用开发领域,Android平台因其开放性和灵活性备受开发者青睐。然而,随之而来的是内存管理的复杂性,这对开发者提出了更高的要求。高效的内存管理不仅能够提升应用的性能,还能有效避免因内存泄漏导致的应用崩溃。本文将探讨Android应用开发中的内存管理问题,并提供一系列实用的优化策略,帮助开发者打造更稳定、更高效的应用。
在Android开发中,内存管理是一个绕不开的话题。良好的内存管理机制不仅可以提高应用的运行效率,还能有效预防内存泄漏和过度消耗,从而延长电池寿命并提升用户体验。本文从Android内存管理的基本原理出发,详细讨论了几种常见的内存管理技巧,包括内存泄漏的检测与修复、内存分配与回收的优化方法,以及如何通过合理的编程习惯减少内存开销。通过对这些内容的阐述,旨在为Android开发者提供一套系统化的内存优化指南,助力开发出更加流畅稳定的应用。
152 0
从Unity开发到移动平台制胜攻略:全面解析iOS与Android应用发布流程,助你轻松掌握跨平台发布技巧,打造爆款手游不是梦——性能优化、广告集成与内购设置全包含
【8月更文挑战第31天】本书详细介绍了如何在Unity中设置项目以适应移动设备,涵盖性能优化、集成广告及内购功能等关键步骤。通过具体示例和代码片段,指导读者完成iOS和Android应用的打包与发布,确保应用顺利上线并获得成功。无论是性能调整还是平台特定的操作,本书均提供了全面的解决方案。
265 0

热门文章

最新文章

下一篇
oss创建bucket
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等