[原]历久而新,我的新书《第二行代码》已开始预售

   2016-11-23 0
核心提示:本文同步发表于我的微信公众号,扫一扫文章底部的二维码或在微信搜索 郭霖 即可关注,每天都有文章更新。 回顾《第一行代码》从出版到现在已经有两年多的时间了。当然,如果是从我开始写书的那天算起的话,时隔已经三年半之久了。回顾这三年半的时光,不得不

本文同步发表于我的微信公众号,扫一扫文章底部的二维码或在微信搜索 郭霖 即可关注,每天都有文章更新。

回顾

《第一行代码》从出版到现在已经有两年多的时间了。当然,如果是从我开始写书的那天算起的话,时隔已经三年半之久了。回顾这三年半的时光,不得不感慨,Android 技术的发展真是日新月异。

记得在2013年我刚开始动笔写《第一行代码》的时候,Google正好推出了新的开发工具Android Studio,不过那个时候还只是 v0.1 版本。当时我还和我的编辑陈冰老师讨论过,书中到底是使用Eclipse来开发还是使用Android Studio来开发。最后讨论下来,由于Android Studio还太过于早期,不够成熟和稳定,因此《第一行代码》中还是使用Eclipse来作为开发工具的。而如今,三年多的时光,Android Studio已经从0.1版本升级到2.2版本了,并且早已替代了Eclipse,成为当前最主流的Android开发工具。

《第一行代码》全书的完稿时间大概是在2014年的3月份,而就在5月份的一天早上,陈冰老师急匆匆地打我电话,说出大新闻了!我疑惑地问:“什么大新闻啊?”他说:“啊?你不知道啊,Android出5.0系统了!(那个时候还叫Android L)”我当时听了之后脑子是有点懵逼的,要知道,《第一行代码》是基于4.x系统来编写的,谷歌从2011年发布4.0系统以来,一直是以4.1、4.2、4.3、4.4这样的小版本系统来升级的,怎么偏偏就在《第一行代码》快要发售的时候推出了这个号称是“历史上版本改动最大”的系统升级呢!

当时我和陈冰老师还是紧急商讨了一下,由于《第一行代码》计划是8月份上市,如果非要强行加入5.0系统的内容,一是我学习需要时间,二是写作也需要时间,这样书的发售就必然要推迟了。后来我们觉得,新系统刚刚出来,普及恐怕还要很久,就不赶这波热潮了。于是,《第一行代码》中的内容最终仍然是基于Android 4.x来编写的。

后来这两件事让我始终觉得遗憾,由于时间的原因,《第一行代码》完美地和Android Studio以及Android 5.0错过了。

成绩

虽说缺少了一些最新的知识点,包括后来还出现了盗版泛滥的事件,不过这些都没能影响《第一行代码》火爆的销售。其实并不是因为我推广做得有多好,大家可能觉得我的博客访问量比较高,在上面挂个推广链接什么的就能让书畅销了,并没有那么简单。

《第一行代码》在2014年的销量其实很一般,是在2015年才攀升上去的。那个时候很多第一批《第一行代码》的读者已经把书读完了,产生了良好的口碑,他们又将这本书推荐给了更多想学习Android开发的人。这种人传人的方式,比我单纯在博客上面挂个购买链接要远远有效得多。如果真是一本大烂书,相信不管我怎么推广,也不会有多好的销量的,反而还会被大家骂。只有真正内容过硬,才能得到大家的认可。

现在,只要你去大一点的书店或图书馆逛一逛,在里面都能找到《第一行代码》的身影。京东或者亚马逊的畅销排行榜,《第一行代码》在Android图书分类里大多数的时候销量都是排第一的。良好的口碑让很多人将《第一行代码》作为学习Android的首选书籍,现在将它称之为国内的“Android学习第一书”应该并不为过。

那么《第一行代码》到底卖了多少本呢?之前我还从来没有公布过具体的数字,那么由于现在已经停印了,因此也可以向大家汇报一下成绩了。很多没接触过图书行业的人,对于书的销量可能没什么概念,这里我先向大家普及一些知识。首先中国的图书行业并不是很发达,因为喜欢买书的人确实不多,而计算机图书又由于受众面很窄的原因,买的人就更少了。现在的不少计算机图书甚至是连首印都卖不完,能卖到一万本以上的计算机图书就可以算得上是畅销书了,能卖到三万本的话那已经是凤毛麟角了。陈冰老师当时拍胸脯跟我保证说,《第一行代码》至少能卖两万本,我笑笑说,能卖到一万本我就心满意足了。而现在,《第一行代码》出版两年半的时间,一共卖出了八万一千本,这个成绩是当初谁都无法预料到的。

