高级 Android 工程师的进阶之路

在编程之余,有时候我就在想,什么样的程序员属于高级程序员呢?或者说,高级程序员有哪些特性呢?工做年限必定不是一个关键的指标,许多工做多年的程序员依然写不出优雅的程序。不管是在Android开发仍是其余领域,高级程序员必定是勤奋的,能够快速地掌握大量的新技术、新框架,不只懂得原理,还能把新的技术落地到公司的产品中去。这是衡量程序员工做能力的一个重要标准,那么怎样才能将技术运用自如呢?惟有实践。基于此,我想把本身在平常实践中的一些经典案例,编著成一本成体系的书,以便为想要进步的Android程序员增长更多的实战经验,这也是编写本书的核心目的所在。html

编写本书的另一个目的,是帮助程序员创建产品的思想,对于技术而言,孤立的存在是没有任何意义的,技术只有与需求相结合,才能具备自身的价值。技术人员在开发的过程当中,要时刻了解所完成的功能能够为公司带来哪些价值,是提高用户的访问兴趣,仍是提高用户的使用流畅度,抑或是其余。当以产品思惟去思考技术的时候,就会有动力、有目的地学习更多有价值的技术,而不是哗众取宠地学一些“看似有用”的新技术。程序员

除此以外,还有理解架构的本质。一些技术人员常常会问:“为何要使用架构?这只会增长额外的代码量,并且并不会对功能或性能有所提高,只须要完成必要的开发任务便可。”这种想法是很是浅显的,由于任何一个应用都不是一次成型的,须要不断地迭代,不断地扩展,同时须要不断地修改已有的业务逻辑,这就会涉及系统兼容性的问题。如何修改新的业务逻辑而不影响旧的业务逻辑?如何最大限度地复用已有的业务逻辑?架构就是解决这类问题的钥匙,一个优秀且合适的项目架构能够保证系统的稳定性,当开发新的功能或者修改旧的功能时,不至于破坏已有的业务体系。编程

本书的实例都是经典实战实例,每个例子都表明一类在开发中须要掌握的技巧。本书由浅入深地逐个讲解须要掌握的开发理论与实践,共分为七部分。网络

◎ 进阶基础:偏重于源码的解析和理解,介绍阅读源码的技巧,以Activity和View为例,管中窥豹地分析其中的基础知识。读者也可依据此类方法,分析其余系统组件的源码。架构

◎ 高阶控件:介绍若干复杂的控件布局,即AppBarLayout、CoordinatorLayout和ConstraintLayout。经过实例,让读者理解在复杂控件布局中子视图是如何组合和相互关联的。框架

◎ 项目架构:分析主流架构的设计思想,即Google推荐的MVP和MVVM,还有Facebook的Flux。理解这些架构是如何组织和管理大型项目的,以及它们的优势和缺点各有哪些。编程语言

◎ 响应式编程:响应式是一种编程思想,在处理网络请求和功能测试时,基于响应式框架的项目拥有更好的可扩展性和可维护性,响应式编程三剑客即RxJava、Dagger和Retrofit。布局

◎ 酷炫功能与精美动画:实现两个稍复杂的功能,分别是基于第三方控件和基于系统控件的扩展;并实现两个动画效果,分别用于页面展开和页面切换。对于功能和动画,不一样的需求或样式层出不穷,本部分侧重于开发思路的分享。性能

◎ Kotlin与SVG:Kotlin是用于替代Java的高阶编程语言,SVG是用于替代PNG格式的图像技术,本书着重介绍一些基础概念,提纲挈领,以便于读者后续进行自主学习。学习

◎ 测试与优化:分享一个主流的自动化测试框架,以及优化内存与电量的一些常见方法。产品的性能与功能一样重要,应用的高品质也会提高产品的用户体验。

这七部分几乎已经包含高级Android编程的所有内容,本书的每一个部分都会经过多个实例,从不一样的角度引领读者亲身实战,真正地掌握高级编程的核心开发技巧。可是,实例的数量终究有限,但愿读者更多地关注于实战中的开发思想,而不是具体的代码逻辑,代码总会不断地更迭,解决问题的思惟却历久弥新。本书中的实例更多的是以点带面,读者能够一边阅读和思考,一边编写代码,相信读完本书,必定受益不浅;同时,经过本书的实例能够解决一些常见的开发需求。衷心但愿每位读者在阅读完本书以后,都“不枉此行”!

2018年7月于北京海淀

《高级Android开发强化实战》京东连接:https://item.jd.com/12385680.html