2019年是做安卓开发人员的绝佳时机。随着安卓最近的创新与进步,它是现今最热门的技术之一。Kotlin、Android Things等的最新进展,让新手开发人员无法获取正确的信息并朝着一个方向学习发展。
希望本指南能帮助你成为2019年想要成为的安卓开发人员
让我们先从基础开始。
从安卓开发开始 Level 1
1.从Head First Java学习基础Java
2.安装Android Studio
3.在Android Studio设置kotlin - 如果今年不想学的话可以跳过
4.阅读Android User interface - 学习关于XML和查看组件的更多信息
你这样做仅仅是准备好一个开发环境去构建安卓App,但是你还得去准备好基础和基本知识来理解安卓开发和大多数教程使用的通用术语
你现在也可以在安卓系统上构建基本的App,并且可以开发一些功能。随意使用空白画布,用你的想象力填充它。
当你玩完创意后,2019年你的下一个目标是加快游戏进度,推动自己成为一名为数十亿人构建应用的开发者。我们现在去第二层!
提升自己 - 作为一个安卓开发者 Level 2
这个列表将作为你学习、实践和前进的阶梯。
- 了解Activity的生命周期,以推动一个没有bug的App
- 使用Fragment利用动态的、灵活的和动态的UI设计
- 学习如何调试你的安卓App-使用Android Studio Debugger
- 掌握Activity来去构建你希望用户浏览的页面
- 了解安卓的Context
- 学习REST和HTTP - 大多数专业开发都非常擅长理解REST和HTTP的所有特点
-
学习如何利用多线程
1.学习如何将耗时操作移出主线程
2.线程的重要性
3.学习提供的帮助你在最短时间内最大限度地利用线程代码的类
4.了解安卓如何在系统级使用线程,这将如何影响App中的设计选择和决策
5.了解系统内存和线程代码的细微差别
6.了解如何将线程解决方案应用于极其庞大和复杂的任务 - 成为处理配置更改的专家
1.在配置更改期间保留对象
2.自己处理配置更改 - 学习数据库和SQL
1.云数据库
2.离线和本地数据库
3.离线架构和离线初步实践 - 内容提供 Content providers
1.学习如何分享你的数据给其他App
2.学习如何访问其他App的知识
3.创建一个Content providers,帮助其他应用程序安全地访问和修改你App的数据
4.试着玩一下日历App和联系人App的Content providers - 学习一些顶级的第三方库 - 最有用也最常用的
1.OkHttp
2.GSON
3.Retrofit
4.Glide
5.Butter Knife
6.Crashlytics
7.Guava
所有这些都有助于你建立对安卓生态系统的专业理解,并让你准备好使用安卓处理至少10-15种不同类型的业务用例。
了解安卓执行模式
当你真的想用安卓打造一个极其强大且难忘的体验时,从安卓执行模式开始是一个完美的地方。如果你浏览下面列表,你不仅会学到如何实现它们,还会发现一些你可能会错过的执行模式。他们是专业开发手中不可思议的工具。因此,在安卓执行模式方面,你需要学习和注意以下几点:
- 异步任务对于运行长回调或线程回调的进程没有帮助。学习如何使用Handlerthread来处理这些过程
- 了解如何处理内存抖动
- 了解如何将Intent Services与线程配合使用以提高效率
- 了解安卓服务的执行模式,以便在Service工作结束后立即终止服务
- 了解安卓特定的Hashmap容器,构建性能和内存平衡的App
- 了解如何使用内存监控工具来观察分配内存是如何影响App的性能的
- 使用缓存优化应用程序的网络性能
- 优化应用程序网络请求的频率
- 了解处理内存泄露的视图
- 了解如何处理垃圾回收
- 了解如何更新App的视觉属性去影响性能
- 深入了解垂直同步
- 了解如何将安卓用户界面与GPU进行映射,并发现你应该解决的复杂程度,以确保你的App平稳运行
- 了解如何构建以60fps渲染而不丢帧的应用程序
- 了解有多少其他App与你的App竞争系统资源,并设计应对策略
- 了解如何跟GPU性能并在渲染App时提高性能
- 了解如何减少电池消耗的策略
- 将你的应用与你的竞争对手和Playstore突破性应用进行对比,并尝试在应用发布时间内进行改进。看看你能走多远
- 缩小app的大小
让我们把它带到第三层 Leve3
深入研究Bitmap的内存优化
学习和练习如何使用Glide在安卓App中处理位图。你面临的问题是,当你在你的App上提供大量内容时,需要获取、解码和显示位图。如果你做得不对,你最终会破坏你的应用,确保很多用户会觉得你的应用不好。
请注意,现在你必须处理多达48MBs的位图,这些位图仅来自用户的相机生成的图像。这很容易耗尽所有可用的内存。
安卓架构组件
作为开发,我学到的最重要的事情之一是在架构及其组件之上进行实践和创新。当我开始超越MVP、MVVM、MVx等等的时候,我意识到围绕这些架构组件还有大量的创新空间。
例如,早在2017年,默认的BLE(蓝牙低能耗)配置和设置就达不到标准。理解一个架构组件可以通过构建一个中间服务库在这里得到改进对我来说是一个巨大的好处。
因此,为了正确了解这一点,我建议你选择App的各个架构组件,并学习它们的最佳实践。我想到的其中一些是:
- Data binding
- Lifecycles
- LiveData
- Navigation
- Paging
- Room
- ViewModel
- WorkManager
做一名测试专家
你不想成为那些说“它在我的系统上运行良好”的开发者之一,对吗?因此,在架构设计和优化知识的基础上构建一切,创建单元测试(JUnit4),学习如何使用Espresso,并专注于构建令工程经理和虚拟专用网络满意的代码覆盖率报告。关注这些报告如何帮助工程师、测试人员、经理和利益相关者解决关键App的性能问题,并确定它们的优先级。
并尽可能多地从原始设置中实现自动化和重用。这为你成为一名工程经理铺平了道路。
反应式编程 - RxJava
这是不言而喻的,也可能是你简历和实际面试中最受关注的信息之一。有很多地方你可以实际学习如何实现RxJava和它的最佳实践。但是,我最喜欢的是:
- Grokking RxJava Series
- Exploring RxJava 2 by Jake Wharton
- Managing State with RxJava by Jake Wharton
它们是你理解RxJava并掌握其某些方面的一个很好的起点。如果你希望围绕RxJava探索更多主题,请考虑浏览以下内容:
- Depth of Observables in RxJava
- Implementing Caching using RxJava
了解Dagger的一切
成为Dagger专家的步骤是:
- 浏览文档并理解整个依赖注入过程
- 建立一个限制列表
- 建立一个项目并在其中实现Dagger2
安全专业
安卓专家和安全专家?哇!这是我们在开发中很少看到的东西!
因此,在2019年,你可以做一些事情来成为那个人:
- 了解如何将App的数据和代码与其他应用程序隔离开来
- 学习密码功能并实现它们
- 了解如何消除与内存管理错误相关的风险
- 了解如何最好地使用用户授予的权限来控制应用程序数据
- 安全数据存储和加密:本地存储、动态存储或云存储
- 精通Content Provider的安全访问
- 确保你混淆了你的数据
- 了解如何实现不属于通用安卓系统的本地安全解决方案
- 审核受欢迎的第三方库,以了解并按漏洞级别分解它们,并围绕它构建一个研究文档
- 努力让BLE在你的应用程序中更加安全
就这样了,希望这个列表能帮助你在2019年成为一名专业的安卓开发者!
PS:本文
整理
自
Android developer Roadmap for 2019
若有发现问题请致邮 caoyanglee92@gmail.com