新的开始

《第一行代码》虽然没有赶上Android Studio和Android 5.0的热潮,但同时这几年Android技术发展得实在是太快了。2015年Google推出了Android 6.0系统,2016年又推出了Android 7.0系统。其实每推出一个新的系统,也就意味着《第一行代码》中的内容更加过时。因此在今年年初的时候,我终于下定决心,将书中的内容全面升级,开始编写 《第一行代码——Android 第2版》 。当然这个名字感觉有点长,因此我更喜欢直接叫它 《第二行代码》

新书的首要目标是要将《第一行代码》中已经过时的内容进行更新,以及加入这几年出现的各种新技术的讲解。包括Android Studio的使用,以及Android 5.0、6.0、7.0系统中引入的各种新的功能。

由于书的整体内容结构没有改变,因此一开始我以为只是小修小补而已,但事实上远没有我想象得那么轻松。除了介绍新知识点之外,书中之前的所有项目都需要重新编写和测试,以保证代码在新老系统上的兼容性。另外,由于Android从5.0系统开始,UI风格变化很大,因此《第二行代码》中所有的截图都需要重新截取,没有一张图是可以直接使用《第一行代码》中的。毫不夸张地说,我几乎重写了整本书。

这次的新书我大概是在今年2月份的时候开始动笔的,基本保持着每个月写3章的进度,到9月份的时候书中绝大部分的内容都已经写完了,然后我就开始等,等Android 7.0以及Android Studio 2.2正式版的发布。因为我不想重蹈覆辙,再留上次的遗憾,我不想书中的内容都是基于Android 6.0来编写的,而书还没来得及上市,Android 7.0系统就推出了。既然是要更新,那么就索性一次性更到最新。

Android 7.0其实还好,大概是在9月初的时候就推出正式版了,但当时Android Studio 2.2的正式版真的等得我好焦急,每天我都要到官网上去刷一下看看有没有发布。终于在9月下旬的时候把Android Studio 2.2给盼来了,于是我迅速对全书的所有内容进行了一遍修订,并将所有的代码都在Android 7.0和Android Studio 2.2中进行了重新的适配。10月份的时候全书顺利完稿并且进入出版流程,11月初送厂印刷,11月底开始预售,这个速度恐怕已经是史无前例了。

因此,《第二行代码》也是国内第一本基于Android 7.0系统的书籍。

内容

《第二行代码》中的内容我相信很多人都会非常感兴趣,因为里面确实加入了很多很新的知识。略粗概括一下的话,新增内容就包括有 Android StudioGradleMaterial Design运行时权限多窗口模式RecyclerView百分比布局Lambda表达式OkHttpDoze模式 等等,几乎囊括了Google近几年推出的所有热点技术。除此之外,还加入了几个比较完整的项目,不仅单个知识点的内容更加丰富,对各知识点之间的综合运用讲解也比《第一行代码》要好上很多。总而言之,这真的是我写得非常用心的一本书。

下面我就挑几个《第二行代码》中比较有特色的章节来给大家详细介绍一下吧。

第1章中搭建开发环境不再是使用Eclipse了,而是改用了Android Studio。书中除了对Android Studio的基本用法进行了讲解之外,还介绍了一些小技巧,比如说下面的这种 Log打印技巧 我相信很多人是不知道的:

第3章中,新增了 RecyclerView百分比布局 的讲解,其中对ReyclerView的多种方法都进行了细致的介绍,包括会带着大家实现纵向列表、横向列表、以及瀑布流列表的效果,下面是瀑布流效果的截图:

另外,第3章中还将最佳实践环节的聊天界面使用RecyclerView进行了重写,最终效果如下:

第7章中增加了 Android 6.0运行时权限 的讲解,第8章中对 系统通知 的各种用法进行了更新,第9章中增加了 OkHttp 的讲解,第10章中结合前面所学过的运行时权限、通知、OkHttp等知识,实现了一个综合度非常高 下载服务程序 ,并且应我的QQ群中群友们的要求,这个下载服务还支持了断点续传功能。效果如下图所示:

