12 2021 档案

摘要:前言 androidx Navigation 组件是 Android 中应用内导航的官方库 很多人不喜欢 Navigation 因为其设计不符合开发者的预期,它在管理「平级界面」时来回切换会导致平级的 fragment 重建。网上针对这一问题有一个 重写 Navigator 的方案,大多数人会简单地 阅读全文
posted @ 2021-12-31 17:00 Button123 阅读(499) 评论(0) 推荐(0) 编辑
摘要:这个应该是今年最后一篇文章了,卷累了打算明年在卷了。 年中的时候帮部门招人,发现很多候选人对于我们部门还是很青睐的。也对鸡架部门做的事比较感兴趣,所以今天这篇水文主要就给大家梳理下基架的面试题以及基础架构组涉及的sdk相关。 因为最近几年面试经常被人吊打,所以也有了总结面试题的习惯。之后加上之前帮候 阅读全文
posted @ 2021-12-30 11:40 Button123 阅读(265) 评论(0) 推荐(0) 编辑
摘要:前言 内存泄漏可以说是安卓开发中常遇到的问题,追溯和排查其问题根源是进阶的程序猿必须具备的一项技能。小盆友今天便与大家分享一下这方面的一些见解,如有理解错误或是不同见解,可以于评论区留言我们进行讨论,如果喜欢给个赞鼓励下吧。 篇幅较长,可以通过目录寻找自己所需了解的吧 目录 1、JAVA内存解析 2 阅读全文
posted @ 2021-12-29 10:05 Button123 阅读(646) 评论(0) 推荐(1) 编辑
摘要:我们经常使用和提及 Android 中特有的线程间通信方式即 Handler 机制,缘于该机制特别好用、极为重要! 初尝 Handler 机制的时候,原以为 Handler 类发挥了很大的作用。当你深入了解它的原理之后,会发现 Handler 只是该机制的调用入口和回调而已,最重要的东西是 Loop 阅读全文
posted @ 2021-12-28 09:32 Button123 阅读(88) 评论(0) 推荐(0) 编辑
摘要:我们经常使用和提及 Android 中特有的线程间通信方式即 Handler 机制,缘于该机制特别好用、极为重要! 初尝 Handler 机制的时候,原以为 Handler 类发挥了很大的作用。当你深入了解它的原理之后,会发现 Handler 只是该机制的调用入口和回调而已,最重要的东西是 Loop 阅读全文
posted @ 2021-12-27 16:27 Button123 阅读(40) 评论(0) 推荐(0) 编辑
摘要:这篇文章将解决你以下几个疑问: Activity的生命周期在不同场景有何种不同提现? Activity启动模式有哪些?有何不同? Activity是如何处理数据的? Activity和Context有什么关系? Android中有哪些进程? 一、生命周期 1.1 Dialog 弹出时 如果是单纯是创 阅读全文
posted @ 2021-12-25 17:07 Button123 阅读(129) 评论(0) 推荐(0) 编辑
摘要:缘起 最近看了 京东零售技术 发表的一篇文章:AOP 技术在 APP 开发中的多场景实践 ,文章中介绍了 AOP 技术的一种使用场景:线程使用数优化。看完之后感觉挺有实践意义的,但文章中并没有给出具体的实现代码,所以我就做了一次实操,基本实现了文章中介绍的效果,本文就来详细介绍下我的实现始末,并给出 阅读全文
posted @ 2021-12-22 11:42 Button123 阅读(598) 评论(0) 推荐(0) 编辑
摘要:一、前言 本篇文章主要涉及以下三个问题: ViewModel 在 Activity 发生旋转等配置发生变化所导致的重建,能恢复数据吗? 如果 1 能,从源码角度分析,数据存在哪?怎么存储的?怎么读取的? 当 Activity 切换到后台,被系统杀死(进程存活),此时回到 Activity 导致的重建 阅读全文
posted @ 2021-12-21 17:28 Button123 阅读(315) 评论(0) 推荐(1) 编辑
摘要:作为Android的基础知识,消息机制已被无数人写过。笔者曾经也写过一篇深入分析的文章,但总体而言乏善可陈,并无新颖之处。最近恰好重新整理了一下思路,想着可以从细节的角度出发,对一些冷门的知识点做一个归纳。记录于此,供大家批评讨论。 本文所有代码基于Android Q (10.0) 1. 哪个消息在 阅读全文
posted @ 2021-12-21 17:21 Button123 阅读(168) 评论(0) 推荐(0) 编辑
摘要:什么是启动耗时 分为两个角度: 冷启动:就是点击应用图标到打开应用的冷启动响应时间,且前提是应用从未被创建过进程, 热启动:测量点击应用图标到打开应用的热启动响应时间,被测应用之前已经被打开过,无关闭应用行为,测试时被重新切换到前台 启动耗时影响什么 第一想到的肯定是用户体验,如果你的应用半分钟没有 阅读全文
posted @ 2021-12-20 11:01 Button123 阅读(313) 评论(0) 推荐(0) 编辑
摘要:原文:Bridging the gap between coroutines, JVM threads, and concurrency problems 作者:Manuel Vivo 译者:Flywith24 「协程是轻量级的线程」,是不是经常听到这样的描述?这个描述对你理解协程有实质性的帮助吗? 阅读全文
posted @ 2021-12-20 10:12 Button123 阅读(325) 评论(0) 推荐(0) 编辑
摘要:本文分析基于Android S(12) 当App发生ANR或是System触发watchdog时,系统都希望生成一份trace文件,用来记录各个线程的调用栈信息,以及一些进程/线程的状态信息。这份文件通常存放在/data/anr目录下,APP开发者拿不到。不过从Android R(11)开始,App 阅读全文
posted @ 2021-12-17 10:36 Button123 阅读(743) 评论(0) 推荐(1) 编辑
摘要:小伙子,简历上说你搞过串口通信,说说吧! 1、串口通信是什么 串行通信技术,是指通信双方按位进行,遵守时序的一种通信方式 说人话就是将数据按位依次传输 画个图 串口就相当于一个管道,在硬件方面也有表示,有三根跳线, 一个是Tx线,一个是Rx线,还有一根是地线,这个管道传输的数据,也就是bit是串行的 阅读全文
posted @ 2021-12-16 15:27 Button123 阅读(978) 评论(0) 推荐(0) 编辑
摘要:本文分析基于Android S(12) 当App发生ANR或是System触发watchdog时,系统都希望生成一份trace文件,用来记录各个线程的调用栈信息,以及一些进程/线程的状态信息。这份文件通常存放在/data/anr目录下,APP开发者拿不到。不过从Android R(11)开始,App 阅读全文
posted @ 2021-12-16 14:24 Button123 阅读(339) 评论(0) 推荐(0) 编辑
摘要:作者 Flywith24 Android 常用的分层架构 Android 中加载 UI 数据不是一件轻松的事,开发者经常需要处理各种边界情况。如各种生命周期和因为「配置更改」导致的 Activity 的销毁与重建。 「配置更改」的场景有很多:屏幕旋转,切换至多窗口模式,调整窗口大小,浅色模式与暗黑模 阅读全文
posted @ 2021-12-14 16:52 Button123 阅读(947) 评论(0) 推荐(0) 编辑
摘要:一、背景描述 在项目体量越来越大的情况下,编译速度也随着增长,有时候一个修改需要等待长达好几分钟的编译时间。 基于这种普遍的情况,推出了 RocketX ,通过在编译流程 动态 替换 module 为 aar ,提高全量编译的速度。 二、效果展示 2.1、测试项目介绍 目标项目一共 3W+ 个类与资 阅读全文
posted @ 2021-12-13 16:08 Button123 阅读(169) 评论(0) 推荐(0) 编辑
摘要:前言 做过布局性能优化的同学都知道,为了优化界面加载速度,要尽可能的减少布局的层级。这主要是因为布局层级的增加,可能会导致测量时间呈指数级增长。 而Compose却没有这个问题,它从根本上解决了布局层级对布局性能的影响: Compose界面只允许一次测量。这意味着随着布局层级的加深,测量时间也只是线 阅读全文
posted @ 2021-12-13 15:53 Button123 阅读(249) 评论(0) 推荐(0) 编辑
摘要:Android的布局管理器本身就是个UI组件,所有的布局管理器都是ViewGroup的子类,而ViewGroup是View的子类,所以布局管理器可以当成普通的UI组件使用,也可以作为容器类使用,可以调用多个重载addView()向布局管理器中添加组件,并且布局管理器可以互相嵌套,当然不推荐过多的嵌套 阅读全文
posted @ 2021-12-12 16:44 Button123 阅读(51) 评论(0) 推荐(0) 编辑
摘要:Android开发架构 如果开发过程中大家各自为战,没有统一规范,久而久之,项目代码会变得混乱且后续难以维护。当使用统一的架构模式后,有很多的好处,如: 统一开发规范,使得代码整洁、规范,后续易于维护及扩展 提高开发效率(尤其在团队人员较多时) 模块单一职责,使得模块专注自己内部(面向对象),模块间 阅读全文
posted @ 2021-12-10 17:40 Button123 阅读(531) 评论(0) 推荐(0) 编辑
摘要:前言 作为一个应用工程师,除了写一些业务代码,性能优化也是我们需要关注的点! 如果想要去做启动优化,那么去了解启动过程就是一个绕不过去的坎儿。 那么除了关于启动过程的那些代码,我们还应该去知道什么呢? 一、多进程那些事儿 在大家很早学习 Android 的时候,想必就知道,每一个 Android A 阅读全文
posted @ 2021-12-09 17:28 Button123 阅读(87) 评论(0) 推荐(0) 编辑
摘要:现象 大家好,今天为大家带来的是 RxJava 的一个血案,一行代码 return null 引发的。 前阵子,组内的同事反馈说 RxJava 在 debug 包 crash 了,捕获到的异常信息不全。(即我们捕获到的堆栈没有包含我们自己代码,都是一些系统或者 RxJava 框架的代码) 典型的一些 阅读全文
posted @ 2021-12-08 16:47 Button123 阅读(139) 评论(0) 推荐(0) 编辑
摘要:最近正在阅读Glide源码,今天我们要研究的部分是Glide RequestManager 生命周期管理。 本来这个也是这篇文章应该是Glide生命周期管理。但是在源码阅读中我发现原来我以前的项目对于Glide的使用存在着一些内存泄漏的可能,因此临时决定更改了文章的名字,希望能够引起大家的重视。 这 阅读全文
posted @ 2021-12-07 16:56 Button123 阅读(803) 评论(0) 推荐(0) 编辑
摘要:1. Navigation到底该如何正确的使用 相信大家对 Navigation都有所耳闻,我不细说怎么用了,官方的讲解也很详细。我是想说一下到底该如何更好的使用这个组件。 这个组件其实是需要配合官方的MVVM架构使用的,ViewModel+LiveData结合才能更好的展现出Navigation的 阅读全文
posted @ 2021-12-03 16:19 Button123 阅读(383) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示