<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[chenjingsb的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/chenjingsb</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; chenjingsb]]></copyright><item><title><![CDATA[【面经分享】字节抖音Android客户端3+1轮已通过]]></title><link>https://blog.youkuaiyun.com/chenjingsb/article/details/118900274</link><guid>https://blog.youkuaiyun.com/chenjingsb/article/details/118900274</guid><author>chenjingsb</author><pubDate>Mon, 19 Jul 2021 16:20:18 +0800</pubDate><description><![CDATA[不少同学对字节的面试有所忌惮，不愿轻易尝试。其实字节尤其是客户端的面试并没有大家想象的那么难，今天分享一篇面经，内容真实，希望帮助大家更好地了解字节客户端面试的出题范围和难度。
我是一名本科应届生，学校专业是软件开发。距离毕业之期不到半年，学校也在催促我们早点出校实习，年前通过一名学长内推去了字节跳动的抖音面试。12 月 31 号投的简历，1 月 6 号收到 HR 电话。隔这么长时间还是挺害怕的，以为简历都被筛掉了。

下面是我在字节抖音的面经分享，一二面和 HR 面都是凭印象回忆的，可能会漏掉一些问题。
]]></description><category></category></item><item><title><![CDATA[追梦要趁早：双非3年Android混子跳槽字节面经分享（已拿offer）]]></title><link>https://blog.youkuaiyun.com/chenjingsb/article/details/118615731</link><guid>https://blog.youkuaiyun.com/chenjingsb/article/details/118615731</guid><author>chenjingsb</author><pubDate>Fri, 09 Jul 2021 22:21:52 +0800</pubDate><description><![CDATA[背景
2017年毕业于一所不知名双非本科大学，毕业时就有着一颗想进大厂的心，但又想留在成都，不愿意去北上广，现在其实相当后悔。当年在成都的大厂少之又少，再加上校招时非常努力地玩耍，导致投的几个大厂面试都全部挂掉，也错失了进大厂最好的机会，所以我奉劝大三的同学如果对自己的职业有追求，有进大厂的梦想，在大三的时候一定要好好准备，在校招的时候拿offer。
最后我在成都一家本地科技公司做了Android开发，中间也跳过一次槽，也是做Android。但这几年时间里总感觉公司能给的成长太慢，虽然自己也在学习，还是免不]]></description><category></category></item><item><title><![CDATA[一个国企十年全栈工程师之“死“]]></title><link>https://blog.youkuaiyun.com/chenjingsb/article/details/118499760</link><guid>https://blog.youkuaiyun.com/chenjingsb/article/details/118499760</guid><author>chenjingsb</author><pubDate>Mon, 05 Jul 2021 21:59:37 +0800</pubDate><description><![CDATA[事件
去年年底，公司来了一位工作十余年的工程师，据说是个全栈，应聘的岗位是Android高工。比较巧的是，这位工程师是我上一家公司隔壁部门的同事。
我们均来自大厂，但是是国企，二线城市。所以尽管他在前公司工作十余年了，在国企这个环境下，其工资在行业内也不会太高。以我对两家公司工资水准的了解，他跳过来的工资应该是原来的两倍多。
所以对于这位老哥来说，这次跳槽得到的工资应该还算满意的。但是，好景不长。。今年过年回来不久之后就被裁了。。所以他从我的前同事变成了现同事，又变成了前前同事。。。
起初我还以为是他嫌工资]]></description><category></category></item><item><title><![CDATA[一个40岁的程序员还想跳槽死磕是种什么体验？想转行请趁早！]]></title><link>https://blog.youkuaiyun.com/chenjingsb/article/details/118418977</link><guid>https://blog.youkuaiyun.com/chenjingsb/article/details/118418977</guid><author>chenjingsb</author><pubDate>Fri, 02 Jul 2021 16:39:30 +0800</pubDate><description><![CDATA[时光给我留下了什么？
不知不觉间虚度了40年光阴，看着父母逐渐的苍老和孩子逐渐长大，看着自己发福的身材，已知道自己在这个陌生的城市里已经扎根，估计是很难再去哪里了。
回首故里似乎和童年一样渐渐变得模糊，每次回家总感觉自己已经很难融入其中，看着别人聊天聊地，自己也很难插上嘴，曾经自己所熟知的地方，慢慢变得陌生起来，每一次回去都说熟悉的面孔逐渐减少，而陌生的面孔不断增多。
我知道，我老了，随我老去的还有那些儿时的伙伴、旧房子、小河、山坡和我的青春，以及儿时的梦。
曾经刚开始接触编程的时候，对这种神奇的技艺非常憧]]></description><category></category></item><item><title><![CDATA[Jetpack Compose实践：完成自定义手势处理]]></title><link>https://blog.youkuaiyun.com/chenjingsb/article/details/118398562</link><guid>https://blog.youkuaiyun.com/chenjingsb/article/details/118398562</guid><author>chenjingsb</author><pubDate>Thu, 01 Jul 2021 21:18:07 +0800</pubDate><description><![CDATA[概述
Jetpack Compose 为我们提供了许多手势处理 Modifier，对于常见业务需求来说已足够我们使用了，然而如果说我们对手势有定制需求，就需要具备自定义手势处理的能力了。通过使用官方所提供的基础 API 来完成各类手势交互需求，触摸反馈基础 API 类似传统 View 系统的 onTouchEvent()。 当然 Compose 中也支持类似传统 ViewGroup 通过 onInterceptTouchEvent()定制手势事件分发流程。通过对自定义手势处理的学习将帮助大家掌握处理绝大多数]]></description><category></category></item><item><title><![CDATA[关于Java泛型机制无非就这7个问题]]></title><link>https://blog.youkuaiyun.com/chenjingsb/article/details/118368904</link><guid>https://blog.youkuaiyun.com/chenjingsb/article/details/118368904</guid><author>chenjingsb</author><pubDate>Wed, 30 Jun 2021 20:30:36 +0800</pubDate><description><![CDATA[泛型机制是我们开发中的常用技巧，也是面试常见问题
不过泛型机制这个知识点也比较繁杂又不成体系，学了容易忘
本文从几个问题出发梳理Java泛型机制知识点，如果对你有用，欢迎点赞~
本文主要包括以下内容
1.我们为什么需要泛型?
2.什么是泛型擦除及泛型擦除带来的一些问题,如retrofit怎么获得擦除后的类型,Gson怎么获得擦除后的类型?
3.什么是PECS原则
本文目录如下

