自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(122)
  • 收藏
  • 关注

原创 收藏了!89%的程序员都不知道的《Android开发流程手册》,全面到哭

关于 Coder 项目技术如何精进的话题,一直是备受关注。因为程序员这个职业发展很快,即使是相同起点的人,经过几年的工作或学习,会迅速拉开极大的差距,所以我们只要保持学习,提升自己,才能够扛得住不断上赶的后浪,也不至于被“拍死”在沙滩上。今天我所要分享的是89%的Android开发都不知道《Android开发流程手册》,只要你深耕吃透,你就比别人前进一大步,目前这份开发手册已经在Github上有3.1KStar了。可见这份手册强大的完整性。废话不多说,先上图!!!一、UI组.

2020-10-29 20:37:23 1716 10

原创 十月面经:真的太可惜了! 拿了小米的offer,但字节却惨挂在三面

我是10月份参加字节跳动和小米面试的,虽然我只拿下了小米的offer,但是我自己也满足了,想把经验分享出来,进而帮助更多跟我一样想进大厂的同行朋友们,希望大家可以拿到理想offer。自我介绍我是14年从南京工业大学毕业,直到现在,我已经在Android开发的这条路走了6年。在这6年的时间,我见证了移动互联网的“盛衰交替”,身边的同事都是转行换业,所见的市场行情也是一片萧瑟。如今,虽然Android已风光不再,但是“它”还是那个Android,还是那个我赖以生存、夜以继日陪伴着我的朋友。所.

2020-11-24 19:06:10 16

原创 Android程序员面试最新实况!含泪亲诉一波三折的阿里巴巴之旅...

前几天和公众号里面的一位热心网友在进行技术交流,结果聊天就聊到了他最近的面试,他说他最近在面试阿里,光技术面就面了6轮,简历被反复打捞两次,真的恐怖。不过我这位朋友技术实力还是不错的,能让面试官这么锲而不舍的打捞简历,我觉得也没谁了?事实证明,他的确挺强的,在悲喜交集的6次技术面结束之后,也终于等到了通往胜利的最后一步—HR面。我想说他基本是稳了...经过我的耐(死)心(死)教(哀)导(求),他也愿意把面经和面试前复习的学习资料奉献出来,实在可喜可贺。大家就把这篇文章当成十一月份的阿里面

2020-11-24 18:41:40 206 1

原创 手撸一个插件化 Activity 框架

前言插件化技术从 2015 年就开始百花齐放,如: 奇虎 360 的 replugin,滴滴的 VirtualAPK,到现在的 VirtualApp,插件化经历了市场严峻的考验,也算逐步成熟,今天就带大家手把手实现一个插件化Activity框架,希望对你有所帮助~插件化概念插件化是一种动态加载四大组件的技术。最早是为了解决 65535 限制的问题,后来 Google 出来了 multidex 来专门解决现在市面使用插件化一定程度上可以减少安装包大小,实现项目组件化,将项目拆分方便隔离,降低组件

2020-11-24 14:36:26 18

原创 惊喜!阿里巴巴资深Android技术专家花费60天,整理出Flutter技术解析与实战文档,全网首发

前言:近年来,随着移动智能设备的快速普及,移动多端统一开发框架已成为一个热点议题。Google Flutter通过新的渲染引擎、新的编程语言、新的编程框架,提供了一个更决绝的跨端方案,使其在众多移动多端统一开发技术中脱颖而出。作者序:作者从2017年起预研并接触Flutter 技术,经过多次的探讨验证后正式大规模地在线上使用,在App性能、稳定性、开发效率上获益良多。此外,我们积极协同Google Flutter 团队去反馈和共同解决中国社区所遇到的各种挑战。通过这个过程,形成了大量的实践知

2020-11-20 22:04:03 42 1

原创 5G到来未来五年,做纯应用的Android开发者如何学习通过音视频破局?附《音视频七大模块学习宝典》

