本篇将由浅入深,系统且全面的聊一聊协程的那些事,理清协程的挂起
本篇是一份Github Action快速落地与入门指南,从而帮助Android 工程师快速入门
LeakCanary 是一个帮助Android开发者运行时检测内存泄漏的必备利器,而了解其背后的设计原理也更是每个应用层开发者必经之路。故此,本篇将与你一起,解密LeakCanary背后的黑魔法。
ViewModel作为JetPack的组件之一,其本身承担着不可或缺的作用,而了解其设计思想也是每个开发必备技能。故本篇将从背景与使用方式开始,再到源码解析,由浅入深,详解ViewModel方方面面。
LiveData,一直是JetPack最常用的组件之一。本篇将由浅入深,从设计思想到源码解析,再到关联问题,帮你解读LiveData。
本篇将聊一聊什么是Android 无障碍代理,及结合实际场景,分享一下我们对于无障碍代理的使用,并且如何让其更加易用。
我们一般在RecyclerView列表中移除某条Item时会调用notifyItemRemoved方法,其还附带了相应的移除动画。使用虽然简单,却埋了一个大坑;当你调用notifyItemRemoved之后,如果你移除的刚好是倒数第二个数据,此时点击最后一条数据,就会惊讶的发现当前点击的下标居然没变,然后抛出数组越界的错误。为什么呢,原因如下:众所周知,RecyclerView更新数据采用了观察者
引言一切的最开始都是源自一系列为什么?为什么加了锁synchronized关键字,就可以实现同步?synchronized底层到底做了什么优化?Java中的各种锁及锁膨胀?用户态、内核态与上下文切换到底是什么鬼?什么叫自旋锁,它与CAS的关系?对象头是什么玩意,什么又是MarkWord?概述synchronizrd是开发中解决同步问题中最常见,也是最简单的一种方法。从最开始学习并发编程,我们都知道
引言如果问一个Android同学,请你简单说一下JavaAQS的基本思想,那么有不少于一半的同学可能是懵逼状态?。什么玩意,AQS是什么,我咋没听过?。的确,对于非Java后端同学来说,没听过倒也不是什么太过分的事,但是如果你深入学习过Java并发相关,那么肯定会去了解各种锁,而作为一个有志青年的你必然会在心里来一句,为什么加了锁就可以同步?此时必然也会看到AQS的影子。从技术的角度讲,当我们谈到
2021 已经过去了,那么 2022 ,原生Android 端会有什么技术趋势呢?又有哪些 [新] 技术值得我们去学?对我们开发者而言,Android团队 又是如何推荐的呢?
关于静态代理与动态代理,一直是比较困扰很多新人开发,但实际我们开发中,小到写的某个工具类,大到经常使用的Retrofit其内部都使用了动态代理,所以这篇文章从基础到源码解析,以便于你更简单的理解静态代理与Jdk中的动态代理。静态代理:由我们开发者自己手动创建或者在程序运行前就已经存在的代理类,静态代理通常只代理一个类,动态代理是代理一个接口下的多个实现类。动态代理:在程序运行时,运用java反射机
开发良久一直不是很明白(说白了还是懒),上述的关系到底是什么区别,于是就没太注意,直到Jenkins打包时发现(本地打包没遇到过):!image20201209202024325(https://s4.51cto.com/images/blog/202202/23140002_6215cd62d5bfa5591.jpg?xossprocess=image/watermark,size_14,tex
背景资源冲突Java本身是支持多线程的,而在多线程的情况下,为了防止多个任务同时访问同一个资源而导致的冲突问题,所以出现了加锁机制。也就是说第一个访问某项资源的任务必须锁定这项资源,使其他任务在其被解锁之前,就无法访问它,而在其被解锁时候,另一个任务就可以锁定并使用它。所以Java提供了关键字synchronized,为防止资源冲突。当任务希望执行被synchronized关键字保护的代码片段时,
我知道大家都很讨厌读别人写的源码分析,因为动不动就长篇大论,不讲武德,这样合适吗,这样不合适。于是,这是一篇不一样的源码分析,如果看完你还说不懂。年轻人,我劝你:!耗子尾汁是什么梗耗子尾汁意思解析及出处介绍微侠手游网(https://s4.51cto.com/images/blog/202202/21091356_6212e7547878755524.jpg?xossprocess=image/w
开发生涯中,几乎没有使用过单元测试,也没有见过有人去介绍过,好像这个东西在国内Android开发者眼里并不是很重要,或者说大多数开发同学没有专门的时间去使用单元测试框架,也许更重要的原因应该是我个人的 `孤陋寡闻` 。而单元测试是针对最小的单元编写测试代码。在 Java 中,最小的功能单位是方法,因此,对 Java 程序进行单元测试就是针对单个 Java 方法的测试。
众所周知,相同包名的APP,是不能同时安装的,但是我们实际开发中,测试同学往往在测试环境没问题,上了生产环境,却发现了bug,这时候就只能卸载生产环境的包,再去安装测试环境。如果没有开发流程中缺少自动化打包或者测试同学不保存蒲公英,这时候就会产生多余时间成本。那么有没有一种可能,同时安装测试与生产环境的包呢?
!image.png(https://s2.51cto.com/images/20220218/1645143839798636.png?xossprocess=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)背景学
!image20201015161230476(https://s4.51cto.com/images/blog/202202/17085140_620d9c1c7623757495.jpg?xossprocess=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,ty
!image20200425122309961(https://s4.51cto.com/images/blog/202202/16102740_620c611c19c6157562.png?xossprocess=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,ty
抓包对每一个开发者来说,应该说是最基本的技能之一,最近因公司需求接触了一些抓包相关,也遇到了一些奇怪的问题,于是做一个简单的记录,希望对大家有所帮助哈。!undraw_Security_on_ff2u(https://s4.51cto.com/images/blog/202202/15102142_620b0e36c079557270.jpg?xossprocess=image/watermark
!image20200615204639816(https://s4.51cto.com/images/blog/202202/14092220_6209aecc1ccc473493.jpg?xossprocess=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,ty
Hi你好,新同学。很高兴,你终于追寻这个问题了,也许你正感到迷茫,各路大神对协程的理解不一,有人说它是线程框架,有人说它比线程更轻,希望我这篇博文可以帮你从另一个角度简单理解协程。请相信一句话,任何解释从第二个人口中说出时,可能已经存在了变化。而官网是我们接触任何技术最必要的门槛。所以请打开Kotlin中文网(https://www.kotlincn.net/docs/reference/coro
Copyright © 2005-2025 51CTO.COM 版权所有 京ICP证060544号