
Android开发
文章平均质量分 87
程序员不秃
这个作者很懒,什么都没留下…
展开
-
ViewModel原理解析,人人都能看得懂~
作者:不说话的匹诺槽前言今天想跟大家聊的是Jetpack 组件之ViewModel , 之前对ViewModel 也是一知半解,只是从博客上大概了解过它的原理,自己并没有深入了解过,所以打算自己由浅入深的领略一下,本人自己感觉不算是聪明的那类人,连我都能看得懂,相信各位肯定没问题,人人都能看得懂!先来看看ViewModel是什么?ViewModel 类旨在以注重生命周期的方式存储和管理界面相关的数据。ViewModel 类让数据可在发生屏幕旋转等配置更改后继续留存。架构组件为界面控制器提供了.转载 2022-03-28 13:47:40 · 1069 阅读 · 0 评论 -
字节Android 岗五面都过,最后又被刷下去了,原因是……
作者:虾皮球前言本人从事Android 开发已有3年了,毕业于某二本学院,在学校学的专业是计算机应用专业,刚毕业从来是做的Java开发,因自己一直对Android 感兴趣,于是从中就开始转行做起了Android 开发。我这次给大家分享的一段字节跳动的面经。温馨提示:面试时最好不要虚报工资。本来字节跳动是很想去的,几轮面试也通过了,最后没offer,自己只想到原因是:一是自己虚报工资,比实际高30%;二是他们有找到了更好的人选,这个可能性不大;想知道答案请往下看吧。面试流程:一面1.okht.原创 2022-03-27 21:23:20 · 320 阅读 · 0 评论 -
如何正确中断 一个线程?
作者:苏打水解渴如何正确中断 一个线程?1、通过线程提供的方法interrupt 通过调用此方法,系统就会给当前线程打上一个中断标记(true),默认为false,如果其他线程中调用当前线程中的此方法,表示告诉当前线程你可以停止了,当前线程也可以不理睬继续执行isInterrupted 判断当前线程是否被中断,根据当前线程中断标志位,做相关的处理Thread.interrupted() 判断线程是否被中断,此方法是个静态方法,跟isInterrupted 不同的是,在判断的之后会重.转载 2022-03-26 20:42:06 · 357 阅读 · 0 评论 -
一键调用,Get Android 实现视频连麦直播的核心原理
视频连麦产品端核心步骤分析游客申请连麦/取消申请 主播同意/拒绝申请 音视频发布取消 支持很多观众观看 支持多人连麦 低延时 IM 弹幕视频连麦技术端调研emmm,大致可以分为视频采集、编码,传输,解码,渲染%¥#@¥%…………%……¥……%¥%……¥%%……%#¥%#%¥&%&……%……&%……¥?卒所以经过调研,发现市场上已经有很多成熟的商业解决方案,并且成本很低就可以接入使用。对比了很久,最后采用 anyRTC 公司的两个 SDK 来完成.原创 2021-08-02 17:34:20 · 228 阅读 · 2 评论 -
Android 10手势导航的侧滑返回效果优化策略
稳住,这里是ROM开发!Android 10 中引入了手势导航功能,向IOS看齐了一步,但是默认的这个侧滑返回效果实在是差强人意,效果如下:国内各大厂商也都对此做了优化,那么我们也来优化一下吧,效果如下:1,找到地方说的够通俗易懂了吧,要改它,就要先找到它在哪里实现的。说实话这个还真不好找,网上有说:Android 10中手势导航为了xxx放到了Launcher中,然后通过AIDL和System UI交互。。。在Launcher中找了半天也没找到。如果不是在Launc..原创 2021-08-01 20:43:48 · 930 阅读 · 0 评论 -
阿里一面:如何使用 AIDL 实现跨进程传输一个2M大小的文件 ?
前言分析一下,个人认为这个阿里的面试题可以细分为两个问题:如何使用AIDL进行跨进程通信? 如何传输一个2M大小的文件?问题1很简单,可以参考AIDL官方文档,这里不做过多介绍。本文主要集中火力解决问题2,讲解如何通过匿名共享内存实现跨进程双向大文件传输。AIDL简介AIDL是Android中实现跨进程通信(Inter-Process Communication)的一种方式。AIDL的传输数据机制基于Binder,Binder对传输数据大小有限制, 传输超过1M的文件就会报android原创 2021-07-30 20:53:29 · 1746 阅读 · 2 评论 -
Android事件分发及应用
事件分发事件分发是Android View体系里非常重要的知识点,熟悉事件分发之后可以自定义出各种交互复杂的View,也可以解决开源库中的各种滑动冲突bug。下边开始具体的实验和分析。创建了2个自定义的ViewGroup:GrandFatherLayout继承自LinearLayout,FatherLayout继承自RelativeLayout。创建了一个自定义View(MyButton)继承自Button。3个View中,只在dispatchTouchEvent、onInterceptTouchE原创 2021-07-29 20:29:06 · 230 阅读 · 2 评论 -
面试 100% 完全掌握:重新认识 View 的绘制流程
天空看不见云,大火球在上面肆意发光,逼着毛孔慢慢渗出汗水。我离开舒适区,跑出去面试了几次。得到的最多的反馈是不够深入。作为一个五年经验的安卓开发者,欠缺的还有很多。前言从一个view实例被创建,到展示到屏幕上,都经历了怎么样的一个流程?在安卓开发中,这似乎是一个基本的知识,应该被开发者清楚地认识明白,面试中也作为问题频频出现,然而我还是认识得不深刻。Android View的绘制流程 是View相关的核心知识点。我希望通过这篇文章学习并分享Android View绘制流程的始末。...原创 2021-07-28 17:45:12 · 333 阅读 · 2 评论 -
悄悄精通 RecyclerView
RecyclerView是一款非常强大的 widget,它可以帮助您灵活地显示列表数据。当我开始学习 RecyclerView 的时候,我发现对于复杂的列表界面有很多资源可以参考,但是对于简单的列表展现就鲜有可参考的资源了。虽然 RecyclerView 的组成结构乍一看有些复杂,但是深入理解以后您会发现它其实非常简单明了。本文会通过创建一个简单的 RecyclerView 实现一个列表来显示不同种类的花的名字。在实现的过程中,我也会将 RecyclerView 的每个部分揉碎了展现给大家,这样大家就.原创 2021-07-27 20:43:34 · 224 阅读 · 2 评论 -
Kotlin中的可空类型
1、声明一个不为空的变量// 1、声明一个不为空的变量,不可被赋值为null,且必须在后面初始化 by xiaojin on 7/24/21 9:32 PMvar name:Stringinit { name = "Tom" // 此时会被提示 Null can not be a value of a non-null type String by xiaojin on 7/24/21 9:33 PM name = null }声明一个非空变量时,如果在定义时未初原创 2021-07-27 16:46:01 · 382 阅读 · 2 评论 -
七月脱产复习上岸Byte Dance,敢问:这不比“博人传”燃?
首先,我承认,我取这样的标题确实有点夸大其词了,不过offer是真的,本意还是为了帮助更多在面试中的朋友,还请刷到文章的朋友见谅一下。一、自身情况本人19年毕业于一家普通一本,考研裂开且没有实习经验,只做过两个项目会一点Android。每天就是不断地投简历、刷面经,感觉自己都要抑郁了,最后勉强进入了一家学校合作的互联网公司写了2年的业务代码,每个月拿着9000的薪水还要被迫接受996,感觉未来没有希望。但是在今年的五月中旬看着自己的同事跳槽涨薪拿着月薪18k+的薪水,我决定做出改变,离开这里原创 2021-07-26 21:57:48 · 832 阅读 · 3 评论 -
Handler系列面试题:如何深挖原理进大厂?
1.简述Handler的实现原理Android 应用是通过消息驱动运行的,在 Android 中一切皆消息,包括触摸事件,视图的绘制、显示和刷新等等都是消息。Handler 是消息机制的上层接口,平时开发中我们只会接触到 Handler 和 Message,内部还有 MessageQueue 和 Looper 两大助手共同实现消息循环系统。(1)Handler通过Handler的sendXXX或者postXXX来发送一个消息,这里要注意post(Runnable r)方法也会将Runnable包..原创 2021-07-26 17:14:57 · 249 阅读 · 2 评论 -
Android-自定义点选文字验证
分析从上面的效果图中,我们可以很直观的看出一共包含三个元素:背景图、空缺部分、填充部分,需要注意的是:1. 空缺部分缺失的图片刚好是填充部分2. 我们把填充部分位置固定在左侧,而随机生成空缺部分在右侧,增加验证难度思路准备背景图片,通过canvas.drawBitmap() 方法画出背景图 计算View宽高,随机生成空缺部分的x坐标在(width/3, width)范围,固定填充部分的x左边在(0,width/3)范围内,保证填充部分和空缺部分在初始化时没有重叠。(不严谨,具体数值还要结合空缺原创 2021-07-24 21:09:02 · 272 阅读 · 0 评论 -
从LiveData迁移到Kotlin的 Flow,才发现是真的香!
DeadData?LiveData 对于 Java 开发者、初学者或是一些简单场景而言仍是可行的解决方案。而对于一些其他的场景,更好的选择是使用 Kotlin 数据流 (Kotlin Flow)。虽说数据流 (相较 LiveData) 有更陡峭的学习曲线,但由于它是 JetBrains 力挺的 Kotlin 语言的一部分,且 Jetpack Compose 正式版即将发布,故两者配合更能发挥出 Kotlin 数据流中响应式模型的潜力。此前一段时间,我们探讨了 如何使用 Kotlin 数据流 来连接您原创 2021-07-23 21:28:22 · 1195 阅读 · 2 评论 -
近一个月面试了诸多大厂的 Android 开发,被挂的理由竟无一例外...
一、前言我本来不是一个喜欢写博客的人,因为性格内向、不善言谈,也很少他人分享自己经历,以前也仅写过一些技术分享,转折点是上周阿里面试,面试官问我写过博客吗,想起简书上19年就停更的技术分享文章,我只能回答没有,面试官就推荐我多写一些博客,将自己面试遇到的技术问题公开分享。考虑到写一些技术分享的博客,有助于自己是技术的加深和理解,所以最近开始在简书记录一些自己曾遇到Android面试的技术问题。而写这篇大厂面试总结是因为刷到另一个博主的面经总结有感而为,觉得自己也应该记录下这一段自己认真努力中的日原创 2021-07-22 16:14:34 · 237 阅读 · 2 评论 -
第一次面大厂就拿到了腾讯的 offer ,同事笑着骂我是搞 Android 的“狗托”......(含面经总结)
一、 前言现在是2021年的7月,现在很多程序员朋友们都在为面试做准备;相信大部分程序员们都以进入大厂的目标,因为这样可以实现财务自由,追逐自己的职业理想。如果是已经拿到心仪offer的朋友可以把此篇作为收藏,下次跳槽面试时可以拿出来看看; 如果是还在准备面试或者是面试被挂,没有拿到心仪offer的朋友们,我建议你们要好好看看这篇;这篇文章主要介绍了我的同事兼朋友刘哥三月份的腾讯面经(已拿offer),(一次性查缺补漏个够),如果对你们的面试有所帮助的话,请一键三连!(感谢刘哥的内容提供)二原创 2021-07-22 16:09:16 · 174 阅读 · 1 评论 -
中年程序员崩溃大哭:混不上管理层,加不动班,说好的前程似锦却不见未来
公众号里有位中年读者粉丝,发私信吐槽诉苦:本人八五后,Android 程序员,工作经验七年。这七年间,不停的在小公司之间流动,待过的最大的公司规模,也就是五十人左右;在职位上的发展也是一言难尽,我这人,个性比较佛系,对自己要求也不高,拿着程序员一万出头的工资,就觉得挺满意了。可是,随着年龄的增长,职位和能力却不增长,我满意,老板可不满意啊。年龄一过三十,出去面试,一般的公司对三十岁左右的应聘者,都很看重管理经验,一看我,从来没做过管理,在技术上也没什么突出的能力;我能做的工作,二原创 2021-07-21 20:33:37 · 497 阅读 · 2 评论 -
不为人知的Android 小知识,让你的开发如鱼得水,快来收藏吧
这是我在日常开发中积累的非常实用的一些技巧。分享出来,快来收藏吧通过shell拉起应用拉起应用: adb shell am start -n com.example.app/com.example.app.LauncherActivity强制关闭: adb shell am force-stop com.example.app 隐藏系统Toast:appops set android TOAST_WINDOW denyappops set com.android.systemui T原创 2021-07-21 20:31:13 · 180 阅读 · 2 评论 -
作为字节跳动的一名 Android 程序员,谈谈工作一年后的成长与收获(附上面经整理)
转眼,时间流逝在谈笑间;记得去年毕业找工作时的姿态仿佛如昨日般清晰可见,到现在已虚度过了一年的时光;如今看来,一年之中还是有非常多收获的,感谢这一年的时光,感谢所有遇到的人,让我变成更好的自己。正所谓满园春色关不住,一枝红杏出墙来,带着满满的收获我开始了大规模的面试,拿到了大部分 Offer。在发出来面试经历之前,简单谈谈我这一年中作为职场新人的成长与收获。职场收获适应公司技术进入职场后,你会先去适应公司的技术栈和工具,这些其实并不难,在了解和学习的过程中也能增长见识。适应人际原创 2021-07-20 17:08:59 · 663 阅读 · 3 评论 -
开枝散叶的组件化技术,90%的开发者用后都说香
从2017年只有几个大厂在做组件化,到今天已经繁花似锦。越来越多的团队,越来越多的项目都做了组件化。大叔相信即使你没有做过组件化项目,但是,对组件化也早就听烂了。但是,组件化开发多少有些技术门槛。有很多大神写过相关文章,通俗易懂的不多。深入浅出的更不多。大叔不才,愿意冒着不要脸的风险一试,通俗易懂、深深浅浅的来聊聊组件化开发,如果对你有一点点启发,请记得回来给大叔点个赞。这篇blog,大叔酝酿了很长长长长长长长长长长长长长长时间。一、单工程开发 -> 多module分层.原创 2021-07-20 17:03:01 · 465 阅读 · 1 评论 -
三年的 Android 开发就这水平?我还不如去招应届生
公司前段缺人,也面了不少的客户端工程师,结果竟然没有一个合适的。一开始瞄准的就是中级的水准,也没指望来大牛,提供的薪资在10-20k,面试的人很多,但平均水平很让人失望。看简历很多都是3年工作经验,但面试中,不提算法逻辑,仅仅很基础的Android技术很多也知之不详,多数人数年的工作经验仅仅是用大量第三方SDK堆砌起的类似产品,毫无深度,对于底层原理方面等等一问三不知,都停留在只会调用些第三方服务的基础应用层面上,算法更是一问一个死,前沿技术最新动态也毫无关注。而这些人的薪资要求却是都接近20k原创 2021-07-19 20:33:42 · 286 阅读 · 2 评论 -
OkHttp 断点上传的“基操”,真还有人不知道?
1、前言经常会有同学问:文件的断点上传如何实现?断点上传/下载,这是在客户端经常遇到的场景,当我们需要上传或下载一个大文件时,都会考虑使用断点续传的方式。断点上传相较于断点下载来说,最大的区别就在于断点位置的记录,上传记录在服务端,下载记录在客户端,因此,客户端需要在上传前,通过接口去拿到文件的断点位置,然后在上传时,将文件输入流跳转到断点位置2、准备工作对于文件上传,其实就是打开文件的输入流,不停的读取数据到byte数组中,随后写出到服务端;那客户端要做的就是跳过已经上传的部分,也就是原创 2021-07-19 16:33:52 · 231 阅读 · 2 评论 -
自定义Gradle插件的开发
开发一个插件的步骤新建一个Android library类型的module, 删掉src目录下的androidTest, test目录。 在src/main目录下,新建一个groovy目录,用来放相关的groovy文件 在src/main/groovy目录下新建一个目录com.fred.asm(请注意是一个目录名为com.fred.asm, 不是建了一个com/fred/asm目录) 在src/main/groovy/com.fred.asm/目录下,新建一个类, 这个类是我们的插件入口,我最初的原创 2021-07-18 20:29:40 · 333 阅读 · 1 评论 -
再聊聊pthread oom 问题 | 性能优化
之前和大家聊过一次pthread oom问题。基于当时的场景以及对Rxjava的分析,只能说解决了一小部分问题。但是实际上只要我们滥用了线程,特别是华为设备,还是有可能发生对应的问题的。所以这次打算再展开下,顺便把自己最近做的一些这方面相关的给大家做一次简单的分享。这一次我们从两方面入手,看看能不能有效的解决这部分问题。通过debug工具hook所有DefaultThreadFactory创建的无名线程 通过plugin+asm进行线程池替换,把违法乱纪人员逮捕起来正文如果你的线上已经开原创 2021-07-16 20:32:18 · 269 阅读 · 1 评论 -
渣本转岗,从Java到Android,这一年我经历了太多太多...
一个多月没有更新博客了,一直在忙着找工作。现在已经尘埃落定,最终选择了有赞。 这篇文章主要总结一下自己面试的一些经历与准备。你看,那个凌晨四点,为解决需求还在抓耳挠腮的敲代码肯定就是你啦!一、转岗经历作为一个双非渣本非CS专业的码农,之前跟着大环境培训出来敲了一年多的Java,可敲着敲着发现看着后端枯燥的数据越来越厌烦,我才明白热爱也是一种奢望。于是,我思虑过后还是打算裸辞转岗选择了客户端,还在因为我有Java的基础,所以学习Android并不是很难,也没走太多的弯路。二、学习.原创 2021-07-16 17:19:04 · 546 阅读 · 1 评论 -
Android程序媛:文科转码,记录我在字节跳动这一年
作者:又菜又固执的程序媛虽说是年中总结,但是发现自己好像从来还没有总结过这一段奇妙的转行经验,因此借这个机会,也算是给自己过去几年的一个交代。故事的开端2016 年的秋天,我跟很多即将毕业的迷茫大学生一样,一边实习,一边参加秋招。或许是学校的名声给了我自视甚高的“勇气”,或许是忙碌的实习工作让我应接不暇,又或许是自己根本没想清楚职业规划,总之,我经历了惨痛的秋招——颗粒无收。我的读的是一个比较冷门的经管类专业,当时一心想当一名产品经理。在那个“人人都是产品经理”的时代(或许现在也是),校招现原创 2021-07-14 21:12:13 · 589 阅读 · 3 评论 -
面试官:View的事件分发我必问,不会给你一个pass
对面的面试官喝了口水,不动声色地继续看我的简历,让自我感觉上个问题【面试官爸爸】来给我讲讲 View 绘制?回答的不错沾沾自喜的我慢慢收敛起来,正襟危坐,等待下一轮提问准备好了没有啊?准....准备好了行,那我们开始吧你来说说 View 的事件分发吧我看你 View 绘制答的还可以,你来说说 View 的事件分发吧好的。View 事件分发一般是指 UI 事件的分发。它本质是递归,递归函数是 dispatchTouchEvent事件分发如何通过递归实现递归原创 2021-07-14 15:03:48 · 177 阅读 · 3 评论 -
从 15K 到 26K,某大厂 Android 程序员“优雅“ 的跳槽感悟
跳槽现状本人是工作了三年的Android程序员,因为之前一直被上家的leader挽留,因故才没有赶上春招,跳槽成功后总结了这篇感悟,分享给大家。记得字节终面时,HR问我:“ 你在上家公司呆了多久?我的回答是2年多,她的回答:这么久了。我心里想不会吧,两年其实不久吧。”以前有过这样的说法,大概说hr给不给你offer,其实也看你这个人稳不稳定,经常跳槽的人,可能给hr留下不好的印象。但是渐渐的我发现时代在变化,当猎头、hr的工作被量化、被kpi约束的时候,稳定这个代名词已经不那么重要了原创 2021-07-13 19:40:09 · 625 阅读 · 5 评论 -
大意了,又是 OOM ,Android 内存监控一定要注意这几点!
前言性能优化是一个老生常谈的问题,也一直是Android中高级攻城狮进阶和深入的方向。在性能优化的各种问题中,内存泄漏一直占有较重要的地位。内存泄漏的积累会造成内存溢出,进而导致程序崩溃,出现OOM问题。针对这个问题,我们需要在上线前进行检测同时也要能够实现线上的监控。方案一:线下性能监控Android Studio自身提供的MAT等工具分析内存泄漏比较耗时,因而诞生了LeakCanary——这也是现在寻找内存泄漏问题最常用的工具。LeakCanary 这个工具非常简单,依赖 Lea原创 2021-07-13 14:48:33 · 1022 阅读 · 3 评论 -
抱歉!我们公司不接受本科以下的 Android 程序员
现在在各种技术自媒体平台嚣尘上的这样一种言论:程序员是最不看重学历的岗位,只要自己的技术够牛,一线大厂就能随便进。这种言论害了太多的人,直到现在可能还有很多人都对这种结论都深信不疑,但其实作为一名过来人,学历相关的教训和例子实在是太多了,总结一句就是:对于是否胜任工作,学历不太重要。但是对于能否找到工作,学历存在分界线。时代不同,学历门槛越来越高我刚出来工作的时候,互联网行业对学历真叫一个宽容,那时候你只要是大专以上学历,开发岗位基本上80%-90%的互联网公司是稳进的。甚至,你只要原创 2021-07-12 15:34:15 · 240 阅读 · 2 评论 -
一次面试被问到ArrayMap,原理及源码分析详解
一、前言在 《SparseArray详解及源码简析》中,我们熟悉了 SparseArray 的基本用法、特点以及实现原理。而在 Android SDK 的这个工具包中还有一个同样重要的数据结构 ArrayMap,其目的也是在当数据量较小,比如几百个的时候,可以用来替代 HashMap,以提高内存的使用效率。如果对 HashMap 的实现感兴趣的话,可以看看《HashMap详解以及源码分析》,而这篇文章就来了解一下 ArrayMap 的使用及其实现原理。二、 源码简析1. demo 及其简析原创 2021-07-12 15:28:32 · 649 阅读 · 7 评论 -
kotlin 协程也有并发?
概览我们在 java 中处理并发是家常便饭,但是协程的并发你有没有想过呢,协程是否也有java一样的并发问题?我们知道协程是轻量级的进程,而且是可以多线程调度的。那么想想这样一个情景:我们开启1000个协程,每个协程中对count进行自增,协程执行完成后能否拿到count==1000的结果,答案在后面的章节中,最终结论就是kkotlin也是需要处理并发的那么这种并发该如何处理呢,我想先给你说的是,协程有自己的一套并发规则,你应该试图优先用 kotlin 的并发方法来处理协程的并发本文主要原创 2021-07-10 20:30:42 · 559 阅读 · 1 评论 -
某 Android 大牛 “凡尔赛”:面大厂我一次过,直接拒掉了字节跳动 40K 的 offer
作者:恍然如梦前言这段时间稍微断更了一段时间,因为我在准备面试。经过两次面试后,有一些比较深刻的认识。对于大厂来说,除了对专业知识考究之外,对算法也尤为看重。简单的说一下情况,字节已经拿到offer,腾讯所有的面面试已经通过了,也应该有offer了。字节一共4面:3面技术,1面hr; 腾讯5次技术面,1次hr面。其中5面是2个面试官上阵。总的来说腾讯的面试确实强度更高更加持久。字节是分开一次1个小时面试的。而腾讯1、2面是一次一小时,而3面和4面是连续面试一口气高强度的面试2小时.原创 2021-07-09 20:52:30 · 494 阅读 · 2 评论 -
hook Toast,全网最强之 Android “沙雕”操作
一,背景这是个沙雕操作,原因是:在小米手机的部分机型上,弹Toast时会在吐司内容前面带上app名称,如下:此时产品经理发话了:为了统一风格,在小米手机上去掉Toast前的应用名。网上有以下解决方案,比如:先给toast的message设置为空,然后再设置需要提示的message,如下:Toast toast = Toast.makeText(context, “”, Toast.LENGTH_LONG);toast.setText(message);toast.show();原创 2021-07-09 15:28:59 · 637 阅读 · 2 评论 -
Webview 面试常见问题
Webview的使用需要申请权限,例如android.permission.INTERNET等。WebSettings webSettings = webView.getSettings();webView.setWebChromeClient(new WebChromeClient());webSettings.setJavaScriptEnabled(true)webSettings.setJavaScriptCanOpenWindowsAutomatically(true);we原创 2021-07-08 21:06:23 · 385 阅读 · 3 评论 -
全网热议:Android 在未来是否会走向终结?
为什么都说Android不行了从Android从08年开始兴起,一路走来,已经历经10多年的发展。08到12年属于Android从萌芽到快速发展的阶段,12到16年属于Android成熟阶段,16年到现在属于Android差异化发展阶段,并且在各个领域均有渗透。从图中可以得知,从2016年起,市场在慢慢趋于饱和,涌进的人数在慢慢的减少,Android呈现了下滑的趋势。而时至2021年,内卷的市场迅速加剧,如果把现在的Android市场比喻成漏斗的话(注意:这里是指倒置的漏斗),那么初入行的毕业生原创 2021-07-08 21:03:03 · 507 阅读 · 10 评论 -
详解Android官推Kotlin-First的图片加载库
前言Coil 是一个非常年轻的图片加载库,在 2020 年 10 月 22 日才发布了 1.0.0 版本,但却受到了 Android 官方的推广,在 Android Developers Backstage 这个博客中专门聊过一期。推广的原因比较简单:一方面是这个库确实做得很好,另一方面是这个库完全是用 Kotlin 写的,而且运用了大量 Kotlin 的特性,尤其是协程。所以 Google 嘴上说着不会放弃 Java,但实际上咱们都懂的。Coil 名字的由来:取 Coroutine Image Lo原创 2021-04-19 17:44:00 · 574 阅读 · 1 评论 -
Android 启动优化: JetPack App Startup 使用及源码浅析
前言最近看到很多人在问 JetPack App Startup,很多人对它还不是很了解。今天,就让我们来聊一聊 JetPack App Startup。目录1 什么是 JetPack App Startup2 JetPack App Startup 能解决什么问题3 JetPack App Startup 基本使用4 JetPack App Startup 进阶使用5 JetPack App Startup 源码浅析6 小结什么是 JetPack App Startup我们先来看一原创 2021-04-19 14:42:21 · 442 阅读 · 1 评论 -
大厂内部面试题:Android四大组件之一Service系列
Service-服务,Android四大组件之一,偷鸡摸狗必备功能之一。和Activity最大的区别就是多用户不可见。#Service系列问题##Service本地服务及生命周期详解1.1 什么是Service,为什么使用Service与Activity相对应的就是Service(服务)了,Activity在明,Service在暗。Service 是一个可以在后台执行长时间运行的服务,对用户不可见。服务可由其他应用组件启动,而且即使用户切换到其他应用,服务仍将在后台继续运行(注意:对于国内手机厂商来原创 2021-04-16 21:47:14 · 233 阅读 · 0 评论 -
深入理解AsyncTask的工作原理
一、为什么需要工作者线程我们知道,Android应用的主线程(UI 线程)肩负着绘制用户界面和及时响应用户操作的重任,为了避免“用户点击按钮后没反应”这样的糟糕用户体验,我们就要确保主线程时刻保持着较高的响应性。为了做到这一点,我们就要把耗时的任务移出主线程,那么耗时的任务交给谁来完成呢?答案就是工作者线程。Android开发中我们通常让主线程负责前台用户界面的绘制以及响应用户的操作,让工作者线程在后台执行一些比较耗时的任务。Android中的工作者线程主要有AsyncTask、IntentService原创 2021-04-16 15:55:13 · 262 阅读 · 0 评论