“一名应届毕业生,该如何快速地成长起来?”“只懂应用层,目前越来越多的企业要求音视频技术,我该怎么办?”“到底该不该学习音视频,怎么抉择?"“想从事音视频开发,该怎么入门?如何进阶 ?”如果你有这样的问题,从侧面反映了你是一个积极向上,想不断努力来提升自己的人。先从一个简单的问题聊起,“到底 Android 应用层开发还是做 Android音视频开发更有前途?”从薪资和市场来分析音视频比普通开发的薪资高出不少,音视频工程开发的薪资比Android应用层开发高出40%。.

2020-11-20 21:38:03 657 2

原创 又一Offer收割机!阿里首推Android技术成长笔记,业内评级“钻石级”

前言一个月前呢,想准备面试,就在网上随便找找面试题什么的,发现都是一些不给详细回答的或者回答不够深的(也许是我没找到????),反正稍微有点苦恼,因为我毕竟是个懒人,就想看看面试题,然后自己思考下,顺便看看一些参考回答,看看自己回答的全不全面等等,不知道有多少小伙伴也是像我这样的。懒人福音:为何说懒人福音,近日,阿里又迎来一里程碑,首推Android架构技术成长笔记,理论与实战兼备,被业内评级“钻石级”,笔记不但覆盖了Android开发在整个互联网公司的经典面试真题,还从基础理论到实战应用将Andr

2020-11-20 21:31:16 29

原创 太厉害了!阿里P8大牛居然将Android 360°全方面性能调优,整理成了实战解析文档

众所周知,移动开发已经来到了后半场,为了能够在众多开发者中脱颖而出,我们需要对某一个领域有深入的研究与心得,对于Android开发者来说,目前,有几个好的细分领域值得我们去建立自己的技术壁垒,如下所示:1、性能优化专家:具备深度性能优化与体系化APM建设的能力。 2、架构师:具有丰富的应用架构设计经验与心得,对Android Framework层与热门三方库的实现原理与架构设计了如指掌。 3、音视频/图像处理专家:毫无疑问,掌握NDK,深入音视频与图像处理领域能让我们在未来几年大放异彩。 4、大前

2020-11-19 20:47:37 171 2

原创 88.36%的Android开发者差的一篇技术总结随笔

Android 系统启动过程1. init进程启动过程开机键引导芯片从ROM加载BootLoader到RAM。 引导BootLoader拉起Android OS。 Linux内核启动,执行init.cpp的main函数,创建init进程。 init进程中创建和挂载启动所需的文件目录,初始化属性服务、启动属性服务、解析init.rc配置文件并启动Zygote进程。2. Zygote进程启动过程 Zygote进程 Android系统中DVM(Dalvik虚拟机)和ART、应用程序进程以

2020-11-17 21:59:43 57

原创 Android开发:AST字节码插桩技术深度解析

我们通过 AndroidStudio 生成Bean对象一般是通过注解来实现自动生成getter/setter方法、equals()和hashCode()方法,其中类(或接口)要符合驼式命名法,首字母大写。方法要符合驼式命名法,首字母小写,类或实例变量要符合驼式命名法,首字母小写。常量要求全部由大写字母或下划线构成,且第一个字符不能是下划线,否则编译器会报警告那么: 编译器是怎么解析到这些不规范的命名方式呢?这里不得不提到一个很重要的字节码插桩技术AST,什么是AST?PS:关于我本人是一个拥

2020-11-16 14:56:27 87

原创 面试官:这次,别让Android事件分发机制成为你进阿里的绊脚石

Android的事件分发机制是一个面试官非常喜欢考察的一个重要知识点,是一个核心,也是一个难点,是Android开发人员必须要了解的概念,学会他,我们就可以顺利解决滑动冲突等问题,比如在View嵌套的时候,外部滑动与内部滑动的方向一致,该如何处理,这就需要了解事件分发机制才能解决,事件分发通常与View、ViewGroup和Activity相关联,形成了一个复杂的机制。PS:关于我本人是一个拥有6年开发经验的帅气Android攻城狮,记得看完点赞,养成习惯,微信搜一搜「 程序猿养成中心 」关注这

2020-11-15 21:10:48 47

原创 我在外包公司做了两年Android,今天终于辞职,聊一聊我遇到过的“奇葩坑”

