自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(202)
  • 收藏
  • 关注

原创 历年阿里巴巴面试题集,蚂蚁金服Android面经!

早在2017年我们就建了第一个进击BAT的Android开发进阶交流群,两年期间很多群友都分享了自己的Android面试经历。其中就有很多群友已经斩获蚂蚁金服,天猫,高德,盒马等阿里系offer收集反馈的面经资料比较乱,最近疫情期间终于空出大量时间,我们进行了分类,循序渐进,由基础到深入,由易到简。将内容整理成了五个章节、计算机基础面试题、数据结构和算法面试题、Java面试题、A...

2020-03-11 20:15:21 2786 2

原创 2020最新Android开发中高级进阶书籍推荐

很多Android开发小伙伴进阶学习都是卖一堆技术书籍。这里整理了目前最主流的中级,高级进阶书籍。感兴趣可以收藏一下,作为一个参考~一,中级进阶推荐看一下以下这几本书:中级进阶书籍相信大家很熟悉,或者桌上摆着其中几本。就不详细介绍了;《Android从入门到精通(附光盘)》 明日科技 编《第一行代码2 Android(第二版)》 郭霖 著《Android开发进阶 从小工到专...

2020-02-21 23:43:04 11179 2

原创 Android 音视频开发实战:视频手势缩放与自动吸附动效实现(纯手写)

1. 功能需求双指缩放视频播放画面,支持设定最小、最大缩放范围双指拖动画面可任意方向移动如果是缩小画面,最后需要在屏幕居中显示,并且需要有动画效果如果是放大画面,有画面边缘在屏幕内的,需要自动吸附到屏幕边缘视频暂停状态下也能缩放2. 实现原理先进行缩放平移。 通过View.getMatrix()获取当前播放画面的Matrix,进行矩阵变换:缩放、平移,改变画面位置和大小,实现播放画面缩放功能。缩放结束后,进行属性动画。 当前画面对应的矩阵变换为mScaleTransMatrix,计算

2020-12-03 21:15:12 1121

原创 媳妇看了都说好!Android JetPack组件原理之Lifecycle、LiveData、ViewModel与源码分析技巧

前言Lifecycle、LiveData和ViewModel作为AAC架构的核心,常常被用在Android业务架构中。在京东商城Android应用中,为了事件传递等个性化需求,比如ViewModel间通信、ViewModel访问Activity等等,以及为了架构的扩展性,我们封装了BaseLiveData和BaseViewModel等基础组件,也对Activity、Fragement和ViewHolder进行了封装,以JDLifecycleBaseActivity、LifecycleBaseFragmen

2020-12-01 22:01:08 874

原创 Android面试家常菜:Handler消息机制全家桶一把梭,看完这篇还不懂,请砍我

前言Handler可以说小伙伴们用的非常多了,可以说Handler是支撑整个Android系统运行的基础,本质上Android系统都是由事件驱动的。而处理事件的核心就在于Handler。接下来我们就从简单的使用,到源码分析让你彻彻底底明白Handler的本质。不会再让你发出为什么Looper.loop不会堵塞主线程,Handler是如何切换线程等这类疑惑。作者:Mlx链接:https://juejin.im/post/6866015512192876557简单使用一般是在主线程中实现一个Ha.

2020-11-30 16:26:01 819

原创 精囊篇 | 一篇文章把Handler全身摸个遍

0. 前言做 Android 开发肯定离不开跟 Handler 打交道,它通常被我们用来做主线程与子线程之间的通信工具,而 Handler 作为 Android 中消息机制的重要一员也确实给我们的开发带来了极大的便利。可以说只要有异步线程与主线程通信的地方就一定会有 Handler。那么,Handler 的通信机制的背后的原理是什么?本文带你揭晓。注:本文所展示的系统源码基于 Android-27 ,并有所删减。本文首发掘金:Handler 都没搞懂,拿什么去跳槽作者:程序亦非猿1. 重

2020-11-27 17:41:39 346