1.我们为什么需要泛型?
我们为什么需要泛型，即泛型有什么用?
首先举两个例子
1.1 求和函数
实际开发中，经常有数值类型求和的]]></description><category></category></item><item><title><![CDATA[Android开发初期之后怎么提升？怎么才能叫精通？方向在哪？]]></title><link>https://blog.youkuaiyun.com/chenjingsb/article/details/118339551</link><guid>https://blog.youkuaiyun.com/chenjingsb/article/details/118339551</guid><author>chenjingsb</author><pubDate>Tue, 29 Jun 2021 17:09:40 +0800</pubDate><description><![CDATA[1.  Android开发初期之后怎么提升？
首先第一个问题：Android开发初期之后怎么提升？说到这个问题，就不得不先搞清楚 “为什么很多人会一直停留在两三年的水平上，而后一直在重复以往的经验，原地踏步？”
我认为最主要的一个原因就是这部分开发者缺乏主观能动性，或者说缺乏能支撑你坚持学习的兴趣。如果你对Android开发没有太大的兴趣，那么还是尽早换方向吧。有了兴趣，然后就是要有一个比较正确的钻研路线，不要这也搞那也抓，最后什么都知道点，但也就只是知道点儿。
一个很好的例子就是我们平时在开发过程中都会用]]></description><category></category></item><item><title><![CDATA[Android高级UI:RecyclerView优雅地解决瀑布流的两个神坑]]></title><link>https://blog.youkuaiyun.com/chenjingsb/article/details/118311880</link><guid>https://blog.youkuaiyun.com/chenjingsb/article/details/118311880</guid><author>chenjingsb</author><pubDate>Mon, 28 Jun 2021 20:42:28 +0800</pubDate><description><![CDATA[1.前言
在RecyclerView上使用StaggeredGridLayoutManager布局管理器很容易实现瀑布流布局。瀑布流布局比线性布局和网格布局美观，手机屏幕空间利用率高，但是实现方式也比它们复杂，而且经常会有一些莫名奇怪的bug会在瀑布流布局上出现，线性和网格则不会。
本来将重点介绍瀑布流两个臭名昭著的bug。通过深入探索瀑布流布局的实现原理，分析它们的形成原因，并给出优雅解决它们的解决方案。
1.1 bug1：顶部空白、重排序