“被围困的城堡,城外的人想冲进去,城里的人想逃出来” ——《围城》我,28岁,在外包公司干了两年的Android开发,于2020年9月办理完成所有离场手续,办完那一天,我像是终于解脱了,终于放下,也终于释怀。说真的,这种感觉很奇妙,在奔三的路上,这两年的经历至今还历历在目,在此给犹豫要不要去以及不了解外包公司的朋友聊一聊我的工作经历,以及我为什么最终选择离开。毕竟人活三万多天,没那么多时间去浪费,这两年,算是给我人生上了一课。文字可能会比较多,但大部分的情况都和全国99%的软件行业外包情况完.

2020-11-13 19:37:49 222

原创 撸了一个“可爱”的环形 Android 图表

在Android中,说到图表,我们往往都会选择找库,比如MPAndroidChart。然而更多的时候,我们往往只需要某一类型的图表,为了这个类型的图表而不得不把整个库(包含所有图表逻辑)导入进来,还是感觉有点重的。俗话说得好,自己动手,丰衣足食。于是就有了今天的甜甜圈。(为何叫甜甜圈。。。不觉得环形饼图好像个甜甜圈吗哈哈)PS:关于我本人是一个拥有6年开发经验的帅气Android攻城狮,记得看完点赞,养成习惯,微信搜一搜「 程序猿养成中心 」关注这个喜欢写干货的程序员。另外耗

2020-11-12 19:41:55 75

原创 写给Android开发者的肺腑之言:互联网寒冬,请不要迷茫在路上!

一、覆巢之下安有完卵互联网的风从1994年吹到了现在,差不多已经了26个年头。相比曾经,如今的互联网已经逐渐萧瑟、一日不如一日;早在2015年,网易和腾讯相继被曝出“大规模裁员”的新闻。虽然他们各自都在第一时间否认了这一消息的真实性,但正所谓“无风不起浪”,从2015开始,互联网行业大小公司裁员比例逐年增大,像“互联网寒冬”、“资本寒冬”这样的词,便开始频繁出现在我们的视线当中。虽然很多人并不清楚,“寒冬”因何而来,又为何“挥之不去”,但他们却仍然能够清晰地感受到互联网业动荡,所带来的内心恐慌。

2020-11-11 19:39:13 351 1

原创 Android 面试 指南:互联网大厂需要怎样的工程师?or 我们需要成为怎样的工程师?

本文来自于腾讯内圈Android大佬分享的面经总结刚加入 IEG 团队做QQ音乐时,那会儿我才毕业大半年,就在思考这个问题,只不过当时更专注于Android开发领域:安卓开发的核心竞争力是什么?我有一个专门的笔记来记录对这个问题的思考,但是由于版本迭代,最初的答案已经难以追溯,大抵就是在强调安卓平台的一些技术要点吧。不过经过这几年工作的实践、观察和思考,我越发觉得应该把目光往更基础、更通用也更经久不衰的方向转移,具体的 APP 开发的技巧和范式,其实并不多,基本都可以抽象为软件开发的技巧与范.

2020-11-10 17:23:46 126

原创 学习了!99%的Android开发都不知道的《RxJava精编笔记》,理论与实战齐飞

不可否认,至2016年起,RxJava+Retrofit这一对组合在Android 开发圈内备受关注,各大Android论坛上有大量以RxJava+Retrofit+xxx 为标题的文章,此类文章也备受大家的关注。但是RxJava好像对初学者并不友好,平心而论,RxJava和Retrofit 相较于以往的各种框架(如 AsyncHttpClient,Volley等 )学习和使用起来会有一些难度,且RxJava 强大而又庞大的操作符的学习难度让我们这些初学者望风止步。那么,RxJava到底该怎么学、从哪儿

2020-11-09 22:03:56 205 1

原创 来自面试官的灵魂拷问:Fragment是如何进行事务管理的?

背景本文基于androidx版本的Fragment如果要是有面试官问你,Fragment是如何进行事务管理的?相信很多人可能都回答不出来,很多人可能觉得问题这个还不如问如何进行Fragment预/懒加载,生命周期,返回栈,状态保存等来的有水平。其实我觉得这个问题其实问的挺有深度,如果你想要了解Fragment的事务管理,需要对Fragment的源码进行充分了解,前面的那些问题都是小儿科了。面试的时候问题有两种类型,一种是问典型,比如面试官问你HashMap,里面涉及到的方方面面非常多,可以进

