【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);
    }
}


目录
相关文章
|
16天前
|
移动开发 Java Android开发
构建高效Android应用:探究Kotlin与Java的性能差异
【4月更文挑战第3天】在移动开发领域,性能优化一直是开发者关注的焦点。随着Kotlin的兴起,其在Android开发中的地位逐渐上升,但关于其与Java在性能方面的对比,尚无明确共识。本文通过深入分析并结合实际测试数据,探讨了Kotlin与Java在Android平台上的性能表现,揭示了在不同场景下两者的差异及其对应用性能的潜在影响,为开发者在选择编程语言时提供参考依据。
|
1天前
|
缓存 移动开发 Android开发
构建高效Android应用:从优化用户体验到提升性能表现
【4月更文挑战第18天】 在移动开发的世界中,打造一个既快速又流畅的Android应用并非易事。本文深入探讨了如何通过一系列创新的技术策略来提升应用性能和用户体验。我们将从用户界面(UI)设计的简约性原则出发,探索响应式布局和Material Design的实践,再深入剖析后台任务处理、内存管理和电池寿命优化的技巧。此外,文中还将讨论最新的Android Jetpack组件如何帮助开发者更高效地构建高质量的应用。此内容不仅适合经验丰富的开发者深化理解,也适合初学者构建起对Android高效开发的基础认识。
2 0
|
1天前
|
移动开发 Android开发 开发者
构建高效Android应用:采用Kotlin进行内存优化的策略
【4月更文挑战第18天】 在移动开发领域,性能优化一直是开发者关注的焦点。特别是对于Android应用而言,由于设备和版本的多样性,确保应用流畅运行且占用资源少是一大挑战。本文将探讨使用Kotlin语言开发Android应用时,如何通过内存优化来提升应用性能。我们将从减少不必要的对象创建、合理使用数据结构、避免内存泄漏等方面入手,提供实用的代码示例和最佳实践,帮助开发者构建更加高效的Android应用。
5 0
|
3天前
|
缓存 移动开发 Java
构建高效的Android应用:内存优化策略
【4月更文挑战第16天】 在移动开发领域,尤其是针对资源有限的Android设备,内存优化是提升应用性能和用户体验的关键因素。本文将深入探讨Android应用的内存管理机制,分析常见的内存泄漏问题,并提出一系列实用的内存优化技巧。通过这些策略的实施,开发者可以显著减少应用的内存占用,避免不必要的后台服务,以及提高垃圾回收效率,从而延长设备的电池寿命并确保应用的流畅运行。
|
5天前
|
搜索推荐 开发工具 Android开发
安卓即时应用(Instant Apps)开发指南
【4月更文挑战第14天】Android Instant Apps让用户体验部分应用功能而无需完整下载。开发者需将应用拆分成模块,基于已上线的基础应用构建。使用Android Studio的Instant Apps Feature Library定义模块特性,优化代码与资源以减小模块大小,同步管理即时应用和基础应用的版本。经过测试,可发布至Google Play Console,提升用户便利性,创造新获客机会。
|
6天前
|
Java API 调度
安卓多线程和并发处理:提高应用效率
【4月更文挑战第13天】本文探讨了安卓应用中多线程和并发处理的优化方法,包括使用Thread、AsyncTask、Loader、IntentService、JobScheduler、WorkManager以及线程池。此外,还介绍了RxJava和Kotlin协程作为异步编程工具。理解并恰当运用这些技术能提升应用效率,避免UI卡顿,确保良好用户体验。随着安卓技术发展,更高级的异步处理工具将助力开发者构建高性能应用。
|
6天前
|
编解码 人工智能 测试技术
安卓适配性策略:确保应用在不同设备上的兼容性
【4月更文挑战第13天】本文探讨了提升安卓应用兼容性的策略,包括理解平台碎片化、设计响应式UI(使用dp单位,考虑横竖屏)、利用Android SDK的兼容工具(支持库、资源限定符)、编写兼容性代码(运行时权限、设备特性检查)以及优化性能以适应低端设备。适配性是安卓开发的关键,通过这些方法可确保应用在多样化设备上提供一致体验。未来,自动化测试和AI将助力应对设备碎片化挑战。
|
12天前
|
移动开发 API Android开发
构建高效Android应用:探究Kotlin协程的优势与实践
【4月更文挑战第7天】 在移动开发领域,性能优化和应用响应性的提升一直是开发者追求的目标。近年来,Kotlin语言因其简洁性和功能性在Android社区中受到青睐,特别是其对协程(Coroutines)的支持,为编写异步代码和处理并发任务提供了一种更加优雅的解决方案。本文将探讨Kotlin协程在Android开发中的应用,揭示其在提高应用性能和简化代码结构方面的潜在优势,并展示如何在实际项目中实现和优化协程。
|
12天前
|
XML 开发工具 Android开发
构建高效的安卓应用:使用Jetpack Compose优化UI开发
【4月更文挑战第7天】 随着Android开发不断进化,开发者面临着提高应用性能与简化UI构建流程的双重挑战。本文将探讨如何使用Jetpack Compose这一现代UI工具包来优化安卓应用的开发流程,并提升用户界面的流畅性与一致性。通过介绍Jetpack Compose的核心概念、与传统方法的区别以及实际集成步骤,我们旨在提供一种高效且可靠的解决方案,以帮助开发者构建响应迅速且用户体验优良的安卓应用。
|
Android开发 Java API
android性能优化优秀文章
郭霖最近整理的文章: 合理管理内存 分析编码过程中如何避免过多内存占用,以及如何实现高性能的内存使用。 尽可能使用intentService; 当界面不可见时释放内存; 当内存紧张时释放内存; 避免bitmap占用内存; 使用android api提供的数据集合; 减少抽象类的使用; 避免使用依赖注入; 使用proGuard简化代码; 使用多个进程。
790 0