首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
Android补给站
午后一小憩
创建于2021-05-17
订阅专栏
公众号:Android补给站,Android干货集中地;帮助你更好的进阶。
等 162 人订阅
共139篇文章
创建于2021-05-17
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
Android 自定义 View 独家技巧
本文介绍Android自定义View基本步骤,以及优化技巧,提供简短自定义View思路,帮助大家掌握自定义View技巧。
Android OpenGL ES 纹理
OpenGL ES 系列 Android OpenGL ES 基础原理 Android OpenGL ES 渲染模式 之前我们一直都是在绘制简单的图形与颜色,如果是一张图片该如何通过OpenGL ES
Android OpenGL ES 渲染模式
OpenGL ES 系列 Android OpenGL ES 基础原理 动态色值 在说渲染模式之前,我们来简单了解下动态色值的填充方式。 在OpenGL ES 基础原理中,我们只是对顶点做了简单的填充
Android OpenGL ES 基础原理
由于5G的发展,现在音视频越来越流行,我们的生活已经完全被抖音、视频号、B站等视频应用所包围。从这一点也能看到音视频的重要性。 而作为一名Android开发者,是时候来了解一下关于Android方面渲
为了能够摸鱼,我走上了歧路
为了能够摸鱼,我走上了歧路;快乐拯救我吧~ 每天都是重复的工作,这样可不行,已经严重影响我的日常摸鱼,为了减少自己日常的开发时间,我决定走一条歧路,铤而走险。
我为何弃用Jetpack的App Startup?
最近Jetpack又添加了新成员App Startup,官方声明这是一个在Android应用启动时,针对初始化组件进行优化的依赖库。本人第一次听到后非常高兴,因为自己负责的项目在启动时需要初始化的东西实在是太多,而且有点杂乱无章,都耦合在一起了。对于可以异步初始化的组件也没有进…
Kotlin协程实现原理:Suspend&CoroutineContext
今天我们来聊聊Kotlin的协程Coroutine。 ... 接下来的一些文章试着来分析一下这些疑问,也欢迎大家一起加入来讨论。 这个疑问很简单,只要你不是野路子接触协程的,都应该能够知道。因为官方文档中已经明确给出了定义。 下面来看下官方的原话(也是这篇文章最具有底气的一段话…
Binder: ServiceManager的创建
承接Binder: addService初探这篇文章,我们已经知道Client端通过BpBinder的transact方法与service端进行通信,在BpBinder的transact方法中又通过IPCThreadState的transact方法将数据传递到service端。…
Binder: addService初探
在Binder: ServiceManager的获取文章中,分析了ProcessState与IPCThreadState的创建过程。最后在defaultServiceManager中,返回的是持有BpBinder的BpServiceManager对象。 下面我们直接看BpSer…
Binder: ServiceManager的获取
在Binder纯理论分析中介绍了Binder的整个通信流程。 下面我们直接通过Service的注册来了解一下Binder的具体工作原理。 我们以MediaService为例,来看下service的注册过程。MediaService对应的启动文件在main_mediaserver…
Binder纯理论分析
接下来的一段时间,我们会来深入认识一下Android中的Binder机制。 今天的主要是来对Binder做一个较全面的介绍,为之后的深入分析做一个预热准备。 首先Binder是Android中的一种独有的跨进程通信方式,简称IPC。它是专门为Android平台设计的。 那为什么…
链表:由浅入深
今天又到了算法的主题了,上次我们聊到了数组:面试中的疑难点,这次我们来聊另外一种线性结构,链表。 虽然链表与数组一样都是线性结构,但它们之间还是有本质的区别的。 数组在内存中是一块连续的存储区域,而链表可以支持随机存储,非连续的存储空间。 链表的种类可以分为,单链表、双向链表、…
ActivityManagerService 启动初探
在之前的Android SystemServer启动(二)中,分析到在SystemServer中会启动大量的Service,其中就有一个比较特殊的Service,它就是ActivityManagerService。 今天我们就来了解一下ActivityManageerServi…
一文彻底搞懂Kotlin inline
如果你只是注意到了,但从来没有进行深入探究,相信这篇文章能够帮你找到答案。 在这里我们发现通过inline修饰的方法,会通过平坦式的方式直接在后面按执行顺依次调用。 而没有使用inline修饰的方法,则会为block方法创建一个Function1实例。 简单的理解就是未使用in…
数组:面试中的疑难点
只要你是程序员就注定离不开算法。 现实一点的说,就是面试,进大厂,升职加薪。 只此一点就不得不使我们将算法列为重点成长对象。 从基础到进阶,有关职场算法进阶都能够在这里找到,欢迎加入一起成长。 数组相信大家都不陌生,我们几乎每天都有用到数组,不管是直接由我们自己创建的,还是间接…
Android SystemServer启动(二)
继续上篇文章的SystemServer启动分析。 在之前已经分析到,通过SystemServer的run方法进入到SystemServer内部逻辑。 它是SystemServer的服务大管家,提供启动服务的相关方法。 startBootPhase: 开启特殊的启动阶段节点,各项…
Android SystemServer启动(一)
Android通过Linux启动init进程,再通过init进程fork出Zygote进程。在Zygote中有一个重要的步骤就是启动system_server进程,并且创建SystemServer。 下面我们来深入了解一下SystemServer的创建过程。 在ZygoteIn…
Android Java Zygote启动
在之前的文章中我们已经分析到Zygote最后在Linux的init进程中是通过如下代码启动Java层的ZygoteInit。 所以我们进入runtime.start()方法看下它的具体实现。 通过startVm()来创建虚拟机。 该方法很长,但主要任务就是设置虚拟机的相关参数,…
Android Linux Zygote启动
Android启动的第一个进程是由Linux Kernel启动的init进程。在init进程启动的过程中,会通过解析init.rc文件来启动zygote进程。 zygote进程是Android所在Java层的第一个进程,接下来我们一起来看一下zygote的启动过程。 如果你直接…
Android init 启动
Android是基于Linux系统的,所以Android启动将由Linux Kernel启动并创建init进程。该进程是所有用户空间的鼻祖。 在init进程启动的过程中,会相继启动servicemanager(binder服务管理者)、Zygote进程(java进程)。而Zyg…
下一页