封面 文件夹1 文件夹2

- 当当购买链接

- 京东购买链接

为什么写这本书

写这本书的念头由来已久了。

或许是从我打算写《Android源代码设计模式解析与实战》那时起就萌生了这个念头,由于设计模式属于仅次于架构之下的局部战术。阅读这类书籍可以让具备一定工作经验的开发者提升自己的设计能力,构建更灵活的软件。可是。对于初、中级project师而言,最重要的还是在于基础知识以及知识广度的掌握上。因此,在《Android源代码设计模式解析与实战》交稿之后,我就马上開始了本书的写作之旅。

从面试经历和与开发群中网友的交流中。我发现非常多有一定工作经验的开发者对于Android的基础知识都还仅仅停留在“会用”的阶段,而对于其基本原理一概不知。以至于工作多年之后依然停留在非常表面的层次。这种知识结构的程序猿往往是一旦开发的系统出现故障或者须要优化时就不能应对了。

因此。细致阅读一本深入讲述Android核心开发知识点的书是非常有必要的。

眼下。图书市场上关于Android的入门书籍大多是覆盖整个Android开发知识体系。这类书籍的特点是解说的知识面多,也正是这个原因使得这类书籍缺乏深度,往往仅仅是点到即止。比如。关于网络请求的技术。通常仅仅解说怎样发送一个GET请求,可是。对于HTTP原理不会涉及,这使得非常多读者在定制一些请求时根本无从下手,如上传图片、參数格式为Json等。

还有一个问题就是。非常多开发者即使从业多年。可能都不知道什么是单元測试,不知道重构、面向对象基本原则,这使得他们的代码耦合度可能非常高,难以測试和维护,这样带来的后果就是质量没法保证,随着时间的推移系统逐渐“腐化”。

因此,读一本讲述设计软件的书也是必要的。

本书的目的就是解决上述两个问题,首先对Android开发的核心知识点进行深入解说。然后介绍单元測试、代码规范、版本号控制、重构、架构等重要知识点,使得读者在深入技术的同一时候开阔眼界,可以以更专业的方式设计应用软件,帮助读者完毕从仅仅会实现功能的“码农”到软件project师、设计师的过渡。

本书的特色

本书主要分为3部分,第一部分是前6章,在第一部分中深入解说了Android开发过程中的核心知识点,包含View与动画、多线程、网络、数据库、性能优化,使得读者深入了解开发中最为重要的知识;第二部分是第7~11章,涵盖的内容包含代码规范、单元測试、版本号控制、OOP与模式、重构等内容,从代码规范化、专业化的角度着手。开阔读者的眼界,使读者具备构建低耦合、灵活性强的应用软件的基本能力。最后一部分是第12章,在第12章中通过一个完整的演示样例,演示了怎样把一个充满问题的应用软件逐步演化为低耦合、清晰、可測试的实现过程,在当中展示了常见的重构手法、測试手段,使读者从真实的演示样例中汲取知识与经验,提升技术与设计能力。绕过编程中的诸多陷阱。

当然。书中的知识点非常多都仅仅是做了部分解说,起到一个抛砖引玉的作用,因此。假设须要更深入地了解各领域的知识,希望读者阅读其它专业书籍。

面向的读者

本书面向的读者为初、中、高级Androidproject师。

本书的定位是学习Android开发的第二本书,因此,阅读的前提是读者须要有一定的Android开发知识。在阅读完本书之后,读者还可以选择《Android群英传》《Android开发艺术探索》《Android源代码设计模式解析与实战》等书进行更深入地学习,从更深、更高的层次提升自己,完毕从“码农”到专家的蜕变。

怎样阅读本书

本书从总体结构上分为3部分,分别为Android核心开发知识、规范化与专业化开发基本知识、实战演示样例。初、中级project师建议阅读全书。高级project师可以选择自己感兴趣的部分进行阅读。实战演示样例部分须要第二部分的知识。因此,在阅读最后一章时,假设你学习了第二部分的知识,那么理解效果会更好。

判定你是否须要阅读某个章节的标准是。当你看到标题时是否对这个知识点了然于心,假设答案是否定的,那么阅读该章节还是非常有必要的。当然,通读全书自然是最好的选择。

“纸上得来终觉浅,绝知此事要躬行”,这放到不论什么一本书中都适用。因此,阅读本书时建议又一次完毕书中的演示样例,然后进行思考,从中体会为什么要这样做。这样做得到的优点是什么。读书、实践、思考结合起来,才会让你在技术道路上跑得更快、更远。