bug复现操作：

将瀑布流滑动到底部；
点击刷新按钮，调用A]]></description><category></category></item><item><title><![CDATA[Android组件化与插件化开发项目实战整理分享（含支付宝、360、美团、滴滴等大厂项目实战）]]></title><link>https://blog.youkuaiyun.com/chenjingsb/article/details/118192655</link><guid>https://blog.youkuaiyun.com/chenjingsb/article/details/118192655</guid><author>chenjingsb</author><pubDate>Thu, 24 Jun 2021 17:28:06 +0800</pubDate><description><![CDATA[小公司不说，但是在大公司的项目发展到一定程度，就必须进行模块的拆分。模块化是一种指导理念，其核心思想就是分而治之、降低耦合。而在 Android 开发的实践，目前有两种途径来实现，一个是组件化，一个是插件化。
关于组件化和插件化的入门学习这里就不做分享了，本次分享主要是给已经对组件化或插件化开发有了一定的基础掌握，需要进一步学习的同学，提供一些大厂项目实战案例。废话不多说，为了方便大家学习记录，已经分别整理成了220页（组件化实战）和167页（插件化实战）的PDF，项目demo地址也都记录在里面。
由于篇幅]]></description><category></category></item><item><title><![CDATA[从害怕到真香警告——Android代码混淆大法真是好！]]></title><link>https://blog.youkuaiyun.com/chenjingsb/article/details/118156640</link><guid>https://blog.youkuaiyun.com/chenjingsb/article/details/118156640</guid><author>chenjingsb</author><pubDate>Wed, 23 Jun 2021 16:45:12 +0800</pubDate><description><![CDATA[文章较长，有“阅读障碍”的同学可以直接滑至文末有视频学习通道（狗头保命）！

一、引言
Android代码混淆，老生常谈了，不过大部分Android仔对它的认识可能还处于这样的阶段(比如：写这篇文章前的我)：

1、日常开发Debug包时不用混淆，正式发布Release包前开启代码混淆；
2、混淆好处① → 类、方法、变量名变成短且无意义的名字，提高反编译后代码的阅读成本；
3、混淆好处② → 删除无用的类、方法与属性，缩减了APK包的大小；
4、混淆好处③ → 对字节码进行优化，移除无用指令，应用运行更.]]></description><category></category></item><item><title><![CDATA[年过40的前华为工程师，来面P7技术专家，你猜最后通过了吗？]]></title><link>https://blog.youkuaiyun.com/chenjingsb/article/details/118091394</link><guid>https://blog.youkuaiyun.com/chenjingsb/article/details/118091394</guid><author>chenjingsb</author><pubDate>Mon, 21 Jun 2021 17:42:02 +0800</pubDate><description><![CDATA[候选人背景

性别：男
年龄：41
学校：西安某985本科+硕士
工作经历：华为、数字浙江、其他公司等。
应聘岗位：Android开发-P7技术专家
面试过程

