技术栈
android
冬奇Lab
7 小时前
android
·
源码阅读
Android触摸事件分发、手势识别与输入优化实战
上一篇我们深入分析了InputManagerService的整体架构,了解了输入事件如何从内核驱动经过EventHub、InputReader、InputDispatcher,最终通过InputChannel传递到应用进程的ViewRootImpl。
城东米粉儿
10 小时前
android
Android MediaPlayer 笔记
MediaPlayer 的整体架构采用了 C/S(客户端/服务器)架构,并严格遵循 Android 的层次化设计理念。这种设计将应用层与底层多媒体服务解耦,保证了系统的稳定性和可扩展性。
Jony_
10 小时前
android
Android 启动优化方案
在开始启动的优化之前,需要明确启动的启动耗时的指标计算规则,在这里我们定义的规则如下:启动耗时 = HomeActivity.onWindowFoucusChange - Application.onCreate
阿巴斯甜
10 小时前
android
Android studio 报错:Cause: error=86, Bad CPU type in executable
核心原因: 你很可能使用的是 Apple Silicon (M1/M2/M3/M5) 芯片的 Mac,但 Android Studio 调用的某个组件(通常是 Build Tools、CMake、NDK 或 JDK)是仅针对 Intel (x86_64) 编译的,且没有正确通过 Rosetta 2 转译,或者反之(在 Intel Mac 上运行了纯 ARM 版且未正确处理)。
张小潇
11 小时前
android
AOSP15 Input专题InputReader源码分析
在 Android 15 中,InputReader 依然是输入系统(Input System)的核心组件,负责从内核读取原始事件并进行预处理。理解它的调用流程,需要将其放在 InputDispatcher 的上下文中观察。
_小马快跑_
15 小时前
android
Kotlin | 协程调度器选择:何时用CoroutineScope配置,何时用launch指定?
协程是一种轻量级线程,它通过 挂起suspend 和 恢复resume的机制,在单线程内以同步的代码写法实现异步、非阻塞操作,从而更高效地管理并发任务,简化回调地狱和复杂的多线程切换,一句话总结协程:协程可以实现用同步的代码写出异步并发逻辑,既高效又易维护。
_小马快跑_
15 小时前
android
Kotlin | 从SparseArray、ArrayMap的set操作符看类型检查的不同
在Kotlin开发中,在SparseArray和ArrayMap上使用相同的set操作符时,发现类型检查行为还不太一致。
_小马快跑_
15 小时前
android
Android | 为什么有了ArrayMap还要再设计SparseArray?
ArrayMap 的存储方式:SparseArray 的存储方式:性能对比:SparseArray 系列专门优化:
_小马快跑_
15 小时前
android
Android TextView图标对齐优化:使用LayerList精准控制drawable位置
我们经常使用TextView的drawableStart、drawableEnd等属性来为文字添加图标。但有时会遇到这样的问题:
_小马快跑_
15 小时前
android
Kotlin协程并发控制:多线程环境下的顺序执行
在多线程编程中,保证并发任务的顺序执行是一个常见且重要的需求。本文将探讨几种在Kotlin协程中实现多线程顺序执行的方案。
_小马快跑_
15 小时前
android
Kotlin协程异常捕获陷阱:try-catch捕获异常失败了?
线上有个崩溃日志,定位到的代码大致如下:经过Tools -> Kotlin -> Show Kotlin Bytecode 反编译查看:
_小马快跑_
15 小时前
android
Android | 权限申请与前置说明弹窗同时展示的优雅方案
在 Android 应用开发中,权限申请是必不可少的环节。如果直接申请权限弹窗,显得有点突兀,用户不了解为何需要此权限,所以通常在申请权限之前会有个说明弹窗,当用户同意之后再去弹系统权限的弹窗。然后这种方案也有缺点,就是每次申请权限都需要2个弹窗:说明弹窗+系统权限弹窗,不过现在主流App的方案都是将这两个弹窗合二为一了,说明弹窗和系统权限弹窗同时展示,比如: 本文就实现一下这种效果。
_小马快跑_
15 小时前
android
Android | Channel 与 Flow的异同点
Channel 和 Flow 都是 Kotlin 协程中处理异步数据流的工具,但它们的设计理念和使用场景有很大不同。
_小马快跑_
15 小时前
android
Android | 文本测量:从 Paint.measureText 到 StaticLayout 的替换
有这么一个场景:需要根据文本内容动态调整布局,首先需要计算文本行,开始使用的是 Paint.measureText() 来计算行数,示例代码如下:
树獭非懒
16 小时前
android
·
前端
·
人工智能
告别繁琐多端开发:DivKit 带你玩转 Server-Driven UI!
在当今移动互联网时代,应用开发面临着一个普遍的挑战:如何高效地在 iOS、Android 和 Web 等多个平台上保持 UI 的一致性,并快速迭代更新?每次修改 UI 都需要发布新版本,这无疑增加了开发和维护成本。
三少爷的鞋
17 小时前
android
为什么应该先在 IntelliJ 中学习 Kotlin 与协程,而不是直接上 Android Studio
很多 Android 开发者在学习 Kotlin 和协程时,都会下意识地打开 Android Studio。 但实践证明:这是一个效率很低、挫败感很强的起点。
不爱说话郭德纲
1 天前
android
·
前端
·
uni-app
告别漫长的HbuilderX云打包排队!uni-app x 安卓本地打包保姆级教程(附白屏、包体积过大排坑指南)
接触过 uni-app 的同学,在进行 App 打包时习惯使用 HBuilderX 的“云打包”。但随着项目变大,你一定会遇到这些痛苦:
Sinclair
2 天前
android
·
服务器
简单几步,安卓手机秒变服务器,安装 CMS 程序
旧手机不要扔,简单几步就能秒变服务器,安装 AnQiCMS 程序。下面手把手教你如何从一部安卓手机开始,一步步操作实现手机变服务器的操作过程。
雮尘
2 天前
android
·
前端
·
grpc
手把手带你玩转Android gRPC:一篇搞定原理、配置与客户端开发
在这篇文章中,你能学会 RPC、 GRPC 是什么,protobuf 是什么,怎么定义,以及如何在 Android开发中使用。
ktl
2 天前
android
Android 编译加速/优化 80%:一个文件搞定,零侵入零配置
github.com/ktl-111/Fas…在大型 Android 多 module 项目中,每次执行 assembleDebug / assembleRelease 时,即使只修改了一个 module 的代码,Gradle 仍然会对所有 module 执行大量编译相关 task。