首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android 性能优化—— 启动优化提升60%

:当启动应用时,后台没有该应用的进程,这时系统会重新创建一个新的进程分配给该应用,这个启动方式就是冷启动 2.热启动:当启动应用时,后台已有该应用的进程(例:按back键、home键,应用虽然会退出,...但是该应用的进程是依然会保留在后台,可进入任务列表查看),所以在已有进程的情况下,这种启动会从已有的进程中来启动应用,这个方式叫热启动 在冷启动时,应用程序从头开始。...2.启动主线程(main thread) 3.填充加载布局Views 4.在屏幕上执行View的绘制过程.measure -> layout -> draw 应用程序进程完成第一次绘制后,系统进程会交换当前显示的背景窗口...此时,用户可以开始使用该应用程序 因为App应用进程的创建过程是由手机的软硬件决定的,所以我们只能在这个创建过程中视觉优化 启动主题优化 所谓的主题优化,就是应用程序在冷启动的时候(1~2阶段),设置启动窗口的主题...或者是其它异步下载操作 在广告页图片 文件流完全写入后 记录图片大小,或者记录一个标识 在下次的广告页加载中可以判断是否已经下载好了广告页图片以及图片是否完整,否则删除并且再次下载图片 另外因为在闪屏页中仍然有

2K20

APP测试面试题汇总

5.push测试:Android点击home键,程序后台运行时,此时接收到push,点击后唤醒应用,此时是否可以正确跳转;IOS点击home键关闭程序和屏幕锁屏的情况(红点的显示)。...adb daemon(守护进程):运行在Android设备上的adb后台进程。 二、进阶篇 1、介绍一下Android四大组件?...一个应用程序可以包含许多活动,比如事件的点击,一般都会触发一个新的Activity。...当某个应用程序进程被杀掉后,所有依赖于该进程的服务也会停止运行(正在听音乐,然后把音乐程序退出)。 2、Activity生命周期?...如果一个活动在处于停止或者暂停的状态下,系统内存缺乏时会将其结束(finish)或者杀死(kill)。

