移动开发

[ANR] Input ANR是怎么产生的

最近在做ANR优化,发现线上非常多的ANR(一半以上)原因都是 Input dispatching timed out。对于Activity或Service生命周期的ANR产生原理,我想大家应该都比较了解了,就是在AMS里埋炸弹、拆炸弹那一套机制,那Input Dispatching time outANR是怎么产生的呢?这篇文章带大家一起学习一下。 Android输入系统 Input Dispa

Android 车载应用开发与分析(12) - SystemUI (一)

1.前言 Android 车载应用开发与分析是一个系列性的文章,这个是第12篇,该系列文章旨在分析原生车载Android系统中核心应用的实现方式,帮助初次从事车载应用开发的同学,更好地理解车载应用开发的方式,积累android系统应用的开发经验。 注意:本文的源码分析部分非常的枯燥,最好还是下载android源码然后对着看,逐步理顺逻辑。 本文中使用的源码基于android-11.0.0_r48

确定 Flutter SDK 及其关联的 Gradle 版本与适配的 JDK 版本

最近在编写 Flutter 项目,发现不同的 Flutter SDK 版本有着不一样的 Gradle 版本,然后不同的 Gradle 版本需要不同的 JDK 版本。只有当三者都一致匹配时,才能正常的完成编译首先,我们可以确定 Flutter SDK 对应的 Gradle 版本。我们每个下载的 Flutter 的 SDK 中都有这样一个示例工程

Flutter 性能优化

Flutter 性能优化是一个系统性的工程,涉及多个层面。一、性能分析工具(Profiling Tools)在开始优化前,必须使用工具定位瓶颈。切忌盲目优化。1. DevTools 性能视图DevTools 性能视图 (Performance View) 作用:Flutter 官方最强大的性能分析工具&#xff0c

Google 公布的 Jetpack Compose 1.2 Beta 有哪些亮点更新?

Jetpack Compose 1.0 发布已经快一年了,在此期间我们看到社区是它的热情,例如欣赏 Kotlin 语法的简洁性、使 UI 开发变得更加便捷和更轻松的声明式方法。 社区中的 Compose 我们已经看到许多公司开始大规模使用 Compose,例如 Compose 于 Play Store 团队密切合作,他们在很早的时候就开始尝试 Compose ,并了解到它不仅更有趣,而且对他们的开

Flutter for OpenHarmony:Flutter 三方库 flutter_staggered_animations 为你的列表视图开启极其丝滑的交错式加载艺术(UI 动效专家)

欢迎加入开源鸿蒙跨平台社区:# 前言列表是 App 中最常见的展示形式,但静态的、瞬间跳出的列表往往显得生硬。优秀的 UI 设计通常会采用“交错式”(Staggered)动画,让元素一个接一个优雅地划入视野。flutter_staggered_animations 正是为此而生——它通过极简的 API 侵入,让你的

Android graphics(一) 框架

一、概要 android graphic图形显示系统,android系统最核心功能之一。本文以分析graphic整体框架为主。最终以知道图形显示系统如何工作为目的。偏向于介绍基础和概念 image.png 谷歌这张图中有四个重要角色:要显示的页面、buffer queue、surfacefinger、hwcomposer 要显示的页面 安卓显示的一个页面一般包含:statusbar、a

Android应用开发——从零开始写小程序

实验一 安装我们的开发环境 一 开发工具 我们开发用的是谷歌出品的Android Studio,它集成了IEDA了功能,学习过后端开发的小伙伴肯定都熟悉IDEA,当然VsCode也是不错的选择 这里我放一个Android Studio的下载链接 安卓工具下载 二 环境的搭建(注:环境配置有关部分是看班主任的给的文档直接贴上来的) (1)JDK的版本检查 Windows+R打开运行窗口,输入cmd,

设计模式-策略模式

下面有两个源代码,但是输出是一样的。第一个源代码使用 if 语句来选择逻辑。第二个源代码使用策略设计模式(重构结果)。 我们先讨论第一个源代码。在比萨课上,烹饪比萨有四个步骤。 收集材料 2.准备面团 设置 Variety,选择披萨口味(在本例中,我们有三个选项:capricciosa、Hawaiian 和 margheerita)。 4.加热和享受 在第一个源代码中,Set Variet

flutter:如何实现局部导航管理?

引言 今天,小编给大家分享如何在 flutter 中实现 ‘局部导航’。开始之前我们先来统一一下关于 局部导航 的概念。 局部导航是什么? 我们在 flutter 中使用 navigator 来管理 app 的页面堆栈,主要包括 push、pop 这两种操作。而当我们UI设计划分得更细致时,可能遇到需要在某个独立页面里,单独维护一套子级的堆栈管理。这就叫 局部导航管理。 局部控件内单独维护局部范围