2020-11-09 16:10:10 78

原创 深入探索 Android Gradle 插件的缓存配置

什么是配置缓存?配置缓存是一个提升 IDE 和命令行构建速度的基础构建块。这是 Gradle 6.6 版本提供的一个高度实验性功能,它可以使构建系统记录一次任务的图谱信息,并在接下来的构建中进行复用,从而避免再一次配置整个工程。这一功能也是配置阶段改进的延续,这些改进中引入了 惰性配置 (lazy configuration),以避免在构建的配置阶段进行不必要的工作。这些改进对于快速迭代开发的重要性不言自明,而后者也是 Android Studio 团队所持续关注的一个用例。性能改进这一功能的主

2020-11-09 15:30:29 68

原创 一个Android菜鸟“面霸”的传奇经历,如何少走弯路多加薪?这几点很重要

前 言作为程序员,尤其是菜鸟程序员,如何成为一个“面霸”征战沙场,少走弯路,升职加薪,当上CTO,迎娶白富美?今天是我入职一个某上市公司的第二天。由于公司今天才把自己用的电脑买回来,只好今天在做着每一个技术人员入职第一天常做的事:安装相关开发软件,配置开发环境。在安装软件的过程中,由于下载最新版的android studio比较缓慢,只好在下载过程中随便翻翻。然后,看到一个开发群里,一位朋友还在聊面试的事,他在那里说,今天又没有面试通知。听了之后,感慨万千,曾几何时这样的感受我也有过很多次。

2020-11-08 21:28:47 2476 12

原创 Android高级开发应该彻底理解的应用无响应机制

引言不论从事安卓应用开发,还是安卓系统研发,应该都遇到应用无响应(ANR,Application Not Responding)问题,当应用程序一段时间无法及时响应,则会弹出ANR对话框,让用户选择继续等待,还是强制关闭。绝大多数人对ANR的了解仅停留在主线程耗时或CPU繁忙会导致ANR,面试过无数的候选人,几乎没有人能真正从系统级去梳理清晰ANR的来龙去脉,比如有哪些路径会引发ANR? 有没有可能主线程不耗时也出现ANR?如何更好的调试ANR?如果没有深入研究过Android Framewor

2020-11-07 20:28:34 86

原创 2020,Android开发者打破寒冬的利器是什么?

互联网寒冬的话题沸沸扬扬几个月了。今年又突发疫情,被裁掉的Android程序员更迷茫了,没被裁的无论是离职还是面试跳槽也变得更谨慎了。 2018年6月以来,全国上百家P2P平台接连爆雷,裁员潮在互金领域抢先发生。 2018年8月,美图公司Q2季度财报收入同比下降5.9%,净亏损1.27亿,较上年同比收窄3.4%,随即网 曝美图公司裁员消息。 2018年10月,阿里京东全面“缩招” 2018年12月,美团3分钟裁员。 一、2020年,身为Android开发的你应该怎么办

2020-11-06 19:53:48 515 9

原创 Android NDK 开发实战 - 微信公众号二维码检测

关于二维码识别,我们一般都是用的 Zxing 或者 Zbar ,但它们的识别率其实不是很高,有些情况下是失灵的,比如下面这两张图:使用开源库 Zxing 扫描以上两张二维码,有一张死活不识别。使用微信是可以的,大家可以用支付宝试试(不行),那碰到这种情况到底该怎么办呢?哈哈,这次终于有用武之地了,我们琢磨着来优化一把。我们在微信公众号都用过这么一个功能,长按一张图片,如果该图片包含有二维码,会弹出识别图中二维码,如果该图片不含有二维码,则不会弹出识别二维码这个选项。说到这里我们大..

2020-11-06 15:36:55 1610 3

原创 Android开发的职业破局,如何才能跨过“中年危机”这段万丈深渊?

