排序
高德Android高性能高稳定性代码覆盖率技术实践
前言 代码覆盖率(Code coverage)是软件测试中的一种度量方式,用于反映代码被测试的比例和程度。 在软件迭代过程中,除了应该关注测试过程中的代码覆盖率,用户使用过程中的代码覆盖率也是一...
一文理解贝塞尔曲线
贝塞尔曲线的来源 贝塞尔曲线最早是由贝塞尔在1962年提出来的,目的是获取汽车的外形。贝塞尔曲线看上去非常复杂,其实想法非常简单,(如下图1所示)就是先用折线先绘制出大致的轮廓,然后用曲...
aosp-刷入Magisk面具获取root权限
一、简介 话说上次root手机都已经是初中的时候了,那时候捣鼓手机不亦乐乎,Android4.4的系统先解锁,再刷入第三方Recovery,然后再刷入Root包去获取Root权限 想学点逆向的知识,所以要root一下...
Android View绘制原理 – RenderNodeDrawable
上一篇文章介绍了SkiaOpenGLPipeline.draw主流程,其中renderFrame是一个主要的流程之一,本文将继续去分析这个renderFrame方法。这个方法是定义在SkiaOpenGLPipeline的父类SkiaPipeline上frame...
[kotlin]-Flow 基础
什么是Flow 官方介绍 一种异步数据流,它顺序地发出值并正常或异常地完成。 流上的中间运算符(例如map、filter、take、zip等)是应用于上游流或流并返回下游流的函数,可以在其中应用更多运算...
Android性能优化—-执行时间优化
Android性能优化----启动优化 在了解了启动优化后,Application会做一些初始化的工作,但不要在Application中做耗时操作,然而有些初始化工作可能是很耗时的,那怎么办?初始化操作可以开启子线...
Vol.12 InputManagerService 与输入事件
这块是对《深入理解andriod内核设计思想》相关章节的总结和拓展, 这本书写的也非常的好,很推荐! 12.1 事件的分类 按键事件(keyEvent) 触摸事件(TouchEvent) 鼠标事件(MouseEvent) .........
Android JNI 开发示例
JNI 简介 JNI 是一种框架,它提供了一组接口,这些接口帮助 Java 代码调用其他语言写的代码,如 C, C++ 等。这种方式对于那些需要在 Java 中使用高性能或者底层系统调用的应用程序尤其有用。 JN...
使用WorkManager在后台处理工作 – Kotlin(下)
六、串连各个步骤 现在,您将执行一项工作任务:对图片进行模糊处理。这是非常不错的第一步,但缺少一些核心功能: 此操作不会清理临时文件 实际上它不会将图片保存到永久性文件中 而是始终对图...
Jetpack Compose – 通过State理解与管理你的UI
由于 Compose 是声明式工具集,因此更新它的唯一方法是通过新参数调用同一可组合项。这些参数是界面状态的表现形式。每当状态更新时,都会发生重组。 本篇文章将从导图中五方面分别介绍State的...
Android12 AlarmManagerService底层解析及开机闹钟
最近项目中需要为一个硬件实现定时开机的功能,借此机会把AlarmManagerService从上层到底层的流程给梳理了一遍。 首先在应用层只能使用AlarmManager与AlarmManagerService进行通信,就不在此赘...
Android原生系统SystemUI启动流程–SystemUI学习进度(一)
SystemUI 启动流程 启动流程主要有两个部分 在 framework 中启动 SystemUIService 在 SystemUIService 中启动 SystemUI 所需的各种组件 SystemUI 是一个系统应用,即为一个apk。所以它也会有入...
是否应该将Compose中的状态切分
如题,为什么会有这种疑问呢? 我们知道Compose是通过重组来刷新UI的,当一个State发生改变时,其对应的可重组函数的Lambda会重新执行,而我们通常在设计State时都是将当前界面相关属 combine成...
RecyclerView之AsyncListDiffer
一、ListAdapter 当数据量不大时,我们可以在UI线程中直接更新数据,但是当数据量大时这就比较尴尬了,我们需要自己放在子线程操作,然后再回UI线程更新页面。在7.0上引入 DiffUtil 之后,现在 ...
flutter lottie animation progress bar 美丽多彩生动的动画进度条
flutter lottie animation progress bar 美丽多彩生动的动画进度条 flutter支持使用lottie动画,有了lottie,我们也可以在flutter中实现很多炫酷的动画效果,这次为我们就来学习使用lottie动...
Java 调用 Native 服务
本文介绍一下怎么通过 Java 代码使用 Native Binder Service。 接下来我们演示使用 Java 代码访问 Binder 程序示例之 aidl-cpp 篇 编写的 Native Binder Service。 在 device/jelly/rice14 目录...
【Gradle-8】Gradle插件开发指南
1、前言 Gradle插件开发在Android进阶知识中是占有一定比例的,特别是在性能优化领域,基本都会涉及,而且跟我们日常的编译打包也息息相关,加上有不少招聘要求里也明确要有Gradle插件开发经验...
鸿蒙ArkUI如何开发跨平台应用?
一、前言 提到跨平台,要先理解什么是“平台”,这里的平台,就是指应用程序的运行环境,例如操作系统,或者是Web浏览器,具体的像HarmonyOS、Android、iOS、或者浏览器,都可以叫做平台。 跨平...
Compose 1.5来了,升吗?
Compose 终于迎来了 1.5.0 的稳定版本。这个版本的 API 变化不大,官方主要是做了大量的性能优化工作和降低内存占用。 API 新增与变更 首先,官方提供了 mutableIntStateOf、mutableLongStateOf...
Flutter:简单搞一个内容高亮
内容高亮并不陌生,特别是在搜索内容页面,可以说四处可见,就拿掘金这个应用而言,针对某一个关键字,我们搜索之后,与关键字相同的内容,则会高亮展示,如下图所示: 如上的效果,在Flutter当...