
程序人生
文章平均质量分 85
程序员不秃
这个作者很懒,什么都没留下…
展开
-
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 评论 -
Kotlin 知识点总结:类、继承、重构、构造函数、接口
简述:kotlin 中接口的简单使用 kotlin 中 类和属性的继承 kotlin 中类的重载函数 kotlin 中修饰符的介绍 kotlin 中嵌套类 内部类的讲解 kotlin 的主构造函数和次构造函数1.接口相比于 java 的接口,kotlin 还是有点不同的1.Kotlin 的接口声明 默认都是 final 和 public 的 2.Kotlin 中的接口 和 java 1.8 接口相似,可以包含 抽象方法的定义 和 非抽象方法的实现// 接口interfac原创 2021-08-06 21:04:49 · 310 阅读 · 0 评论 -
从 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 自定义多状态提示输入布局 ColorTextInputLayout
本文主要是讲解在ViewGroup中混合使用addView()和xml布局文件的方式来配置UI,自定义属性等入门知识请移步其他博客。前言因为项目需要决定自定义一个ViewGroup,但是在选定方案以后,全网搜索以后却找不到一个addView() + xml布局文件混合添加View的使用方式的讲解。能提到混合使用的文章就寥寥无几(实际上就看到一篇,被到处Ctrl CV,但这篇文章对混合使用方式也只是说了句在研究),真正讲解如何混合使用的教程,我反正是没看到的。无奈之下只能对着Goo...原创 2021-08-05 16:22:26 · 209 阅读 · 2 评论 -
经验分享:双非 Android 实习生是如何进入大厂的?
基本情况先说一下个人基本情况,山东渣一本大四学生,计算机科学与技术专业。主要学的Android开发,所以投的岗位都是Android开发工程师。暑假开始准备找实习,投了知乎,内推了阿里蘑菇街腾讯百度网易。腾讯百度都没有收到面试,知乎Skype面试,蘑菇街阿里电话面试,网易现场面。面试结果:知乎二面被拒 蘑菇街阿里一面被拒 网易三面,然后备胎了,前几天被通知过了,收到了offer。自己整理了一下被问到的问题,现在分享给大家,另外自己备份复习的Android知识点总结也会分享给大家,在Gith原创 2021-08-04 20:47:03 · 211 阅读 · 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 评论 -
Android 10手势导航的侧滑返回效果优化策略
稳住,这里是ROM开发!Android 10 中引入了手势导航功能,向IOS看齐了一步,但是默认的这个侧滑返回效果实在是差强人意,效果如下:国内各大厂商也都对此做了优化,那么我们也来优化一下吧,效果如下:1,找到地方说的够通俗易懂了吧,要改它,就要先找到它在哪里实现的。说实话这个还真不好找,网上有说:Android 10中手势导航为了xxx放到了Launcher中,然后通过AIDL和System UI交互。。。在Launcher中找了半天也没找到。如果不是在Launc..原创 2021-08-01 20:43:48 · 930 阅读 · 0 评论 -
赶快收藏!年薪50w的 Android 高级工程师写下的面试总结
前言前段时间陆续面试了一些大公司和不少的一线大厂(例如BAT),踩了不少坑但是都给填过去了,所以加起来挂了就那么一两个,虽然挂的不多,但是还是有不少感悟和收获。这里想把那段经历记录一下,如果能对朋友们有所帮助就再好不过了。面试的过程其实也是一个自我认识和学习的过程,即便暂时没打算跳槽,隔段时间出去面一面对自己还是有些好处的:不仅可以评估一下自己在市场的价值和竞争力,同时也能了解一些新技术、更新一下自己的技术栈。而且在一个地方待久了,可能不自觉的就会陷入到一种「舒适区」,久而久之,就像温水里的青蛙原创 2021-07-30 20:56:41 · 232 阅读 · 2 评论 -
阿里一面:如何使用 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 评论 -
去了字节跳动,才知道年薪 40w 的 90 后 Android 开发者有这么多?
最近脉脉职言区有一条讨论火了:“哪家互联网公司薪资最‘厉害’?”下面的评论多为字节跳动,还炸出了很多年薪 40w、50w+的 90 后们。我只想问一句,现在的年轻人都这么有钱了吗?前几天有个朋友跟我说,他从腾讯跳槽去了字节,一开始我还不理解,以为他是在走职场下坡路。但现在看来,字节跳动的薪资是真的香。按照脉脉和知乎上字节员工的说法,应届毕业生可以拿到比腾讯、阿里高 20%-30% 的薪资,而有工作经验的员工,普遍薪资水平高出业内 30% 以上。我们再看看数据,字节跳动 An.原创 2021-07-29 20:33:23 · 811 阅读 · 2 评论 -
最近面试了一位五年的 Android 开发,一问三不知!还反怼我...
最近看了很多份简历,很多候选人的工作年限都不小,但是做的都是一些非常传统的项目,想着也不能通过简历就直接否定一个人,何况现在大环境越来 越难,大家找工作也不容易,于是就打算见一见。在沟通中发现,由于年限不小,他们的定位基本都是高级及以上,毕竟,年限摆在那里,面个中级也不体面。面试时我打算聊点基础的,先打开一下话题,结果发现他们都对于开发中很基础的原理问题很不清楚,比如说:Activity 的启动流程? Handler通信原理? 进程的优先级?上面几个问题没有一个是“造火箭”的吧,结果发现,原创 2021-07-28 20:23:49 · 451 阅读 · 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 评论