首页
首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
哈利迪
掘友等级
获得徽章 5
动态
文章
专栏
沸点
收藏集
关注
作品
赞
34
文章 33
沸点 1
赞
34
返回
|
搜索文章
最新
热门
图解 | 不得错过的Binder浅析(二)
本文主要分析ServiceManager系统服务管理进程对binder的管理流程。 Binder跟键盘、显示器一样属于一种外设(没有实体的外设)。由于外设种类繁多,操作系统如Linux抽象出文件视图来方便用户使用外设。即对用户来说,通过读写外设文件,让操作系统将指令发送给外设控…
图解 | 不得错过的Binder浅析(一)
Framework和Binder的内容挺深的,本文还是站在应用层开发者的角度来建立基本认知,能在遇到问题的时候有思路和方向即可。(本文将带着关键问题和核心流程展开,不会面面俱到) Binder是Android系统的一种跨进程通信(IPC)机制。 在Android系统中,单个进程…
图解 | 一图摸清Android应用进程的启动
init进程fork出Zygote进程后,Zygote进程会创建一个服务端socket,等待AMS发起socket请求。 同时,由Zygote进程fork出的SystemServer进程会启动各项系统服务,其中就包含了AMS,AMS会启动Launcher桌面,此时就可以等待用户…
图解 | 一图摸清Android系统服务
AIDL可以辅助生成用于binder通信的类,IPowerManager就是定义在IPowerManager.aidl里的,binder内部细节本文不做讨论。 可见,我们的应用程序进程会通过binder跨进程通信,拿到ServiceManager进程的IServiceManag…
图解 | Android系统的启动
init进程是Linux内核启动完成后在用户空间启动的第一个进程,主要负责初始化工作、启动属性服务、解析init.rc文件并启动Zygote进程。 Zygote进程是一个进程孵化器,负责创建虚拟机实例、应用程序进程、系统服务进程SystemServer。他通过fork(复制进程…
踩坑记 | 多aar下修改常量的一个小坑
嗨,我是哈利迪~好久不见,最近大促比较忙,没啥时间写文章肝源码...本文做个小记,记录一个多aar下修改常量引起的问题,希望能给大家避避坑。 哈迪在壳工程看了下,依赖了基础工程1并且用到了常量TYPE_RECOMMEND_TAB的上层工程,还有四五个,涉及了六七个类,这要是忘了…
Android | dagger细枝篇
嗨,我是哈利迪~《看完不忘系列》之dagger(树干篇)一文对dagger做了初步介绍,下面我们一起来瞅瞅dagger的一些细节。 为什么用抽象方法,因为这里我们要做的只是声明绑定关系,dagger根据声明就知道如何提供实例了,dagger不会调用这个方法或为他生成具体实现。 …
Android |《看完不忘系列》之dagger
嗨,我是哈利迪~《看完不忘系列》将以从树干到细枝的思路分析一些技术框架,本文将对开源项目dagger进行介绍。 依赖注入(Dependency Injection,DI)遵循控制反转(Inversion of Control,IoC)原则,简单来说就是创建对象时给对象传入依赖,…
Android |《看完不忘系列》之Retrofit
嗨,我是哈利迪~《看完不忘系列》将以从树干到细枝的思路分析一些技术框架,本文将对开源项目Retrofit进行介绍。 Retrofit的底层网络实现基于okhttp,自身的类不是很多,最核心的点就是动态代理了。代理模式简单来说,就是为对象提供一个增强或控制其访问的代理。下面我们先…
Android | okhttp细枝篇
嗨,我是哈利迪~《看完不忘系列》之okhttp(树干篇)一文对okhttp的请求流程做了初步介绍,本文将对他的一些实现细节和相关网络知识进行补充。 推荐阅读「查缺补漏」巩固你的HTTP知识体系,常用的概念都在了,由于目前用的比较多的还是http 1.1,所以下面分析会跳过htt…
下一页
个人成就
文章被点赞
854
文章被阅读
131,214
掘力值
3,990
关注了
54
关注者
863
收藏集
4
关注标签
4
加入于
2019-06-05