6 ulangch

尚未进行身份认证

Hold my dream.

等级
TA的排名 17w+

深入理解Android系统多用户

一、引言这篇文章以Androidv28的源码为参考,介绍Android多用户的特性、使用方式和系统原理。二、初识Android多用户2.1Android多用户简介从Android4.0开始,Google就开始在Android上布局多用户,UserManager因此而诞生,然而此时还没有对应的Binder服务。真正支持多用户是从Android4.2开始,即便如此,系统中也依然存...

2019-07-05 14:59:35

深入理解Android系统网络架构

引言:这篇文章以WiFi举例,介绍了Android系统网络架构。其内容包含:网络链路的连接和注册、网络有效性检测和网络优选、Android系统网络防火墙和几种场景下的网络策略等,文章的最后也列举了几种常见的无法上网原因供大家参考。一. 基本结构1.1 类图1.2 WifiServiceWifiManager中公开API的具体实现,提供了WiFi打开与关闭、配置和扫描、连接和断开等方法,其...

2019-04-10 15:33:29

vector push_back 超过 capacity 时产生的内存拷贝问题

2018-12-27 10:32:33

系统应用集成 LeakCanary

本文介绍如何在系统应用中集成LeakCanary。由于很多系统应用使用gradle,且通过Android.mk来进行编译,因此无法使用类似gradle的方式添加依赖来完成对LeakCanary的集成和使用。1. 源码下载LeakCanary的源码位于 https://github.com/square/leakcanary,通过 git clone 或者 zip 的方式将源码下载到本地,源...

2018-12-12 17:21:09

深入理解AsyncChannel、Messenger

这篇文章主要介绍Android AsyncChannel原理及其应用实例 注:文章参考的是Andrdoid 8.0源码#

2018-08-21 16:29:58

Linux socket - 源码分析(一)

这篇文章主要分析socket原理和工作流程参考kernelmsm-4.4源码进程和进程间通信  进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。不同进程间,内存资源相互独立,无法直接获取和修改,因此不同进程间需要通过特殊的方式进行传递信息。  进程间通信(IPC,Interprocess...

2018-08-15 17:10:02

Socket阻塞导致的system_server无法正常启动分析

这篇文章主要记录分析monkey出现的一个system server无法正常启动问题 从中可以了解如何分析strace,锁占用等内容 … 注:文章分析过程比较长,可以先参考文章末尾的问题主线图问题现象  设备跑monkey过程中system server重启,但是没有成功启动,system server被block,出现卡白米的现象。问题分析  首先看看s...

2018-06-05 18:24:54

BPF高阶 - 使用BPF过滤固定特征报文

这篇文章主要介绍如何使用BPF过滤固定特征报文

2018-05-30 23:50:20

BPF进阶 - BPF常用命令

这篇文章主要解析常用的BPF命令 参考文章:https://www.freebsd.org/cgi/man.cgi?query=bpf&sektion=4&manpath=FreeBSD | 4.7-RELEASE上篇文章 BPF初探 - Android(DhcpClient)中BPF运用实例解析 介绍了Android源码中对BPF的运用,其中配置的BPF过滤规则...

2018-05-28 21:07:58

BPF初探 - Android中BPF运用实例

本文主要介绍在Android中对BPF的使用及其解析,参考Android 7.1源码 注:阅读本文需要一定的网络协议基础 参考文章:https://www.freebsd.org/cgi/man.cgi?query=bpf&sektion=4&manpath=FreeBSD+4.7-RELEASE什么是BPF  伯克利包过滤器(Berkeley Pack...

2018-05-28 21:07:23

Wi-Fi EAP网络验证过程与Android平台拓展实例(二)

文章参考的是Android 7.1的源码 本文主要研究EAP类型网络的身份验证过程,从而简化Android平台EAP类型网络的身份验证过程。上篇文章Wi-Fi EAP网络验证过程与Android平台拓展实例(一)已经分析出IOS和Android平台在EAP类型网络认证上的差异,即提供给认证服务器的加密方法不同。那么这篇文章就通过分析Android源码来大概了解下整个认证过程。...

2018-05-24 15:58:22

Linux fork 孤儿进程并管理孤儿进程

这篇文章主要介绍如何fork孤儿进程,同时如何巧妙将孤儿进程PID传递给父进程什么是孤儿进程  父进程创建子进程后退出,子进程会被init进程认领,因此子进程的ppid会成为init进程的pid,这样创建的子进程就叫做孤儿进程。   ...

2018-05-24 11:25:07

Wi-Fi EAP网络验证过程与Android平台拓展实例(一)

Wi-Fi EAP网络验证过程与Android平台拓展实例本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 ...

2018-05-24 00:04:54

Android Network - 架构

文章参考的是Android 7.1 的源码如下图所示,主要分为三个部分: 1. WiFi,Telephony,Ethernet 链路 以WiFi为例,WifiStateMachine作为WiFi driver 和用户层之间通信的桥梁,处理用户下发的指令(如连接/断开连接/更改配置信息等)以及driver返回到framework的消息。当WiFi链路状态发生改变时,它将及时地告

2018-01-24 20:31:09
勋章 我的勋章
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。