Android Activity四种加载方式
原创
2020-03-25 17:09:39
714阅读
Hook实现动态加载ActivityActivity的启动流程寻找Hook锚点替换目标Activity还原目标Activity加载插件APK加载资源文件 Activity的启动流程Activity的启动是一个很复杂的过程,涉及的类也非常多,这是一张启动UML流程图:简化一下大致就是:①startActivity > ②系统获取启动信息 > ③校验Manifast > ④创建Ac
转载
2023-08-20 14:57:01
161阅读
http://freetymekiyan.1kapp.com/android-activity的加载模式和onactivityresult方法之间的冲突/前言今天在调试程序时,发现在某一Activity上点击返回键会调用该Activity的onActivityResult()方法。我一开始用log,后来用断点跟踪调试半天,还是百思不得其解。因为之前其他的Activity的LaunchMode都是N
简述:渐渐的在开发道路上更注重App的性能, 数据的预加载的处理。在日常开发APP,一个Activity里面有可能会是有Viewpager与多个Fragment来进行组合,而如果每个Fragment都需要通过网络加载数据,或加载本地缓存。 如果当前Activity创建的时候就需要初始化大量的资源,需要网络加载,从服务器loding。这样的结果,我们也不会同意。那如何才能更好的处理这个问题呢? 那就
转载
2023-10-04 10:10:30
182阅读
Context是什么?根据个人理解Context这个“上下文”是Android 系统的一个应用信息的描述类,也是对一些基础操作的抽象类。包含了比如StartActivity、StartService、registerReceiver等操作的抽象,同时提供了一些系统的配置信息,常量信息。Context本身不做任何操作,通过阅读源码我们知道,Context它有两个直接子类一个ContextImpl、一
转载
2023-08-17 16:45:20
34阅读
一、加载模式有哪些以及如何配置1、配置方法 直接修改AndroidManifest.xml文件,如要给一个名为Act1的activity指定其加载模式为singleTask,只需添加以下语句: <activity android:name="Act1" android:launchMode="singleTask"> </activity> 2、在
转载
2023-11-13 16:45:48
83阅读
作者: CoderFan前言这个也是我面试遇到的问题,当时只回答了一种情况,异步加载数据,没想到别的方式,回来以后专门研究了一下。正文Activity加载速度是很影响用户体验的,也是衡量一款APP质量的重要指标之一,所以优化Activity加载速度至关重要。既然要优化首先需要了解Activity的生命周期,这里我昨天整理的有一篇文章Android四大组件之Activity—生命周期篇大家可以看看,
转载
2023-10-30 15:16:30
115阅读
预加载的好处:加快Flutter页面的打开速度。预加载的原因:因为每个打开的Flutter页面,默认情况下都需要创建一个Flutter Engine,这个初始化是比较耗时的,所以可以考虑提前初始化一个Flutter Engine并保存起来,后续可以省去初始化的时间而直接使用。预加载的实现:以android端为例,ios基本类似//在应用初始化时,执行如下代码,创建一个flutter engine,
转载
2023-11-10 09:49:42
110阅读
Android插件开发 —— 通过预注册方式打开activity(记录我踩过的坑)插件开发的原理简单的说就是将插件apk合并到宿主的ClassLoader中。我先简单说下如何使用插件中的资源,因为预注册时有些坑就跟这个有关系。要使用apk中的资源,我们首先想到有个Resources就好了,先看下Resources的构造方法:public Resources(AssetManager assets,
转载
2023-09-30 22:27:56
115阅读
起因昨天被人问起Activity的启动过程,我一阵心虚,说实话,N年前看过一回别人写的文章,但是自己从来没有跟着源码去研究过Activity的启动过程,所以别人问到后,我只能把从PhoneWindow到DecorView到SetContentView到ViewRootImpl调用performTraversals()方法,再调用其内部的performMeasure()、performLayout(
独家理解 Android 四大组建之一Activity四种加载模式前言:在阅读此篇前,如果想深入了解Activity 可以阅读:点击打开链接 launchMode在Activity
源码版本:Android 27一、应用的启动首先我们需要知道:ActivityThread的main方法,是Android应用程序启动时的入口点。 public final class ActivityThread {
// 省略部分代码
public static void main(String[] args) {
// 省略部分代码
背景恰逢项目小版本要上一个 极速版轻应用内嵌于主端 APP 内,在 APP 启动时通过读取配置决定是否优先显示轻应用界面。因此,在启动 APP 时需要实时进行不同场景切换。问题来源一开始我们通过新增一个 LauncherActivity 用于中转不同场景的切换,原 APP 主页面处理任何 Intent 的逻辑将需要从旧启动页进行 “继承” 处理。这意味着 LauncherActivity 收到任何
Activity加载模式 配置Activity时,可指定android:launchMode属性来配置Activity加载模式,Android采用Task栈来管理多个 Activity:先启动的Activity将放入栈底,后启动的Activity将放在栈顶; 当
转载
2023-06-26 22:00:52
277阅读
文章目录1 闲话2 从ActivityThread到Activity的onCreate调用链 1 闲话喜欢读源码的同学应该早就注意到了,android api28以后,Activity的启动流程改变了许多,如android 28以后,ActivityThread中已经删除掉了LAUNCH_ACTIVITY的标签,而且也将一些逻辑单独提出来放在了一些新的类里面。由于我只是关注了它从Activity
简介踏入Android开发有一小段时间了,第一次接手项目的时候状态就是上午自己写Bug,下午改自己的Bug,慢慢的接触的技术多了,就开始写项目上的一些小模块之类的,作为一个开发,技术是永远都学不完的,技术的更新速度快过自己的学习速度,但是个人觉得,如果想作为一名合格的程序猿,一些开发 的底层代码是肯定要了解的。就打个比方(就拿Android来说),你如果是实习的时候去面试,面试官问你Activit
个Activity的状态是由它在Activity栈(是一个后进先出LIFO,包含所有正在运行Activity的队列)中的位置决定的。
当一个新的Activity启动时,当前的活动的Activity将会移到Activity栈的顶部。
如果用户使用后退按钮返回的话,或者前台的Activity结束,在栈上的Activity将会移上来并变为活动状态。如下图所示
转载
2023-09-28 15:35:37
362阅读
Activity的生命周期Activity是安卓应用的重要组成单元之一,其对于安卓的作用类似于Servlet对于Web应用的作用。整个Activity生命周期的图解如下具体的生命周期可以总结成如下几个步骤onCreate():Activity启动后第一个被调用的函数,常用来进行Activity的初始化,如创建View,绑定数据和恢复数据。onStart():当Activity显示在屏幕上时,函数被
转载
2023-10-03 17:32:16
104阅读
---------------------------------------- 一、何为加载模式在android的多activity开发中,activity之间的跳转可能需要有多种方式,有时是普通的生成一个新实例,有时希望跳转到原来某个activity实例,而不是生成大量的重复的activity。加载模式便是决定以哪种方式启动一个跳转到原来某个Activity实例。二、加载模式有哪些以及如何配置
一、Activity启动步骤Activity的启动流程为:创建Activity对象 ==> 准备好Application ==> 创建ContextImpl ==> attach应用上下文 ==> 生命周期onCreate回调。Activity的mWinodw对象就是在atta
转载
2023-09-06 16:00:45
126阅读