原创 炼狱难度!腾讯Android高级岗:为什么 Activity.finish() 之后 10s 才 onDestroy ?

目录没有及时回调的 onStop/onDestroy从 Activity.finish() 说起是谁指挥着 onStop/onDestroy 的调用?谁让 onStop/onDestroy 延迟了 10s ?没有及时回调的 onStop/onDestroy交流群里碰到一个很有意思的问题,调用 Activity.finish() 之后 10s 才回调 onDestroy() 。 由此产生了一些不可控问题,例如在 onDestroy() 中释放资源不及时,赋值状态异常等等。我之前倒没有遇到过类似

2020-11-26 14:36:34 685

原创 深入解析RecyclerView 源码——绘制流程、缓存机制、动画等

前言本文打算对 RecyclerView 做一个详细完整的、重点突出的分析与总结,因为 RecycelrView 源码很长(光 RecyclerView 文件本身就有 13000+ 行),因此文章也会很长,但一通分析下来后会发现,RecyclerView 虽然是 ListView 的加强版,除了在使用方法上类似之外,关键源码上也是非常类似的。RecyclerView 的使用可以参考大神的文章:Android RecyclerView 使用完全解析 体验艺术般的控件RecyclerView 和 Lis

2020-11-24 17:29:14 484

原创 腾讯Android高工面试:为什么要使用SparseArray和ArrayMap替代HashMap?

背景在Android开发中,性能优化是一个非常重要的模块,其中数据结构的性能优化是相当重要的,对于常用的HashMap来说,官方推荐我们使用SparseArray和ArrayMap替代它。Java为数据Java为数据结构中的映射定义了一个接口java.util.Map,此接口主要有四个常用的实现类,分别是HashMap、Hashtable、LinkedHashMap和TreeMap,类的继承关系如图所示:首先我们来介绍一下HashMap,了解它的优缺点,然后再对比一下其他的数据结构以及为什么要替代.

2020-11-23 09:58:01 862

