2019年Android开发人员路线图

大家好! 我们有个好消息。 本月,基本的Android Developer课程以及Android Developer专业化课程(包括一整套课程)将从Otus开始。 在这方面,我们与您分享了一篇有用的文章,其翻译仅限于这些发布。



2019年是成为Android开发人员的时候了。 考虑到Android开发领域中的创新和进步,我们可以说现在是该运动的一部分了。 Kotlin,Android Things和其他技术的最新发展使Android成为初学者的优先事项,从而有可能接收相关信息并朝特定方向前进。


在考虑了2017年我本人的发展方向后,我决定写这本指南。 希望它能帮助您成为想要成为的Android开发人员。
让我们从基础开始。


开始为Android开发


  1. Head First Java上了解Java的基础知识;
  2. 安装Android Studio ;
  3. 在Android Studio中安装Kotlin(如果您今年不打算学习Kotlin,则可以跳过此步骤);
  4. 查看Android用户界面 ,了解有关XML和View组件的更多信息。

当您执行此操作时,您不仅将拥有一个良好的开发环境来为Android创建应用程序,而且您自己将熟悉用于理解大多数教程中的开发人员所使用的通用术语的基础知识。
现在,您可以创建简单的应用程序并在其中实现新功能。 随意从一个空的工作空间开始。 借助想象力和技巧,您可以轻松地自己完成任务。


当您有足够的想法时,2019年的下一个目标是创建一款游戏,该游戏将使您成为开发数十亿应用程序的开发人员。 现在让我们进入第二级!


我们正在以Android开发人员的身份进行开发


以下列表必须逐步完成。 它将成为您的阶梯,在此之上您可以学习新知识,认识自己并向前迈进。


  • 了解活动生命周期以促进正在运行的应用程序;
  • 使用带有片段的动态,灵活的用户界面设计;
  • 了解如何调试Android应用程序。 您可以为此使用Android Studio调试器;
  • 处理Android活动以创建屏幕,用户可以使用该屏幕浏览您的应用程序;
  • 了解Android中的上下文;
  • 学习REST和HTTP,因为大多数专业开发人员都精通REST和HTTP;
  • 学习使用多线程:
    • 了解如何引导主流程;
    • 认识到多线程的重要性;
    • 探索提供的类,以帮助您学习如何在最短的时间内使用多线程;
    • 了解Android如何在系统级别处理线程,以及它如何影响您对应用程序体系结构及其各个方面的选择;
    • 了解系统内存和多线程代码的细微差别;
    • 了解如何将多线程解决方案应用于繁琐而复杂的任务。
  • 成为处理配置更改的专家:
    • 在保存对象期间进行配置更改;
    • 自我处理的变化。
  • 了解数据库和SQL:
    • 云数据库
    • 离线和本地数据库;
    • 脱机体系结构和基本脱机实践。
  • 了解内容提供商:
    • 了解如何与其他应用程序共享数据;
    • 了解如何从其他应用程序访问数据;
    • 创建一个内容提供程序,以帮助其他应用程序安全地访问您的应用程序并修改其中的数据;
    • 与您的日历提供商和联系提供商一起玩。
  • 了解最佳的第三方Android库。 [最有用和最广泛使用的]


    • 好的http
    • GSON
    • 翻新
    • 滑翔
    • 牛油刀
    • 速溶药
    • 番石榴


所有这些步骤将帮助您建立对Android生态系统的扎实专业知识,并为您准备处理至少10-15种不同类型的Android应用程序业务案例。


探索Android性能模式


如果您真的想获得非常强大且令人难忘的Android使用体验,那么性能模板将为您提供很好的帮助。 当您完成以下操作列表时,您不仅会学习如何使用它们,还会熟悉您可能会错过的操作。 性能模板是Android开发人员手中不可思议的工具。 因此,关于Android Performance Patterns,您需要了解以下内容:


  • 异步任务对于由于长调用或流调用而运行的进程毫无用处。 了解如何使用Handlerthread来不同地处理这些过程;
  • 学习处理内存泄漏;
  • 了解如何将IntentService与多线程结合使用以提高效率;
  • 检查Android服务性能模式,以在服务运行后立即将其终止;
  • 熟悉特定的Android hashmap容器,以在创建应用程序时平衡性能和内存;
  • 了解如何使用内存监视工具来观察分配如何影响应用程序的性能;
  • 通过缓存优化您的网络应用程序;
  • 优化应用程序的网络请求频率;
  • 了解如何处理泄漏视图;
  • 了解垃圾收集器的工作方式;
  • 了解更新应用程序的视觉属性如何影响性能;
  • 深入了解垂直同步;
  • 了解Android和GPU中的界面如何相互关联,以找出需要处理的困难,以确保应用程序的平稳运行;
  • 了解如何创建能够产生60 fps且不会丢失帧的应用程序,并了解还有多少其他应用程序与您的系统争夺系统资源并制定处理它们的策略;
  • 了解如何跟踪GPU性能并改善应用程序的呈现;
  • 学习可以帮助您减少电量消耗的策略;
  • 与应用程序位于PlayStore最佳区域中的其他开发人员竞争,并尝试缩短启动时间。 让我们看看你能走多远。
  • 减少应用程序的大小。

