Android开发10年,小公司报了薪资没下文,要个20K就这么难么

0-2 年开发经验

Android 是一个非常复杂的框架,它拥有陡峭的学习曲线。有一些复杂的概念的确是 Native 的 Android 开发者需要学习的,但另一部分却是由于 Android 的原因,造成了它的复杂度。

当你向专业进军时,除了你的软件开发工作以外,你应该学习 Android 框架,忘记语言、架构、流行的开源库,专注于核心概念,并进行深入的研究。

具体来说,我建议你更多的了解以下内容:

  • Android 内存管理和进程调度

当面临「Low Memory Killer」的时候,如何保证你的应用程序稳定可靠的运行?这是一件很复杂的事情。长话短说,当用户切换到其它应用时,你应用的生命周期就会被打乱,但是当用户过一会儿重新切换回来的时候,用户却希望你的应用程序像任何事情都没有发生过一样,正常运行。

在本文中,我并不会介绍内存管理的任何细节,如果你想了解它们,可以看看这篇文章。

  • 生命周期

如果有人要我说出 Android 应用程序中的复杂度和 Bug 的主要来源,我会立马大声告诉他是“生命周期”(然后捂住脸哭)。

Application、Activity、Fragment、Service、BroadcastReceiver、ContentProvider 和一些 Android 框架的核心组件,都拥有复杂的生命周期,并且它们的生命周期还不一样。如果你觉得这还不够多,Google 也一直在推出新的库和框架,这些库都有自己的复杂性和独立的生命周期。Loader, ViewModel 和 LiveData 都是为了解决这些问题而推出的。

有件有意思的事情,我从来没有看到过任何有关“生命周期“的定义。我们一直在使用它,但是它到底是什么意思呢?据我所知,在某种程度上,你只是把一些节点串联在一起,构建出一个生命周期的图。我对生命周期有过很多的思考,在这里,我将尝试对它进行定义。

组件的生命周期是一个抽象的状态机。这里的抽象的意思是指,这些状态机的状态是预先定义好的,它们之间的转换条件也是定义好的。但是这些定义是不完整的。你需要去实现缺少的部分,使他们可以正常工作。这些缺少的部分是这些组件方法的子集,我们称其为“生命周期回调”,除了状态机本身之外,这些生命周期回调中,也有很多隐式的限制和约束。这些限制有些写在了文档中,而有些却并没有记录。

生命周期到底有多复杂?我们先来看一下这张图 (它有点不完整,还有点过时)。这张图,看起来有点可怕。不过,你也不要慌,大多数 Andorid 开发者都搞不明白这个图。事实上,即使 Google 的 Android 开发者也搞不明白生命周期的问题。Google 在发布 Lifecycle 组件的时候,里面引入了一些有关 Fragment 的 bug, 直到后续的新版本发布了才得以修复。

虽然现在你不需要完全掌握 Android 的生命周期,但是你必须要知道一些重要的细节。否则,你的代码会变得混乱不堪,并且容易出现一系列难以解决的问题。我写了两篇文章 Activity 生命周期与 Fragment 生命周期 ,描述了生命周期的细节。当你不知道如何使用 onStart 和 onResume 时,你可以去看看这两篇文章。

当你掌握了生命周期的基础知识,你可以去看看 Gabor Varadi 写的 Android 开发的十宗罪 ,这篇文章,列举出了大多数开发者都会犯的错误。这些错误大多数都与生命周期有关。

顺便说一下,在面试中,生命周期相关的问题也会被经常问到。这也是你必须好好学习生命周期的原因。

  • Context

在每一个 Android 应用程序中,都有一个或多个

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值