第11章中讲的是地理位置服务(LBS),其实在《第一行代码》中,LBS方面的内容已经写得比较详细了,只是由于近几年Google的服务在中国全面无法访问,因此《第一行代码》中的这些内容也都失效了。那么为了保证这次《第二行代码》中的内容大家都可以正常运行,我将所有使用Google LBS服务的部分都替换成了百度LBS,现在不管是定位也好,地图也罢,大家都可以放心运行而不用担心程序一直跑不通了。

第12章是本书变动最大的一个地方,因为整章内容全部重写了。原来《第一行代码》中的第12章讲的是传感器的使用,我觉得这部分内容比较鸡肋,于是直接将这一章删掉了。现在《第二行代码》的第12章使用一整章的篇幅介绍了Material Design方方面面的知识,包括讲解了 Toolbar滑动菜单NavigationView悬浮按钮SnackbarCoordinatorLayout卡片式布局下拉刷新折叠式标题栏 等等控件的用法和特效的实现。整章内容学习完之后,最终大家都能实现一个具有高度Material Design效果的程序,如下图所示:

(由于CSDN最大只能上传2M的图片,因此画质被压缩得有点渣。你也可以点击 这里 查看高清版的视频效果)

第13章中也加入了不少新的内容,因为第13章是最后项目实战之前的一个总结性章节,里面有很多你必须要掌握的高级技巧。新增内容包括有 Android 6.0 Doze模式讲解Android 7.0多窗口功能讲解 、以及 Lambda表达式讲解 等,也都是满满的干货。

第14章仍然是项目实战部分,仍然开发的是酷欧天气,只不过这次开发的是 酷欧天气2.0 ,比《第一行代码》中的酷欧天气可要牛逼得多了。之前很多朋友在学习《第一行代码》中的酷欧天气时,时不时就会有人跟我反馈,获取省市县数据的接口访问不了了,或者是获取天气信息的接口访问不了了。对于这种情况我也无可奈何,毕竟用的是第三方服务的接口,人家接口关闭了我也没有办法。而《第二行代码》中,为了保证接口的稳定性,我专门在阿里云上购买了一台服务器,用于给大家提供长期可靠的接口支持,保证不会再让大家遇到学着学着接口就失效了的问题。

说了这么多,那《第二行代码》中的酷欧天气到底比《第一行代码》中的酷欧天气牛逼在哪里呢?我们直接来看下效果对比就知道了。先来看一下《第一行代码》中的酷欧天气效果,如下所示:

[原]历久而新,我的新书《第二行代码》已开始预售

然后我们再来看一下《第二行代码》中的酷欧天气效果,如下所示:

相信不需要我多说,大家也一眼就能看出来,这两个版本的酷欧天气明显不是在一个档次上的。另外,新版酷欧天气的背景并不是一成不变的,而是每天都会有不同的背景,那么是如何实现的呢?等你学到这一章的时候就知道了。

第15章仍然还是教大家如何打包APK文件,以及如何上架应用程序,但是这次将会使用 Gradle来打包APK ,并且讲解了如何使用Gradle来 打包多渠道APK 文件。至于上架部分,《第一行代码》中讲的是如何上架Google Play,而现在Google Play已经无法访问了,因此《第二行代码》中改成了教大家如何将APP上架到360应用商店。总之,《第二行代码》的宗旨就是一定保证书中的所有例子都可以跑得通。

当然,除了上述内容之外,其他章节也都有很多的改动。尤其是在程序兼容性调整方面,几乎对每一章的代码都进行了优化和升级,以保证书中所有的程序在Android 7.0系统上都能完美兼容。不过这里我就不展开来细讲了,更多内容等待你自己去发现。

封面

我在《第二行代码》的封面设计方面可以说是下足了功夫。因为要和《第一行代码》有传承关系,但又要和《第一行代码》有明显的区分。因此,我当时给设计师提了两点要求:

  1. 让人一眼看上去就知道这是《第一行代码》
  2. 让人一眼看上去就知道这不是《第一行代码》

设计师当然也是做得很用心,给我提供了好几个版本让我选择,然后我又从中选出了3个我个人比较满意的版本,最后在公众号上搞了一个投票让大家来做最终筛选:

[原]历久而新,我的新书《第二行代码》已开始预售

最终,绿色版本以接近50%的得票率当选,《第二行代码》的封面也最终定版,由大家共同选出来的一定是最好的,我们来一起欣赏下吧。

[原]历久而新,我的新书《第二行代码》已开始预售

再来看一张霸气的宣传海报吧:

[原]历久而新,我的新书《第二行代码》已开始预售

书签

《第二行代码》中还会赠送大家一个非常非常精致的小礼物,我个人认为这个小礼物也是这本书的特色之一。

其实我从小就是一个特别爱惜书的人,我是从来不舍得给书折角来记录看到哪里的。每当看到有些人将一本书的书角折得伤痕累累时,我都会觉得很心疼。因此,当我听出版社说,可以在《第二行代码》中赠送书签时,我高兴得要命。

既然是要赠送书签,那么书签也得好好设计一下。我仔细想了想,书签的主题一定要和书的主题相关才行,而《第二行代码》中最主要的特色就是涵盖了Android 5.0、6.0、以及7.0中的知识,那么就干脆以这三个系统为主题,设计三种不同风格的书签吧。

设计师当然也是很给力,设计的三种书签都非常好看,我们来一起欣赏一下吧:

[原]历久而新,我的新书《第二行代码》已开始预售 [原]历久而新,我的新书《第二行代码》已开始预售 [原]历久而新,我的新书《第二行代码》已开始预售

这三种书签会随机放在每一本书里面,你将会拿到哪一种书签就全看运气了。

当然,书签这种小东西并不值什么钱,但是我还是花了很大心思去做这件事情,因为我对这本书的一点一滴真的都很用心。

定价

《第二行代码》的定价我只能用 “很良心” 来形容。出版社之前一直在说我,嫌《第一行代码》的价格定的太低了,500多页的书只定了79元。而这次《第二行代码》不仅全面升级了内容,页数也增加了几十页,还赠送书签等等,因此出版社强烈建议将书价定为89元。虽说书价越高意味着我拿到的稿费也越多,但是高的书价同时也会在一定程度上影响销量。我咨询过QQ群里的群友们,其实很多人还是很在意书价的,尤其是还没工作的学生。因此,为了给大家争取权益,我也是尽了我最大的努力和出版社各种沟通、协商,最终出版社终于同意让《第二行代码》 仍然保持79元 !全面升级了内容,价格还一分钱不涨,这已经是我所能做的全部了。想要让出版社同意将《第二行代码》的定价定得比《第一行代码》还低,那真的是不可能的。

不过仍然要提醒大家一点,79元只是书的标价而已,而通常我们在网上买书都是有折扣的。折扣的多少由各网店自己来定,我参与不了,但一般也就是六十几块钱就能买到了。

购买签名版

最后还有一条重磅消息, 《第二行代码》是有签名版的! 这次我会专门去一趟北京,签名2000本《第二行代码》。而且签名版并不会加价,仍然是按平价来卖的,现在正在预售的就是签名版的《第二行代码》,总共只有2000本,先到先得呦!有需要的小伙伴们赶快猛戳下面的地址抢购吧:

京东购买地址

当当购买地址

亚马逊购买地址

注:由于亚马逊不能设置预售上限,即使签名版被预订完了仍然还可以继续预订,因此不能保证在亚马逊上购买的《第二行代码》一定是签名版,选择在亚马逊购买的朋友们请慎购。

关注我的技术公众号,每天都有优质技术文章推送。关注我的娱乐公众号,工作、学习累了的时候放松一下自己。

微信扫一扫下方二维码即可关注:

[原]历久而新,我的新书《第二行代码》已开始预售 [原]历久而新,我的新书《第二行代码》已开始预售

 
标签: Android Studio 设计
反对 0举报 0 评论 0
 