首先候选人自我介绍。
候选人05年硕士毕业后进入华为，早年的华为还是以运营商相关的电信软硬件为主要业务。候选人简单说了从事的移动端短信彩信业务开发，java为主要语言。在华为大概6年时间。
之后离职去了一家小公司。在这家小公司从事高级开发和一定的架构设计工作。
最近的2份工作，介绍了在数字浙江里面的工作，算是架构师或者开发经理角色。
最近一份工作由]]></description><category></category></item><item><title><![CDATA[听说5年以上的Android开发月薪都有2W，4年12k的我还要等待奇迹吗？]]></title><link>https://blog.youkuaiyun.com/chenjingsb/article/details/118033212</link><guid>https://blog.youkuaiyun.com/chenjingsb/article/details/118033212</guid><author>chenjingsb</author><pubDate>Fri, 18 Jun 2021 20:21:53 +0800</pubDate><description><![CDATA[个人简介
学渣一枚，2017年6月某空港学校毕业。从事Android开发已经4年，开发过机顶盒应用，做过手机app，21年年后入职新单位从事车载应用开发。
工作经历
因为新公司入职不就主要说说前面的工作情况。
煎熬&amp;没有太多的成长（第一家公司）
处于这个状态并不是因为公司不好，相反是自己表现的不好。在公司时，公司有完善的培训机制（还可以选择其它方向的一些培训，由其它部门的资深开发人员进行授课），入职时有对应的导师进行培训。更加幸福的是每个月老板都会买书给我们看。
既然在这么好的一个环境为什么我还是这]]></description><category></category></item><item><title><![CDATA[Android性能优化高阶：卡顿、ANR、死锁，线上如何监控？]]></title><link>https://blog.youkuaiyun.com/chenjingsb/article/details/117963456</link><guid>https://blog.youkuaiyun.com/chenjingsb/article/details/117963456</guid><author>chenjingsb</author><pubDate>Wed, 16 Jun 2021 17:42:47 +0800</pubDate><description><![CDATA[一、前言
最近参加了几轮面试，发现很多5-7年工作经验的候选人在性能优化这一块，基本上只能说出传统的分析方式，例如ANR分析，是通过查看/data/anr/ 下的log，分析主线程堆栈、cpu、锁信息等，
然而，这种方法有一定的局限性，并不是每次都奏效，很多时候是没有堆栈信息给你分析的，例如有些高版本设备需要root权限才能访问/data/anr/ 目录，或者是线上用户的反馈，只有一张ANR的截图加上一句话描述。
假如你的App没有实现ANR监控上报，那么你大概率会把这个问题当成“未复现”处理掉，而没有真正]]></description><category></category></item><item><title><![CDATA[万字长文教你Android组件化从入门到精通，学不会你来砍我！]]></title><link>https://blog.youkuaiyun.com/chenjingsb/article/details/117924562</link><guid>https://blog.youkuaiyun.com/chenjingsb/article/details/117924562</guid><author>chenjingsb</author><pubDate>Tue, 15 Jun 2021 14:50:27 +0800</pubDate><description><![CDATA[从2017年只有几个大厂在做组件化，到今天已经繁花似锦。
越来越多的团队，越来越多的项目都做了组件化。
大叔相信即使你没有做过组件化项目，但是，对组件化也早就听烂了。
但是，组件化开发多少有些技术门槛。
有很多大神写过相关文章，通俗易懂的不多。深入浅出的更不多。
不才，愿意冒着不要脸的风险一试，通俗易懂、深深浅浅的来聊聊组件化开发，如果对你有一点点启发，请记得回来给大叔点个赞。

一、单工程开发 -&gt; 多module分层开发

这种分层架构，有什么用呢？
分解成多module的项目结构，就是组件化开.]]></description><category></category></item><item><title><![CDATA[深入源码Android ListView工作原理完全解析（下）]]></title><link>https://blog.youkuaiyun.com/chenjingsb/article/details/117823824</link><guid>https://blog.youkuaiyun.com/chenjingsb/article/details/117823824</guid><author>chenjingsb</author><pubDate>Fri, 11 Jun 2021 17:33:15 +0800</pubDate><description><![CDATA[滑动加载更多数据
经历了两次 Layout 过程，虽说我们已经可以在 ListView 中看到内容了，然而关于 ListView 最神奇的部分我们却还没有接触到，因为目前 ListView 中只是加载并显示了第一屏的数据而已。比如说我们的 Adapter 当中有 1000 条数据，但是第一屏只显示了 10 条，ListView 中也只有 10 个子 View 而已，那么剩下的 990 是怎样工作并显示到界面上的呢？这就要看一下 ListView 滑动部分的源码了，因为我们是通过手指滑动来显示更多数据的。
由]]></description><category></category></item><item><title><![CDATA[大厂的人自带光环，但光环是从哪儿来的呢？]]></title><link>https://blog.youkuaiyun.com/chenjingsb/article/details/117785320</link><guid>https://blog.youkuaiyun.com/chenjingsb/article/details/117785320</guid><author>chenjingsb</author><pubDate>Thu, 10 Jun 2021 16:45:22 +0800</pubDate><description><![CDATA[人人都想进大厂，一方面，大厂能够让人有机会得到更大的锻炼，另一方面，大厂出来，未来一片光明。
理想与现实
大厂的人自带光环，当他们走出大厂的时候，光环还在吗？我先给你讲个小故事：

