Android共0篇 第2页
Android
鸿蒙剥离 AOSP 不兼容 Android 热门问题汇总,不吹不黑不吵-五八三

鸿蒙剥离 AOSP 不兼容 Android 热门问题汇总,不吹不黑不吵

上周发了一篇 《鸿蒙终于不套壳了?纯血 HarmonyOS NEXT 即将到来》的相关资讯,没想到大家「讨(fa)论(xie)」的热情很高,莫名蹭了一波流量,虽然流量对我来说也没什么用,但几百条评论也收...
admin的头像-五八三admin2年前
0220

Android12 AlarmManagerService底层解析及开机闹钟

最近项目中需要为一个硬件实现定时开机的功能,借此机会把AlarmManagerService从上层到底层的流程给梳理了一遍。 首先在应用层只能使用AlarmManager与AlarmManagerService进行通信,就不在此赘...
admin的头像-五八三admin2年前
0150
Now in Android #88 带你了解近期 Android 的一些新变化-五八三

Now in Android #88 带你了解近期 Android 的一些新变化

本期更新主要看点,Android 14 正式版临近发布,需要做好行为变更适配、Jetpack Compose 1.5带来性能提升、Kotlin 多平台名称更改为 KMP。 什么是 Now in Android? Now in Android 是 Android ...
admin的头像-五八三admin2年前
080
Binder通信之ContentProvider-五八三

Binder通信之ContentProvider

Binder通信之ContentProvider 前言 这是一篇偏实战的文章 深入讨论了ContentProvider如何实现进程通信 大家应该都比较熟悉ContentProvider,通常用于A进程查询B进程内部的数据。其中涉及到进程...
admin的头像-五八三admin2年前
0250
Binder - Parcel的结构-五八三

Binder – Parcel的结构

一、前言 我们在BpServierManager的addService方法中,有一段初始化Parcel的代码,我们借此来分析一下Parcel的结构 二、源码分析 我们看下addService中Parcel的使用: ::android::Parcel _aidl_...
admin的头像-五八三admin2年前
0170
Binder - 6、Binder中的一次拷贝-五八三

Binder – 6、Binder中的一次拷贝

一、前言 众所周知,Binder之所以高效,是因为它只发生了一次内存拷贝,那么它的“一次拷贝”到底是怎么实现的呢? 我们在之前在分析binder_transaction的时候,提到了一个方法,这个方法是一次...
admin的头像-五八三admin2年前
0180
Binder - 5、一次平平无奇的Binder通信-五八三

Binder – 5、一次平平无奇的Binder通信

一、前言 在Binder - 4、获取Service的过程中,我们通过驱动层拿到了SurfaceFlinger对应的handle 0,然后用其创建了BpBinder,并在随后将其转换成为了BpSurfaceComposer。 在本文中,我们以BpSu...
admin的头像-五八三admin2年前
0130

Binder – 4、获取Service的过程

一、前言 我们在前文讨论了Service是怎么添加到ServiceManager的,说完了添加,我们来看下获取的过程,由于过程中很多东西都是一样的,所以获取的分析过程就稍显容易。 针对Service的获取,我们...
admin的头像-五八三admin2年前
0140
Binder - 3、注册Service的过程-五八三

Binder – 3、注册Service的过程

一、前言 初始化完servicemanager之后,那么我们就可以往里面注册我们的Service了,对一些系统Service来说,它们提供了普通的Android应用赖以实现的接口,所以需要在系统启动之后就注册到servic...
admin的头像-五八三admin2年前
0570
Binder - 2、servicemanager的初始化-五八三

Binder – 2、servicemanager的初始化

一、前言 两个进程之间想要通信,就必须要知道对方的地址才行,这样的话,就必须要有一个“中间人”来做注册才行,servicemanager正是做这个事的,那又涉及到一个问题,应用进程怎么知道service...
admin的头像-五八三admin2年前
0120
Binder - 1、初始化-五八三

Binder – 1、初始化

一、前言 Binder驱动层是整个Binder机制的核心,但是相对处于比较底层的位置,对于Android开发者来说,可能就只是知道著名的“一次拷贝”了,但是一次拷贝是如何实现的?恐怕大多数人也不甚了解...
admin的头像-五八三admin2年前
0110

【玩转Android无障碍】之微信好友导出

【玩转Android无障碍】之微信好友导出 上一篇文章【玩转Android无障碍】之小试牛刀 已经简单介绍了一下实现一个功能需要的步骤,正所谓小试牛刀之后就可以大干一场了。本章我们来介绍一下如何获...
admin的头像-五八三admin2年前
0430
arm64汇编指南-五八三

arm64汇编指南

寄存器 寄存器是CPU的组成成分, 存放着指令、数据和地址,速度比内存块 分为通用寄存器、状态寄存器和浮点寄存器 通用寄存器 ARM64有31个通用寄存器, 每个寄存器可以存储64位数据(8个字节) 使用 ...
admin的头像-五八三admin2年前
0410

RecyclerView之AsyncListDiffer

一、ListAdapter 当数据量不大时,我们可以在UI线程中直接更新数据,但是当数据量大时这就比较尴尬了,我们需要自己放在子线程操作,然后再回UI线程更新页面。在7.0上引入 DiffUtil 之后,现在 ...
admin的头像-五八三admin2年前
0220
RecyclerView 之 DiffUtil-五八三

RecyclerView 之 DiffUtil

一、前言 DiffUtils 是 Support-v7:24:2.0 中,更新的工具类,主要是为了配合RecyclerView 使用,通过比对新、旧两个数据集的差异,生成旧数据到新数据的最小变动,然后对有变动的数据项,进行...
admin的头像-五八三admin2年前
0140

【玩转Android无障碍】之小试牛刀

是骡子是马拉出来遛遛呗 上一篇文章【玩转Android无障碍】之布局节点速查器 已经介绍了如何快速的查看页面节点信息了,现在开始我们就可以结合具体需求通过实战方式逐步实现一些有意思的功能了...
admin的头像-五八三admin2年前
0300
关于Jetpack Compose中Composable的度量指标-五八三

关于Jetpack Compose中Composable的度量指标

当大量团队开始使用Jetpack Compose的时候, 团队中的大多数人最终会发现还缺少一块拼图: 测量Composable函数的性能. 在Jetpack Compose 1.2.0中, Compose编译器添加了一项新功能, 它可以在构建...
admin的头像-五八三admin2年前
0270
从LeakCanary看Fragment生命周期监控-五八三

从LeakCanary看Fragment生命周期监控

前文中我们已经了解到LeakCanary中Service生命销毁的监听方式,那么Fragment的生命周期监听又是怎么实现的呢? Activity生命周期监听,在Application里面有ActivityLifecycleCallbacks,那么Fra...
admin的头像-五八三admin2年前
0210
【自定义View】关于多色进度条GradientProgressView的绘制-五八三

【自定义View】关于多色进度条GradientProgressView的绘制

目录 前言 一、GradientProgressView准备工作 二、绘制 1.初始化属性 2.测量宽高 3.根据情况来画渐变色进度 4.绘制 总结 前言 我们常使用shape实现渐变色,但是shape的极限却只有三色,如果有超...
admin的头像-五八三admin2年前
070
【小鹅事务所】Android动效设计从入门到实战-五八三

【小鹅事务所】Android动效设计从入门到实战

前言 最近小鹅事务所新增了一些动画,包括转场动画、布局动画和交互动效。本文通过多个动效实战来介绍其中的动效设计思想和 动画实战。 我已经想写动效开发这个题材很久了,但一直未能动笔。这...
admin的头像-五八三admin2年前
0210