前言35岁,“中年危机”,不少程序员听到几个词,腿就不自觉的发抖,总感觉自己到了35岁也就预测着自己的开发生涯该结束了!其实真的不必如此,真的不是所有的程序员都会有中年危机,只是针对那种不思进取,不愿接收新鲜事物,向年龄妥协低头的。在遇到中年危机之前,你要想想危机的来源是什么?危机的本源为什么之前的危机我们都能一一度过?到了35+怎么就人人自危起来了?举个栗子:高考之前我们在干嘛?疯狂学习,日以继夜。之所以大部分人都能度过是因为:在正确的时间做了正确的事情,为危机的到来做好了足够的累积。

2020-11-05 15:51:11 69

原创 Android进阶之路:这是让人提神醒脑 的 View Model 原理精讲!

概述Android ViewModel是Android Jetpack组件库中的一个组件,在Android MVVM模式中被广泛使用。ViewModel的主要特性是以注重生命周期的方式存储和管理数据。这种特性体现在ViewModel与Android组件(Activity、Fragment和Service)的生命周期相绑定,在组件的生命周期中ViewModel的数据会一直保存在内存中,即便是在系统配置变更时也会存在。ViewModel的优势与UI层低耦合在MVVM模式中,数据和业务逻辑可以

2020-11-05 15:02:00 38

原创 只因拎不清 插件化 和 热修复 的实现原理,我痛失了阿里的offer

前言听坚守在本部的同事说,杭州阿里这边,这段时间面了不下 30 个 因公司优化、而被迫离职的 Android 中高级开发。但是由于Android岗位僧多肉少的缘故,同事便从进阶基础开始问,就比如插件化、组件化、热修复的实现原理。没想到这 30 个人里面,仅有 1 个勉强过关 ????考虑到接下来,还会有不少人会因为 掌握不透 插件化、组件化、热修复的实现原理而面试遭拒,我便把插件化、组件化、热修复写一个专题,所以 掌握不透的朋友,请 务必 务必 务必 收藏好这一篇进阶笔记!看完本文可以达到什

2020-11-04 15:27:31 1352 10

原创 面试官:我们谈谈Android中的进程ProcessRecord吧

Android系统中用于描述进程的数据结构是ProcessRecord对象,AMS便是管理进程的核心模块。四大组件 (Activity,Service, BroadcastReceiver, ContentProvider)定义在AndroidManifest.xml文件, 每一项都可以用属性android:process指定所运行的进程。同一个app可以运行在通过一个进程,也可以运行在多个进程, 甚至多个app可以共享同一个进程。进程管理进程关系图进程与AMS的关联这里只介绍AMS的.

2020-11-03 20:20:03 65

原创 致敬Android程序员:“拿着12K的工资,做着20K的事,还要操着30K的心!”

今天,跟大家谈一个很现实的话题!你的工资有多少?在评论区打出来,统一都说月薪哈!能说年薪的,怕自己的小心脏扛不住。Android程序员:给多少工资,干多少事我们不是经常会看到一个关于西游记的“悖论”吗:为什么孙悟空初期大闹天宫的时候那么厉害?因为他自己当老板,打一群天庭的打工仔。为什么取经路上又变得不行了?作为一个打工仔,去跟一群出来自己创业的妖怪打架很多程序员想跟老板说,但又不太敢说,实际却在做的一件事。事实却是:“拿着12K的工资,做着20K的事,还要操着

2020-11-03 17:11:58 217 1

原创 Android开发:三十而立之际,切莫丢失了那一份“努力劲”

看到这个题目,大概你会认为这篇无聊的文字是在聊程序员 30岁 之际对职业、人生的感悟吧,名校学历,大厂背景,带过百余人团队,实现了人生价值和财务自由后的侃侃而谈?但我想对你说:不是的,这是一篇“告诫”文,告诫谁呢?告诫的是现在的自己,也是正像我曾经一样年少不知愁滋味的你们!别让懒惰钻了空子,后悔余生!开端:通往编程世界的启程车虽然不知道各位是如何踏上程序员之路的。但是我选择程序员这个职业是因为一部韩剧《幽灵》。没记错的话那是一个闷热的下午,我姐双手做紧握状,满脸激动地向我推荐了这部剧

2020-11-03 16:22:53 160 4

原创 在 Kotlin 中使用 Dagger 会遇到的陷阱和优化方法

