avatar
文章
70
标签
27
分类
12
主页
文章
标签
分类
AI
关于
墨香博客
主页
文章
标签
分类
AI
关于
Android系统源码分析--Activity启动过程
发表于2018-01-26|AndroidOS
关于Activity的源码分析拖延了太久的时间,由于最近工作繁忙,加上Activity启动源码非常复杂,涉及的内容很多,所以花费了很长是时间才来写这篇源码分析,希望这篇分析能让我们很容易的理解Activity的启动流程,能解决我们在使用Activity过程中遇到的问题,这样就达到了我们对于源码分析的目的了。下一篇我们介绍Activity的finish过程。 Activity启动模式简介:我们知道Activity启动模式有四种,每一种都有不同的操作,直接影响我们App的设计,为了帮助我们理解源码,我们先分析一下这四种模式。这四种模式包括:standard, singleTop, singleTask 和 singleInstance。 (下面内容来自:Activity启动模式图文详解:standard, singleTop, singleTask 以及...
Android系统源码分析--Broadcast发送
发表于2017-12-25|AndroidOS
上一篇分析了Android系统中广播的注册和注销,这一篇我们继续分析发送广播的源码流程,广播的发送相对来说比较复杂,所以需要比较长的时间来看,如果你看懂了流程相对来说再研究流程中的细节就比较简单了。 先看一张时序图,因为里面涉及到循环过程,代码中会提到,但是时序图没有绘制,所以需要注意一下。 0、ContextImpl.sendBroadcast123456789101112131415161718192021222324252627282930313233343536373839/** * 发送广播 * 步骤: * 1.广播发送者,即一个Activity组件或者一个Service组件,将一个特定类型的广播发送给AMS * <p> * 2.AMS接收到一个广播后,首先找到与这个广播对应的广播接收者,然后将它们添加到一个广播调度队列中, * 最后向AMS所运行在的先从的消息队列发送一个类型为BROADCAST_INTENT_MSG的消息,这时候对广播发送 * 者来说,一个广播就发送完了。 * <p>...
Android系统源码分析--Broadcast注册和注销
发表于2017-12-21|AndroidOS
距离上一篇博客进程的加载过了很久的时间,这中间换了一份工作,加入了新的团队,也开始了新的项目,比较忙,所以最近才有时间将四大组件之一的广播原理看完,最近一段时间会相继把四大组件分析写完,让我们对四大组件有更深的了解。本来想一篇把广播的内容写完,但是发现要解释的代码比较多,所以还是分开来讲,那么这篇先分析广播的注册和注销,下一篇再分析广播的发送。 Broadcast的注册 Step-1:注册广播入口ContextImpl.registerReceiver:1234@Overridepublic Intent registerReceiver(BroadcastReceiver receiver, IntentFilter filter) { return registerReceiver(receiver, filter, null, null);} 然后调用registerReceiver复写方法: 123456@Override public Intent registerReceiver(BroadcastReceiver...
Android系统源码分析--Process启动过程
发表于2017-09-13|AndroidOS
由于四大组件的启动都涉及到进程的启动,因此我们这章先讲一下进程启动流程,然后再讲四大组件的启动流程。 基础知识Android应用程序框架层创建的应用程序进程具有两个特点,一是进程的入口函数是ActivityThread.main,二是进程天然支持Binder进程间通信机制;这两个特点都是在进程的初始化过程中实现的。(引用自老罗安卓之旅-Android应用程序进程启动过程的源代码分析) 进程按照重要性可以分为下面五类: 前台进程(Foreground process) 可见进程(Visible process) 服务进程(Service process) 后台进程(Background process) 空进程(Empty process) 进程启动流程AMS(ActivityMagagerService)启动进程是从其成员函数startProcessLocked开始调用Process.start方法开始的。我们先看一下进程启动的时序图: 1. Process.start方法:12345678910111213141516171819202122public...
Android系统源码分析--消息循环机制
发表于2017-07-13|AndroidOS
...
Android系统源码分析--Zygote和SystemServer启动过程
发表于2017-07-12|AndroidOS
按计划本来从这章开始写四大组件的启动过程的,但是看看源码结构发现为了说的更明白还是先写一点系统framework层启动的内容,帮助理解四大组件的启动以及管理过程。我们知道四大组件管理是通过一些服务以及线程实现的,所以先把一些基本概念弄清楚比较好,比如AMS(ActivityManagerService)、PMS(PackageManagerService)等系统服务的作用以及调用方式,了解这些之后再看四大组件相对容易些,因此我们本章先介绍系统启动、部分系统服务的作用。 Zygote启动过程Zygote是一个孕育器,Android系统所有的应用进程以及系统服务SystemServer都是有Zygote进程孕育(fork)而生的,因此Zygote在Android启动过程中起着决定作用。Zygote的启动是从它的main函数开始的,因此我们从这个函数开始分析。整个过程看下面的时序图。 下面我们开始根据时序图进行分析。 Step...
Android系统源码分析--Context
发表于2017-06-05|AndroidOS
...
IntelliJ IDEA导入Android源码
发表于2017-06-03|AndroidOS
我们知道在Windows系统下阅读源码利器是Source Insight,但是没有Mac版本,阅读源码一直是个问题,之前我写过关于阅读源码神器的Understand,但是如果项目过大则很慢,所以也不能用来阅读Android系统源码,在网上也查过Sublime text配置ctag,但是相对来说也是不方便,后来使用Visual Studio Code和Sublime text相差不多,最后想到用IntelliJ IDEA来阅读源码,如果直接导入则会分为很多module。最近从网上看到可以导入IntelliJ IDEA软件,所以给大家分享一下。本教程基于Mac OS X 10.12。Android系统版本为:7.1.2_r11(7.1.2最终版)。先介绍方法,后面会给出各种问题解决方案。 生成导入idea或者eclipse需要的文件: 1.首先是idea和eclipse导入项目需要的文件 123.classpath (Eclipse)android.ipr (IntelliJ / Android Studio)android.iml (IntelliJ / Android...
墨香带你学Launcher之(八)- 加载Icon、设置壁纸
发表于2017-05-19
上一章墨香带你学Launcher之(七)- 小部件的加载、添加以及大小调节介绍了小部件的加载以及添加过程,基于我的计划对于Launcher的讲解基本要完成了,因此本篇是我对Launcher讲解的最后一部分,计划了很久,因为时间的问题一直没有写,今天趁着有空写完。写了八篇,不多,Launcher里面还有很多东西,有兴趣的可以自己继续研究,看完这些主要的其他都是问题了,有什么需要了解的可以留言。最新版的Launcher代码我已经放到github上,想看的自己可以去下载。 加载Icon对于Icon的操作其实主要是加载、更新以及删除,加载主要是启动Launcher、安装应用,更新是在更新应用时更新Icon、删除是卸载应用时会删除Icon,因此我们可以从这几方面分析Icon的处理。 Launcher启动时Icon加载Launcher的数据加载流程我在第二篇墨香带你学Launcher之(二)-...
开源算法集合
发表于2017-03-23
本文主要是收集一些大的公司开源的算法项目,以方便我们开发使用。包括:guetzli(图像算法)、brotli(压缩算法)、face_classification(人脸分类以及情感算法)。 Google【guetzli】 源码地址:guetzli 简介:Google 又开源了,这次开源了一款图像算法工具 Guetzli。Guetzli,在瑞士德语中是“cookie(曲奇)”的意思,是一个针对数码图像和网页图像的 JPEG 编码器,能够通过产生更小的 JPEG 文件来达到更快的在线体验,并且同时保持与当前浏览器,图像处理应用和 JPEG 标准的兼容性。Google 称 Guetzli 创建高质量的 JPEG 图像文件的大小比当前的压缩方法要再小 35%。 简介来源:开源中国:Google 开源图像算法工具...
1…4567
avatar
墨香
因为兴趣所以选择,因为选择所以坚持。
文章
70
标签
27
分类
12
Follow Me
公告
路虽远,行则将至;事虽难,做则可成。
最新文章
Hermes Agent 源码解析:一个可复用的 Agent 运行模型2026-10-31
OpenAI Codex 原理与架构:一个 while 循环与五层工程体系2026-10-31
Claude Code 原理与架构:模型负责思考,Harness 负责行动2026-10-31
Android Performance Studio:11 个性能工具,一个桌面应用2026-10-30
从海量 Log 到可审计结论:llm-anr 的设计思想、开发流程与最终结果2026-06-17
分类
  • AI4
  • ANR12
  • AOSP1
  • Android Official Source8
  • AndroidOS13
  • Android代码推荐1
  • Kotlin1
  • Launcher7
标签
高效Mac Test App architecture View绘制 Gradle Jetpack Compose Animation View AI Performance Launcher3 Launcher Android Coroutines AOSP Resource Codex Mind Understand Android Guide Hermes Android Performance Agent Safe ANR Claude AndroidOS
归档
  • 十月 20264
  • 六月 20261
  • 五月 20264
  • 四月 20261
  • 三月 20261
  • 九月 20251
  • 四月 20251
  • 二月 20251
网站资讯
文章数目 :
70
本站访客数 :
本站总访问量 :
最后更新时间 :
©2016 - 2026 By 墨香
框架 Hexo|主题 Butterfly