技术栈
android
好的佩奇
6 小时前
android
·
flutter
·
蓝牙
蓝牙之广播与扫描
有些蓝牙温湿度计,打开配套应用就能看到温度,却不需要先到手机设置里配对。换到系统的蓝牙设备列表,又可能找不到它。
传奇开心果编程
8 小时前
android
·
kotlin
·
移动开发
·
交互
·
android jetpack
·
ui框架
·
声明式ui
【Jetpack Compose娓娓道来】第36课:焦点管理与键盘输入——让遥控器、键盘和输入法都“找得到北”
摘要 :触摸屏时代焦点是隐形的,但换成键盘、遥控器、D-pad 后,焦点就成了用户唯一的“手指”。本文从“遥控器按了没反应”的真实场景出发,讲清 Compose 焦点管理的三个核心概念(焦点、FocusState、FocusRequester),并逐一拆解焦点遍历(focusGroup、focusProperties、onEnter)、焦点恢复(focusRestorer 与自记稳定 ID)、键盘事件(onKeyEvent / onPreviewKeyEvent)、TV 与桌面端 D-pad 导航、输入法
hai_android
9 小时前
android
·
java
·
kotlin
AudioTrack 深度解析:从原理到实战
Android 里播声音的"最低层" API。MediaPlayer/ExoPlayer 都在它之上封装了一层,只有当你需要精确控制采样数据、缓冲区大小和播放延迟时,才会直接面对它。
红尘伴蝶舞
9 小时前
android
·
kotlin
从秒开优化到连环崩溃:深入剖析 ViewPager2 在常驻 DialogFragment 中的复用陷阱与自愈方案
在音视频直播、语聊房等业务场景中,底部的礼物/互动面板通常是一个重度依赖渲染性能的高频交互组件:如果按照常规的 DialogFragment 使用习惯——每次打开都执行 newInstance()、重新解析庞大的布局 XML、重新注册状态监听、重新加载网络列表,会带来两个致命痛点:
巫山老妖
14 小时前
android
·
android jetpack
Android 应用架构演进:MVC / MVP / MVVM / MVI (2026)
Android 应用架构大致经历了四个阶段(年份为大致区间,用于说明趋势,不是严格的起止点):Model-View-Controller
木头左
18 小时前
android
·
架构设计
·
系统设计
·
后端开发
·
数据库设计
【架构设计】教育类 App 服务端化改造:AI 上移、题库分层与个人题库归属
一个纯本地的 AI 刷题 App 要上架,最硬的阻塞不是功能,而是「模型密钥打在 APK 里」和「用户换手机题库全丢」。这篇给出完整改造方案:AI 调用上移、公共题库与个人题库的分层存储、同步协议设计,以及一个必须回答的问题——个人题库到底放服务端还是手机。
墨狂之逸才
18 小时前
android
USB 的 HOST 和 DEVICE 到底有什么区别?ADB 调试应该选哪个?
每次给 Android 工控屏接电脑,看到「USB OTG 模式」里的 HOST 和 DEVICE,总要想一下该选哪个。
奶油话梅糖
19 小时前
android
·
macos
·
智能手机
苹果的内核跑上了安卓手机:2,631 Star 的 HakiOS 让 XNU 在 Adreno GPU 上画出 118 帧
数据说明:本文 Star/Fork 数字取自 2026 年 11 月 9 日 GitHub API 实测快照;技术机制、性能数据与法律条款均以 HakiOS 仓库 README 及其文档原文为准,未作虚构。
恋猫de小郭
19 小时前
android
·
前端
·
flutter
Flutter THLC 的 WebView 滚动终于从 70 FPS 提升到 120 FPS
天见犹怜, flutter/flutter#195861 终于合并了,终于把 TLHC 模式嵌入 的 WebView 滚动从 70 FPS 提到 120 FPS,之前一直用 HC 的原因就是 TLHC WebView 滚动不有舒服,关于几种模式我们应该聊过很多次了:
好的佩奇
1 天前
android
·
flutter
·
dart
Dart 之扩展类型
18 号柜子里的“18”,和 18 件物品里的“18”,虽然是同一个数字,含义却不一样。物品增加一件,数量变成 19;柜子编号加一,指的已经是另一个柜子。
alexhilton
1 天前
android
·
kotlin
·
android jetpack
2027 Android 开发者路线图:学习、面试与 AI
本文译自「Android Developer Roadmap 2027: What to Learn, What Interviews Ask, and Where AI Fits」,原文链接medium.com/proandroidd…,由Mayank Kumar发布于2026年10月30日。
灿飞屋
1 天前
android
·
java
·
开发语言
·
后端
·
python
·
kotlin
·
安卓
Kotlin与Java虚拟机三:控制流
控制流决定了程序往哪走。Kotlin 的控制流有一个核心设计:几乎所有控制结构都是表达式,会返回一个值。这一点和 Java 差别很大,后面写代码你会感受到它带来的简洁。
疯华整猫
1 天前
android
·
性能优化
·
源码
我用 Trae 把 Android 内存账重算了一遍
3 月 12 日那次灰度,我盯的是一台 4GB 的 Redmi Note 9(Android 11 / API 30)。发版第二天,模块 M 的「进程被系统杀掉」上报从每千次冷启动 6 次跳到 21 次。我照老习惯抓了份 heap dump,Java 堆 24MB、对象数、支配树,全都和上个版本对得上,连一个多出来的 Activity 都没有。可是 adb shell dumpsys meminfo com.example.health 里 TOTAL 那行从 168MB 变成了 248MB。80MB 的
TimeFine
2 天前
android
·
ai编程
AI 编程工作流的设计:从人工判断到 AI裁判
从串行验证、并行协作,到三种工作流各自的 Referee 优化。前两篇:前两篇分别解决了两类问题:但三条路线跑起来之后,新的问题又出现了:
阿杰m
2 天前
android
Android源码第四章:Android 系统启动——App 的第一行代码从哪来?
打开一个应用时,究竟是谁创建了它的进程?为什么应用进程的父进程通常是 Zygote,而不是负责启动它的 system_server?再往前追,Zygote、SystemServer 和第一个用户空间进程又从哪里来?
疯华整猫
2 天前
android
·
人工智能
·
计算机视觉
混淆起初根本不是为了防破解:我用 Trae 把 Android 混淆这二十来年重跑了一遍
有个周五晚上,我把刚打出来的 release 包拖进 jadx,想确认一下某个接口签名有没有被改掉。结果包一打开我就愣了:UserRepositoryImpl、HealthRecordViewModel、LocationPermissionHelper,业务类名一个没动,包名整整齐齐,连方法名都是原样。开了 minifyEnabled true 快两年,混淆了个寂寞。
Carson带你学Android
2 天前
android
·
ai编程
AI时代,你的 App 会被 Agent 这三种方式调用
对 Gemini 说一句"帮我用 XX App 订一杯拿铁",Agent 就替他在你的 App 里完成了整个流程。
恋猫de小郭
2 天前
android
·
前端
·
flutter
Flutter 下 AOT 一个你怎么都想不出来的 Bug ,JIT 正常的计算,在 AOT 居然算错了
最近有个 dart-lang/sdk#64878 的 Bug ,太抽象了,和我最近遇到的问题一样抽象,同一段合法的 Dart 数值计算代码,Debug 运行正常,AOT 编译后居然可能直接崩溃,或者不崩溃,但是直接算出来一个错误的结论。
好的佩奇
2 天前
android
·
flutter
·
dart
Dart 之扩展方法
给插座接上转换头,原本不匹配的插头也能使用了,但墙里的插座并没有被重新制造。我们增加的是一种使用方式。
三少爷的鞋
3 天前
android
换个思路理解:非阻塞挂起
两个执行单元,一个负责打印偶数,一个负责打印奇数,要求按顺序输出:表面上看,这是一个打印问题。但它真正要解决的是执行单元之间的通信:当前一方完成后,如何通知另一方继续?还没轮到自己时,又应该如何等待?