自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ulangch的博客

Android Framework/Kernel/Network/WiFi

  • 博客(14)
  • 收藏
  • 关注

原创 深入理解Android系统多用户

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

2019-07-05 14:59:35 28241 4

原创 深入理解Android系统网络架构

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

2019-04-10 15:33:29 14851 7

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

2018-12-27 10:32:33 2256

原创 系统应用集成 LeakCanary

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

2018-12-12 17:21:09 2065 2

原创 深入理解AsyncChannel、Messenger

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

2018-08-21 16:29:58 2245

原创 Linux socket - 源码分析(一)

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

2018-08-15 17:10:02 11659 1

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

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

2018-06-05 18:24:54 2688 2

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

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

2018-05-30 23:50:20 2415

原创 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 6081

原创 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 4686

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

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

2018-05-24 15:58:22 2502

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

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

2018-05-24 11:25:07 1095

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

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

2018-05-24 00:04:54 3932

原创 Android Network - 架构

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

2018-01-24 20:31:09 6821

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除