自定义博客皮肤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

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

一、引言 这篇文章以Android v28的源码为参考,介绍Android多用户的特性、使用方式和系统原理。 二、初识Android多用户 2.1 Android多用户简介 从Android 4.0开始,Google就开始在Android上布局多用户,UserManager因此而诞生,然而此时...

2019-07-05 14:59:35

阅读数 1984

评论数 2

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

引言:这篇文章以WiFi举例,介绍了Android系统网络架构。其内容包含:网络链路的连接和注册、网络有效性检测和网络优选、Android系统网络防火墙和几种场景下的网络策略等,文章的最后也列举了几种常见的无法上网原因供大家参考。 一. 基本结构 1.1 类图 1.2 WifiService W...

2019-04-10 15:33:29

阅读数 2135

评论数 1

原创 Interview - network

# 传统以太网帧 1500 + 14(头) + 4 (CRC) = 1518 (bytes) # MSS和MTU MSS是TCP连接在SYN时进行协商的,代表的最大数据长度,1460的计算是指 1500减去20字节IP头长度和20字节TCP头长度 # 802.11帧(MPDU,...

2019-11-12 11:33:12

阅读数 42

评论数 0

原创 Interview - Android

# Task, Application, Process https://blog.csdn.net/yyyysjhappy/article/details/20127615 Application:应用程序,是一组组件的集合,当我们写完了多个组件,并且在manifest文件中注册了这些组件之后,...

2019-05-17 21:10:38

阅读数 125

评论数 0

原创 Interview - JAVA & JVM

# JAVA内存模型 # Volatile关键字 # Atomic原子性 # ArrayList 和 LinkedList # ArrayList 和 Vector # Hash算法,Hash冲突的解决 # hashCode 和 equal 方法的区别 #...

2019-05-17 21:10:18

阅读数 84

评论数 0

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

2018-12-27 10:32:33

阅读数 310

评论数 0

原创 系统应用集成 LeakCanary

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

2018-12-12 17:21:09

阅读数 578

评论数 2

原创 深入理解AsyncChannel、Messenger

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

2018-08-21 16:29:58

阅读数 651

评论数 0

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

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

2018-08-15 17:10:02

阅读数 3394

评论数 1

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

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

2018-06-05 18:24:54

阅读数 934

评论数 1

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

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

2018-05-30 23:50:20

阅读数 966

评论数 0

原创 BPF进阶 - BPF常用命令

这篇文章主要解析常用的BPF命令 参考文章:https://www.freebsd.org/cgi/man.cgi?query=bpf&sektion=4&manpath=F...

2018-05-28 21:07:58

阅读数 1725

评论数 0

原创 BPF初探 - Android中BPF运用实例

本文主要介绍在Android中对BPF的使用及其解析,参考Android 7.1源码 注:阅读本文需要一定的网络协议基础 参考文章:https://www.freebsd.org/cgi/man.cgi?query=bpf&sektion=...

2018-05-28 21:07:23

阅读数 1109

评论数 0

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

文章参考的是Android 7.1的源码 本文主要研究EAP类型网络的身份验证过程,从而简化Android平台EAP类型网络的身份验证过程。 上篇文章Wi-Fi EAP网络验证过程与Android平台拓展实例(一)已经分析出IOS和Android平台在EAP类型网络认证上的差异,...

2018-05-24 15:58:22

阅读数 870

评论数 0

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

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

2018-05-24 11:25:07

阅读数 350

评论数 0

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

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

2018-05-24 00:04:54

阅读数 1405

评论数 0

原创 Android Network - 架构

文章参考的是Android 7.1 的源码 如下图所示,主要分为三个部分: 1. WiFi,Telephony,Ethernet 链路 以WiFi为例,WifiStateMachine作为WiFi driver 和用户层之间通信的桥梁,处理用户下发的指令(如连接...

2018-01-24 20:31:09

阅读数 2895

评论数 0

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