
Android进阶
文章平均质量分 92
大模型本地部署_
这个作者很懒,什么都没留下…
展开
-
Android Framework已然成为高薪Android开发者必备技能
如今在Android界,Adroid Framework可以说是大行其道。很多大厂选择Android Framework作为基础开发框架,无数的研发人员把Framework看作是最好的Android项目,现在的Android开发方面,。市场需求摆在这里,必备的技术,大街上3-5年工作经验的Android程序员一抓一大把,真正产生筛选的还是,即掌握的技术和拥有的水平越强越有用,工作机会和薪资自然越高。,不管是对于初级开发者还是高级架构师,面试求职还是升职加薪,产生的价值和获益是最高的。原创 2023-03-13 20:19:03 · 224 阅读 · 0 评论 -
大龄互联网人该何去何从?
今年的职场,大龄互联网被裁员已没什么稀奇。连腾讯、阿里这样的顶流大厂都亲自下场向社会 “输送”人才了,形式之严峻,可见一斑。这两天就收到一位遭某大厂裁员的网友的私信。这位网友一边向小编讲述自己上有老下有小、养房养娃养老婆的艰难处境,一边控诉前东家,说自己一毕业就加入该公司,没日没夜为公司干了15年,现在30岁了,结果5分钟就被打发原创 2023-03-08 14:06:52 · 263 阅读 · 0 评论 -
面试结束后,被面试官在朋友圈吐槽了(心塞)
前阵子一个后辈小学弟向我诉苦,说自己在参加某大厂开发的时候被面试官怼得哑口无言,场面让他一度十分尴尬面试官:说说你简历上这个项目的架构?小学弟:组件化!(一口咬定)面试官:(点头)嗯,可以继续挖了,看看他对组件化底层原理的掌握程度怎样吧面试官:为什么要进行项目组件化?小学弟:方便开发。(斩钉截铁)这四个字说完,空气就突然安静下来。面试官:没了?小学弟:(表示一脸茫然)啊?我说错了?面试官:如何组件化?(叹了口气,看来只能多提点一下了,希望带得动)小学弟:……看产品的需求吧。**接下来就是原创 2023-03-01 16:15:11 · 489 阅读 · 0 评论 -
35岁职场门槛或不攻自破?
中国一半人口年龄超过38.5岁,再减去23岁以下上学没法干活的,除去专业经验对口限制,35以下候选人没多少人了,职场“35岁门槛”或不攻自破原创 2023-02-27 17:33:57 · 392 阅读 · 0 评论 -
裁员潮来袭:Android开发如何自救?未来三年,趁早做好这3个准备
每天都有人在失去工作。阿里滚动式裁员,腾讯持续裁员,知乎突击裁员,美的收缩式裁员……裁员潮像洪水一样蔓延,不论大厂还是中小企业,不论互联网还是传统行业。告别增长,降本增效,裁员是最直接的手段。过去,重在雇主品牌建设的互联网公司,为裁员这样的负面字眼紧张在意,一篇报道就可能引发一场公关危机。如今,经过大环境的锤炼,他们已经无感。新闻不再新鲜,这时候如果哪家公司还没有裁员,反而更应该上头条。今年的职场,没有金三银四。以前,但凡在稍微靠谱点的公司,不犯大错,干个几十年没问题;而现在,可能上午还为某个项目发原创 2022-05-30 21:01:43 · 430 阅读 · 0 评论 -
移动开发者,我知道最近你们过得都不太好
前言:不知道从何时开始,互联网行业每年都会迎来一波裁员,从向社会输送人才、到毕业通知,我们也见证了众多奇葩的说法:也不知道从什么时候开始,移动开发的处境仿佛比大环境更加恶劣,每年你都能看到其他类别的开发者唱衰Android,以及天天有移动开发者在问Android什么时候会凉,该如何转行……没必要杞人忧天其实任何一个行业都会经过萌芽阶段,爆发红利阶段,平衡阶段,成熟阶段。互联网时代是这样,再到现而今的移动互联网更是如此,只是随着我们国家的全民经济不断提升,移动互联网的红利时间持续地相对更长。而现在的原创 2022-05-27 14:25:42 · 1608 阅读 · 0 评论 -
Android 组件化开发的新浪潮,成为了最受欢迎的框架, 有一种架构叫组件化,你还不会?
有一种架构叫组件化,你还不会?组件化作为客户端项目架构侧一个非常重要的方案,近年来业界也在不断的探索以及各大厂都在不断的实践。每个大厂内部的各个Android开发团队也在尝试和实践不同的组件化方案,并且在组件化通信框架上也有很多高质量的产出。阿里面试最近听一位坚守在阿里的同事说,杭州阿里那边,因公司 Android 中高级开发优化离职,导致部门紧缺人才,这段时间面了不下 30 个。由于Android岗位僧多肉少的缘故,同事便从进阶基础开始问,就比如模块化、组件化的实现原理。没想到这 30 个人里面,原创 2022-05-26 15:00:50 · 365 阅读 · 0 评论 -
你好,我是一个卖安卓网课的,诚邀您进来看看(安卓课程哪家强,这里不容错过)
你好,我是一个卖安卓网课的,诚邀您进来看看(安卓课程哪家强,这里不容错过)37/100发布文章QXXXD未选择任何文件大家好,我是卖安卓网课的,也是享学课堂的助教老师。如果你愿意看看,请给我几分钟,分享一个来自长沙女孩的故事。现在是互联网+的时代,人人都有知识需求,正是因为有这些需求,则有了我们这样的一个群体。我们课程针对的主要学员群体是:1、技术基础薄弱自身基础较差,只经历快餐式的技术培训,缺少系统学习经验,对原理和底层开发了解并不深2、项目经验零碎工作内容是增删改查的简单开发原创 2022-05-16 17:26:20 · 1336 阅读 · 5 评论 -
国内程序员的评估标准,是更注重项目经验、代码质量还是基础知识?又或者两者比例五五开?
正好前两天给项目组面试了一个初级Android和高级Android的工程师作为负责人,我也是从技术菜鸟过来的,也不会像其他面试官那样弄一些虚的东西,不会让他们做一些笔试题题,更不会让求职者上机去敲代码但我也会有自己的要求我要你的目的要是能干活的,公司要求不高,不要求都是牛人,也不要求谈到什么技术都能信手拈来,侃侃而谈,基本上,就是看看面试者是否喜欢技术,对技术有自己的理解和思考初级针对于初级开发,毕竟项目经验不是很多,增删改查没问题吧一些网络协议,对泛型的理解,对sql的编写能力,然后根据简历原创 2022-05-12 21:10:30 · 304 阅读 · 0 评论 -
年中Android最热技术大盘点,卷起来呀
Android开发还有什么值得学?这个话题一定会让大家争论不休,它并没有一个确切、唯一的标准答案,你认为自己的答案是对的,那它就是对的,每个人所处的环境和项目需求不同,每个人给出的答案也一定是有切身原因的。但是从Android发展至今的趋势来看,下列内容一定是被高频列举出的答案:Flutter为跨平台开发而生的集大成者,如果想成为多端开发的六边形战士,那么Flutter一定是你的必修课Compose声明式UI的典型代表,告别繁冗的代码,重新定义了Android UI开发的方式Kotlin开发语言原创 2022-05-10 14:19:10 · 1012 阅读 · 1 评论 -
Android 12 快速适配要点
Android 12 需要更新适配点并不多,本篇主要介绍最常见的两个需要适配的点:android:exported 和 SplashScreen 。一、android:exported它主要是设置 Activity 是否可由其他应用的组件启动, “true” 则表示可以,而“false”表示不可以。若为“false”,则 Activity 只能由同一应用的组件或使用同一用户 ID 的不同应用启动。当然不止是 Activity, Service 和 Receiver 也会有 exported 的场原创 2022-03-31 16:44:32 · 1260 阅读 · 0 评论 -
Android 12 编译之坑
本文文章已首发「扣浪」公众号我们在完成 Android 12 适配之后主干 CI 集成打包没有问题,但在合入另一个需求的时候,立马就报 javac 编译失败,但只要把 compileSDK 降回 Android 11,他就没问题,然后我们针对该异常进行了各种 google,然后查到一篇 stackoverflow 的解决办法: 通过升级 jdk 版本为 11 即可解决该问题,然后我们先本地进行了实验,将 jdk 环境升到了 jdk11,确实打包没有问题,由于我们的平台打包机环境用的是 jdk8,所以,我原创 2022-03-31 16:43:23 · 1161 阅读 · 0 评论 -
Android 10 上使用WifiNetworkSpecifier 连接WiFi后http请求失败 Connection failed
问题描述:在连接设备热点的开发中,使用WifiNetworkSpecifier连上设备热点,再切换回原网络后,http请求一直报SocketException: Connection failed (OS Error: Machine is not on the network, errno = 64)Android 10 中需要使用新的网络连接api WifiNetworkSpecifier —val specifier = WifiNetworkSpecifier.Builder() .setS原创 2022-03-31 16:41:58 · 5001 阅读 · 1 评论 -
Android 10 和Android 11 适配采坑 实践篇
背景最近在项目中着手做Android10和Android11 适配时候,期间遇到了不少的坑。之前有专门写过qq、微信分享的适配。但是此次在针对偏业务侧适配工作的时候还是碰到了一些新的问题。记录下来,方便以后查阅,希望能帮到碰到此问题的相关同学。如果对存储分区概念不是很熟悉的话,可以参考之前写的文章:Android Q (10) 分区存储 微信、qq分享 适配一、 私有目录下资源访问存在这样一个场景:我们要分享一张图片到qq或者微信,首先第一步是要是得到这个bitmap(通过本地生成或者网络加载),原创 2022-03-31 16:41:26 · 1230 阅读 · 0 评论 -
Android - 依赖统一管理
前言前段时间自己在搭建组件化框架时候遇到了多人协作 Moudle 版本依赖冲突以及重复导包和同一个包导入不同版本的情况,针对这个问题对依赖统一这块做了一次比较详细的学习和总结目前Android依赖统一管理的方式有以下几种方式,接下来我们一起慢慢分析一下各种方式优缺点groovy ext扩展函数(也有称之为:“循环优化”)kotlin+buildSrccomposing buildscatalog自定义插件+includeBuildGroovy原创 2022-03-30 15:13:14 · 3637 阅读 · 1 评论 -
Android - View框架的layout机制
系统为什么要有layout过程?view框架经过measure之后,可以算出每一个view的尺寸大小,但是如果想要将view绘制的屏幕上,还需要知道view对应的位置信息。除此之外,对一个ViewGroup而言,还需要根据自己特定的layout规则,来正确的计算出子View的绘制位置,已达到正确的layout目的。位置是View相对于父布局坐标系的相对位置,而不是以屏幕坐标系为准的绝对位置。这样更容易保持树型结构的递归性和内部自治性。而View的位置,可以无限大,超出当前ViewGroup的可视范围,这原创 2022-03-30 15:12:01 · 629 阅读 · 0 评论 -
【2022最新版】Android面试真题+解析,Android面试宝典+学习成长路线
前言去年开始,互联网裁员动作越来越多,近期更是裁员消息频出。裁员的阴霾笼罩在每一个互联网人的头顶,每个人都揣揣不安,不清楚是明天先来临,还是裁员先来临。如周围荒凉的景色一般,中国的互联网人的心中也看不到春天。其实换血是互联网公司的常规动作,企业跟人的新陈代谢相同,也是要更新换代的。和鲶鱼效应相同,很多老员工相对于企业而言就像无欲无求的沙丁鱼,食之无味,弃之可惜。因此务必启用冒进的新人们,不仅刺激企业的活力,并且是真实的是给企业换血加速。为了帮助大家更好地准备金三银四求职季,这里分享给大家一份《腾讯享学原创 2022-03-29 15:10:39 · 3796 阅读 · 0 评论 -
Android - OkHttp实现的断点续传
由于阿里大佬的对象存储OSS服务安卓端没有断点续传的功能,看了一下IOS端的实现方案,结合网上的资料整理和实现了安卓端的断点续传。参考 developer.aliyun.com/article/630…关键要点在发起HTTP请求中加入Range请求头Range: bytes=100- 从 101 bytes 之后开始传,一直传到最后。Range: bytes=100-200 指定开始到结束这一段的长度,记住 Range 是从 0 计数 的,所以这个是要求服务器从 101 字节开始传,一直到 20原创 2022-03-25 17:33:34 · 1709 阅读 · 0 评论 -
做个简单的Android列表字母索引控件
⚠️ 注意:本文撰写日期为 2016-08-02相信大家在许多App中都见到过带字母索引的界面,比如我最近看到的这个开源控件:WaveSideBar很酷是不是?!!!如果加在例如联系人列表界面上,大大提升了用户体验。那么这个索引控件要怎么做呢,说到底就是自定义一个view,因为自身能力原因我并不能做出这样的效果,当然各位大神们可以自行去研究这类开源索引控件的源码。以我的能力,现在只能做这样的:虽然简单,但是对于新手来说学习一番还是不错的。 下面我们开始一步步写一个字母索引控件 Simp.原创 2022-02-25 20:22:31 · 1091 阅读 · 0 评论 -
【纵享丝滑】Android WebView H5 秒开方案总结
前言为了满足跨平台和动态性的要求,如今很多 App 都采用了 Hybrid 这种比较成熟的方案来满足多变的业务需求。Hybrid 也叫混合开发,即半原生半 H5 的方式,通过 WebView 来实现需要高度灵活性的业务,在需要和 Native 做交互或者是调用特定平台能力时再通过 JsBridge 来实现两端交互采取 Hybrid 方案的理由可以有很多个:实现跨平台和动态更新、保持各端之间业务和逻辑的统一、满足快速开发的需求;而放弃 Hybrid 方案的理由只需要一个:性能相对 Native 来说要差得原创 2022-01-05 16:32:29 · 3974 阅读 · 0 评论 -
手写框架?So Easy带你从0手撸一个RxJava
前言RxJava从几年前开始流行,以其链式风格的调用和强大的操作符而闻名于世。当然,最重要的是异步切换简单到了令人发指的地步。但是,凡事都有两面性。RxJava的上手难度也是特别陡峭的,而且经常会遇到团队里其他人对于RxJava的掌握不是很熟练。这一切的根源,都来源于它的设计思想,事件驱动型编程。什么?看不懂?没关系,接下来我一行源码也不会贴出来,让你自己就能手撸一个RxJava。为什么不贴源码?说句实话,我个人看技术文,最讨厌的就是大篇幅的贴源码,这种文章我看了只会觉得恶心。源码就在那里,我自原创 2022-01-04 22:33:07 · 397 阅读 · 1 评论 -
【Jetpack-Navigation】想去哪就去哪,Android世界的指南针
前言androidx Navigation 组件是 Android 中应用内导航的官方库很多人不喜欢 Navigation 因为其设计不符合开发者的预期,它在管理「平级界面」时来回切换会导致平级的 fragment 重建。网上针对这一问题有一个 重写 Navigator 的方案,大多数人会简单地认为 Navigation 无法保存 fragment 状态是因为使用了 replace(曾经的我也这样认为)本文的内容为 Navigation 的职能边界,简单使用,高阶使用技巧(例如同一 activity.原创 2021-12-31 17:03:46 · 1986 阅读 · 2 评论 -
Android Framework | 消息机制的冷门知识点,你能答出来几个?
作为Android的基础知识,消息机制已被无数人写过。笔者曾经也写过一篇深入分析的文章,但总体而言乏善可陈,并无新颖之处。最近恰好重新整理了一下思路,想着可以从细节的角度出发,对一些冷门的知识点做一个归纳。记录于此,供大家批评讨论。本文所有代码基于Android Q (10.0)1. 哪个消息在前?哪个消息在后?假设线程1此时正在处理一个消息,线程2通过如下方式(方式Ⅰ)往线程1的消息队列中插入两个消息。请问消息A和消息B哪个先被处理呢?handler.sendMessage(msgA);han.原创 2021-12-21 17:22:14 · 1593 阅读 · 0 评论 -
【译】Kotlin 协程,JVM 线程以及并发问题
原文:Bridging the gap between coroutines, JVM threads, and concurrency problems作者:Manuel Vivo译者:Flywith24「协程是轻量级的线程」,是不是经常听到这样的描述?这个描述对你理解协程有实质性的帮助吗?可能没有。阅读本文,您会对 协程在 JVM 中实际的执行方式,协程与线程的关系以及使用 JVM 线程模型时不可避免的 并发问题 有更多的了解。协程与 JVM 线程协程旨在简化执行异步操作的代码。基于 JV.原创 2021-12-20 10:12:35 · 738 阅读 · 1 评论 -
Android模仿微博的LazyFragment懒加载
本文会从头开始一步一步带你去写一个LazyFragment,根据写的过程中一步一步记录,你也可以自己试一试,跟着一起写写。最后也根据遇到的问题去完善了,网上搜的都是不完善的,还是自己写一个吧!懒加载是在加载啥?这个问题显得很愚蠢。但是想一下,懒加载到底是加载数据和视图,还是数据呢??(一开始我也想过这个问题。。。)当然是数据啦,你怎么能阻止视图的加载呢!你是无法阻止Fragment的生命周期函数的执行的,所以只能让当前显示的Fragment加载数据,不显示不加载数据怎么能知道当前页面是显示的这个Fra原创 2021-12-17 10:32:57 · 277 阅读 · 0 评论 -
Android Runtime | Trace文件的生成机制
本文分析基于Android S(12)当App发生ANR或是System触发watchdog时,系统都希望生成一份trace文件,用来记录各个线程的调用栈信息,以及一些进程/线程的状态信息。这份文件通常存放在/data/anr目录下,APP开发者拿不到。不过从Android R(11)开始,App便可以通过AMS的getHistoricalProcessExitReasons接口读取该文件的详细信息。以下是一份典型trace文件中的内容。----- pid 8331 at 2021-11-26 09:1原创 2021-12-16 14:21:08 · 3769 阅读 · 0 评论 -
20min、15张图带你吃透Diff算法核心原理
前言在日常面试中,Diff算法都是绕不过去的一道坎,用最通俗的话,讲最难的知识点一直是我写文章的宗旨,今天我就用通俗的方式来讲解一下Diff算法吧?Lets Go什么是虚拟DOM讲Diff算法前,我先给大家讲一讲什么是虚拟DOM吧。这有利于后面大家对Diff算法的理解加深。虚拟DOM是一个对象,一个什么样的对象呢?一个用来表示真实DOM的对象,要记住这句话。我举个例子,请看以下真实DOM:<ul id="list"> <li class="item">哈哈<原创 2021-12-15 14:24:46 · 452 阅读 · 0 评论 -
不做跟风党,LiveData,StateFlow,SharedFlow 使用场景对比
作者Flywith24Android 常用的分层架构Android 中加载 UI 数据不是一件轻松的事,开发者经常需要处理各种边界情况。如各种生命周期和因为「配置更改」导致的 Activity 的销毁与重建。「配置更改」的场景有很多:屏幕旋转,切换至多窗口模式,调整窗口大小,浅色模式与暗黑模式的切换,更改默认语言,更改字体大小等等因此普遍处理方式是使用分层的架构。这样开发者就可以编写独立于 UI 的代码,而无需过多考虑生命周期,配置更改等场景。 例如,我们可以在表现层(Presentatio.原创 2021-12-14 16:52:36 · 4818 阅读 · 1 评论 -
Android中布局层级过深为什么会对性能有影响?为什么 Compose 没有布局嵌套问题?
前言做过布局性能优化的同学都知道,为了优化界面加载速度,要尽可能的减少布局的层级。这主要是因为布局层级的增加,可能会导致测量时间呈指数级增长。而Compose却没有这个问题,它从根本上解决了布局层级对布局性能的影响: Compose界面只允许一次测量。这意味着随着布局层级的加深,测量时间也只是线性增长的.下面我们就一起来看看Compose到底是怎么只测量一次就把活给干了的,本文主要包括以下内容:布局层级过深为什么影响性能?Compose为什么没有布局嵌套问题?Compose测量过程源码分析.原创 2021-12-13 15:52:05 · 1373 阅读 · 0 评论 -
Androd 性能优化之布局优化
Android的布局管理器本身就是个UI组件,所有的布局管理器都是ViewGroup的子类,而ViewGroup是View的子类,所以布局管理器可以当成普通的UI组件使用,也可以作为容器类使用,可以调用多个重载addView()向布局管理器中添加组件,并且布局管理器可以互相嵌套,当然不推荐过多的嵌套 (兼容低端机型,最好不要超过5层)。布局层级管理让咱们一起了解一下每当系统绘制一个布局时,都会发生一些什么。这一过程由两个步骤完成:绘制(Measurement)1:根布局测量自身。2:根布原创 2021-12-12 16:43:23 · 265 阅读 · 0 评论 -
Android启动那些事儿,从头到尾拎一遍~
前言作为一个应用工程师,除了写一些业务代码,性能优化也是我们需要关注的点!如果想要去做启动优化,那么去了解启动过程就是一个绕不过去的坎儿。那么除了关于启动过程的那些代码,我们还应该去知道什么呢?一、多进程那些事儿在大家很早学习 Android 的时候,想必就知道,每一个 Android App 就代表着一个进程。1. 为什么要开启进程?为什么要开启一个新的进程呢?在 Linux 中,线程和进程可没多大区别,内核并没有给线程准备特别的调度算法或者特殊的数据结构,相反,线程被视为一个与其他进程原创 2021-12-09 17:25:19 · 1961 阅读 · 0 评论 -
你确定你的Glide不会发生内存泄漏吗?
最近正在阅读Glide源码,今天我们要研究的部分是Glide RequestManager 生命周期管理。 本来这个也是这篇文章应该是Glide生命周期管理。但是在源码阅读中我发现原来我以前的项目对于Glide的使用存在着一些内存泄漏的可能,因此临时决定更改了文章的名字,希望能够引起大家的重视。这个是我们的主界面样式通过最下面的一排选项卡,控制主界面的一级fragment ,一级Fragment下面又有若干的子Fragment,fragment又包含一些其它的View。以RecyclerView举例,原创 2021-12-07 16:57:19 · 1992 阅读 · 0 评论 -
Jetpack Navigation 真香预警
1. Navigation到底该如何正确的使用相信大家对 Navigation都有所耳闻,我不细说怎么用了,官方的讲解也很详细。我是想说一下到底该如何更好的使用这个组件。这个组件其实是需要配合官方的MVVM架构使用的,ViewModel+LiveData结合才能更好的展现出Navigation的优势。在官方的讲解示例中没有用到ViewModel和LiveData,官方只是演示了Navigation怎么用怎么在页面之间传值,和这个组件的一些特性之类的。但真正用好还是要结合ViewModel和LiveD.原创 2021-12-03 16:14:18 · 2019 阅读 · 0 评论 -
MotionLayout的高级玩法
前言最近写业务的时候遇到一个带有轮播的界面在交互效果还定稿的时候,大佬同事建议轮播样式可以考虑 MotionLayout 中的 Carousel, 这个组件就是为轮播而生。学习完发现 MotionLayout 确实好用,用同事的话来说,就是让世界没有难做的动画。MotionLayout 的思路非常简单,使用 ConstraintLayout 的写法,定义动画开始的一帧和动画结束的一帧(当然我们也可以加入更多帧,在动画的过程中),在事件触发以后,会自动帮我们处理好动画。不过,本文的重点可不是学习原创 2021-12-02 15:25:24 · 2310 阅读 · 1 评论 -
Android面试:说一下 LiveData 的 postValue ?与SetValue有什么区别?连续调用会有什么问题?为什么?
众所周知,程序员面试的时候,很多面试官喜欢会就一个问题不断深入追问。例如一个小小的 LiveData 的 postValue,就可能会问出一连串问题:postValue 与 setValuepostValue 与 setValue 一样都是用来更新 LiveData 数据的方法:setValue 只能在主线程调用,同步更新数据postValue 可在后台线程调用,其内部会切换到主线程调用 setValueliveData.postValue("a");liveData.setValue(原创 2021-06-10 16:22:08 · 6389 阅读 · 2 评论 -
还在一个模块打天下嘛?你知道引入Jetpack架构后,你的App会发生哪些奇妙的变化吗?
前言上篇文章我给大家分享了我对Android架构的理解,从思想层面去讲述架构的演进过程。很多小伙伴读完后拍手叫好,表示还想听我讲一下对Jetpack 架构的看法,本着帮人帮到底的精神,今天我将再次动笔 尽量从本质上讲清楚Jetpack 架构存在的意义,以及解决的问题。知识储备:需要对Lifcycle、LiveData、ViewModel、DataBinding有基本了解作者Bezier目录1.1 为什么要做生命周期绑定?1.2 Lifecycle解决了哪些问题?2.1 观察者模式的优点有哪.原创 2021-05-06 14:43:00 · 441 阅读 · 9 评论 -
【Android Jetpack高手日志】ViewModel 从入门到精通
背景上一篇介绍了 Android Jetpack 组件 LiveData,LiveData是在Lifecycle 的帮助下,实现了生命周期管理的一致性,将数据变更的通知控制在生命周期活跃状态 STARTED、RESUMED(注意这是Lifecycle 中的 State)时进行通知,该通知成为数据的唯一可信来源,也就是视图获取数据的唯一入口。LiveData 经常和 ViewModel 一起配合使用。定义下面我们来介绍下一个 Android Jetpack 的下一个组件 ViewModel,先来看官方.原创 2021-04-28 10:19:57 · 1712 阅读 · 13 评论 -
HR:“最喜欢阿里出来的程序员了,技术又好又耐艹!” 我:???
面试造火箭,进厂拧螺丝?真的是这样吗?缘起估计不少同学都是被标题吸引进来的。事先声明,这句话不是我虚构的,而是我实实在在从同事的口中听到的,而且还不止一次。当时的场景就是很正常的交谈,别人也并没有故意尖酸刻薄的成分,完全就是正常的谈天的口吻。所以我当时听到的时候还不觉有异,只是觉得很搞笑。但听的次数多了之后,慢慢地感觉有点不太对劲,总觉得这里面的意思好像不是那么好。就好像心仪已久的女神终于答应了你的追求,结果开口第一句就是我觉得你经济条件不错一样,听起来没问题,但是总觉得潜藏着点深意。为什么大家.原创 2021-04-22 15:43:33 · 25368 阅读 · 113 评论 -
【Android Jetpack高手日志】LiveData 从入门到精通
背景上篇介绍了 Android Jetpack 的基础组件 Lifecycle,它是生命周期感知型组件,实现生命周期管理的一致性,在内部进行了统一的生命周期状态管理,可以很方便的提供给其他的组件(比如 LiveData,ViewModel)使用,同时其他类还能够通过实现 LifecycleObserver 接口和添加注解来监控组件的生命周期状态,达到一个解耦的目的。LiveData 是一种可观察的数据存储器类。与常规的可观察类不同,LiveData 具有生命周期感知能力,意指它遵循其他应用组件(如 A.原创 2021-04-21 15:33:04 · 613 阅读 · 3 评论 -
【Android Jetpack高手日志】Lifecycle 从入门到精通
背景Android Jetpack 是一个由多个库组成的套件,可帮助开发者遵循最佳做法,减少样板代码并编写可在各种 Android 版本和设备中一致运行的代码,让开发者精力集中编写重要的代码。也就是说,Google 开发了一套通用的库让我们使用,帮助开发者高效的开发应用的工具集。详细内容可以参考这里。介绍Lifecycle 是 Android Jetpack 的一部分,是生命周期感知型组件,可执行操作来响应另一个组件(Activity 和 Fragment)的生命周期状态的变化。Lifecycle .原创 2021-04-20 16:27:09 · 595 阅读 · 13 评论