- Android WorkManager 可靠后台任务摘要:上传日志、同步待办和清理缓存等工作可能因进程退出或网络变化而中断。WorkManager 适合执行需要可靠完成的可延迟任务。本文介绍 Worker、约束、重试、唯一任务和任务链的设计方式。 一、先选对后台执行方式后台任务并非都应该用同一个 API。WorkManager 面向可延迟、需要系统在条件满足时尽力执行的工作;前台服务适用于... Android WorkManager 可靠后台任务摘要:上传日志、同步待办和清理缓存等工作可能因进程退出或网络变化而中断。WorkManager 适合执行需要可靠完成的可延迟任务。本文介绍 Worker、约束、重试、唯一任务和任务链的设计方式。 一、先选对后台执行方式后台任务并非都应该用同一个 API。WorkManager 面向可延迟、需要系统在条件满足时尽力执行的工作;前台服务适用于...
- Android ViewModel 与 StateFlow 界面状态摘要:界面状态分散在 Activity、Composable 和网络回调中时,容易出现旋转丢状态、重复请求和页面数据不一致。本文以 ViewModel、StateFlow 和单向数据流为主线,搭建一个可测试、能感知生命周期的 Android 页面状态模型。 一、把界面看作状态的呈现一个列表页面通常有加载中、加载成功、空结果... Android ViewModel 与 StateFlow 界面状态摘要:界面状态分散在 Activity、Composable 和网络回调中时,容易出现旋转丢状态、重复请求和页面数据不一致。本文以 ViewModel、StateFlow 和单向数据流为主线,搭建一个可测试、能感知生命周期的 Android 页面状态模型。 一、把界面看作状态的呈现一个列表页面通常有加载中、加载成功、空结果...
- Android ViewModel 与 StateFlow 界面状态摘要:界面状态分散在 Activity、Composable 和网络回调中时,容易出现旋转丢状态、重复请求和页面数据不一致。本文以 ViewModel、StateFlow 和单向数据流为主线,搭建一个可测试、能感知生命周期的 Android 页面状态模型。 一、把界面看作状态的呈现一个列表页面通常有加载中、加载成功、空结果... Android ViewModel 与 StateFlow 界面状态摘要:界面状态分散在 Activity、Composable 和网络回调中时,容易出现旋转丢状态、重复请求和页面数据不一致。本文以 ViewModel、StateFlow 和单向数据流为主线,搭建一个可测试、能感知生命周期的 Android 页面状态模型。 一、把界面看作状态的呈现一个列表页面通常有加载中、加载成功、空结果...
- Android 权限适配全指南:从 6.0 到 15,一次讲透Android 权限体系从 6.0(API 23)引入运行时权限开始,几乎每个大版本都在收紧。本文按版本演进梳理权限变化、给出可落地的适配代码与避坑清单,帮你一次过审、少踩坑。 目录权限分类与基础运行时权限(API 23+)分区存储 Scoped Storage(API 29+)包可见性 Package Visibility(A... Android 权限适配全指南:从 6.0 到 15,一次讲透Android 权限体系从 6.0(API 23)引入运行时权限开始,几乎每个大版本都在收紧。本文按版本演进梳理权限变化、给出可落地的适配代码与避坑清单,帮你一次过审、少踩坑。 目录权限分类与基础运行时权限(API 23+)分区存储 Scoped Storage(API 29+)包可见性 Package Visibility(A...
- Android 权限适配全指南:从 6.0 到 15,一次讲透Android 权限体系从 6.0(API 23)引入运行时权限开始,几乎每个大版本都在收紧。本文按版本演进梳理权限变化、给出可落地的适配代码与避坑清单,帮你一次过审、少踩坑。 目录权限分类与基础运行时权限(API 23+)分区存储 Scoped Storage(API 29+)包可见性 Package Visibility(A... Android 权限适配全指南:从 6.0 到 15,一次讲透Android 权限体系从 6.0(API 23)引入运行时权限开始,几乎每个大版本都在收紧。本文按版本演进梳理权限变化、给出可落地的适配代码与避坑清单,帮你一次过审、少踩坑。 目录权限分类与基础运行时权限(API 23+)分区存储 Scoped Storage(API 29+)包可见性 Package Visibility(A...
- Android 权限适配全指南:从 6.0 到 15,一次讲透Android 权限体系从 6.0(API 23)引入运行时权限开始,几乎每个大版本都在收紧。本文按版本演进梳理权限变化、给出可落地的适配代码与避坑清单,帮你一次过审、少踩坑。 目录权限分类与基础运行时权限(API 23+)分区存储 Scoped Storage(API 29+)包可见性 Package Visibility(A... Android 权限适配全指南:从 6.0 到 15,一次讲透Android 权限体系从 6.0(API 23)引入运行时权限开始,几乎每个大版本都在收紧。本文按版本演进梳理权限变化、给出可落地的适配代码与避坑清单,帮你一次过审、少踩坑。 目录权限分类与基础运行时权限(API 23+)分区存储 Scoped Storage(API 29+)包可见性 Package Visibility(A...
- Android 权限适配全指南:从 6.0 到 15,一次讲透Android 权限体系从 6.0(API 23)引入运行时权限开始,几乎每个大版本都在收紧。本文按版本演进梳理权限变化、给出可落地的适配代码与避坑清单,帮你一次过审、少踩坑。 目录权限分类与基础运行时权限(API 23+)分区存储 Scoped Storage(API 29+)包可见性 Package Visibility(A... Android 权限适配全指南:从 6.0 到 15,一次讲透Android 权限体系从 6.0(API 23)引入运行时权限开始,几乎每个大版本都在收紧。本文按版本演进梳理权限变化、给出可落地的适配代码与避坑清单,帮你一次过审、少踩坑。 目录权限分类与基础运行时权限(API 23+)分区存储 Scoped Storage(API 29+)包可见性 Package Visibility(A...
- Android Gradle 构建性能优化项目变大后,构建慢会直接影响开发反馈速度。构建耗时可能来自配置阶段脚本执行、依赖解析、注解处理、资源合并和无法增量的自定义任务。优化不能只增加机器资源,应先用构建分析找到最耗时且最常发生的路径。 一、区分配置与执行阶段Gradle 首先读取项目和模块配置,再执行任务。模块数量增加后,即使只编译一个小改动,配置阶段也可能消耗明显时间。构建脚本中应避免... Android Gradle 构建性能优化项目变大后,构建慢会直接影响开发反馈速度。构建耗时可能来自配置阶段脚本执行、依赖解析、注解处理、资源合并和无法增量的自定义任务。优化不能只增加机器资源,应先用构建分析找到最耗时且最常发生的路径。 一、区分配置与执行阶段Gradle 首先读取项目和模块配置,再执行任务。模块数量增加后,即使只编译一个小改动,配置阶段也可能消耗明显时间。构建脚本中应避免...
- Google开源AI测试框架ARTEMIS,支持自然语言驱动Android真机自动化:理解任务、识别界面、跨App操作、自动截图/日志采集并生成报告。原生集成MCP,可接入Antigravity等AI IDE,实现“描述目标→自主执行→分析结果”闭环。 Google开源AI测试框架ARTEMIS,支持自然语言驱动Android真机自动化:理解任务、识别界面、跨App操作、自动截图/日志采集并生成报告。原生集成MCP,可接入Antigravity等AI IDE,实现“描述目标→自主执行→分析结果”闭环。
- Android 分层测试策略测试的目标不是追求用例数量,而是用合适成本发现高风险问题。所有逻辑都依赖真机界面测试,会执行缓慢且定位困难;只写纯单元测试,又覆盖不了数据库、生命周期和系统交互。分层测试通过不同范围的测试形成互补。 一、划分测试层级可以把常见测试分为:单元测试:验证纯业务规则、状态转换和数据映射。组件测试:验证数据库、仓库或自定义控件的局部集成。页面测试:验证主要界面状态与用户... Android 分层测试策略测试的目标不是追求用例数量,而是用合适成本发现高风险问题。所有逻辑都依赖真机界面测试,会执行缓慢且定位困难;只写纯单元测试,又覆盖不了数据库、生命周期和系统交互。分层测试通过不同范围的测试形成互补。 一、划分测试层级可以把常见测试分为:单元测试:验证纯业务规则、状态转换和数据映射。组件测试:验证数据库、仓库或自定义控件的局部集成。页面测试:验证主要界面状态与用户...
- Android 内存泄漏排查方法内存泄漏是对象已经失去业务价值,却仍被一条强引用链持有。页面泄漏会让视图、图片和业务数据一起留在内存中,重复进入后可能引发卡顿甚至内存溢出。排查时不应只盯着某个大对象,而要找到从长期存活对象到目标对象的完整引用路径。 一、先确认是否真的泄漏垃圾回收不是立即发生,图片缓存和对象池也会主动保留内存。单次退出页面后内存没有立刻下降,不足以证明泄漏。更可靠的方法是重... Android 内存泄漏排查方法内存泄漏是对象已经失去业务价值,却仍被一条强引用链持有。页面泄漏会让视图、图片和业务数据一起留在内存中,重复进入后可能引发卡顿甚至内存溢出。排查时不应只盯着某个大对象,而要找到从长期存活对象到目标对象的完整引用路径。 一、先确认是否真的泄漏垃圾回收不是立即发生,图片缓存和对象池也会主动保留内存。单次退出页面后内存没有立刻下降,不足以证明泄漏。更可靠的方法是重...
- Android 图片加载与内存控制图片是 Android 应用中常见的内存大户。文件体积很小的压缩图,解码后也可能占用数兆内存;列表快速滚动还会同时产生多个请求、变换和视图复用。图片优化的重点是按展示需求解码、复用统一缓存,并让请求跟随视图生命周期取消。 一、理解解码后的内存位图内存主要由像素宽高和像素格式决定,而不是由文件体积决定。一个高分辨率图片即使压缩得很好,完整解码后仍可能非常大。... Android 图片加载与内存控制图片是 Android 应用中常见的内存大户。文件体积很小的压缩图,解码后也可能占用数兆内存;列表快速滚动还会同时产生多个请求、变换和视图复用。图片优化的重点是按展示需求解码、复用统一缓存,并让请求跟随视图生命周期取消。 一、理解解码后的内存位图内存主要由像素宽高和像素格式决定,而不是由文件体积决定。一个高分辨率图片即使压缩得很好,完整解码后仍可能非常大。...
- Android 无障碍与可操作性设计无障碍不是发布前补充几条描述,而是让界面信息、操作顺序和状态变化能够被不同用户理解。读屏、键盘、放大显示和高对比需求会暴露许多普通视觉检查难以发现的问题。越早在公共组件中建立语义,业务页面的改造成本越低。 一、优先使用有语义的标准控件按钮应使用按钮组件,可输入内容使用输入组件。标准控件已经提供点击、焦点、禁用和读屏角色,自定义 View 模拟按钮时需要手... Android 无障碍与可操作性设计无障碍不是发布前补充几条描述,而是让界面信息、操作顺序和状态变化能够被不同用户理解。读屏、键盘、放大显示和高对比需求会暴露许多普通视觉检查难以发现的问题。越早在公共组件中建立语义,业务页面的改造成本越低。 一、优先使用有语义的标准控件按钮应使用按钮组件,可输入内容使用输入组件。标准控件已经提供点击、焦点、禁用和读屏角色,自定义 View 模拟按钮时需要手...
- 摘要:Google 最近开源了一个很值得测试开发关注的项目——ARTEMIS。它不是帮你简单生成几段 Appium 脚本,而是让 AI Agent 直接操作 Android 真机或模拟器:理解自然语言测试任务、识别页面、点击控件、跨 App 执行业务流程,还能自动获取截图、Logcat、执行轨迹,并生成测试结果。更值得关注的是,ARTEMIS 原生支持 MCP,可以直接接入 Antigrav... 摘要:Google 最近开源了一个很值得测试开发关注的项目——ARTEMIS。它不是帮你简单生成几段 Appium 脚本,而是让 AI Agent 直接操作 Android 真机或模拟器:理解自然语言测试任务、识别页面、点击控件、跨 App 执行业务流程,还能自动获取截图、Logcat、执行轨迹,并生成测试结果。更值得关注的是,ARTEMIS 原生支持 MCP,可以直接接入 Antigrav...
- Android 深色主题与设计令牌深色主题不是把所有颜色反转。文字层级、品牌色、分割线、图片和系统栏都需要在不同外观下保持对比度与一致语义。若业务布局直接写入大量颜色值,切换主题会变成逐页修补。更可维护的方式是先建立语义化设计令牌,再由不同主题提供具体值。 一、颜色名称表达语义相比 gray_333,text_primary、surface_page 和 status_warning 更能... Android 深色主题与设计令牌深色主题不是把所有颜色反转。文字层级、品牌色、分割线、图片和系统栏都需要在不同外观下保持对比度与一致语义。若业务布局直接写入大量颜色值,切换主题会变成逐页修补。更可维护的方式是先建立语义化设计令牌,再由不同主题提供具体值。 一、颜色名称表达语义相比 gray_333,text_primary、surface_page 和 status_warning 更能...
上滑加载中
推荐直播
-
华为云码道Agent集成与鸿蒙实战2026/08/11 周二 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;彭江敏-华为云鸿蒙端云一体化开发专家
本次直播带你解读华为云码道7月份产品新特性、新功能。更有专家演示码道Agent Space × 钉钉机器集成实战,从0到1打通消息通道;码道鸿蒙端云一体化实战,快速搭建员工签到系统。
回顾中 -
华为云开发者AI素养直播课·第五期2026/09/04 周五 16:00-18:00
林华鼎-华为云AI开发者运营负责人;蒋春阳-华为云AI开发者案例开发专家
本期直播内容: AI工具体验营 · 第5-8课连讲。Agent-Team 多智能体协作完成毕业设计实践
回顾中 -
华为云开发者AI素养ClassRoom·第六期2026/09/08 周二 19:00-20:00
樊渊-2026华为软件挑战赛冠军
高手来了:看软挑高手解析二维排样问题—从工业难题到算法突破
回顾中
热门标签