排序
Android Native | 调用栈回溯
当程序出现异常时,我们通常依赖调用栈来展开分析。它表明了程序运行到某个位置时的函数调用关系。这个关系在开发者眼中是函数名和行号,但它背后其实是函数调用时跳转指令的地址。换言之,函数...
Jetpack Compose Material3 组件之 DatePicker(日期选择)
前言 在之前我使用 Comose 写 APP 的时候,官方还没有给出关于 DatePicker 的解决方案。 当时为了在 Compose 中实现 DatePicker ,大致有两种方案: 一是使用原生 VIew 的 DatePicker,但是因为...
Room监听本地数据变化原理
一、背景 某天在看到google推荐的官方架构中对数据层的介绍提到: 数据层的最佳实践是离线优先,即单一数据来源来自数据库,以数据库的数据为驱动UI变化的核心 所以当网络数据返回插入数据库以...
MQTT这么好玩不来自己搭建一个吗
前言 之前写了一篇为什么智能硬件首选MQTT - 掘金,这次就来搭建一个自己的MQTT交互平台,实际体验一下,没有实战怎么能行。 一、服务端准备 1. 选择平台 我这里用的平台是EMQX Cloud,可以通过...
一篇文章了解Kotlin的泛型
Kotlin 泛型类型 Kotlin 的泛型特性允许我们编写出更加灵活和通用的代码,提高了代码的可重用性和类型安全性。 本文将介绍 Kotlin 中的四种泛型类型 类型参数 星号投影 型变 泛型限制 类型参数 ...
安卓方案类-游戏发行切包资源索引冲突解决方案
作者 大家好,我叫小鑫,也可以叫我蜡笔小鑫?; 本人17年毕业于中山大学,于2018年7月加入37手游安卓团队,曾经就职于久邦数码担任安卓开发工程师; 目前是37手游安卓团队的海外负责人,负责相...
Gradle深入解析 – Task原理(并行篇)
上一篇文章讲了Task Graph的处理,在Task的顺序确定之后,真正被执行前,还涉及到Task的并行调度问题,我们知道gradle是有并行机制的,没有依赖关系的Task可以并行执行,以减少构建耗时 除了线...
分享Android开发中常见的代码优化方案
我正在参加「掘金·启航计划」 前言 首先要做相关优化,就得先要大致清晰影响性能的相关因素,这样可以做针对性调优会比较有条理。 比较常见的性能调优因素有: 内存:Java 一般通过 JVM 对内存...
写一个万用RecyclerView分隔线,支持linear grid staggered
前言 2023已过半,才发现我已经大半年没写博客了,痛定思痛决定水一篇。 不知道大家平时干活的时候有没有被RecyclerView列表的分隔线困扰过,app里一般都会有各种各样的列表,横的竖的、网格、...
搞懂ThreadLocal
一、概述 在分析ThreadLocal之前先不要看源码,我们先来大致建立起关于ThreadLocal整体的认知。 TheadLocal工具涉及到的几个类:Thread、ThreadLocal、ThreadLocalMap,对于它们之间的关系我们...
Android组件通信方式
本文正在参加「金石计划 . 瓜分6万现金大奖」 前言 因为之前被问到过,最近突然有点兴趣上头,所以想简单做一个总结,现在开发基本都会用到组件化,那么大家有没有想过在不使用别人写的框架的情...
推送服务接入指导(HarmonyOS篇)
æ¶Âæ¯æ¨éÂÂä½Â为Appè¿ÂèÂ¥æ¥常使ç¨çÂÂç¨æÂ...
Android 悬浮View实现-WindowManger
一、WindowManger addView 添加窗口视图 1.1、步骤: 创建悬浮View实例,设置View的点击,触摸等等事件 创建WindowManager.LayoutParams实例 获取WindowManager实例对象,调用addView方法将视图...
基于seccomp的Android通用svc hook方案
写在前面 众所周知,目前各大APP的安全模块几乎都会使用自实现的libc函数,如open,read等函数,通过自实现svc方式来实现系统调用。因此我们如果想要hook系统调用,只能通过扫描厂商自实现的代...
Android进阶宝典 — Kotlin协程分析(创建、取消、超时)
对于长期做过Java开发的伙伴,协程可能是一个比较陌生的概念,因为现阶段使用Java开发Android应用是无法使用协程的,所以在转到Kotlin开发之后,协程是一个必须要理解的概念,它能够解决传统And...
10 秒看懂 Android 动画的实现原理
介绍 动画是 Android 应用程序中重要的交互特性。Android 提供了多种动画效果,包括平移、缩放、旋转和透明度等,它们可以通过代码或 XML 来实现。本文将介绍 Android 动画的原理和实现方法,并...
弄清 Jetpack Compose 中的恼人的概念
前言 在学习compose 中,最好的资料是官方文档,但是在学习官方文档时,容易因为语言的差异性,导致概念容易出现混淆,所谓基础不牢,地动山摇。记录一篇博文,给自己和需要的朋友参考。 什么是...
安卓-kotlin协程的异常处理机制分析
作者 大家好,我叫? 本人于2020年10月加入37手游安卓团队 目前主要负责国内相关业务开发和一些日常业务 背景 使用kotlin的协程一段时间了,常用的用法也已经很熟悉,但都是停留在使用的阶段,没...
Android插件化框架-Shadow原理解析
1、前言 所谓插件化,是实现动态化的一种具体的技术手段。 对于移动端的App而言,无论是Android还是iOS,都存在一个共同的问题,那就是更新的周期较长。 当我们希望快速为App更新功能时,必须经...
Dart 3.0 语法新特性 | switch 匹配加强
一、 重新审视 switch 关键字 众所周知, switch 关键字用于流程控制: 可以基于一个对象进行匹配,并通过 case 关键字产生分支语句,进行不同的逻辑处理。其中有一个非常值得注意,使用者很容...