Dagger在 Android 开发中相当流行,它是一个提供完全静态和在编译时生成代码的依赖注入框架,它解决了很多基于反射而实现的方案中所遇到的开发和性能问题。为了让您更好地了解 Dagger 的工作原理,我们于 2019 年发布了一个新的教程。本文将重点介绍如何在 Kotlin 中使用 Dagger,包括优化构建时间的最佳实践以及一些可能会遇到的问题。Dagger 是通过 Java 的注解模型实现的,而 Kotlin 中注解的编写方式同 Java 的并不是一一对应的,这篇文章会重点介绍...

2020-11-02 20:43:35 59 1

原创 阿里资深面试官认证:三年了,这是我看过的质量最高的Android技术生涯总结!

从2020.09.22入职阿里后,工作一直比较繁忙,一个多月的时间几乎没写什么面试总结,但是由于近来上一篇文章点赞收藏数一直增加,想必求职季,大家对此类文章和大厂面试总结需求更甚。首先我是一名已经工作6年的Android开发,因缘巧合进了阿里。结合自己6年的开发生涯和面试阿里过程中的领悟,想与想要进入阿里和正处于职业发展迷茫期的朋友分享一波,希望那些想要面试阿里和正处于职业发展迷茫期的朋友能打破瓶颈。因为你把之前的文章所说的技术摸透(后面面试题部分),面试P5、P6或许可以,但再向上,光凭这些是

2020-11-02 16:44:44 43

原创 自学Android三年学会一个好习惯,如今跳槽面试,已手握2份互联网大厂offer

一.前言最近事情比较多,工作比较忙,同时在自学Jet pack和Kotlin,精力比较分散。差点这份面经就跳票了,感谢同行的鼓励让我重新提笔。数数今年正好是我入行的第三个年头了,侥幸当年在外包公司得到实习的机会,从此开始了IT生涯。回头看看这三年一步一步走来,真是吃了不少苦头。不知道你们有没有跟我同样的经历,刚毕业的时候什么都不懂,渴望一个机会,去面试当面被面试官批评太差劲。刚入行的时候,没有大牛带,总盼望着谁拉扯自己一把,什么都得自己摸索,一步一步自己踩坑。才工作一两年的时候,就感觉遭遇了瓶颈

2020-10-30 17:47:32 205 2

原创 Android面试重点考察点:常见内存泄露及优化方案

如果一个无用对象(不需要再使用的对象)仍然被其他对象持有引用,造成该对象无法被系统回收,以致该对象在堆中所占用的内存单元无法被释放而造成内存空间浪费,这中情况就是内存泄露。在Android开发中,一些不好的编程习惯会导致我们的开发的app存在内存泄露的情况。下面介绍一些在Android开发面试中常见的内存泄露场景及优化方案。单例导致内存泄露单例模式在Android开发中会经常用到,但是如果使用不当就会导致内存泄露。因为单例的静态特性使得它的生命周期同应用的生命周期一样长,如果一个对象已经没有用处

2020-10-30 16:15:17 2107 2

原创 View事件传递知识体系梳理:聊一聊嵌套滑动 程序写到秃

下午好,各位coder们,今天的阳光照的人想睡觉~作为新时代的好青年,每天都在浑水中摸鱼怎么能行呢?振作起来,打工人!!!我们要想发家致富奔小康,就努力学习吧!一、引言嵌套滑动处理的难点在于:当子控件消费了事件,那么父控件就不会再有机会处理事件了。 嵌套滑动的基本原理是在子控件接收到滑动一段距离的请求时,先询问父控件是否要滑动,如果滑动了父控件就通知子控件它消耗了一部分滑动距离,子控件就只处理剩下的滑动距离,然后子控件滑动完毕后再把剩余的滑动距离传给父控件。 这样父控件和子控件就有机

2020-10-29 15:50:13 60

原创 一个方案提升Flutter内存利用率(内藏干货)

背景我们闲鱼使用的图片方案是自研的外接纹理方案:Android侧创建SurfaceTexture,通过FlutterJNI注册到Flutter engine里,最后返回texture id给Flutter应用层,应用层使用Texture Widget和textue id去显示图片纹理。 纹理数据则是在Android侧,通过OpenGL将图片纹理写入到SurfaceTexture,然后通过Flutter engine里的共享内存,将纹理数据传入到应用层,最终交给Skia渲染。这里面存在的问题:

