<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Android 框架 on Chen's Notes</title><link>https://lucky-chen.github.io/zh/docs/client_front_end/android_framework/</link><description>Recent content in Android 框架 on Chen's Notes</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Mon, 05 Jun 2017 00:00:00 +0000</lastBuildDate><atom:link href="https://lucky-chen.github.io/zh/docs/client_front_end/android_framework/index.xml" rel="self" type="application/rss+xml"/><item><title>Android动态化容器框架Atlas之bundle加载过程</title><link>https://lucky-chen.github.io/zh/docs/client_front_end/android_framework/atlas-bundle-load/</link><pubDate>Mon, 05 Jun 2017 00:00:00 +0000</pubDate><guid>https://lucky-chen.github.io/zh/docs/client_front_end/android_framework/atlas-bundle-load/</guid><description>&lt;h1 id="概述"&gt;概述&lt;a class="anchor" href="#%e6%a6%82%e8%bf%b0" aria-label="Link"&gt;&lt;/a&gt;&lt;/h1&gt;&#10;&lt;p&gt;&lt;a href="https://alibaba.github.io/atlas/code_read/atlas_gradle_apk/atlas_atlas_gradle_apk.html"&gt;对应官网文档地址&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;将流程分为三大部分&lt;/p&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;部分&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;说明&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;对应步骤&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;第一部分&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;加载时机的触发逻辑&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;1-7&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;第二部分&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;bundle加载过程&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;8-15&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;第三部分&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;bundle代码初始化&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;16-19&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;</description></item><item><title>Android动态化容器框架Atlas启动过程(下)</title><link>https://lucky-chen.github.io/zh/docs/client_front_end/android_framework/atlas-start-2/</link><pubDate>Sun, 21 May 2017 00:00:00 +0000</pubDate><guid>https://lucky-chen.github.io/zh/docs/client_front_end/android_framework/atlas-start-2/</guid><description>&lt;h1 id="概述"&gt;概述&lt;a class="anchor" href="#%e6%a6%82%e8%bf%b0" aria-label="Link"&gt;&lt;/a&gt;&lt;/h1&gt;&#10;&lt;p&gt;&lt;a href="https://alibaba.github.io/atlas/code_read/atlas_start/atlas_start_2.html"&gt;对应官网文档地址&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;接&lt;a href="https://lucky-chen.github.io/zh/docs/client_front_end/android_framework/atlas-start-1/"&gt;上篇&lt;/a&gt; ,继续 6-10 步的启动过程。&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="https://lucky-chen.github.io/image/android/atlas_core_start_img.svg" alt="" /&gt;&lt;/p&gt;</description></item><item><title>Android动态化容器框架Atlas之启动过程(上)</title><link>https://lucky-chen.github.io/zh/docs/client_front_end/android_framework/atlas-start-1/</link><pubDate>Wed, 17 May 2017 00:00:00 +0000</pubDate><guid>https://lucky-chen.github.io/zh/docs/client_front_end/android_framework/atlas-start-1/</guid><description>&lt;h1 id="概述"&gt;概述&lt;a class="anchor" href="#%e6%a6%82%e8%bf%b0" aria-label="Link"&gt;&lt;/a&gt;&lt;/h1&gt;&#10;&lt;p&gt;&lt;a href="https://alibaba.github.io/atlas/code_read/atlas_start/atlas_start_1.html"&gt;对应官网文档地址&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;Atlas整个启动过程的时序如下图所示，本篇只关注下图中的1-5步。&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="https://lucky-chen.github.io/image/android/atlas_core_start_img.svg" alt="" /&gt;&lt;/p&gt;</description></item><item><title>Android动态化容器框架Atlas-从gradle到apk</title><link>https://lucky-chen.github.io/zh/docs/client_front_end/android_framework/atlas-atlas-gradle-apk/</link><pubDate>Thu, 11 May 2017 00:00:00 +0000</pubDate><guid>https://lucky-chen.github.io/zh/docs/client_front_end/android_framework/atlas-atlas-gradle-apk/</guid><description>&lt;h1 id="概述"&gt;概述&lt;a class="anchor" href="#%e6%a6%82%e8%bf%b0" aria-label="Link"&gt;&lt;/a&gt;&lt;/h1&gt;&#10;&lt;p&gt;&lt;a href="https://alibaba.github.io/atlas/code_read/atlas_gradle_apk/atlas_atlas_gradle_apk.html"&gt;对应官网文档地址&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;Atlas一个运行于Android系统上的一个容器化框架。为了实现这一目标，在编译器和运行期，Atlas都做了很多工作。本文是一个入门级别的文章，梳理从gradle配置到生成最终apk的期间，Atlas框架到底搞了哪些事情。&lt;/p&gt;&#10;&lt;p&gt;代码以 &lt;a href="https://github.com/alibaba/atlas/tree/master/atlas-demo"&gt;官方demo&lt;/a&gt; 为例。&lt;/p&gt;</description></item><item><title>Android源码之进程启动过程</title><link>https://lucky-chen.github.io/zh/docs/client_front_end/android_framework/android-process-start/</link><pubDate>Tue, 14 Feb 2017 00:00:00 +0000</pubDate><guid>https://lucky-chen.github.io/zh/docs/client_front_end/android_framework/android-process-start/</guid><description>&lt;h1 id="概要"&gt;概要&lt;a class="anchor" href="#%e6%a6%82%e8%a6%81" aria-label="Link"&gt;&lt;/a&gt;&lt;/h1&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;API21&lt;/li&gt;&#10;&lt;li&gt;AMS 启动进程&lt;/li&gt;&#10;&lt;li&gt;Zygote fork进程&lt;/li&gt;&#10;&lt;li&gt;应用端初始化&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;上一张调用流程的时序图:&#10;&lt;img src="https://lucky-chen.github.io/image/android/android_process_start.svg" alt="" /&gt;&lt;/p&gt;</description></item><item><title>插件化DroidPlugin-Receiver</title><link>https://lucky-chen.github.io/zh/docs/client_front_end/android_framework/droid-plugin-receiver/</link><pubDate>Tue, 07 Feb 2017 00:00:00 +0000</pubDate><guid>https://lucky-chen.github.io/zh/docs/client_front_end/android_framework/droid-plugin-receiver/</guid><description>&lt;h1 id="主要思想"&gt;主要思想&lt;a class="anchor" href="#%e4%b8%bb%e8%a6%81%e6%80%9d%e6%83%b3" aria-label="Link"&gt;&lt;/a&gt;&lt;/h1&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;拦截动态广播的注册和发送，cache广播信息&lt;/li&gt;&#10;&lt;li&gt;cache插件的静态广播，在stubReceiver中操控插件的receiver&lt;/li&gt;&#10;&lt;li&gt;模仿AMS,自己管理receiver&lt;/li&gt;&#10;&lt;/ol&gt;</description></item><item><title>插件化DroidPlugin-Provider</title><link>https://lucky-chen.github.io/zh/docs/client_front_end/android_framework/droid-plugin-provider/</link><pubDate>Wed, 01 Feb 2017 00:00:00 +0000</pubDate><guid>https://lucky-chen.github.io/zh/docs/client_front_end/android_framework/droid-plugin-provider/</guid><description>&lt;h2 id="主要思想"&gt;主要思想&lt;a class="anchor" href="#%e4%b8%bb%e8%a6%81%e6%80%9d%e6%83%b3" aria-label="Link"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;host预先申请若干stubProvider&lt;/li&gt;&#10;&lt;li&gt;hook ams，插件查询provider时，返回stubProVider&lt;/li&gt;&#10;&lt;li&gt;在 stubProvider 中操控插件的providr对象&lt;/li&gt;&#10;&lt;/ol&gt;</description></item><item><title>Android源码之Activity与AMS、WMS联系</title><link>https://lucky-chen.github.io/zh/docs/client_front_end/android_framework/activity-ams-wms/</link><pubDate>Wed, 25 Jan 2017 00:00:00 +0000</pubDate><guid>https://lucky-chen.github.io/zh/docs/client_front_end/android_framework/activity-ams-wms/</guid><description>&lt;h1 id="要点"&gt;要点&lt;a class="anchor" href="#%e8%a6%81%e7%82%b9" aria-label="Link"&gt;&lt;/a&gt;&lt;/h1&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Activity启动过程&lt;/li&gt;&#10;&lt;li&gt;Activity与AMS联系&lt;/li&gt;&#10;&lt;li&gt;Activity与WMS联系&lt;/li&gt;&#10;&lt;/ul&gt;</description></item><item><title>插件化DroidPlugin-Service</title><link>https://lucky-chen.github.io/zh/docs/client_front_end/android_framework/droid-plugin-service/</link><pubDate>Fri, 20 Jan 2017 00:00:00 +0000</pubDate><guid>https://lucky-chen.github.io/zh/docs/client_front_end/android_framework/droid-plugin-service/</guid><description>&lt;h1 id="主要思想"&gt;主要思想&lt;a class="anchor" href="#%e4%b8%bb%e8%a6%81%e6%80%9d%e6%83%b3" aria-label="Link"&gt;&lt;/a&gt;&lt;/h1&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;注册若干个stubService&lt;/li&gt;&#10;&lt;li&gt;插件启动service时，启动一个stubService.&lt;/li&gt;&#10;&lt;li&gt;在stubService中模仿service生命周期，调用插件service的生命周期函数。&lt;/li&gt;&#10;&lt;/ol&gt;</description></item><item><title>插件化DroidPlugin-Activity</title><link>https://lucky-chen.github.io/zh/docs/client_front_end/android_framework/droid-plugin-activity/</link><pubDate>Thu, 05 Jan 2017 00:00:00 +0000</pubDate><guid>https://lucky-chen.github.io/zh/docs/client_front_end/android_framework/droid-plugin-activity/</guid><description>&lt;h1 id="主要思想"&gt;主要思想&lt;a class="anchor" href="#%e4%b8%bb%e8%a6%81%e6%80%9d%e6%83%b3" aria-label="Link"&gt;&lt;/a&gt;&lt;/h1&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;申请多个activity坑&lt;/li&gt;&#10;&lt;li&gt;欺骗AMS,在准备启动Activity时，启动一个坑Activity数据给AMS。&lt;/li&gt;&#10;&lt;li&gt;AMS准备好回调到APP中启动activity时，替换成真正需要的Activity.&lt;/li&gt;&#10;&lt;/ol&gt;</description></item><item><title>Android源码之Handler</title><link>https://lucky-chen.github.io/zh/docs/client_front_end/android_framework/handle/</link><pubDate>Thu, 25 Aug 2016 00:00:00 +0000</pubDate><guid>https://lucky-chen.github.io/zh/docs/client_front_end/android_framework/handle/</guid><description>&lt;h1 id="主要思想"&gt;主要思想&lt;a class="anchor" href="#%e4%b8%bb%e8%a6%81%e6%80%9d%e6%83%b3" aria-label="Link"&gt;&lt;/a&gt;&lt;/h1&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;通过MessageQueqe保存mesage&lt;/li&gt;&#10;&lt;li&gt;通过looper轮询MessageQueqe&lt;/li&gt;&#10;&lt;li&gt;handler回调处理message&lt;/li&gt;&#10;&lt;/ol&gt;</description></item></channel></rss>