
架构
文章平均质量分 89
程序员不秃
这个作者很懒,什么都没留下…
展开
-
技术面了三轮,HR接着谈薪,如今的BAT也太“好进“了吧...
谈谈我面试百度的真实感受吧~其实这次面试完全都是意外之举,本意是想面字节的,完全是冲着抖音事业部去的,但是兼听了同事的意见,让我向BAT这些一二线大厂都投递一下简历,别在一棵树上吊死。当时,幸亏了听得了前同事的意见,才拿到了现在的offer。不然,我或许就去小厂了,也不是说小厂不好,只是人各有志,我比较钟意能帮助我开阔技术界限的工作罢了;当然,抛开背景的面经都是在耍流氓,这并不是说我学历背景好啊,其实有工作经验通过社招进入大厂的本科生(非重点)还是蛮多的。个人建议:如果毕业院校不是特原创 2021-09-02 21:05:35 · 254 阅读 · 0 评论 -
Flutter 中的同步与异步
同步与异步程序的运行是出于满足人们对某种逻辑需求的处理,在计算机上表现为可执行指令,正常情况下我们期望的指令是按逻辑的顺序依次执行的,而实际情况由于某些指令是耗时操作,不能立即返回结果而造成了阻塞,导致程序无法继续执行。这种情况多见于一些io操作。这时,对于用户层面来说,我们可以选择stop the world,等待操作完成返回结果后再继续操作,也可以选择继续去执行其他操作,等事件返回结果后再通知回来。这就是从用户角度来看的同步与异步。从操作系统的角度,同步异步,与任务调度,进程间切换,中断,系统调原创 2021-08-15 21:13:50 · 1660 阅读 · 3 评论 -
还原腾讯的一场 30K—50K 的 Android 高工面经
一、面试的由来事情是这样的,因为跟公司发展一些想法的不同,早在四月份的时候就有了跳槽的想法,但是碍于老大的面子就一直就没有跟人事说出口,打算着等到下一次招聘季在试试跳槽。但是发生一件事终于让我忍不住了,HR不知道从哪里听的消息跟BOSS说了我想跳槽的想法,然后我就被谈话了,本来还留存在一些愧疚的心情顿时感觉烟消云散,在三十分钟的谈话结束之时,我选择了一个普通人的接受不了的想法,“裸辞”。交接完毕之后,第二天下午我便离开了待了三年之久的公司。裸辞后,我本打算着通过社招再去试试互联网大厂,但是一次偶原创 2021-08-14 20:34:01 · 388 阅读 · 1 评论 -
朋友工作两年、月薪涨到 28k ,同样是 Android 程序员为什么差距这么大?
幸之助说:“工作就是不断发现问题、分析问题、最终解决问题的过程,晋升之门将永远为那些随时解决问题的人敞开着。”对于程序员来说,要想提高薪资待遇有以下几个途径:第一,岗位晋级。这是广大程序员提高薪资待遇的重要途径之一,通过在工作中不断提升自己的研发能力而得到岗位晋级,进而提高自己的薪资待遇水平。这种提升往往以年为单位来计算,有的公司半年调整一次,有的一年调整一次。第二,承担新任务。对于年轻的程序员来说,承担新任务是提高薪资待遇的重要途径之一。往往新任务都会有对应的预算,所以承担新任务的程序员会原创 2021-08-13 20:35:37 · 286 阅读 · 2 评论 -
Android 架构师:优化到极致的App ,一般都有这几个共性点
前言性能优化仿佛成了每个程序员开发的必经之路,要想出人头地,与众不同,你还真需要下点功夫去研究Android的性能优化。比如说,从优化应用启动、UI加载、再到内存、CPU、GPU、IO、还有耗电等等,当你展开一个方面做优化的时候,是不是也曾跟我一样,一头雾水,摸不着头脑,甚至找不到方法,然后看了大量的文章,最后记住了一些别人消化过的方式方法,就觉得自己学会了,其实我现在并不这么认为,我觉得性能优化肯定有一个固定的思维框架,让我们自发的去发现问题,然后解决问题,只有做到了自己发现,这样我们才能跟别人不原创 2021-08-13 16:03:17 · 201 阅读 · 2 评论 -
征服面试官系列:View的事件冲突,原理你了解吗?有怎样的解决方案?
前面了解了【view的事件分发】,这里我们继续研究一下view的事件分发和处理,从而找到事件冲突的原因及其解决方案。一、概念认知在view的onTouchEvent(方法中)处理MotionEvent()的事件有: DOWN: 手指触摸屏幕的事件 UP: 手指离开屏幕是的事件 MOVE: 手指在屏幕上移动时的事件 CANCEL: 当事件被拦截的时候就会触发1)事件类型:在view的onTouchEvent(方法中)...原创 2021-08-12 22:09:02 · 423 阅读 · 3 评论 -
征服面试官系列: Binder 核心机制和进程间通信,你都理解了吗?
说起Android的进程间通信,想必大家都会不约而同的想起Android中的Binder机制。而提起Binder,想必也有不少同学会想起初学Android时被Binder和AIDL支配的恐惧感。但是作为一个Android开发者,Binder是我们必须掌握的知识。因为它是构架整个Android大厦的钢筋和混凝土,连接了Android各个系统服务和上层应用。只有了解了Binder机制才能更加深入的理解Android开发和Android Framework。这也是为什么无论是《Android开发艺术探索》还原创 2021-08-12 15:38:54 · 441 阅读 · 3 评论 -
以 29K 成功入职字节跳动,这份《 Android 面试笔记 》让我受益匪浅
一、前话回顾一下自己这段时间的面试经历,五月份的时候,因为资金链断裂导致我待了三年多的公司宣布了破产,刚开始离职后,我也尝试过出去面了几家,但面试过程中有好多面试题根本无从下手,结果咧,也在我的预料之内,匆匆忙忙的去面试灰溜溜的回来。中途有一家面试较好的公司打算给我offer,但是工资有点糟糕,我也没有接受。几次面试失败后,我开始了陷入了自我怀疑,好在身边朋友的劝导,最终还是走出了迷雾。后来,在痛定思痛后,决定还是面试现实,从头开始、狂补 Android 基础,花了2个多月把借助前段时间在某乎上面一原创 2021-08-11 20:19:35 · 353 阅读 · 3 评论 -
Android 开发之深入浅出 NavigationUI
概述在之前的导航系列文章中,Chet开发了一个用于跟踪甜甜圈的应用。知道什么是甜甜圈的最佳搭档吗?(难道是另一个甜甜圈?) 当然是咖啡!所以我准备增加一个追踪咖啡的功能。我需要在应用中增加一些页面,所以有必要使用抽屉式导航栏或者底部标签栏来辅助用户导航。但是我们该如何使用这些 UI 组件来集成导航功能呢?通过点击监听器手动触发导航动作吗?不需要!无需任何监听器。NavigationUI 类通过匹配目标页面 id 与菜单 id 实现不同页面之间的导航功能。让我们深入探索一下它的内部机制吧。添...原创 2021-08-11 16:22:03 · 734 阅读 · 3 评论 -
阿里一、二、三次技术面都被问到Android布局优化,全面复盘一波优化思路和优化方案
前言在Android开发中,性能优化策略十分重要。因为我认为预防永远比治愈有意义重要得多。我们不应该等到一个问题已经发生了,并且到了一定程度才想起来需要重构代码或者进行性能优化,通过早早的学习性能优化的思维和工具能避免很多问题,纠正一些不良的编码习惯,对Coder的编码能力提高具有很大的意义。 本文主要讲解布局优化,希望对你们有帮助目录1. 对性能的影响主要影响Android应用中页面显示的速度。1个页面通过递归 完成测量 & 绘制过程 = measure、layout 过程,而原创 2021-08-10 20:19:43 · 234 阅读 · 3 评论 -
Glide源码晦涩难懂?用这个角度让你事半功倍!
前言一个功能强大的框架,其背后少不了各种各样的封装,当我们一头扎进去看的时候,很容易被源码里各种各样的跳转,设计模式,封装等等,搞的云里雾里;在这种情况下,我们只能将大概流程给搞懂,但是却很容易忘记,为什么呢?因为我们还没有真正的理解它!我们没有将其转化为我们的知识点,所以隔一段时间就容易忘记了;那么我们要怎么将其转化为我们的知识点呢?不知道你有没有发现,我们人的大脑是很难一下子记住一个很长很长的东西,但是一个名词或者一个事物是可以很轻松的就记住的;下面我会将源码拆散成一个个的小原创 2021-08-10 16:04:22 · 181 阅读 · 2 评论 -
致敬Android程序员:“拿着12K的工资,做着20K的事,还要操着30K的心!”
今天,跟大家谈一个很现实的话题!你的工资有多少?在评论区打出来,统一都说月薪哈!能说年薪的,怕自己的小心脏扛不住。Android程序员:给多少工资,干多少事我们不是经常会看到一个关于西游记的“悖论”吗:为什么孙悟空初期大闹天宫的时候那么厉害?因为他自己当老板,打一群天庭的打工仔。为什么取经路上又变得不行了?作为一个打工仔,去跟一群出来自己创业的妖怪打架很多程序员想跟老板说,但又不太敢说,实际却在做的一件事。事实却是:“拿着12K的工资,做着20K的事,还要操着原创 2021-08-09 20:16:36 · 211 阅读 · 1 评论 -
两种方式封装Retrofit+协程,实现优雅快速的网络请求
目的 简单调用、少写重复代码 不依赖第三方库(只含Retrofit+Okhttp+协程) 完全不懂协程也能立马上手(模板代码) 用Kotlin的方式写Kotlin代码,什么意思呢?对比一下下面2个代码就知道了: mViewModel.wxArticleLiveData.observe(this, object : IStateObserver<List<WxArticleBean>>() { override fun onSucc.原创 2021-08-09 16:36:30 · 792 阅读 · 2 评论 -
CountDownLatch 源码分析示例
一、CountDownLatch是什么?A synchronization aid that allows one or more threads to wait until a set of operations being performed in other threads completes.CountDownLatch允许一个或多个线程等待直到在其他线程中执行的一组操作完成的同步辅助。CountDownLatch内部维护了一个计数器,调用await()会阻塞当前线程,每个线程完...原创 2021-08-08 21:03:48 · 288 阅读 · 2 评论 -
从 XML 到 View 显示在屏幕上,都发生了什么?
View绘制可以说是Android开发的必备技能,但是关于View绘制的的知识点也有些繁杂。如果我们从头开始阅读源码,往往千头万绪,抓不住要领。目前当我们写页面时,布局都是写在XML里的,我们可以思考下:布局从XML到显示到屏幕上,都发生了什么,可以分为哪几个部分?我们将整个显示流程分解为以下几个部分代码是怎么从XML转换成View的? View是怎么添加到页面上的? 在内存中View到底是怎么绘制的? View绘制完成后是怎么显示到屏幕上的?本文目录如下所示:1.XML是怎么.原创 2021-08-06 14:50:56 · 340 阅读 · 0 评论 -
第一次面大厂就拿到了腾讯的 offer ,同事笑着骂我是搞 Android 的“狗托”......(含面经总结)
一、 前言现在是2021年的8月,现在很多程序员朋友们都在为接下来的面试黄金期做准备;相信大部分程序员们都以进入大厂的目标,因为这样可以实现财务自由,追逐自己的职业理想。如果是已经拿到心仪offer的朋友可以把此篇作为收藏,下次跳槽面试时可以拿出来看看; 如果是还在准备面试或者是面试被挂,没有拿到心仪offer的朋友们,我建议你们要好好看看这篇;这篇文章主要介绍了我的同事兼朋友刘哥七月份的腾讯面经(已拿offer),(一次性查缺补漏个够),如果对你们的面试有所帮助的话,请一键三连!(感谢刘哥的内原创 2021-08-05 20:25:22 · 195 阅读 · 1 评论 -
Android 组件化实战
一、什么是模块化module模块,包含两种格式application和library。概念是一个module是一个小项目,相对于包来说模块更灵活,耦合更低,随意插拨,根据不同关注点将项目共享部分或业务模块抽取出来形成独立module。二、什么是组件化基于模块化,核心思想是角色的转换,在打包时是library,开启调试是application。单位是组件(module),目的是解耦与加快开发,隔离不需要关注的部分。分离独立的业务组件如微信朋友圈, 相对于模块化侧重于业务解耦三、组件化有什么好处原创 2021-08-04 15:19:33 · 241 阅读 · 1 评论 -
35岁的Android开发,失业海投35家公司简历石沉大海,我的代码生涯该如何走下去?
引言回首向来萧瑟处,归去,也无风雨也无晴。我一哥们也是做Android开发,暂且先叫他峰哥吧,从2014年到现在已经入行6年了,每天还是写一些业务代码,至今还是个单身狗,愁的头发真的都快谢顶了。虽然峰哥每天做着CRUD的工作,但每天还是做着能进BAT的梦,尤其是今年,公司扛不住疯狂裁员,峰哥也不出意外的被裁掉了。被裁后,峰哥开始海投简历,说实话,按照我对他的了解,峰哥平时就比较贪玩,上进心也不强,总是逼不得已为了高薪跳槽才去学习,到最后终究是竹篮打水一场空。想想峰哥马上就要35岁了.原创 2021-08-03 20:38:24 · 410 阅读 · 1 评论 -
Android_增量更新(BSDiff)详解
Android 增量更新,是在应用市场中非常常见的一个功能,并且很多游戏等 App 也会采用增量更新的方式升级版本,可以说是常见而且成熟的一门技术。什么是增量更新增量更新是基于 BSDiff 这个差量更新算法,基于两个 apk 字节码的差异,在服务端生成 patch 包,然后客户端通过同样的算法,把已安装的 apk 与 patch 包结合生成更新后的apk进行安装,以此减小 app 版本升级时的下载时间,提高更新效率。增量更新有什么好处?对于当前市场上大部分app,apk 体积一般在 100原创 2021-08-03 20:14:47 · 1786 阅读 · 1 评论 -
Android 架构面试官:面试不仅仅是八股文,掌握这个通过率 80%
一 . 前言前段时间,因为我们团队极度缺人,连续面了不少同学,正好借此分享一下自己对面试的一些浅见。谨代表个人观点,如果您觉得哪里说的不好,欢迎指教和批评~二 . 细节杂谈之所以是细节杂谈,说实话,是因为真的不知道可以写什么,网上关于Android面试的文章很多,大概看了几篇之后,更不知道写什么了。而根据自己这么多年来的面人和被面经验来看,发现其实有很多细节,在面试的时候都没有被好好重视起来。所以,这里针对这些细节做个总结,也希望可以对你们有所帮助。1. 准备一个良好的开场白首.原创 2021-08-02 21:07:45 · 845 阅读 · 2 评论 -
去了字节跳动,才知道年薪 40w 的 90 后 Android 开发者有这么多?
最近脉脉职言区有一条讨论火了:“哪家互联网公司薪资最‘厉害’?”下面的评论多为字节跳动,还炸出了很多年薪 40w、50w+的 90 后们。我只想问一句,现在的年轻人都这么有钱了吗?前几天有个朋友跟我说,他从腾讯跳槽去了字节,一开始我还不理解,以为他是在走职场下坡路。但现在看来,字节跳动的薪资是真的香。按照脉脉和知乎上字节员工的说法,应届毕业生可以拿到比腾讯、阿里高 20%-30% 的薪资,而有工作经验的员工,普遍薪资水平高出业内 30% 以上。我们再看看数据,字节跳动 An.原创 2021-07-29 20:33:23 · 811 阅读 · 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 评论 -
最近面试了一位五年的 Android 开发,一问三不知!还反怼我...
最近看了很多份简历,很多候选人的工作年限都不小,但是做的都是一些非常传统的项目,想着也不能通过简历就直接否定一个人,何况现在大环境越来 越难,大家找工作也不容易,于是就打算见一见。在沟通中发现,由于年限不小,他们的定位基本都是高级及以上,毕竟,年限摆在那里,面个中级也不体面。面试时我打算聊点基础的,先打开一下话题,结果发现他们都对于开发中很基础的原理问题很不清楚,比如说:Activity 的启动流程? Handler通信原理? 进程的优先级?上面几个问题没有一个是“造火箭”的吧,结果发现,原创 2021-07-28 20:23:49 · 451 阅读 · 2 评论