移动互联网
文章平均质量分 94
Python_林一
华南理工大学研究生毕业,十余年互联网从业经验;曾就职于三星/小米,担任项目经理,技术经理等;
展开
-
LeakCanary核心源码解析
今天来写一波内存泄漏工具LeakCanary的分析,也整理一下之前的笔记,废话不多说,源码整起来。我用的1.5.1版本。LeakCanary核心源码解析看源码还是那句话,先找入口,顺着入口看主流程。LeakCanary监听Activity的onDestory方法,然后介入,所以从这里开始发现入口在RefWatcher.watch方法里,这个RefWatcher是核心类,跟进去watch方法。可以看出这里开始搞事情了,先解释一下这些变量的意义这样就可以解释,上图watch方法里面的操作了原创 2021-03-09 20:15:30 · 236 阅读 · 0 评论 -
Retrofit2.0原理解析之最简流程
retrofit 已经流行很久了,它是Square开源的一款优秀的网络框架,这个框架对okhttp进行了封装,让我们使用okhttp做网路请求更加简单。但是光学会使用只是让我们多了一个技能,学习其源码才能让我们更好的成长。本篇文章是在分析retrofit的源码流程,有大量的代码,读者最好把源码下载下来导入IDE,然后跟着一起看,效果会更好源码下载地址retrofit入门定义网络请求的API接口:interface GithubApiService { @GET("users.原创 2021-03-06 11:58:39 · 304 阅读 · 0 评论 -
一文说透 Android 应用架构 MVC、MVP、MVVM 和 组件化
MVC、MVP 和 MVVM 是常见的三种架构设计模式,当前 MVP 和 MVVM 的使用相对比较广泛,当然 MVC 也并没有过时之说。而所谓的组件化就是指将应用根据业务需求划分成各个模块来进行开发,每个模块又可以编译成独立的APP进行开发。理论上讲,组件化和前面三种架构设计不是一个层次的。它们之间的关系是,组件化的各个组件可以使用前面三种架构设计。我们只有了解了这些架构设计的特点之后,才能在进行开发的时候选择适合自己项目的架构模式,这也是本文的目的。1、MVCMVC (Model-View-Contr原创 2021-02-24 11:07:27 · 465 阅读 · 0 评论 -
SharedPreferences替换:MMKV集成与原理
前言SharedPreferences是谷歌提供的轻量级存储方案,使用起来比较方便,可以直接进行数据存储,不必另起线程不过也带来很多问题,尤其是由SP引起的ANR问题,非常常见。正因如此,后来也出现了一些SP的替代解决方案,比如MMKV本文主要包括以下内容1.SharedPreferences存在的问题2.MMKV的基本使用与介绍3.MMKV的原理SharedPreferences存在的问题SP的效率比较低1.读写方式:直接I/O2.数据格式:xml3.写入方式:全量更新由于SP原创 2021-02-17 20:31:48 · 731 阅读 · 1 评论 -
从简历被拒,到头条Android面试。二本渣渣如何在359天成功拿下offer!
我是二本院校非科班的,从简历被拒,到拿下头条面试,我花了一年的时间。一、印象中的头条二、面试背景三、准备面试四、如何通过头条笔试?五、如何准备头条面试?六、一个关于如何进大厂的小建议一、印象中的头条1.老板张一鸣跟我是福建老乡,龙岩市在我朋友说来就是山沟沟,能走出美团王兴和头条张一鸣让我卯足了去龙岩吃特产老鼠干的欲望。2.给的钱多,笔试也贼难。参加过头条笔试的同学都知道,头条笔试可以笔试三次,就是不论你有没有参加都有三次机会。笔试就5道算法题,两个小时,去年第一次看到算法题就自闭了,第一次原创 2021-02-02 10:25:36 · 1730 阅读 · 5 评论 -
已经把回家车票已经买好了,再不找Android开发工作,就要滚回去了
最近在网上看见大家讨论的比较多的话题:“农历2020年快结束了,如果年底失业,到底是该年前找工作好还是年后找工作好?”其实我对于这个话题的观点是年后找工作比较好。为什么呢?现在这个点本身就是淡季啊,不如等到春节后来。那时候很多人拿完年终奖就不打算再上班了,因此到时招的职位很多。此外,现在疫情期间,大公司基本都允许外地人做远程面试,视频或者音频。一般前两面都可以远程解决。最后再去公司做剩下的复试就行了。当然你在年前能够定下来的话那样也好,希望大家能够正确的去看待这件事情。现在这个职场,失业跳槽离原创 2021-01-05 19:31:33 · 689 阅读 · 1 评论 -
字节跳动技术整理:抖音 Android 性能优化之Java 内存优化篇
内存作为计算机程序运行最重要的资源之一,需要运行过程中做到合理的资源分配与回收,不合理的内存占用轻则使得用户应用程序运行卡顿、ANR、黑屏,重则导致用户应用程序发生 OOM(out of memory)崩溃。抖音作为一款用户使用广泛的产品,需要在各种机器资源上保持优秀的流畅性和稳定性,内存优化是必须要重视的环节。本文从抖音 Java OOM 内存优化的治理实践出发,尝试给大家分享一下抖音团队关于 Java 内存优化中的一些思考,包括工具建设、优化方法论。抖音 Java OOM 背景在未对抖音内存进.原创 2020-12-28 16:30:42 · 776 阅读 · 0 评论 -
腾讯(3轮)面试分享,已拿offer
前言时间过得飞快,一代又一代就这么成长了起来,曾经的95后备受争议,如今的95后进入社会,扮演者各行角色,成为了行业顶梁柱,今天,要分享的是自己的成长经历。今年24岁,毕业之后进入一家小型的互联网公司工作,名字就不说了,算是熟知的,在这家公司呆了两年,直至今年才有了跳槽的想法。每个人都拥有大厂梦,我也不例外,在小公司待久了,感觉人会荒废掉,太轻松,没有压迫感。在众多大厂中,最终选择了字节跳动。“年轻、活力、富有激情”是我听到得最多对它的形容词,所以毅然决然,希望自己能够在这个舞台上展示出自己。以下分享这次原创 2020-12-07 17:51:54 · 1942 阅读 · 0 评论 -
肝疼了3万字的Android源码学习指南
深入学习Android源码,知其然而知其所以然。计划整理一系列源码分析文章。一、准备Java/C/C++基础,Java Framework和C++ Framework,一部分Lib则采用C。Linux相关知识,Android是基于Linux内核。Makefile知识,Android采用make编译,可以看到有很多Android.mk类似的文件。Source insight,源码阅读工具神器。StarUML,类图工具。ProcessOn/Visio,流程图工具。二、入门学习入门学习建议可原创 2020-11-24 17:55:16 · 648 阅读 · 1 评论 -
中年妇女的程序员职场路怎么走?
近日逛社区看到了这样一则帖子:87年,女。在一线城市互联网做技术近8年,做到小管理,后来因为加班太多想喘口气,喘大了,两个月前跳槽到有编制的中职院校。现在又想跳出来,学校里事情也多,做班主任,上课,带比赛。每天早上6点起床,到家也晚上6点一.跳出来1.工资比之前少十几万,学校够温饱。目前在供房阶段,现在公积金也少交了,贷款450w,家庭总收入够房贷和正常运转,年结余少。2.33岁给自己选了一个一眼看到头的稳定且穷的生活3.现在并不是多劳多得的,能力也不是最重要的4.每天上下班单程1.5原创 2020-11-18 17:14:19 · 665 阅读 · 1 评论 -
开源:Hardcoder——安卓APP与系统间通信解决方案
Hardcoder 的诞生随着微信越来越复杂,性能优化变得越来越难做,优化所带来的效果提升也越来越不明显。所以我们⼀直在思考,该如何突破这个优化的极限?直到有一次与厂商的交流我们了解到,部分厂商会针对微信做一些小改动,其中比较典型的就是“暴力提频”。系统在识别到微信启动,页面切换等场景时,会粗暴地提高 CPU 频率,从而提升 APP 运行的性能。但由于厂商无法准确判断微信场景,暴力提频效果并不理想;而如果过多地提高 CPU 频率,又对手机的功耗有影响。这一方案启发了我们,我们何不跳出软件的范畴,在手机原创 2020-11-17 10:00:39 · 867 阅读 · 3 评论 -
40岁安卓开发失业半年找工作被拒含泪离开,HR:技术栈落后,哭也没用
突然失业是一件令人挺难过的事情。现在找工作不容易,特别是那些到了一定年龄的人,毕竟这类型的人群有了家庭有了孩子,责任也变得很大。但是没有人不会变老,这也是不可逆的。社会非常残酷,要是你没点价值,那么被社会淘汰也是正常的事情!近日,我们在职场论坛上发现了一个看起来很心酸的帖子,一HR发帖表示:40岁安卓开发失业半年找工作被拒含泪离开,HR:技术太旧,哭也没用。含泪离开?是不是遇到社么难处?到底是什么情况?原来,这位HR说最近面试遇到了一个年龄比较大的程序员。已经半年没有工作了。家里有小孩有老人,但是经原创 2020-11-12 08:42:03 · 1582 阅读 · 1 评论 -
Android Framework源码当中哪些类有必要进行深入学习?
前段时间收到了一个网友询问我:两年 Android 应用开发,没有 Android Framework 开发经验,有没有机会找一份接触到 Android Framework 开发的工作。Android Framework源码如何升入学习研究?可能有很多网友会认为:Framework 就业方向窄,而且编译很费时。不值得深入学习研究。相信所有人开始学习android开发的时候都是从以下这张图开始的,framework位于hal、系统库之上,位于app之下。Framework同下层打交到的方式就是j原创 2020-11-10 08:18:57 · 311 阅读 · 0 评论 -
阿里技术团队整理:闲鱼APP长列表流畅度翻了倍(良心教程)
简介: 从“麻绳版顺滑”到“丝般顺滑”作者:闲鱼技术-云从1 整体思路闲鱼在业务的快速迭代过程中,app 的长列表滑动流畅度逐步恶化,对用户浏览内容体验产生伤害。闲鱼作为国内 flutter 应用的先驱,APP 以 flutter 和原生 Native 的混合工程存在。这里分别就 Android 原生、flutter 页面和大家分享我们的优化思路。本文分为三个部分:流畅度指标和检测工具构建原生 Android 长列表优化flutter 长列表优化流畅度优化整体思路图如下:原创 2020-11-07 15:03:38 · 1023 阅读 · 0 评论 -
Android高频网络面试专题必知必会
要论时下最火的网络请求框架,当属OkHttp了。自从Android4.4开始,google已经开始将源码中的HttpURLConnection替换为OkHttp,而在Android6.0之后的SDK中google更是移除了对于HttpClient的支持,而市面上流行的Retrofit同样是使用OkHttp进行再次封装而来的。由此可见OkHttp有多强大了。okhttp也是面试高频的问题之一,如果只是满足于API工程师,那么面试还是有一点难度的。Android 关于网络的面试题1、简述一下OkHtt原创 2020-11-05 10:19:17 · 458 阅读 · 0 评论 -
@所有程序员:面试时千万别忘了看这些减分项!!!
想要成为一名优秀的Android开发,你需要一份完备的 知识体系,在这里,让我们一起成长为自己所想的那样~。25%的面试官会在头5分钟内决定面试的结果60%的面试官会在头15分钟内决定面试的结果一般来说,一场单面的时间在30分钟左右,而决定你生死的重要关键部分就是:自我介绍和三大问。如果这部分回答的不好,除非后面的回答非常精彩,能够帮你搬回来,否则机会渺茫。自我介绍大家都知道,什么是三大问呢?其实就是“3why”问题为什么选择这家公司?为什么应聘这个职位?为什么要聘用你?原创 2020-10-10 10:23:25 · 580 阅读 · 0 评论 -
作为移动开发程序员应该怎样去规划自己的学习路线?
我们移动开发程序员应该首先明白一个要点,能够学习的东西可以区分为『知识』和『技能』。知识,就是你知道就知道、不知道就不知道的东西,比如『计算机系统中一个字节是包含8个bit』,你知道了之后就算掌握了。技能,是需要练习的东西,不是知道不知道的区别,只有熟练还是不熟练的区分,比如『写代码要用有意义的命名规则』,你知道了这一点,不代表你掌握了这个写代码命名的技巧,你需要去写代码练习,但是练习还不够,你需要反复练习,还需要别人给你反馈,你才能练习得更好。是的,知乎上有些内容全都是『知识』(有的还只是伪知识),原创 2020-09-28 20:58:30 · 634 阅读 · 0 评论 -
程序员职业生涯真的很短吗?
想要成为一名优秀的Android开发,你需要一份完备的 知识体系,在这里,让我们一起成长为自己所想的那样~。作者:沈世钧链接:https://www.zhihu.com/question/418706233/answer/1483545079程序员职业生涯真的很短吗?不短,我就是明证!我今年44岁,世界500强公司,编程20年,软件技术专家,一直都在编程一线,从来离开过。技术上,我深入的使用过Java、.net、Js等等。也许吧,我勉强算的上一个“全栈工程师”。我看好多回答里说,程序员之原创 2020-09-28 17:12:49 · 578 阅读 · 0 评论 -
Android开发北漂 8 年,飘飘飘 飘够了。。。。
说句心里话本打算准备到 2022 年的时候再离开北京,当然这8年,过的也是风风雨雨,恋爱了,工作了,养宠物了,宠物死了。同时也经历Android开发的由盛转衰。正如一种编程语言如果经历过盛极一时,那么必然有这样的一条曲线,像我们学的正弦曲线先急速上升,然后到达顶点,然后再下降,最后再趋近一个平稳的值。 本人也亲历着从2016年的下半年开始,移动互联网基本处于缓慢发展的阶段,很多大佬称之为互联网的下半场。直到疫情来了,最终发现自己还是无法有那股坚定的力量留在这里,并不是不想奋斗,而是亲身经历节奏越来越快原创 2020-09-24 10:10:21 · 446 阅读 · 0 评论 -
字节跳动Android一面凉凉,竟以为一面是HR面...
我以为是HR一面,结果是技术,没想到啊,没想到!1、描述Activity的生命周期。2、描述一个Activity启动另外一个Activity的生命周期3、Activity标签可以配置什么4、IntentFilter里面的标签可以干嘛5、Service怎么启动了解IntentService吗?6、几大控件有7、存储数据的方式有8、Intent可以干嘛9、Sharedpreference里面的apply和commit有什么区别10、Conte.原创 2020-09-18 11:46:50 · 926 阅读 · 0 评论 -
Android 中的“后台无效动画“行为分析
想要成为一名优秀的Android开发,你需要一份完备的 知识体系,在这里,让我们一起成长为自己所想的那样~。当一个 Android App 退到后台之后,只要他没有被杀死,那么他做什么事情大家都不要奇怪,因为这就是 Android。但是当用户知道一个你一个 App 退到后台之后还在持续做无效的动画,而这个动画完全是无意义的,而且用户还不知道他在做动画,消耗用户那可怜的电量的时候,轻则被多任务杀掉,禁止后台运行,重则直接卸载。一般的开发者很难发现这个问题,但是如果你经常使用 Systrace ,多开几十个原创 2020-09-02 21:34:27 · 455 阅读 · 0 评论 -
2020最新Android知识体系总结(全方面覆盖Android知识结构,面试&进阶)
前言想要成为一名优秀的Android开发,你需要一份完备的 知识体系,在这里,让我们一起成长为自己所想的那样~。此篇文章是初中高级工程师学习文章,知识体系较为完整。有如下特点:[1]知识结构全面[2]跟随当下技术潮流实时更新[3]可用于面试 & 学习[4]知识分为文字部分和视频部分,任性选择[5]正确的职业规划[6]方便工作过程中遗忘知识点快速查询知识体系这份知识体系大纲包括:Java部分:深入Java泛型篇泛型的作用与定义通配符与嵌套泛型上下边界原创 2020-08-25 17:53:16 · 1464 阅读 · 0 评论 -
非985、211毕业,却选择了拒接百度Android开发岗offer?
前言今年上半年其实就已经有了换工作的想法,奈何疫情原因和岗位缩减,加之信心不足,到六月底投递了百度的Android岗位,本以为像我这种非211、985没工作经验的渣渣只能被直接pass,结果却意外的收到了电话,真是受宠若惊.经过电面,技术三面,然后就是等通知到最后拿到了OFFER,如梦一般,当时还是挺激动的.面试的准备当收到HR的面试的通知还是很懵逼的,因为感觉自己突然啥都不会了,迅速镇定下来,去网上找了一下某度的面试题,但是发现都只有提问了什么并没有对所提问题的解答,那只能自力更生,像做试卷一样,一原创 2020-08-21 09:43:25 · 1953 阅读 · 0 评论 -
二本渣渣考研失败,幸得知乎内推,成功拿下Android开发offer!
前言首先介绍一下自己,计算机水本,考研与我无缘。之前在帝都某公司算法部实习,公司算大公司吧,然而个人爱好偏开发,大二的时候写个一个app,主要是用各种框架。面试经历1.偶然看到知乎的内推帖,投了个简历,下午hr姐姐call我,安排面试选在3天后,然而又要笔试阿里,所以没怎么复习。2. 8点起床,9点过比较紧张的去了创业园,感觉知乎氛围很好,在那等了一小会,有前台大叔给你倒水。一面:应该是个参加工作不久的研究僧师兄,出了一道算法题,主要考字符转int,然后分析了时间复杂度和空间复杂度,之后聊了an原创 2020-08-18 11:39:24 · 368 阅读 · 0 评论