免责声明:本文仅代表作者个人观点,与乐学笔记(本网)无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
    本网站有部分内容均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,若因作品内容、知识产权、版权和其他问题,请及时提供相关证明等材料并与我们留言联系,本网站将在规定时间内给予删除等相关处理.

  • 说一说Android Studio和IDEA中一个很有用的内存调试插件
    说一说Android Studio和IDEA中一个很有用的内存
    JetBrains JVM Debugger Memory View plugin 在我最近的研发活动期间寻找新的工具,以提高我的开发经验,使Android Studio的生活更轻松,我发现一个有用的插件,我从来没有听说过。 这就是为什么,我决定写这个强大的工具,它如何帮助我与内存调试我的应用程
  • 安卓中通知功能的具体实现
    安卓中通知功能的具体实现
    通知[Notification]是Android中比较有特色的功能,当某个应用程序希望给用户发出一些提示信息,而该应用程序又不在前台运行时,就可以借助通知实现。使用通知的步骤1、需要一个NotificationManager来获得NotificationManager manager = (NotificationManager
    02-05 安卓开发
  • Android view系统分析-setContentView
    Android view系统分析-setContentView
    第一天上班,列了一下今年要学习的东西。主要就是深入学习Android相关的系统源代码,夯实基础。对于学习Android系统源代码,也没什么大概,就从我们平常使用最基础的东西学起,也就是从view这个切入点开始学习Android的源码,在没分析源码之前,我们有的时候
    02-05 安卓开发
  • 如何进行网络视频截图/获取视频的缩略图
    如何进行网络视频截图/获取视频的缩略图
    小编导读:获取视频的缩略图,截图正在播放的视频某一帧,是在音视频开发中,常遇到的问题。本文是主要用于点播中截图视频,同时还可以获取点播视频的缩略图进行显示,留下一个问题,如下图所示, 如果要获取直播中节目视频缩略图,该怎么做呢?(ps:直播是直
  • Android NDK 层发起 HTTP 请求的问题及解决
    Android NDK 层发起 HTTP 请求的问题及解决
    前言新的一年,大家新年快乐~~鸡年大吉!本次给大家带来何老师的最新文章~虽然何老师还在过节,但依然放心不下广大开发者,在此佳节还未结束之际,给大家带来最新的技术分享~ 事件的起因不说了,总之是需要实现一个 NDK 层的网络请求。为了多端适用,还是选择
  • SDK热更之如何在SDK代码中自动插桩及如何生成补
    写在前面本文是SDKHotfix相关的SDK热更系列文章中的一篇,以下为项目及系列文章相关链接:SDKHotfix整体介绍:http://blog.bihe0832.com/sdk_hotfix_project.htmlSDKHotfix对应github地址:https://github.com/bihe0832/SDKHoxFix这篇文章主要介绍一下SDK热更
  • 安装量破千万的第一个产品,我总结了3句话
    安装量破千万的第一个产品,我总结了3句话
    在今天的文章中,作者回顾了自己的第一个产品,他说“我做的第一款产品,是我的一块里程碑。”一起来看看~背景老牌大型互联网公司,部门内部创业的一个项目。我作为产品经理,也是第一次做产品经理,主导产品项目。实际上,项目初期包括我和安卓开发2个人。开
  • 移动周刊第 176 期:Android 知识梳理
    移动周刊第 176 期:Android 知识梳理
    写在前面 本期移动周刊第 176 期如约而至,聚焦 Android、iOS、VR/AR/MR、直播等前沿移动开发技术,收录一周最热点,解读开发技巧,每周三移动周刊抢先看,我们希望从中能够让你有一些收获,如果你有好的文章以及优化建议,请发送邮件至mobilehub@csdn.net,
  • Android插件化(六): OpenAtlasの改写aapt以防止资源ID冲突
    Android插件化(六): OpenAtlasの改写aapt以防
    引言Android应用程序的编译中,负责资源打包的是aapt,如果不对打包后的资源ID进行控制,就会导致插件中的资源ID冲突。所以,我们需要改写aapt的源码,以达到通过某种方式传递资源ID的Package ID,通过aapt打包时获取到这个Package ID并且应用才插件资源的命名
    02-05 安卓开发
  • Android架构(一)MVP架构在Android中的实践
    Android架构(一)MVP架构在Android中的实践
    为什么要重视程序的架构设计 对程序进行架构设计的原因,归根结底是为了 提高生产力 。通过设计是程序模块化,做到模块内部的 高聚合 和模块之间的 低耦合 (如依赖注入就是低耦合的集中体现)。 这样做的好处是使得程序开发过程中,开发人员主需要专注于一点,
    02-05 安卓开发
点击排行