源码基于:Android R0. 前言之前一篇博文(Android 的init过程详解)中记录了init启动过程,后来另一篇(Android init.rc详解 )中记录了init.rc的解析过程,android详细的启动过程,就需要将所有的init rc文件解剖之后,从action到service挨个分析。这里记录一下zygote的启动过程。1. zygote起点system/core
# Android 12 Activity启动源码分析 ## 1. 概述 在这篇文章中,我们将探讨如何分析 Android 12 中的 Activity 启动源码。作为一名经验丰富的开发者,我将指导你完成这个任务。我们将使用一系列步骤来实现这个目标,并通过代码注释来解释每个步骤的含义。 ## 2. 流程 下表展示了整个过程的流程: | 步骤 | 描述 | | --- | --- | |
原创 2023-10-08 06:15:18
86阅读
一般来讲,Android开发人员会使用反射调用Acticity中的mReferrer字段来获
原创 2023-04-04 19:49:57
167阅读
作者:vivo互联网客户端团队-Chen Long一般来讲,Android开发人员会使用反射调用Acticity中的mReferrer字段来获取跳转来源的包名,但是这种方案是否真的安全呢?我们从源码中来寻找答案。前言mReferrer从哪里来搜索mReferrer,来源回溯使用断点调试跟踪调用栈断点调试对象实例化过程远程服务Binder调用分析万能的搜索并不万能​如何避免包名被伪造关注Pid和Ui
转载 2022-12-20 22:03:43
104阅读
一般来讲,Android开发人员会使用反射调用Acticity中的mReferrer字段来获取跳转来源的包名,但是这种方案是否真的安全呢?我们从源码中来寻找答案
原创 精选 2021-11-16 09:41:55
1302阅读
Activity中其中startActivity这个大家应该是非常熟悉的;那么从service里面调用startActivity话,会怎么样呢?会出现下面的异常:android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity  context requires the F
转载 9月前
308阅读
Activity 启动源码分析 ( Activity -> AMS 阶段 )
原创 2022-03-08 09:39:03
336阅读
一、ActivityThread 、二、ActivityThread 绑定 ApplicationThread、三、AMS attachApplication -> attachApplicationLocked、四、ApplicationThread.bindApplication、五、H 处理 BIND_APPLICATION 消息、六、ActivityThread.handleBindApplication、七、LoadedApk.makeApplication、
原创 2022-03-08 09:41:15
670阅读
前言、一、ActivityManagerService.attachApplicationLocked、二、ActivityStackSupervisor.attachApplicationLocked、三、ActivityStackSupervisor.realStartActivityLocked、
原创 2022-03-08 09:41:15
283阅读
前言熟悉Activity启动流程和运行原理是一个合格的应用开发人员所应该具备的基本素质,其重要程
转载 2019-08-04 11:38:13
118阅读
前言、一、ActivityThread 类 handleLaunchActivity -> performLaunchActivity 方法、二、Instrumentation.newActivity 方法、三、AppComponentFactory.instantiateActivityCompat方法、四、ActivityThread.performLaunchActivity 方法后续细节、五、Instrumentation.callActivityOnCreate 方法、总结、
问题描述做Android开发的朋友们都熟悉这个方法:setContentView(R.layout.activity_main);喜欢思考的朋友们肯定想知道为什么一上来就要执行这个方法呢???问题剖析我们按住 ctr 并用鼠标右键setContentView(R.layout.activity_main)
原创 2021-09-16 15:18:44
532阅读
前言、一、ClientTransactionHandler.scheduleTransaction、二、ActivityThread.H 处理 EXECUTE_TRANSACTION 消息、三、TransactionExecutor execute -> executeCallbacks 方法、四、LaunchActivityItem.execute、总结、
原创 2022-03-08 09:39:03
333阅读
Android 2.1 源码结构分析(这是地址:不是SVN而是git Android 2.1 |-- Makefile |-- bionic                        (bionic C库) |-- bootable&n
转载 2024-09-01 11:42:31
188阅读
前言Activity 类是 android 应用的关键组件,在日常开发中,绝对少不了组件。既然用了这么久,你知道他的启动流程??作为一个应用层开发者,大多数人可能觉得学习这些对日常开发可能没有太大帮助。但是多了解一下 framework 的代码还是很有必要的,了解系统组件机制,对于一些问题我们也能快速的定位找到问题的所在点,并且在面试的时候也是一个加分项。本文基于 Android 12 版本源码
原创 2023-06-22 10:28:07
596阅读
本文聚焦于Glide的源码,基于Glide4.11.0一、简介Glide的GitHubGlide是一个快速高效的Android图片加载库,注重于平滑的滚动。Glide提供了易用的API,高性能、可扩展的图片解码管道(decode pipeline),以及自动的资源池技术。1. 简单使用1、添加依赖:repositories { google() jcenter() } dependenc
转载 2023-11-21 10:44:58
83阅读
一、梳理源码流程干什么Activity是四大组件中最重要的组件之一,下面来分析Activity启动过程,了解Activity启动过程能帮助我们更好的对组件Activity的理解,也能帮助我们更好的把控Activity生命周期的变化过程。当然Activity作为四大组件之首,10.0版本的Activity的代码函数在8000行,关联的一些类Instrumentation、ActivityTask
推荐 原创 2021-11-07 12:55:41
845阅读
一、梳理源码流程干什么Activity是四大组件中最重要的组件之一,下面来分析Activity启动过程,了解Activity启动过程能帮助我们更好的对组件Activity的理解,也能帮助我们更好的把控Activity生命周期的变化过程。
原创 2021-11-11 13:36:23
283阅读
总结:Activity启动过程,我们可以从Context的startActivity说起,其实现是ContextImpl的startActivity(内部调用startActivityForResult),然后内部会通过Instrumentation来尝试启动Activity,这是一个跨进程过程,它会调用ams的startActivity方法,当ams校验完activity的合法性后,会通过Ap
转载 2023-07-03 13:42:26
126阅读
app进程通过ActivityManager.getService (高版本)或者 ActivityManagerNative.getDefault(低版本)返回的IActivityManager来调用系统进程AMS中的方法。该IActivityManager是AMS在app进程的binder代理对象同样,系统进程通过ProcessRecord.IApplicationThread调用app进程相
转载 2021-05-05 12:13:00
707阅读
2评论
  • 1
  • 2
  • 3
  • 4
  • 5