首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
Android源码
订阅
舒大飞
更多收藏集
微信扫码分享
微信
新浪微博
QQ
60篇文章 · 0订阅
Android窗口管理分析(1):View如何绘制到屏幕上的主观理解
窗口管理可以说是Android系统中最复杂的一部分,主要是它涉及的模块比较多,虽然说是窗口管理,但除了WindowManagerService还包括SurfaceFlinger服务、Linux的共享内存及tmpfs文件系统、Binder通信、InputManagerService…
Android硬件加速(二)-RenderThread与OpenGL GPU渲染
Android4.0之后,系统默认开启硬件加速来渲染视图,之前,理解Android硬件加速的小白文简单的讲述了硬件加速的简单模型,不过主要针对前半阶段,并没怎么说是如何使用OpenGL、GPU处理数据的,OpenGL主要处理的任务有Surface的composition及图形图…
Android 渲染系列-App整个渲染流程全解析
前言 谈到Android的渲染,可能会想到测量、布局、绘制三大流程。但我们的view到底是如何一步一步显示到屏幕的?App的CPU/GPU渲染到底是什么?OpenGL/Vulkan/skia是什么?
『BATcoder』 做了多年安卓还没编译过源码?一个视频带你玩转!
这是BATcoder的第五篇,BATcoder是Android进阶三部曲的番外篇,会对Android进阶三部曲的内容进行拓展和升级,会以视频的形式分享给大家。至于为啥叫BATcoder,这是因为我希望大家看了我的技术视频能进入自己中意的大厂。 为了实现这些需求,就需要我们去编译…
源码茶舍之没有epoll就没有Handler
这里为了简单直接用了匿名类,当然你也可以实现自定义的Handler并重写 handleMessage 方法来处理消息。post 最终其实还是调用到了Handler的 sendMessageDelayed 方法,将Runnable封装成一个Message发送到消息队列Messag…
Android-Surface之创建流程及软硬件绘制
注:本文基于Android 10源码,为了文章的简洁性,引用源码的地方可能有所删减。文中内容如有错误欢迎指出,共同进步!觉得不错的留个赞再走哈~ 在解析了 Android-SurfaceFlinger启动与工作流程 和 Android-Choreographer工作原理 后,明…
面试官:如何监测应用的 FPS ?
即使你不知道 FPS,但你一定听说过这么一句话,在 Android 中,每一帧的绘制时间不要超过 16.67ms。那么,这个 16.67ms 是怎么来的呢?就是由 FPS 决定的。 FPS,Frame Per Second,每秒显示的帧数,也叫 帧率。Android 设备的 F…
反思|官方也无力回天?Android SharedPreferences的设计与实现
而想要解除这些潜藏在内心最深处的困惑,就不得不从SharedPreferences本身的设计与实现讲起了。 我们知道,就在不久前2019年的Google I/O大会上,官方推出了Jetpack Security组件,旨在保证文件和SharedPreferences的安全性,Sh…
反思|Android 输入系统 & ANR机制的设计与实现
对于Android开发者而言,ANR是一个老生常谈的问题,站在面试者的角度,似乎说出 「不要在主线程做耗时操作」 就算合格了。 但是,ANR机制到底是什么,其背后的原理究竟如何,为什么要设计出这样的机制?这些问题时时刻刻会萦绕脑海,而想搞清楚这些,就不得不提到Android自身…
一次线程OOM排查看线程使用注意事项
从上报信息看到最后的线程数是 1456 个,这个数量是远远超出我们正常使用量的,再通过这个堆栈信息我们可以知道就是APP中的线程创建数量太多而导致的OOM,排查方向的重点就是要关注APP 里面线程池使用的地方;不同页面都会报这个错误,那这个问题说明不是在特定页面产生的,是通性问…