怀揣着改变世界梦想，老张结束了自己十几年的外企工作，和几个老同事一起开启了自己的创业之旅。最初的几个人都是干劲十足，项目也取得了不错的进展，于是，老张决定扩大团队团队规模。
不过，令老张意外的是，好不容易有候选人通过了他们按照外企招聘标准进行的面试，人家却拒绝了他。要知道，当年在外企的时候，能通过面试的候选人可都是乐呵呵地就来了]]></description><category></category></item><item><title><![CDATA[万人收藏！关于Android Handler源码解析，看这一篇就够了！]]></title><link>https://blog.youkuaiyun.com/chenjingsb/article/details/117674923</link><guid>https://blog.youkuaiyun.com/chenjingsb/article/details/117674923</guid><author>chenjingsb</author><pubDate>Mon, 07 Jun 2021 21:22:55 +0800</pubDate><description><![CDATA[Handler作用

任务调度：即通过 post() 和 send() 等方法来指定某个任务在某个时间执行
线程切换：执行耗时的操作，比如网络请求，IO操作等，需要在子线程中运行，不然会阻塞主线程。 而执行完网络请求等耗时操作后通常需要更新UI，如果在子线程中更新UI，那么程序会崩溃。因为Android的UI是线程不安全的。 在Android中使用Rxjava，还要配合RxAndroid来使用，RxAndroid 内部就使用 Handler 来实现线程切换。

常见错误
常见的子线程中更新UI,复现代码。
]]></description><category></category></item><item><title><![CDATA[Android裸辞实录：投出的简历，像极高中偷偷塞在同桌桌子里的那份情书！]]></title><link>https://blog.youkuaiyun.com/chenjingsb/article/details/117535610</link><guid>https://blog.youkuaiyun.com/chenjingsb/article/details/117535610</guid><author>chenjingsb</author><pubDate>Thu, 03 Jun 2021 21:46:45 +0800</pubDate><description><![CDATA[曾子曰：“吾日三省吾身：为人谋而不忠乎？与朋友交而不信乎？传不习乎？” —《论语十则》

前言
故事要从2021年3月25日那天说起，本人正式提出离职，并于第二天递交了离职申请，这也意味着我即将放弃一份安逸的工作，进入到求职的大潮当中，没错，正如所有人想的那样“裸辞”。其实我也是被迫离职，公司没有新项目，2020年的年终奖没有发，工资拖到月末发，每个部门都有裁员，种种迹象表明公司马上就快完蛋了，与其等着被裁，还不如主动离职。HR的答复是半个月以后才能离职，也就是说可以开始找工作了。那么这段故事开始了……
.]]></description><category></category></item><item><title><![CDATA[深入源码Android ListView工作原理完全解析（上）]]></title><link>https://blog.youkuaiyun.com/chenjingsb/article/details/117483174</link><guid>https://blog.youkuaiyun.com/chenjingsb/article/details/117483174</guid><author>chenjingsb</author><pubDate>Wed, 02 Jun 2021 20:53:32 +0800</pubDate><description><![CDATA[在 Android 所有常用的原生控件当中，用法最复杂的应该就是 ListView 了，它专门用于处理那种内容元素很多，手机屏幕无法展示出所有内容的情况。ListView 可以使用列表的形式来展示内容，超出屏幕部分的内容只需要通过手指滑动就可以移动到屏幕内了。
另外 ListView 还有一个非常神奇的功能，我相信大家应该都体验过，即使在 ListView 中加载非常非常多的数据，比如达到成百上千条甚至更多，ListView 都不会发生 OOM 或者崩溃，而且随着我们手指滑动来浏览更多数据时，程序所占用的内]]></description><category></category></item><item><title><![CDATA[现实点！做程序员没有好学历真的会低人一等！]]></title><link>https://blog.youkuaiyun.com/chenjingsb/article/details/117431462</link><guid>https://blog.youkuaiyun.com/chenjingsb/article/details/117431462</guid><author>chenjingsb</author><pubDate>Mon, 31 May 2021 22:26:49 +0800</pubDate><description><![CDATA[晚上吃饭的时候，发现园区的栀子花已经开了，又是一年毕业季悄然来临，不禁感叹时间过的真快呀。算算日子，从毕业到现在已经5个年头了，这一路走来都是在从事Android开发相关工作，着实不易，想和大家分享我的故事。分享这一路走来的点点滴滴与心路历程。或许在如此寒冷的冬季，大家能相偎取暖。
对于所有从事IT事业的工作者来说，选择这个行业的原因有千千万。而我，很幸运的就与计算机早早的结缘了。

一
一切都应该从小学说起，小学二年纪的时候，学校开设了微机课（也就是计算机课程），而最吸引我的就是电脑中的超级玛丽。作为..]]></description><category></category></item></channel></rss>