原创 Android面试必问的Activity,初阶,中高阶问法,你都掌握了吗?(要求熟读并背诵全文)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cXs1wGDx-1605843173409)(https://upload-images.jianshu.io/upload_images/24142630-84668ed4a42819ee.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]Activity是我们常用App开发中最重要的组件,主要用于展示界面和用户交互。本文分为三个部分:Activity源码和常见

2020-11-20 11:33:34 1462 1

原创 字节高工面试灵魂7问:Android架构组件—ViewModel这些知识点一定要掌握!

前言今天跟大家分享的是网友提供的一道字节跳动的面试真题,请看原题:ViewModel 是什么?ViewModel 为什么被设计出来,解决了什么问题?说说ViewModel原理。ViewModel怎么实现自动处理生命周期?为什么在旋转屏幕后不会丢失状态?为什么ViewModel可以跟随Activity/Fragment的生命周期而又不会造成内存泄漏呢?ViewModelScope了解吗?解答ViewModel是什么?ViewModel是MVVM架构的一个层级,用来联系View和mo.

2020-11-19 11:13:54 1874 1

原创 面试官:任务栈?返回栈?启动模式?傻傻分不清楚?年轻人耗子尾汁吧

今天来唠唠 任务栈 和 返回栈 。作者:秉心说TM任务栈?返回栈?关于 任务栈和返回栈,我看了 N 篇博客,说的最清楚的除了 重学安卓 ,那就非 官方文档 莫属了。其实大多时候,很多模糊不清的基本概念,从官方文档都可以轻松的得到你想要的答案。官方文档中这一节的标题叫做 Understand Tasks and Back Stack ,Task 就是我们常说的 任务栈,Back Stack 就是返回栈。任务栈很好理解,Activity 们是存在一个栈结构中的,后进先出,这也很符合实际的使用场景。

2020-11-18 14:21:46 668

原创 渣渣二本的辛酸面试之路:从深圳到杭州,从外包到蚂蚁金服,4年小Android的心路历程

写在开头笔者16年于长沙一个普通二本,毕业后去了满地都是机会的深圳。第一份工作是一家外包公司,主要业务是电商和电子支付信息安全方面的。一年后跳槽到华润旗下一个子公司做金融。至今已工作4年。大家都知道,对于跟我一样没有名校背景,也没有大厂出身的程序员来说,面试唯一的加分项就只有某一方面的技术深度了。所以我也建议各位小伙伴也跟我一样,选择一个自己感兴趣的,或者比较自信的方向,不断的钻研深入。众所周知,2020年的冬天非常煎熬,疫情肆虐,大批的互联网公司都在裁员甚至倒闭。年后的金三银四跳槽季竞争愈发激烈,岗.

2020-11-17 15:40:37 1737 13

原创 牛笔了!阿里P8大佬熬夜15天,把所有Android第三方库整理成了PDF

缘起随着互联网企业的不断发展,产品项目中的模块越来越多,用户体验要求也越来越高,想实现小步快跑、快速迭代的目的越来越难,还有65535,应用之间的互相调用等等问题,插件化技术应用而生。如果没有插件化技术,美团、淘宝这些集成了大量“app”的应用,可能会有几个g那么大。所以,当今的Android移动开发,不会热修复、插件化、组件化,80%以上的面试都过不了。阿里P8大佬每天熬夜到凌晨一两点,花了将近半个月时间将Android热修复框架、插件化框架、组件化框架、图片加载框架、网络访问框架、RxJava响应

2020-11-16 11:28:39 661 12

原创 腾讯新闻Android高工二面:说说Android动态换肤实现原理吧

换肤分为动态换肤和静态换肤静态换肤这种换肤的方式,也就是我们所说的内置换肤,就是在APP内部放置多套相同的资源。进行资源的切换。这种换肤的方式有很多缺点,比如, 灵活性差,只能更换内置的资源、apk体积太大,在我们的应用Apk中等一般图片文件能占到apk大小的一半左右。当然了,这种方式也并不是一无是处, 比如我们的应用内,只是普通的 日夜间模式 的切换,并不需要图片等的更换,只是更换颜色,那这样的方式就很实用。动态换肤适用于大量皮肤,用户选择下载,像QQ、网易云音乐这种。它是将皮肤包下载到本地.

2020-11-13 14:48:56 911

原创 又是抓脑壳的一天!Thread线程也会OOM?

本文首发掘金:Thread也会OOM吗?作者:究极逮虾户OOM其实是一个比较常见的异常了,但是不知道各位老哥有没有见过这个异常。java.lang.OutOfMemoryError: pthread_create (1040KB stack) failed: Try again at java.lang.Thread.nativeCreate(Thread.java) at java.lang.Thread.start(Thread.java:1076) at java.util.concu.

2020-11-12 22:19:02 426

原创 源码解析:可能是全网最细的Android 资源加载机制剖析,墙裂建议收藏

前言上一篇文章,讲到了Android中进程的启动和一个Activity的创建到显示流程,现在本篇要分析的是在Android中资源的装载机制,例如字符串资源,图片资源是如何被装载的。这里将从字符串和图片两种类型资源展开分析,同时对于后面所利用的资源装载的内容也会做简单的分析。Resources源码剖析对于资源的装载机制,这里核心的几个类是Resources,ResourcesImpl,AssetManager。Resources算是对于ResourcesImpl的一个代理,Resources的所有调用

2020-11-10 22:15:38 544

原创 QQ音乐Android端120万行代码,编译耗时是怎样优化的

介绍QQ音乐团队在增量编译组件研发上的探索与实践。原文:QQ音乐Android编译提速之路1. 序言工程编译,是Android应用开发工作中的重要一环。而随着工程代码量膨胀,编译耗时也越来越长,拖慢了开发效率。这个问题在中大型团队中并不少见。以QQ音乐为例,Android工程代码量达到120万行以上,每修改一行代码,都要等待4分钟以上才能在手机上看到改动效果。为了应对这个问题,我们自研推出了一款增量编译组件。经过一年时间的不断优化,组件已经可以支撑团队内的日常开发工作,有效提升了本地开发场景..

2020-11-09 14:55:47 919

原创 Android高工面试(难度:四星):为什么不能使用 Application Context 显示 Dialog?

本文首发掘金:为什么不能使用 Application Context 显示 Dialog?作者:秉心说TM目录为什么不能使用 Application Context 显示 Dialog?谁创建了 Token?WMS 是如何拿到 Token 的?WMS 是如何校验 Token 的?为什么不能使用 Application Context 显示 Dialog?在上一篇文章 扒一扒 Context 中遗留了一个问题:为什么不能使用 Application Context 显示 Dialo.

2020-11-05 17:01:00 760

原创 字节头条部Android二面:说说Android动态换肤实现原理吧

换肤分为动态换肤和静态换肤静态换肤这种换肤的方式,也就是我们所说的内置换肤,就是在APP内部放置多套相同的资源。进行资源的切换。这种换肤的方式有很多缺点,比如, 灵活性差,只能更换内置的资源、apk体积太大,在我们的应用Apk中等一般图片文件能占到apk大小的一半左右。当然了,这种方式也并不是一无是处, 比如我们的应用内,只是普通的 日夜间模式 的切换,并不需要图片等的更换,只是更换颜色,那这样的方式就很实用。动态换肤适用于大量皮肤,用户选择下载,像QQ、网易云音乐这种。它是将皮肤包下载到本地.

2020-11-04 10:50:39 302

原创 泪目!阿里大佬国庆8天花了50个小时,整理出这份18万字Android-360°性能优化实战解析

缘起经过近十年的发展,Android技术优化日新月异,如今Android 10.0 已经发布,Android系统性能也已经非常流畅,可以在体验上完全媲美iOS。到了各大厂商手里,改源码、自定义系统,使得Android原生系统变得鱼龙混杂,然后到了不同层次的开发工程师手里,因为技术水平的参差不齐,即使很多手机在跑分软件性能非常高,打开应用依然存在卡顿现象。APP进行性能优化已成为开发者该有的一种综合素质,也是开发者能够完成高质量应用程序作品的保证。阿里P8大佬,没错还是那个大佬,国庆花了整整一星期时间,

2020-11-03 11:40:50 860 9

原创 Android-高工面试真题:说说你对FPS的理解?如何检测应用的FPS?

本文首发于掘金:面试官:如何监测应用的 FPS ?作者:秉心说TM目录什么是 FPS?从 View.invalidate() 说起承上启下的 “编舞者”如何监测应用的 FPS?最后什么是 FPS ?即使你不知道 FPS,但你一定听说过这么一句话,在 Android 中,每一帧的绘制时间不要超过 16.67ms。那么,这个 16.67ms 是怎么来的呢?就是由 FPS 决定的。FPS,Frame Per Second,每秒显示的帧数,也叫 帧率。Android 设备的 FPS 一般.

2020-11-02 17:26:46 300

原创 深入底层 | 字节Android高级岗: Activity间传递对象为什么要序列化?序列化有哪几种方式?它们有什么区别?

前言我们都知道进行Android 开发的时候,跳转到Activity和Fragment的时候,传递对象是通过Intent或者bundle 进行传递。当这个对象没有实现序列化的时候 当你通过Inetnt传递的时候会报红,系统会提示你将这个对象实现序列化。不同 Activity 之间传输数据可以通过 Intent 对象的 putExtra 方法传递,对于 java 的八大基本数据类型(char int float double long short boolean byte)传递是没有问题的,但是如果传递.

2020-10-29 21:30:15 1053

原创 朝花夕拾 | 19张图带你深入理解 Android 事件分发机制

注:这是篇讲Android事件分发的老文章,原文转自Kelin,放在现在依然非常经典、易懂。所以翻出来重新转载一波,相信对事件分发理解还不是深入的小伙伴们有很大的帮助。在Android开发中,事件分发机制是一块Android比较重要的知识体系,了解并熟悉整套的分发机制有助于更好的分析各种点击滑动失效问题,更好去扩展控件的事件功能和开发自定义控件,同时事件分发机制也是Android面试必问考点之一,如果你能把下面的一些事件分发图当场画出来肯定加分不少。废话不多说,总结一句:事件分发机制很重要。Andr.

2020-10-28 16:54:19 174

原创 Android高工面试:如果需要实现一个 路由(Router)框架,讲讲你的思路

本文首发公众号:徐公码字Android 开发中,组件化,模块化是一个老生常谈的问题。随着项目复杂性的增长,模块化是一个必然的趋势。除非你能忍受改一下代码,就需要六七分钟的漫长时间。模块化,组件化随之带来的另外一个问题是页面的跳转问题,由于代码的隔离,代码之间有时候会无法互相访问。于是,路由(Router)框架诞生了。目前用得比较多的有阿里的 ARouter,美团的 WMRouter,ActivityRouter 等。今天,就让我们一起来看一下怎样实现一个路由框架。 实现的功能有。基于编译时注.

2020-10-27 21:38:45 548

原创 双非渣本小Android四年磨一剑,秋招大厂(字节、腾讯、B站)面经分享

前言笔者2016年双非不知名小本科毕业,到今年6月已经开发4年啦,毕业后一直辗转于各种小公司做小开发。但是闲鱼也有翻身梦,一直想去大厂康康。就蹭蹭,不进去也行啊。于是计划几年年初金三银四的时候去碰碰运气,正巧碰上疫情,计划也就被搁置了。一来是怕死。出门都战战兢兢的,别说各个城市跑面试了。二是各种公司都在裁员,只有大厂还在招少部分人,大厂的门槛怕是都要被踩烂了。疫情稳定下来后,便开始慢慢的为跳槽做准备了,到金九银十的时候,先去面了些不大不小的公司,最后才选择了几家心仪的大厂投简历、面试的,前段时间成功入职

2020-10-23 09:36:24 779

转载 好文推荐 | volatile关键字在Android中到底有什么用?

原文转自郭神公众号:https://mp.weixin.qq.com/s/WtMeB-4sXOYQtvYKUx6c5Q通俗易懂的描述,简单的代码案例,便能轻松为你拿下这个知识点缘起上周六分享了一篇关于Java volatile关键字的文章,发布之后有朋友在留言里指出,说这个关键字没啥用啊,Android开发又不像服务器那样有那么高的并发,老分享这种知识干啥?让我意识到有些朋友对于volatile这个关键字的理解还是有误区的。另外也有朋友留言说,虽然知道volatile关键字的作用,但是想不出在An

2020-10-21 21:28:24 132

原创 还在为大厂app抓不到包而犯愁吗?原因很简单,解决方法更简单!

抓不到请求的现象我们经常在wifi设置中 设置代理到我们的pc http代理软件上,多数情况下,此时我们开启的app流量都可以在代理软件上看到,比如charles , fiddler等等。 但是细心的人会发现 某些大厂的app 某些请求 在这些 http代理软件上就是抓不到, 给人的感觉就是 流量没从代理软件走一样。抓不到请求的原因大家都知道 http协议下层是tcp协议,tcp协议都是内置在操作系统里面的,我们最多只能使用tcp协议对外暴露的socket接口来进行编程, 我们是无法修改操作系统本身.

2020-10-20 17:46:31 1209

原创 Kotlin 编程核心基石—高阶函数

前言1. 高阶函数有多重要?高阶函数,在 Kotlin 里有着举足轻重的地位。它是 Kotlin 函数式编程的基石,它是各种框架的关键元素,比如:协程,Jetpack Compose,Gradle Kotlin DSL。高阶函数掌握好了,会让我们在读源码的时候“如虎添翼”。本文将以尽可能简单的方式讲解 Kotlin 高阶函数,Lambda 表达式,以及函数类型。在本文的最后,我们将自己动手编写一个 HTML Kotlin DSL。前期准备将 Android Studio 版本升级到最新将我们.

2020-10-19 16:19:44 448

原创 解锁!95%的Android程序员做性能优化时,存在的五大误区和两大疑点!

本文翻译自:Busting Android performance myths,作者:Calin Juravle,译文「Meandni」。近年来,社区充斥着关于 Android 性能优化的各种误区,本文本着误区终结者的精神,使用具体的性能检测工具,结合真实案例仔细分析这些情况,并对比它们的测试结果,也会聚焦 Android 开发者平时在编码过程的实际场景,用实际数据告诉你在实际编码之前请,一定要进行必要的性能检测。误区 1:Kotlin 比 Java 更消耗性能Google 云端硬盘团队目前已将其.

2020-10-16 17:20:38 261

原创 Android-面试官:性能优化我就问这些问题!能不能刷到我就看你的造化了

前言如题,这是一篇关于Android面试-性能优化最常问的面试题、面试点的文章。这也是“Android-面试官”系列的第二篇文章。对Java模块比较薄弱的小伙伴可以去看一下我的上一篇文章:Android-面试官:这些Java知识点我必问好了,废话不多说,直接冲冲冲!前排温馨提示:阅读本文前,请自备豆浆!如果你已经有 2 - 3 年以上Android开发经验还不懂的怎么去优化自己的项目,那就有点说不过去了。无论是日常工作中还是跳槽面试的时候,性能优化都是我们打怪成长为一名优秀的高级开发工程师.

2020-10-13 15:34:33 1121 2

原创 全面理解Handler消息机制,搞懂这十个大厂面试真题你就彻底懂了

在安卓面试中,关于 Handler 的问题是必备的,但是这些关于 Handler 的知识点你都知道吗?一、题目层次Handler 的基本原理子线程中怎么使用 HandlerMessageQueue 获取消息是怎么等待为什么不用 wait 而用 epoll 呢?线程和 Handler Looper MessageQueue 的关系多个线程给 MessageQueue 发消息,如何保证线程安全Handler 消息延迟是怎么处理的View.post 和 Handler.post 的区别Han

2020-10-12 22:26:40 383 1

原创 不是吧!做了3年Android还没看过OkHttp源码?好吧,带你彻底理解一波!

前言现在Android界的网络请求已经是OkHttp和Retrofit的天下了,Retrofit本质上也是将请求委托给了OkHttp,所以我们如果想要能够更加全面的使用和掌握OkHttp,了解其源码是必不可少的。 如果对Http还有不了解的小伙伴,可以一下这篇文章,带你全面掌握Http协议 面试官的这份HTTP灵魂追问你Hold住吗?作者:Mlx链接:https://juejin.im/post/6881436122950402056OK,出发~简单使用同步方式和异步方式殊途同归,而且异步

2020-10-10 21:51:56 745

原创 面试官:这波HTTP究极combo,你顶得住吗?

基本概念问题:HTTP 是什么?描述一下:HTTP 是超文本传输协议,也就是HyperText Transfer Protocol。问题:能否详细解释「超文本传输协议」?HTTP的名字「超文本协议传输」,它可以拆成三个部分:协议针对 HTTP 协议,我们可以这么理解。HTTP 是文个⽤在计算机世界⾥的协议。它使⽤计算机能够理解的语⾔确⽴了⼀种计算机之间交流通信的规范(两个以上的参与者),以及相关的各种控制和错误处理方式式(为约定和规范)。传输针对传输,我们可以进⼀步理解了 HT.

2020-10-09 21:54:34 720 1

原创 Android程序员面试必须要掌握的:Https加密原理、中间人攻击到底是怎么回事

前言–阅读本文你将收获1.https加密的基本原理与过程,https为什么是安全的?2.什么是中间人攻击,中间人攻击的基本原理3.如何防止中间人攻击作者:RicardoMJiang链接:https://juejin.im/post/6880024440143347719https加密的基本原理https要完成的目的1.Client必须要能确定,它要访问的Server确实是正确的Server2.Client和Server交流的信息不能被其它第三方窃听3.当然,针对第1点,反过来,Se.

2020-10-07 16:40:01 957 1

原创 Android-面试官:这些Java知识点我必问

前言很早之前就打算写这个“Android-面试官”系列文章,由于各种事拖着忙着(其实就是懒)就拖到了现在。现在刚好到国庆了,我有空写,大伙也有空学,作为一名好(lao)博(you)主(tiao)怎么可以一直拖更,不更点干货给大家呢?哈,干货我有一大把,就看你咽不咽的下了。废话就不多说了,直接开梭。前排温馨提示:阅读本文前,请自备豆浆!Java作为移动应用开发中不可以或缺的部分,是我们每个Android开发者都必须具备的技能,掌握的越多,对我们的成长进阶就越有利。今天我们就来系统盘点一下,And.

2020-09-29 18:08:39 420

原创 图文+视频双管齐下,带你全面彻底理解Retrofit源码,学完还不懂请砍我!【墙裂建议收藏】

缘起最近回归看了一下Retrofit的源码,主要是因为项目接入了协程,所以想研究一下Retorift是如何支持协程的。Retrofit是在Version 2.6.0开始支持协程的,所以本篇文章有关Retrofit的源码都是基于2.6.0的。温馨提示,如果有Retrofit的源码阅读经验,阅读这篇文章将会轻松很多。时间充裕也可结合视频学习Retrofit源码:https://www.bilibili.com/video/BV1tz4y1Z7AK作者:午后一小憩链接:https://juejin..

2020-09-25 22:17:11 237

原创 Android进阶必备:滑动冲突解决与事件分发机制(附视频讲解)这篇看完还不懂请寄刀片

1、前言Android学习一段时间,需求做多了必然会遇到滑动冲突问题,比如在一个ScrollView中要嵌套一个地图View,这时候触摸移动地图或者放大缩小地图就会变得不太准确甚至没有反应,这就是遇到了滑动冲突,ScrollView中上下滑动与地图的触摸手势发生冲突。想要解决滑动冲突就不得不提到Android的事件分发机制,只有吃透了事件分发,才能对滑动冲突的解决得心应手。作者:胖宅老鼠链接:https://juejin.im/post/6844903829482242056B站视频讲解:http

2020-09-22 21:04:03 918

原创 MVVM与Jetpack架构核心技术DataBinding从入门到通透【第二篇】(附源码解析视频教程)

前言DataBinding 是谷歌官方发布的一个框架,顾名思义即为数据绑定,是 MVVM 模式在 Android 上的一种实现,用于降低布局和逻辑的耦合性,使代码逻辑更加清晰。MVVM 相对于 MVP,其实就是将 Presenter 层替换成了 ViewModel 层。DataBinding 能够省去我们一直以来的 findViewById() 步骤,大量减少 Activity 内的代码,数据能够单向或双向绑定到 layout 文件中,有助于防止内存泄漏,而且能自动进行空检测以避免空指针异常启用 Dat

2020-09-21 14:35:03 181

原创 地狱难度!字节跳动Android高级岗:说说RecyclerView的回收复用机制

前言学习源码,研究源码编程思想,是程序开发者进阶的必经之路。然而,进了源码世界,就像是进了迷失森林,没有地图,迟早要死在里面。有个地图会好很多。此类文集,专门用图解编程的方式,来讲解一个知识点,从一个点切入,理解切入点之后,再进行知识发散。路漫漫,进阶之路不好走。与众君共勉之。正文大家都知道**RecyclerView**有回收复用机制,那么回收复用机制是如何作用的?回收复用,细分下来,是两个概念: 回收 和 复用 有如下几个问题。回收的是什么?复用的又是什么?回收到哪里去了?复用

2020-09-18 15:29:26 397

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除