首页
首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
Android进阶
Avengong
创建于2021-07-22
订阅专栏
进阶知识点
等 17 人订阅
共37篇文章
创建于2021-07-22
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
Binder 解析之驱动层理解(二)
一、 驱动初始化 Binder驱动作为misc 设备,在系统启动的时候就会完成注册。 binder_fops对应的结构体: 从上面可以看出,系统调用和驱动函数的对应关系: 二、 驱动提供的函数 2.1
Binder 总体架构概述(一)
背景 Binder是Android进程间的一种通信方式,属于C/S架构。 Android系统的底层基于Linux内核。相对与传统的IPC方式,Binder在效率上 有显著的优势。通过Binder来实现
Android系统启动(四)-ServiceManager启动
背景 init进程中解析init.rc的时候启动的。 init进程通过解析serviceManager.rc文件里启动。 mmap 和 shm 两者共享内存的区别和关系? shm: shared me
Android系统启动(三)-SystemServer篇
背景 在zygote进程初始化的过程中,除了启动虚拟机、注册JNI、预加载类和资源、创建socket服务外,还会fork()出SystemServer进程。 这个过程可以大体分为两个部分: Syste
Android系统启动(二)- Zygote篇
经过前面的init进程简介,接下来就进入zygote进程部分了。 一、Zygote的启动 init进程会解析init.zygoteXX.rc 文件,如下: XX 分别对应加载32或64系统。 这其实就
Android 系统启动(一)-init 进程篇
背景 按下开机键后,会进入BootLoader引导扇区,拉起OS。然后创建了第一个内核进程swapper(),pid=0。 swapper(0) 0号进程在kernel层fork出kthread进程后
Android 使用maven publish插件发布产物(aar)全过程实践
背景 平时开发中会把一些独立的功能模块抽取出来作为sdk,既方便业务接入,又能让其他业务线快速复用。那么我们就需要将sdk打包上传到maven仓库,让业务侧依赖即可。 一、编译后的产物 在上传产物到m
[Matrix系列-5]: AppMethodBeat 源码分析
背景 AppMethodBeat类是一个核心类,主要负责方法调用耗时的统计和存储、堆栈的获取等。 和 StartupTracer、LooperAnrTrace、EvilMethodTrace都有着密不
[Matrix系列-4]: TracePlugin 之 EvilMethodTracer 源码分析
前言 有了前面的分析基础,现在EvilMethodTracer类看起来“简单”很多~ 没有看过的话可以看之前写的系列文章~ [Matrix系列-1]: matrix 启动流程源码解析 [Matrix系
[重识 Java] Map集合-HashMap源码解析 我学废了!
背景 HashMap在平时工作中使用频率高的离谱。 要说不熟悉吧? 天天用哪里不熟悉了? 面试的时候,面试官:哦,那你说说底层怎么实现的吧?我:额,这个,我记得好像是通过hash计算存储到数组,还有链
[Matrix系列-3]: TracePlugin 之 FrameTrace 源码分析
开篇 第二篇文章中,我们分析了 TracePlugin 中的 LooperAnrTrace 类。今天这篇文章接着分析 TracePlugin 中的 FrameTrace 类 源码。 一、FrameTr
Android 10 和Android 11 适配采坑 实践篇
背景 最近在项目中着手做Android10和Android11 适配时候,期间遇到了不少的坑。之前有专门写过qq、微信分享的适配。但是此次在针对偏业务侧适配工作的时候还是碰到了一些新的问题。记录下来,
[Matrix系列-2]: TracePlugin 之 LooperAnrTrace源码分析
接着第一篇的分析,看看TracePlugin的start()方法。 一、TracePlugin的init()和start() 这个start方法是核心了,我们需要好好去分析。 在分析start方法之前
[Matrix系列-1]: matrix 启动流程源码解析
一、背景 Matrix-android 当前监控范围包括:应用安装包大小,帧率变化,启动耗时,卡顿,慢方法,SQLite 操作优化,文件读写,内存泄漏等等。 而Trace-Canary包含:帧率fps
Android开发 多线程之换个视角理解
写在前面 理解多线程并发和锁的关键在于正确的理清当前代码正处在哪个线程的执行环境下。说白了,这个同步代码/同步方法谁都可以来执行的,关键是有没有其他人在用这个锁。 1 Thread如何理解 1.1 T
相信我! Android开发 必须要了解的计算机基础知识
1 CPU和内存 CPU和内存 是核心中的核心。 先上图: 一个CPU会有单个、或多个核。每个核都自己的寄存器、PC、ALU、缓存等。多个核之间共享L3缓存。与内存通过总线来传输。 晶体管组成逻辑门电
Android 渲染系列-App整个渲染流程全解析
前言 谈到Android的渲染,可能会想到测量、布局、绘制三大流程。但我们的view到底是如何一步一步显示到屏幕的?App的CPU/GPU渲染到底是什么?OpenGL/Vulkan/skia是什么?