Androidproject师进阶之路 :《Android开发进阶:从小工到专家》上市啦!的更多相关文章

  1. 推荐扔物线的HenCoder Android 开发进阶系列 后期接着更新

    官网地址:http://hencoder.com/ 我来做一次辛勤的搬运工 HenCoder:给高级 Android 工程师的进阶手册 HenCoder Android 开发进阶: 自定义 View ...

  2. 《android开发进阶从小工到专家》读书笔记--HTTP网络请求

    No1: 客户端与服务器的交互流程: 1)客户端执行网络请求,从URL中解析出服务器的主机名 2)将服务器的主机名转换成服务器的IP地址 3)将端口号从URL中解析出来 4)建立一条从客户端与Web服 ...

  3. android开发进阶学习博客资源

    Android开发者博客推荐 Android入门级 - 罗宪明 http://blog.csdn.net/wdaming1986 Android入门级 - 魏祝林 http://blog.csdn.n ...

  4. Android开发进阶:如何读写Android文件

    Android主要有四大主要组件组成:Activity.ContentProvider.Service.Intent组成.Android文件的运行主要需要读写四大组件的文件.本文将介绍如何读写Andr ...

  5. Android开发进阶——自定义View的使用及其原理探索

    在Android开发中,系统提供给我们的UI控件是有限的,当我们需要使用一些特殊的控件的时候,只靠系统提供的控件,可能无法达到我们想要的效果,这时,就需要我们自定义一些控件,来完成我们想要的效果了.下 ...

  6. Android开发进阶 -- 通用适配器 CommonAdapter

    在Android开发中,我们经常会用到ListView 这个组件,为了将ListView 的内容展示出来,我们会去实现一个Adapter来适配,将Layout中的布局以列表的形式展现到组件中.     ...

  7. Android设置图片内存溢出(OOM)问题——Android开发进阶之路6

    ImageView设置图片必备常识技术: Android设备会给每个应用分配16M的内存空间,如果你设置的图片的比较大且同一个页面有多个时,经常会报OOM错误导致程序奔溃.所以在这种情况下我们必须要对 ...

  8. android 开发进阶自定义控件 类似 TextView

    开发自定义控件的步骤: 1. 继承View: 2.重写构造函数并构造方法中获得我们自定义的属性. 3. 重写onDraw, 4.重写onMeasure 等函数 一.自定义View的属性,首先在res/ ...

  9. android 开发进阶 自定义控件-仿ios自动清除控件

    先上图: 开发中经常需要自定义view控件或者组合控件,某些控件可能需要一些额外的配置.比如自定义一个标题栏,你可能需要根据不同尺寸的手机定制不同长度的标题栏,或者更常见的你需要配置标题栏的背景,这时 ...

随机推荐

  1. selenium TestNG基本注释和属性

    TestNG注释详解 suite 属性说明: @name: suite 的名称,必须参数@junit:是否以Junit 模式运行,可选值(true | false),默认"false&quo ...

  2. PHP文件环境搭建—EcShop环境搭建

    1  rpm -qa|grep yum|xargs rpm -e --nodeps    2  ls    3  rpm -ivh python-iniparse-0.3.1-2.1.el6.noar ...

  3. 深入理解Java的注解(Annotation):注解处理器(3)

    如果没有用来读取注解的方法和工作,那么注解也就不会比注释更有用处了.使用注解的过程中,很重要的一部分就是创建于使用注解处理器.Java SE5扩展了反射机制的API,以帮助程序员快速的构造自定义注解处 ...

  4. hdu 1115(多边形重心问题)

    Lifting the Stone Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others ...

  5. centeros7远程访问mysql5.7

    先启动firewall防火墙: service firewalld start 打开3306端口: firewall-cmd --add-port=/tcp --permanent mysql授权ro ...

  6. [BZOJ4006][JLOI2015]管道连接 状压dp+斯坦纳树

    4006: [JLOI2015]管道连接 Time Limit: 30 Sec  Memory Limit: 128 MBSubmit: 1020  Solved: 552[Submit][Statu ...

  7. AC日记——Red and Blue Balls codeforces 399b

    399B - Red and Blue Balls 思路: 惊讶的发现,所有的蓝球的消除都是独立的: 对于在栈中深度为i的蓝球消除需要2^i次操作: 代码: #include <cstdio&g ...

  8. 隐藏tomcat版本号

    找到catalina.jar, cd /usr/local/tomcat/lib 解压catalina.jar unzip catalina.jar 会生成两个目录 修改配置文件:org/apache ...

  9. flutter 国内镜像设置

    官网:https://flutter.dev/community/china 路径设置 FLUTTER_STORAGE_BASE_URL: https://mirrors.sjtug.sjtu.edu ...

  10. 主席树【bzoj3524(p3567)】[POI2014]Couriers

    Description 给一个长度为n的序列a.1≤a[i]≤n. m组询问,每次询问一个区间[l,r],是否存在一个数在[l,r]中出现的次数大于(r-l+1)/2.如果存在,输出这个数,否则输出0 ...