
安卓开发
文章平均质量分 94
Python_林一
华南理工大学研究生毕业,十余年互联网从业经验;曾就职于三星/小米,担任项目经理,技术经理等;
展开
-
从猿辅导一面挂,怒刷1000道Android面试题,成功入职字节跳动(120W/年总包)!
缘起从18年毕业至今,就职过两家公司,大大小小项目做了几个,非常感谢我的两位老大,在我的android成长路上给予我很多指导,亦师亦友的关系。从年前至今参加面试了很多公司,从猿辅导一面挂,我深刻意识到Android开发内卷太严重了,面试都是需要背八股文,狂刷leecode。最后顺利拿到了字节跳动offer。总结下经验,也是对过去的一个回顾和总结吧。猿辅导(一面挂)自我介绍怎么学Android的聊了聊项目项目中涉及到了跨进程通信,为什么选广播而不是别的跨进程通信方式不局限于原创 2021-03-27 10:12:55 · 2069 阅读 · 7 评论 -
Android模拟器检测体系梳理
模拟器作为一种虚拟机,配合改机工具,能够以较低成本实现设备多开,因此而备受黑灰产的青睐。如何准确识别模拟器成为App开发中的一个重要模块,目前也有专门的公司提供相应的SDK供开发者识别模拟器。通过前段时间对模拟器检测技术的调研,希望能总结出一套特征挖掘的体系化方案。模拟器概述>>>>定义安卓模拟器是一种可以运行在电脑上的虚拟设备,通过它可以实现应用的跨平台操作,让移动端APP无需任何改动即可在PC上执行。>>>>特性优势随着技术的不断发展,目前原创 2021-03-14 21:34:19 · 2352 阅读 · 1 评论 -
LeakCanary核心源码解析
今天来写一波内存泄漏工具LeakCanary的分析,也整理一下之前的笔记,废话不多说,源码整起来。我用的1.5.1版本。LeakCanary核心源码解析看源码还是那句话,先找入口,顺着入口看主流程。LeakCanary监听Activity的onDestory方法,然后介入,所以从这里开始发现入口在RefWatcher.watch方法里,这个RefWatcher是核心类,跟进去watch方法。可以看出这里开始搞事情了,先解释一下这些变量的意义这样就可以解释,上图watch方法里面的操作了原创 2021-03-09 20:15:30 · 265 阅读 · 0 评论 -
Retrofit2.0原理解析之最简流程
retrofit 已经流行很久了,它是Square开源的一款优秀的网络框架,这个框架对okhttp进行了封装,让我们使用okhttp做网路请求更加简单。但是光学会使用只是让我们多了一个技能,学习其源码才能让我们更好的成长。本篇文章是在分析retrofit的源码流程,有大量的代码,读者最好把源码下载下来导入IDE,然后跟着一起看,效果会更好源码下载地址retrofit入门定义网络请求的API接口:interface GithubApiService { @GET("users.原创 2021-03-06 11:58:39 · 323 阅读 · 0 评论 -
一文说透 Android 应用架构 MVC、MVP、MVVM 和 组件化
MVC、MVP 和 MVVM 是常见的三种架构设计模式,当前 MVP 和 MVVM 的使用相对比较广泛,当然 MVC 也并没有过时之说。而所谓的组件化就是指将应用根据业务需求划分成各个模块来进行开发,每个模块又可以编译成独立的APP进行开发。理论上讲,组件化和前面三种架构设计不是一个层次的。它们之间的关系是,组件化的各个组件可以使用前面三种架构设计。我们只有了解了这些架构设计的特点之后,才能在进行开发的时候选择适合自己项目的架构模式,这也是本文的目的。1、MVCMVC (Model-View-Contr原创 2021-02-24 11:07:27 · 494 阅读 · 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 · 776 阅读 · 1 评论 -
Android 相关源码分析
Glide 4.11.0Glide.with(activity).load(url).into(imageView);with图片加载库必须尊重 Activity/Fragment/Context 的生命周期,得在它们活跃的时候加载图片,在它们不活跃的时候暂停加载,在它们销毁的时候清理所占用的内存。也就是说 Glide 必须是 生命周期敏感 的,而实现生命周期敏感通常有两种方式,一种是向 Activity 或 Fragment 中插入一个不可见的 Fragment,然后在这个不可见的 Fragmen原创 2021-01-19 09:27:19 · 437 阅读 · 0 评论 -
阿里技术分享:APP启动提速方法总结
**简介:**APP 启动速度的重要性不言而喻。高德地图是一个有着上亿用户的超级 APP,本文从唤端技术、H5 启动页、下载速度、APP加载、线程调度和任务编排等方面,详解相关技术原理和实现方案,分享高德在启动优化上用到的手段和思考,希望对同学们有所启发。一 通过 Universal Links 和 App Links 优化唤端启动体验App 都会存在拉新和导流的诉求,如何提高这些场景下的用户体验呢?这里会用到唤端技术。包含选择什么样的换端协议,我们先看看唤端路径,如下:唤端的协议分为自定义协.原创 2021-01-11 16:21:48 · 915 阅读 · 0 评论 -
深入浅出:MVVM+ViewBinding+Kotlin的入门学习方法
本篇博客不作原理性分析,仅对还没有接触过MVVM,viewbinding,甚至说是kotlin的同学一个入门练习项目,通过此篇博客,可以对MVVM架构,以及最近比较火的ViewBinding有一个初步认识。先说Kotlin,Kotlin1.0还没正式发布的时候就已经开始研究了,但到现在也没有真正的去用kotlin写过项目,原因很简单,公司平时做项目基本都用的java,而且当时很多第三方库也都是用的java,并且kotlin的出世总有一种感觉是谷歌为了摆脱甲骨文而不得已才出的语言,所以当时大家也都没把它当回原创 2020-12-08 13:52:47 · 924 阅读 · 0 评论 -
2020年终总结:这是一份面向Android工程师的面试大纲
##缘起有很多Android 开发人员准备面试,却不知道如何准备?于是纷纷上网发帖求助。甚至很多人网上随便找找面试题什么的,其结果就是[字节惨挂在三面],挥泪整理面筋。等诸多文章火了,究其原因就是这些文章戳中了大部分面试者的痛点,面试被刷了。想到还有很多android程序员没有找到Android面试大纲。不知道如何准备Android面试。于是,我就想干脆我自己做这个事吧,就算没人看,也当我自己的年终总结了。如何准备android面试纯技术方面的准备,如果是的话,我就提供一些拙见,大部分算是原创 2020-12-02 11:59:08 · 579 阅读 · 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 · 728 阅读 · 1 评论 -
中年妇女的程序员职场路怎么走?
近日逛社区看到了这样一则帖子:87年,女。在一线城市互联网做技术近8年,做到小管理,后来因为加班太多想喘口气,喘大了,两个月前跳槽到有编制的中职院校。现在又想跳出来,学校里事情也多,做班主任,上课,带比赛。每天早上6点起床,到家也晚上6点一.跳出来1.工资比之前少十几万,学校够温饱。目前在供房阶段,现在公积金也少交了,贷款450w,家庭总收入够房贷和正常运转,年结余少。2.33岁给自己选了一个一眼看到头的稳定且穷的生活3.现在并不是多劳多得的,能力也不是最重要的4.每天上下班单程1.5原创 2020-11-18 17:14:19 · 695 阅读 · 1 评论 -
40岁安卓开发失业半年找工作被拒含泪离开,HR:技术栈落后,哭也没用
突然失业是一件令人挺难过的事情。现在找工作不容易,特别是那些到了一定年龄的人,毕竟这类型的人群有了家庭有了孩子,责任也变得很大。但是没有人不会变老,这也是不可逆的。社会非常残酷,要是你没点价值,那么被社会淘汰也是正常的事情!近日,我们在职场论坛上发现了一个看起来很心酸的帖子,一HR发帖表示:40岁安卓开发失业半年找工作被拒含泪离开,HR:技术太旧,哭也没用。含泪离开?是不是遇到社么难处?到底是什么情况?原来,这位HR说最近面试遇到了一个年龄比较大的程序员。已经半年没有工作了。家里有小孩有老人,但是经原创 2020-11-12 08:42:03 · 1645 阅读 · 1 评论 -
阿里技术团队整理:闲鱼APP长列表流畅度翻了倍(良心教程)
简介: 从“麻绳版顺滑”到“丝般顺滑”作者:闲鱼技术-云从1 整体思路闲鱼在业务的快速迭代过程中,app 的长列表滑动流畅度逐步恶化,对用户浏览内容体验产生伤害。闲鱼作为国内 flutter 应用的先驱,APP 以 flutter 和原生 Native 的混合工程存在。这里分别就 Android 原生、flutter 页面和大家分享我们的优化思路。本文分为三个部分:流畅度指标和检测工具构建原生 Android 长列表优化flutter 长列表优化流畅度优化整体思路图如下:原创 2020-11-07 15:03:38 · 1121 阅读 · 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 · 483 阅读 · 0 评论 -
做了三年Android,公司发不出工资了,怎么办?
坐标重庆,做 Android 也三年多了。毕业后就来的这家公司,因为工资发不出了(最近开始把三个月前的工资分期发出来了),所以开始找后路。但是发现简历真的没有什么写的地方,之前群里一个老哥天天说要招人,我好不容易怼了一个简历过去,对方表示这样不行的。然后我要了一份所谓的参考资料过来。一看对方写着给 aosp 贡献过代码……带领小组啥的……作为一个搬砖工,哪里来的这些经验。所以问一下各位大佬,你们是怎么写自己的简历的。接下来针对上述网友发问如何填写简历和准备面试,我来谈下个人的看法。关于简.原创 2020-10-22 09:09:14 · 432 阅读 · 0 评论 -
30 岁了,我浪费了自己职业生涯的黄金 5 年,我能否还能回到程序员岗位上。如果再培训,学什么好?
前言非计算机大学毕业, 毕业之后 觉得程序员工资高,就去北京一家培训机构 培训了Android 然后学习一切都非常顺利 ,一学完就找到了工作, 做了 5 年, 当时在一个不大不小的公司帮人做android开发 ,工资 12K 一个月 ,2015 年 那个时候 有个朋友 鼓吹一下,辞职 拿着 30 万 跟 2 个朋友 出来开火锅店,前 2 年赚了点钱,买了车,并且贷款买了房子,但是我自己投资的其他几个副业都亏了。这 2 年餐饮不好做啊,成本上涨太快,竞争太厉害 我们赚不到钱了,合伙人商量 9 月份把火锅店原创 2020-10-20 13:37:59 · 317 阅读 · 0 评论 -
字节跳动Android面试在线被虐指南
字节跳动在线被虐指南在线面试,有个线上文本编辑器,类似leetcode那种,可以在线编程。然而有点紧张,很多简单的问题没答出来,还是要平时多积累,面试才不露怯啊。分享下问题给大家。面试官上来跟你唠唠嗑,然后切入正题,问你项目经历。由项目经历,开始问一条请求从用户端到服务端经历了些什么。答曰:DNS解析等。遂:DNS解析细节?问:具体是怎么映射的?答:不知。问:TCP,UDP区别?为什么是三次握手?为什么是四次挥手?三次不可以吗?问:常用线程池类型和参数,适用场景问:rxjava的flatm原创 2020-10-17 11:04:45 · 482 阅读 · 0 评论 -
字节跳动面试官:Android 中为什么需要 Handler?
要理解 Handler,就得先理解 Android 的 Message 机制.这里以用户滑动微信朋友圈为例,讲解一下 Android 的 Message 机制是怎么运行的,Message 机制中的各个核心组件都做了什么Message 产生用户滑动屏幕,产生了一系列 input 事件 (一个 Down 事件,若干个 Move 事件,一个 Up 事件),这些事件被系统包装成了一系列 Message(一个 Down Message,若干个 Move Message,一个 Up Message)Messag原创 2020-10-14 17:36:26 · 540 阅读 · 1 评论 -
非985、211毕业,我是如何加入腾讯的?(附Android通关秘籍)
前言本文是给想进入“BAT”等企业的开发朋友们提供思路的,内容全部来自于真实经历。关于我大家好,我是小白(化名),一名 Android 开发工程师。有些人在毕业的时候就能顺利进入“BAT”、“TMD”、“FLAG”,但是更多的人并没有这个机会,比如,最典型的——我。努力就能改变命运。这是真的吗?在我看来,虽然我不是特别聪明(但也不笨),但是努力确实给我带来了更多的机会。通过努力,我顺利拿到大厂offer,相信此时正在看这篇文章的你也一定可以的。所以,无论你是想跳槽去大厂的工作党,还是即将毕业找原创 2020-10-13 16:11:51 · 1706 阅读 · 0 评论 -
2020 更新 - 腾讯 Android 面试 (已拿到月薪22K offer)
前言从18年毕业至今,就职过两家公司,大大小小项目做了几个,非常感谢我的两位老大,在我的android成长路上给予我很多指导,亦师亦友的关系。从年前至今参加面试了很多公司,也收到了几家巨头的offer,还有其他公司的。总结下经验,也是对过去的一个回顾和总结吧。一、简历网上有很多对程序员简历的一些指导,这里就不重述,大家可以搜下网上其他大神的总结,结合自身情况修改下。我有几点建议:1.尽量不要花哨,程序员和设计师或者产品运营还不一样,我们的简历成功与否决定权还是在技术面试官那,而他们看重的是你的项原创 2020-08-13 09:07:05 · 599 阅读 · 0 评论 -
2020Android大厂面试经验(附大厂面试真题解析大全)
前言2020年是转折的一年,上半年疫情原因,很多学android开发的小伙伴失业了,虽找到了一份工作,但高不成低不就,下半年金九银十有想法更换一份工作,很多需要大厂面试经验和大厂面试真题的小伙伴,想提前准备刷下题。接下来分享一份我的字节跳动、阿里巴巴、百度、小米等大厂面试经验和总结。(文末附真题解析大全)阿里(被拒)字节跳动(offer)小米(offer)手百 (offer)阿里巴巴一面1:插件化。启动activity的hook方式。taskAffity。2:okhttp支持HTTP.原创 2020-08-08 09:33:59 · 472 阅读 · 0 评论