2020-10-28 20:33:12 48

原创 Android之Handler机制(终极篇):面试常见问题汇总,解锁大牛的乐趣

前言很高兴遇见你~ 欢迎阅读我的文章。本篇主要是Handler机制常见面试题的讲解,希望大家能在面试中避免入坑。那么,我们就开始吧!主线程为什么不用初始化Looper?答:因为应用在启动的过程中就已经初始化主线程Looper了。每个java应用程序都是有一个main方法入口,Android是基于Java的程序也不例外。Android程序的入口在ActivityThread的main方法中:public static void main(String[] args) {

2020-10-28 14:31:47 66

原创 剥丝抽茧Android||Dagger,岂能错过这篇干货?

嗨,我是哈利迪~《看完不忘系列》将以从树干到细枝的思路分析一些技术框架,本文将对开源项目dagger进行介绍。本文约3800字,阅读大约10分钟。Dagger源码基于最新版本2.28.3背景依赖注入(Dependency Injection,DI)遵循控制反转(Inversion of Control,IoC)原则,简单来说就是创建对象时给对象传入依赖,通过传入不同实例来实现不同行为(控制),比如常见的构造方法和setter都叫注入。简单概括一下谷歌的造车栗子,一、不注入,由

2020-10-26 20:00:59 38 2

原创 Android开发:10000小时后,渣本出身的我从外包走进了字节跳动

一、10000小时复习关于10000小时定律,你可能在很多鸡汤中都看到过,大致的意思就是说人们眼中的天才都是付出了持续不断努力的,10000小时的练习是一个人从平凡成为领域大牛的必要条件。(我感觉到有杠精已经在摩拳擦掌了)。在我的以往认知里,对于这句话一直处于一种半信半疑的态度,直到等我感受到拥有之后的体验,我才明白这并不是一句空话。虽然并不是所有的努力都是会有结果,但是不努力是永远没有结果的。二、我的经历我的第一份Android开发的工作是在2016年7月底的时候找到的,那时候除了在学

2020-10-26 19:33:17 466 3

原创 Flutter——实现网易云音乐的滑动冲突处理效果

介绍项目进度: 我的、发现、云村和视频页都已实现,眼瞅着一期就结束了,此时产品经理走来...图示说明这是一张网易云音乐的‘发现’页(首页),可以看到其中有一些红、蓝虚线标出的矩形区域,这些区域均可以水平滑动。而将视角进一步抬高,可以看到顶层还有4个tab:可见项目主体包含我的、发现、云村和视频4个页面,由pageview组成,也支持横向滑动,而另外三个页面如发现页一样内部也含有诸多水平滑动的widget,可参见:Flutter——仿网易云音乐App那么就引申.

2020-10-25 21:00:08 80

原创 都0202年了,Android 冷启动优化除了老三样还有哪些新招?

性能优化一直都是一个 Android 开发者逃不过的话题,启动优化则更是重中之重。启动速度可以直接影响一个 App 的留存率和转化率,没有人会希望自己点击之后还要等一会才打开但是当我一番调研后发现,网上大部分启动优化相关的文章,套路都差不多,我称之为老三样。什么是老三样?1. 将启动页主题背景设置成闪屏页图片这么做的目的主要是为了消除启动时的黑白屏,给用户一种秒响应的感觉,但是并不会真正减少用户启动时间,仅属于视觉优化。2. 主页面布局优化1)通过减少冗余或者嵌套布局来降低视

2020-10-23 15:35:53 36

原创 Android干货:自定义带动画的View

对于一个自定义View来说,onMeasure只是用来计算View尺寸,onDraw()才是真正执行View的绘制,所以一般我们都需要重写onDraw()函数来绘制我们期望的UI界面,下面我以一个具体的例子探索自定义View的onDraw()的实现过程和关键点。我们的目标是制作一个柱状图动画,View的动画启动后,会显示一排柱状图增长的画面,这种动画多用于财务类或者统计类的APP中,效果如图所示(截屏的格式转换过程导致有些变形,还好不影响演示,图中设置了反复播放,真机上只会播放一次):1....

2020-10-22 15:47:38 35

空空如也

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除