让我们升到第三级!


使用位图工具进行内存优化


了解如何使用Glide在Android应用程序中处理位图对象。 在需要提取图像,对其进行解码以及显示位图对象的应用程序中处理大量内容时,您会遇到问题。 如果您没有学习正确的方法,那么您的应用程序将不会成功,因为用户可能会认为它的质量不高。


请注意,现在您需要能够处理来自相机的图像的多达48 MB的位图对象,今天该图像可以由用户的相机发布。 他们可以轻松吃掉所有可用的内存。


Android体系结构组件


作为一名Android开发人员,我学到的最重要的事情之一就是能够在架构及其组件中实施创新实践。 一旦我超越了MVP,MVVM,MVx等,我就意识到围绕这些架构组件有巨大的创新空间。


例如,早在2017年,默认情况下BLE(蓝牙低功耗)设置与适当级别不匹配。 对我来说,了解通过创建中间服务库可以改进此体系结构组件是一个真正的发现。


因此,为了很好地理解该主题,我建议您选择应用程序的各个体系结构组件,并学习如何对其进行优化。 这是我想到的:


  • 资料绑定
  • 生命周期
  • 实时数据
  • 导览
  • 分页
  • 房间
  • 视图模型
  • 工作经理

成为测试专家


您不想成为那些在发生错误时说“在我的机器上可以正常工作”的开发人员之一,对吗? 因此,根据对应用程序体系结构及其优化的了解,创建单元测试(JUnit4),学习如何使用Espresso,并专注于代码覆盖率报告,这些报告将使领先的开发人员和VPE满意。 考虑一下这些报告如何对其他开发人员,测试人员,管理人员或其他有关方面有用,并帮助他们处理关键的应用程序性能问题并确定优先级。


记住要尽可能地自动化和重用测试。 这种方法将为您打开领导职位的道路。


使用RxJava进行反应式编程


毋庸置疑,这很可能在您的简历和专业档案中是最重要的。 在实践中,您可以在许多地方学习如何使用RxJava。 我将推荐以下资源:



它们将成为精通RxJava及其方面的一个良好起点。 如果您想了解有关RxJava的更多信息,请务必将它们检出并学习:


  1. RxJava中Observables的整个深度;
  2. 在RxJava中实现缓存。

了解有关Dagger的全部信息


以下步骤将帮助您成为Dagger的专业人士:


  1. 浏览文档并进入依赖注入过程的底部;
  2. 列出限制条件;
  3. 创建一个项目并在其中使用Dagger 2。

成为安全专家


专业的Android开发人员和信息安全专家? 哇! 这很少可以合并成一个人!


您可以在2019年熟悉以下几项成为其中之一:


  • 了解如何将应用程序的数据和代码与其他应用程序隔离;
  • 学习密码功能并实现它们;
  • 学习减少与内存管理错误相关的风险;
  • 了解如何最佳利用用户权限来管理应用程序数据;
  • 安全地在以下位置存储和加密数据:本地存储,即时存储或云端存储;
  • 成为内容提供商专业人员,以确保安全访问;
  • 确保隐藏数据(意思是混淆);
  • 了解如何实现自己的安全解决方案,这些解决方案不属于Android主堆栈;
  • 审核第三方库,以按漏洞级别划分它们,并为您自己创建一份研究文档,该文档将来会有所帮助;
  • 努力使BLE更安全。
    我将在此结束。 我希望本文能帮助您成为专业的Android开发人员,如果您立即在2019年开始这样做!

仅此而已。 等待您的评论!

Source: https://habr.com/ru/post/zh-CN463019/


All Articles