- 博客(26)
- 资源 (7)
- 收藏
- 关注
原创 源码分析 — VirtualAPK框架(二)之四大组件
一、概述1.1 相关技术点1.2 参考文章1.3 版本二、Activity2.1 原理2.2 代码分析三、BroadcastReceiver四、Service五、ContentProvider一、概述1.1 相关技术点设计模式 — 动态代理模式源码分析 — Activity的清单注册校验源码分析 — ActivityThread(...
2018-03-30 17:34:04 468
原创 源码分析 — ActivityThread(二)之相关类的分析
一、概述二、ActivityThread.main() 方法2.1 执行 ActivityThread.attach() 操作2.2 在 main() 最后为何要抛出 RuntimeException 异常呢?又是在哪里被捕获呢?2.3 小结三、ActivityThread、ApplicationThread、H(Handler)之间的关系四、类 ApplicationThr...
2018-03-22 13:58:07 724
原创 源码分析 — Binder机制(二)之IActivityManager
一、概述二、类图三、时序图四、源码分析4.1 类 Singleton4.2 类 ActivityManagerNative4.3 类 ActivityManagerProxy4.4 类 ActivityManagerService五、ActivityManagerService 与 ApplicationThread 的跨进程通信一、概述 阅读...
2018-03-22 13:55:04 1753
原创 源码分析 — Activity的启动流程
一、概述二、从启动应用到获取到 ActivityManagerProxy 的过程2.1 时序图2.2 源码分析2.3 小结三、从ActivityManagerProxy 到创建应用进程的过程3.1 时序图3.2 源码分析四、从应用进程创建完成之后到启动 Activity 的过程;4.1 时序图4.2 源码分析五、从 Activity 被启动到页面显示完成的过...
2018-03-21 15:07:27 924
原创 源码分析 — LauncherActivity(Launcher界面)
一、概述二、源码分析2.1 类 ListActivity2.2 类 LauncherActivity三、小结一、概述 在Launcher界面,我们会点击应用图标来启动对应的应用,那它又是在哪个类实现的呢?分析: 一般手机的Launcher界面,界面的效果和我们平时所做的需求大同小异,无非就是Item展开显示;源码版本: Android 2...
2018-03-21 11:11:27 1053
原创 源码分析 — ActivityThread(一)之main()的调用 (Android应用进程的孵化)
一、概述二、时序图三、Socket轮询器启动的源码分析3.1 类 ZygoteInit3.2 类 ZygoteConnection3.3 类 RuntimeInit3.4 类 MethodAndArgsCaller小结: Zygote响应请求的流程四、创建子过程(应用进程)的源码分析4.1 类 LauncherActivity4.2 类 ActivityManager...
2018-03-20 23:27:08 3600
原创 Git — Permanently added the RSA host key for IP address
问题:Permanently added the RSA host key for IP address ‘192.168.**.**’ to the list of known hosts。 使用git提交代码到github时遇到这个问题: Permanently added the RSA host key for IP address ‘192.168.**.**’ to ...
2018-03-20 20:36:33 848
原创 Git — 关联远程仓库
远程仓库1. 生成公私钥$ ssh-keygen -t rsa -C "aaa@163.com"把邮件地址换成自己的邮件,然后一路回车,使用默认值即可; Generating public/private rsa key pair. Enter file in which to save the key (/c/Users/Administrator/.ssh/id_rsa)...
2018-03-20 00:12:52 380
原创 源码分析 — PackageManagerService(一)之启动流程
一、概述二、PMS初始化时序图三、PMS源码PackageManagerService 构造方法内主要执行以下几件事:3.1 Settings类3.2 packages.xml 等文件的读取及解析3.3 Manifest 文件的解析3.4 将数据写入packages.xml中四、总结五、参考一、概述背景 本文主要分析PackageM...
2018-03-17 20:17:07 1100
原创 源码分析 — SystemServer
一、概述二、SystemServer启动时序图三、SystemServer启动的源码分析3.1 类 ZygoteInit3.2 类 RuntimeInit3.3 类MethodAndArgsCaller四、SystemServer源码分析一、概述在Android启动的时候,会涉及到很多系统级的服务启动,如ActivityManagerService(AM...
2018-03-17 14:58:55 780
原创 源码分析 — PackageManagerService(二)之resolveIntent()
一、概述二、resolveIntent()解析2.1 resolveIntent()解析时序图2.2 resolveIntent()源码三、小结一、概述背景 在源码分析 — Activity的清单注册校验及动态注入一文中,我们通过AppGlobals.getPackageManager() 方法获取了IPackageManager的接口实现...
2018-03-16 17:59:51 2301 1
原创 源码分析 — Binder机制(一)(进程间通信)
一、概述二、流程图2.1 流程图说明三、类图3.1 Binder机制在 IActivityManager 中的应用3.2 Binder机制在 AIDL 中的应用3.2.1 AIDL文件所生成 class 文件的类的关系图3.2.1 分析AIDL文件生成的 class 文件的代码四、类 Binder、BinderProxy4.1 BinderProxy4.2 类...
2018-03-16 13:05:17 1025
原创 源码分析 — Activity的清单注册校验及动态注入
一、概述二、示例三、时序图四、源码分析五、实践:如何绕过校验,动态注入Activity?5.1 原理分析5.2 实践一、概述 一般情况下,Activity的启动都需要先在清单文件AndroidManifest.xml中注册后,才能使用。而目前流行的插件化则是通过在底座清单文件中提前占坑的方式来达到启动插件中Activity的目的。但是,插件中...
2018-03-14 22:47:53 1103 1
原创 源码分析 — VirtualAPK框架(一)之初始化
一、概述1.1 相关技术点1.2 参考1.3 版本二、插件框架初始化2.1 时序图2.2 框架初始化的源码分析三、插件的加载3.1 加载插件的示例代码3.2 插件初始化源码分析一、概述 文章看过千百遍,不如源码走一遍。 一则,提升阅读源码的能力; 二则,在阅读源码的过程中学会思考,理解其实现原理; 如是,便有了此文。...
2018-03-14 16:12:20 440
原创 设计模式 — 静态代理模式
静态代理静态代理0. 简介1. 类图2. 实例3. 代理模式、装饰模式、门面模式的区别0. 简介代理模式有两种形式:静态代理、动态代理。设计模式 — 动态代理模式1. 类图分析: 1. 代理类和被代理类必须实现同一个接口Subject ; 2. 代理类持有被代理类的对象RealSubject ; 3. 客户端Client持有的实际是代理对象...
2018-03-14 15:13:59 592
原创 设计模式 — 动态代理模式
动态代理动态代理0. 简介1. 类图2. 示例3. 源码分析0. 简介代理模式有两种形式:静态代理、动态代理。1. 类图图片来源网络 2. 示例使用JDK中的Proxy类实现动态代理类的创建;Proxy.newProxyInstance(ClassLoader loader, ...
2018-03-14 14:26:29 747
原创 SCP协议
SCP协议:全称Secure Copy协议,是用来定义“本地机器和远端机器之间”或者“远端机器和远端机器之间”传输文件的过程的协议。SCP协议处于OSI(Open System Interconnection)七层体系中的应用层。...
2018-03-12 09:21:22 15675
原创 Django — Web项目环境搭建(Django + Vue)
目录版本依赖Django项目的创建Vue项目的创建Django关联Vue版本依赖 名称 版本号 Python 3.6.2 Django 1.8.19 Vue 2.9.1 Node 6.10.0 Django是Python体系下最成熟的web框架之一,但本身的模板引擎不够强大,且无法做到前后端分...
2018-03-11 00:00:57 2914
原创 源码分析 — ARouter路由框架
一、ARouter整体结构二、ARouter初始化流程的源码分析1. ARouter初始化时序图2. ARouter初始化代码分析三、ARouter使用时常见的问题:3.1 ARouter拦截器优先级的问题3.2 Group分组的问题四、其他五、总结一、ARouter整体结构主要的类: 类名 类的描述 ARoute...
2018-03-09 11:19:23 1785 2
原创 Kotlin基础 — 类和继承
一、类1.1 类的声明1.2 构造函数1.3 类实例的创建1.4 类成员的组成二、继承2.1. 构造2.2 方法的覆盖2.3 属性的覆盖2.4 抽象类2.5 伴生对象一、类1.1 类的声明 类使用 class 关键字声明 Kotlin中的类,默认都是 public final 类型的; class Parent {...
2018-03-06 14:43:24 283
原创 Kotlin基础 — 委托
目录类委托属性委托 2.1. 方法一:可以按需继承 ReadOnlyProperty、ReadWriteProperty 两个接口中的一个; 2.2. 方法二:自己定义,但方法参数必须和 1 中接口的方法参数一致;标准委托 3.1. 延迟属性 Lazy 3.2. 可观察属性 Observable 3.3. 把属性储存在映射中使用场景类委托(代理模式)Dele...
2018-03-02 23:08:13 260
原创 Kotlin基础 — object
一、Object 表达式二、object 对象声明2.1 直接声明 object 对象2.2 继承自接口(抽象类)的对象声明2.3 类内部的对象声明三、伴生对象 Companion Object3.1 普通的伴生对象3.2 在伴生对象中实现接口3.3 伴生对象的扩展一、Object 表达式创建匿名内部类的形式:object: ClassName...
2018-03-02 20:08:33 7187 1
原创 Kotlin基础 — 数据类、密封类、枚举类
目录数据类 数据类的写法属性声明在类的body()中对象的Copying数据类的解构密封类枚举类数据类1. 数据类的写法// 使用 data class 修饰data class Person(val name:String, val age: Int, val city: String)// 不使用 data 修饰class Person(val ...
2018-03-02 10:55:43 338
原创 Kotlin基础 — 嵌套类、内部类
官方文档:Nested and Inner Classes目录嵌套类(静态内部类) Java版本Kotlin版本内部类 inner (非静态内部类) Java版本Kotlin版本匿名内部类嵌套类Java版本public class Outer { // 外部类成员变量 private String name = "Elson"; ...
2018-03-01 13:50:45 1403
原创 Kotlin基础 — 扩展函数
概述扩展函数:指在一个类上增加一种新的行为,甚至我们没有这个类代码的访问权限。Java中,类似很多带有static方法的工具类。优势:不需要在调用方法的时候把整个对象当作参数传入。而是像是属于扩展类的一样,可以使用this关键字和调用所有public方法。应用场景参考anko-common 依赖包中ContextUtils、Dialogs 等文件的写法// 属性扩展/...
2018-03-01 11:03:38 436
Two Scoops of Django 1.11- 2017(Daniel Greenfeld).pdf
2017-09-10
graphviz-2.37
2016-11-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人