2K31
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    保证EC后台允许运行

    可能会杀死进程,可以在EC系统设置中设定重启自动运行脚本弥补该问题 以下的操作可能会帮助你 禁用应用的电池优化 确保Android设置->应用程序->任务器->电池->后台活动选项已启用(此设置可能位于不同原始设备制造商的其他位置...确保禁用任何“省电”应用程序,如Greenify等 在Sasmung设备上,进入Android设置->设备维护->电池->未监控的应用程序->添加EC和所有自动应用程序 在小米设备上,启用应用程序的“自动启动...”和“其他权限”下的“锁屏显示” 在小米设备上,禁用应用程序的自动备份,因为这个过程会杀死所有正在运行的应用程序,包括EC。...在华为设备上,单击“最近”菜单中EC的锁定 在华为设备上,在EC的电池设置中手动管理电池优化 在华为设备上,禁用Powergenie,它可以阻止应用程序在后台运行。...尝试进入设置->电池,然后点击右上角的齿轮。禁用“关闭过度耗电的应用程序”。

    35130

    Activity 的 36 大难点,你会几个?「建议收藏」

    ) 掉 递归退出 就调用 finish() 方法 把当前的 Activity 退出 在打开新的 Activity 时使用 startActivityForResult , 然后自己加标志, 在 onActivityResult...这个经常使用于系统中的应用,比如 Launch 、锁屏键的应用等等,整个系统中仅仅有一个!所以在我们的应用中一般不会用到。了解就可以。 举例:比方 A Activity 是该模式,启动 A 后。...一般地有很多后台进程运行着,因此它们保持在一个 LRU( least recently used ,即最近最少使用,如果您学过操作系统的话会觉得它很熟悉,跟内存的页面置换算法 LRU 一样)列表以确保最近使用最多的活动的进程最后被杀...系统进程杀死这些进程,以在进程 cache 和潜在的内核 cache 之间平衡整个系统资源。 android 进程的回收顺序从先到后分别是:空进程,后台进程,服务进程,可见进程,前台进程。...5.6.2 用户行为 用户可以选择让程序继续运行,也可以让程序停止运行。 他们在使用你的应用程序时,并不希望每次都要处理这个对话框。

    79420

    应用保活终极总结(二):Android6.0及以上的保活实践(进程防杀篇)

    接下来,我们需要了解下Android系统回收内存中的进程所依据的规则: 进程在内存中时活动主要有五种状态:即前台进程、可见进程、服务进程、后台进程、空进程,这几种状态的进程优先级由高到低,oom_adj...当"咕咚"处于停止状态,退到后台,锁屏进入黑屏状态,等待5分钟,进程死亡,通知栏被清除; b. 当"咕咚"处于运动进行状态,退到后台,锁屏进入黑屏状态,然后再进入系统,“咕咚”跑步界面自动弹出。...再次锁屏,等待20分钟,进程没有被杀死,"咕咚"跑步界面自动弹出,运动状态保持不变; c. 当"咕咚"处于运动暂停状态,退到后台,锁屏进入黑屏状态,然后再进入系统,"咕咚"跑步界面自动弹出。再次锁屏。...运行在名为“com.jiangdg.keepappalive:daemon_service”进程中;android:enabled属性的作用是Android系统是否实例化应用程序中的组件;android...对象,然后为其设置相关属性,比如窗体的大小、位置、坐标等,来达到所需的"1像素"界面效果。

    4.2K21

    App 启动优化

    Android APP启动时会出现白屏 由于应用程序启动时冷启动,系统会默认在启动时启动空白窗口 应用程序启动有三种状态,每种状态都会影响应用程序对用户可见所需的时间:冷启动,热启动和温启动。...在冷启动时,应用程序从头开始。在其他状态下,系统需要将正在运行的应用程序从后台运行到前台。我们建议您始终根据冷启动的假设进行优化。这样做也可以改善热启动和温启动的性能。...在冷启动开始时,系统有三个任务。这些任务是: - 加载并启动应用程序。 - 启动后立即显示应用程序空白的启动窗口。 - 创建应用程序进程。...- 填充加载布局Views - 在屏幕上执行View的绘制过程measure -> layout -> draw 应用程序进程完成第一次绘制后,系统进程会交换当前显示的背景窗口,将其替换为主活动。...;/item>     </style>   设置闪屏图片主题 为了更顺滑无缝衔接我们的闪屏页,可以在启动 Activity 的 Theme中设置闪屏页图片,这样启动窗口的图片就会是闪屏页图片

    1.4K10

    被后台杀死后,Android应用如何重新走闪屏逻辑

    后台杀死与恢复的堆栈-杀后.jpg 当用户再次启动APP时候会怎么样呢?这个时候,首先看到其实C,而不是栈底部的A,也就是说往往被杀死后,恢复看到的第一个界面是用户最后见到的那个界面。 ?...Android为了能够让用户无感知后台杀死,就做了这种恢复逻辑,不过,在开发中,这种逻辑带了的问题确实多种多样,甚至有些产品就不希望走恢复流程,本文就说说如何避免走恢复流程。...,在闪屏结束后,在startActivity启动主界面的时候,其实是先走恢复逻辑,然后走singleTask的onNewIntent逻辑,也就是说,onNewIntent跟onCreate是会同时调用的...的路由系统中,针对这两种场景要,先跳转闪屏,闪屏回来后,再跳转推送页 如何判断呢,后面两种场景其实只需要判断是否有Activity存活即可,也就是查查APP的topActivity是否为null,注意不要去向...作者:看书的小蜗牛 原文链接:被后台杀死后,Android应用如何重新走闪屏逻辑 仅供参考,欢迎指正

    2.9K40

    速读原著-Android应用开发入门教程(Android应用程序的概念性描述)

    Android 的一个活动一般对应界面中的一个屏幕显示,可以理解成一个界面,每一个活动在界面上可以包含按钮、文本框等多种可视的 UI 元素。...如果它们正确执行了 Activity 生命周期,系统可以在任意时刻杀死进程来回收内存,并提供给前面 3 种类型的进程使用。...活动的生命周期 活动是 Android 中最重要、最基础的组件,用户在界面上看到的一个个可以切换的屏幕界面就是 Android中的活动。活动的生命周期如图 1 所示。 ?...在转入后台时,onStop()是否被调用取决于活动是否被完全覆盖,在新的活动有透明部分时,转入后台的活动依然“可见”,其他情况下(较多数的情况)活动均进入不可见状态(被完全覆盖)。...如果系统缺少内存时,也会杀死(kill)后台的活动,其中优先杀死不可见的活动,可见的活动一般不会被杀死。 2.

    1K10

    【Android开发基础系列】Android开发学习专题

    activity和application都具有android:label和android:icon等属性,由于活动是程序的单元,且应用可以包含多个活动,因此程序首先将使用activity中的这些标签,如果没有则使用上一级的...如果它们正确执行了Activity生命周期,系统可以在任意时刻杀死进程来回收内存,并提供给前面3种类型的进程使用。...在转入后台时,onStop()是否被调用取决于Activity是否被完全覆盖,在新的Activity有透明部分时,转入后台的Activity依然“可见”,其他情况下(较多数的情况)Activity均进入不可见状态...Android中使用Intent并使用startActivity()和startActivityForResult()调用一个新的活动,实现屏幕的跳转功能,调用者可以获得跳转对象的返回信息。...5.5 菜单的使用         在Android中具有单独接口,用于在活动中使用菜单。本例使用一个菜单来控制按钮的背景颜色,从其中可以了解如何在应用程序中使用菜单。

    33320

    ❤️Android 性能优化之启动优化❤️

    此值表示启动流程和完成在屏幕上绘制相应活动之间经过的时间量。 经过的时间包含以下事件序列: 启动进程。 初始化对象。 创建并初始化Activity。 加载布局。...然后我们在后台杀死进程,再次启动应用; 第二个时间,温启动时间:+1s46ms。 这里咱们在后台杀死进程所以:应用进程和Activity需要重新启动。...不要创建全局静态对象,而是转向单例模式,应用程序只在第一次需要时初始化对象。 此外,考虑使用依赖注入框架(如Hilt) 繁琐的Activity初始化 活动创建通常需要大量高开销工作。...代码优化 不必要的初始化还是磁盘I/O,延迟初始化 资源初始化分类,以便应用程序可以在不同的线程上延迟执行。 动态加载资源和Bitmap 关于这两块的优化后续会有单独的文章去写。...优雅的解决黑白屛 Android 应用启动时很多大型应用都会有一个广告(图片及视频)页或闪屏页(2-3S),这是为了避免上述启动白屏导致用户体验很差(当然也有打广告的目的)。

    91860

    【Android开发高级系列】AndroidManifest.xml专题

    N、android:process         应用程序运行的进程名,它的默认值为元素里设置的包名,当然每个组件都可以通过设置该属性来覆盖默认值。...如果你想两个应用程序共用一个进程的话,你可以设置他们的android:process相同,但前提条件是他们共享一个用户ID及被赋予了相同证书的时候。     ...O、android:restoreAnyVersion         同样也是android2.2的一个新特性,用来表明应用是否准备尝试恢复所有的备份,甚至该备份是比当前设备上更要新的版本,默认是false...11、android:windowSoftInputMode         activity主窗口与软键盘的交互模式,可以用来避免输入法面板遮挡问题,Android1.5后的一个新特性。         ...各属性含义:这四个属性,是否支持大屏,是否支持中屏,是否支持小屏,是否支持多种不同密度。

    89150

    Android性能优化(一)

    视觉优化 应用程序启动有三种状态,每种状态都会影响应用程序对用户可见所需的时间:冷启动,热启动和温启动。 在冷启动时,应用程序从头开始。在其他状态下,系统需要将正在运行的应用程序从后台运行到前台。...在屏幕上执行View的绘制过程.measure -> layout -> draw 应用程序进程完成第一次绘制后,系统进程会交换当前显示的背景窗口,将其替换为主活动。...启动后立即显示应用程序空白的启动窗口。 创建应用程序进程。 所谓的主题优化,就是应用程序在冷启动的时候(1~2阶段),设置启动窗口的主题。...> [70] (无白屏,不过从点击到App仍然存在视觉延迟~) 设置闪屏图片主题 为了更顺滑无缝衔接我们的闪屏页,可以在启动 Activity 的 Theme中设置闪屏页图片,这样启动窗口的图片就会是闪屏页图片...--显示虚拟按键,并腾出空间--> [70] 这样设置的话,就会在冷启动的时候,展示闪屏页的图片,等App进程初始化加载入口 Activity (也是闪屏页) 就可以无缝衔接。

    2.7K20

    超详细,Android AMS面试攻略,带你突破面试难关

    具体来说,AMS通过以下几个步骤来实现生命周期管理: 启动应用程序: 当用户点击应用图标启动应用时,AMS首先会启动应用的进程(如果该应用的进程尚未存在),然后创建应用程序的启动Activity,并调用其生命周期方法...后台状态管理: 当应用程序进入后台时,AMS会根据系统内存情况来决定是否清理后台进程。如果系统内存不足,AMS会根据应用程序的优先级情况杀死一些后台进程,以释放内存资源。...通常情况下,系统会保持至少一个前台进程,以确保用户体验;当系统内存不足时,AMS会优先杀死后台进程,以释放内存资源。 其它 问题: Android中的内存管理机制是怎样的?AMS是如何参与其中的?...内存压力: 当系统内存不足时,Android系统会采取一系列措施来减少内存压力,比如杀死一些后台进程、清理缓存数据等。...界面显示: 最终,目标Activity的界面会显示在屏幕上,用户可以与之交互。

    74010

    面试软件测试APP岗位,这些题目你不可不知!

    如果无法直接复现,可以分析用户的使用场景和操作步骤,尝试模拟用户行为。 验证问题: 在复现问题后,验证问题的表现是否与日志信息中描述的一致。 确认问题是否在不同设备和操作系统版本上都存在。...一、冷启动 定义:当应用启动时,后台没有该应用的进程,这时系统会重新创建一个新的进程分配给该应用,这个启动方式就叫做冷启动。 场景: 程序安装后的第一次启动。...应用程序被系统完全终止后再打开,如用户主动杀进程或系统因内存不足杀进程。 特点:由于需要创建新的进程并初始化应用,冷启动的启动时间最长,资源消耗最多。...四、首屏启动 定义:首屏启动是指应用程序在启动后显示其主屏幕或用户首次看到的屏幕(即首屏)所需的时间 场景: 新用户首次使用:当用户首次下载并安装应用程序时,他们会看到应用程序的首屏启动。...此时,首屏启动同样重要,因为它决定了用户能否快速进入应用程序并继续之前的操作或探索新的功能。 应用程序更新后:当应用程序进行更新或升级后,用户再次打开应用程序时也会看到首屏启动。

    7410

    行情艰难,Android初中级面试题助你逆风翻盘,每题都有详细答案

    standard标准模式:每次启动一个Activity都会重新创建一个新的实例,不管这个实例是否已经存在,此模式的Activity默认会进入启动它的Activity所属的任务栈中; singleTop栈顶复用模式...不设置Activity的android:configChanges时,切屏会销毁当前Activity,然后重新加载调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次; onPause() →onStop...,使得原进程进入pause状态,原进程pause后通知AMS我pause了 此时AMS再根据栈中Activity的启动intent中的flag是否含有new_task的标签判断是否需要启动新进程,启动新进程通过...相似点:都可包含布局、可有自己的生命周期 不同点: Fragment相比较于Activity多出4个回调周期,在控制操作上更灵活; Fragment可以在XML文件中直接进行写入,也可以在Activity...与文件存储、SharedPreferences存储、SQLite数据库存储这几种数据存储方法不同的是,后者保存下的数据只能被该应用程序使用,而前者可以让不同应用程序之间进行数据共享,它还可以选择只对哪一部分数据进行共享

    80120

    Android基础_1 四大基本组件介绍与生命周期

    , 此时 BroadcastReceiver 的所在进程很容易在系统需要内存时被优先杀死 , 因为它属于空进程 ( 没有任何活动组件的进程 )....如果它的宿主进程被杀死 , 那么正在工作的子线程也会被杀死 . 所以采用子线程来解决是不可靠的 2. 动态注册广播接收器还有一个特点,就是当用来注册的Activity关掉后,广播也就失效了。...而当用户按下BACK 键的时候,你的activity 又会再一次的显示在屏幕上,此时任务是由2个应用程序中的相关activity组成的)栈底的是启动整个任务的Activity,栈顶的是当前运行的用户可以交互的...举个例子说,比如当前任务在栈中存有四个activity──三个在当前activity 之下。当用户按下HOME 键的时候,回到了应用程序加载器,然后选择了一个新的应用程序(也就是一个新任务)。...则当前任务遁入后台,而新任务的根activity 显示出来。然后,过了一小会儿,用户再次回到了应用程序加载器而又选择了前一个应用程序(上一个任务)。

    1.5K30

    7.Activity

    创建新的activity(活动) 新创建的activity,必须在清单文件中做配置,否则系统找不到,在显示时会直接报错 android:name="com.itheima.createactivity.SecondActivity..."> 只要有以下代码,那么就是入口activity,就会生成快捷图标,写几个就会出现几个程序快捷方式 一个应用程序可以在桌面创建多个快捷图标。...onDestroy:Activity对象被销毁 使用场景 Activity创建时需要初始化资源,销毁时需要释放资源;或者播放器应用,在界面进入后台时需要自动暂停 完整生命周期(entire lifetime...内存不足 内存不足时,系统会优先杀死后台Activity所在的进程,都杀光了,如果内存还是不足,那么就会杀死暂停状态的Activity所在的进程,如果还是不够,有可能杀死前台进程 如果有多个后台进程,在选择杀死的目标时...横竖屏的切换 Activity在横竖屏切换时会销毁重建,目的就是为了读取新的布局文件 写死方向,不允许切换 android:screenOrientation="portrait" android

    1.3K150

    Android开发(九) Android Manifest.xml 结构详解

    ,除非内置组件类,比如Activity类,此类使用了AliasActivity类,当然这是个罕见的现象 (在Android2.3可以用标准C来开发应用程序,可在androidManifest.xml中将此属性设置为...N、android:process 应用程序运行的进程名,它的默认值为元素里设置的包名,当然每个组件都可以通过设置该属性来覆盖默认值。...同样也是android2.2的一个新特性,用来表明应用是否准备尝试恢复所有的备份,甚至该备份是比当前设备上更要新的版本,默认是false P、android:taskAffinity 拥有相同的...11、android:windowSoftInputMode activity主窗口与软键盘的交互模式,可以用来避免输入法面板遮挡问题,Android1.5后的一个新特性。...:name="string"              android:required=["true" | "false"] /> 这两者都是在描述应用所需要的硬件和软件特性,以便防止应用在没有这些特性的设备上安装

    1.3K30

    app自动化面试题

    失去焦点时,或被一个新的非全面屏的Activity,或被一个透明的Activity放置在栈顶时,Activity就转化为Paused状态。...一个应用程序可以包含许多活动,比如事件的点击,一般都会触发一个新的Activity。...服务的运行不依赖于任何用户界面,即使程序被切换到后台,或者用户打开了另一个应用程序,服务扔然能够保持正常运行,不过服务并不是运行在一个独立的进程当中,而是依赖于创建服务时所在的应用程序进程。...当某个应用程序进程被杀掉后,所有依赖于该进程的服务也会停止运行(正在听音乐,然后把音乐程序退出) 5 App测试中ios和Android有哪些区别呢?...;新的ios系统中的资源库不能完全兼容低版本中的ios系统中的应用,低版本ios系统中的应用调用了新的资源库,会直接导致闪退(Crash); 4.操作习惯:Android,Back键是否被重写,测试点击

    1.4K20

    Android 启动优化详解

    闪屏优化: 预览闪屏(今日头条),预览窗口实现成闪屏效果,高端机上体验非常好,不过低端机上会拉长总的闪屏时长(建议在Android6.0以上才启用此方案); //优点:避免点击桌面图标无响应 //缺点...:拉长总的闪屏时长 //(可以配合三方库懒加载,异步初始化等方案使用,减少初始化时长) //1....操作,Binder调用 启动过程也不要过早的拉起应用的其他进程,System Server和新的进程都会竞争CPU资源,内存不足时可能触发系统的low memory killer 机制,导致系统杀死和拉起...子线程install(不推荐): 闪屏页开一个子线程去执行MultiDex.install,然后加载完才跳转到主页, 需要注意的是闪屏页的Activity,包括闪屏页中引用到的其它类必须在主dex中,...启动时间的扣除逻辑:闪屏,广告,新手引导的时间都应扣除 启动排除逻辑:Broadcast、Server 拉起,启动过程进入后台等都需排除掉 衡量启动速度快慢的标准 平均启动时间(体验差的用户可能被平均

    5.4K85
    领券