我的新书《Android App开发从入门到精通》终于出版啦
前言
经过了两年多终于完成了这本书,2016年9月份开始写的,到今天为止2年零2个月,本书的内容大部分是去年完成的,看过我去年总结的读者可能知道,去年事情很多太忙了,导致本命年这本书没有上架(有点小小的遗憾)。
工作之余喜欢写写技术文章,对自己的技术做一个总结同时也让后来者站在我的肩膀上,之前一直在CSDN发表文章,也是CSDN博客专家,单篇文章上万阅读量,在这里感谢这个平台,让我的文章被更多人看到。
为什么要写这本书?
现在Android方面的书也蛮多的,但是都是讲基础的书籍或者技术都过时了,本书会结合我多年Android开发经验,讲解企业最常用的Android基础,并且学习最前沿的技术,让有Java SE基础的人能快速上手开发项目。
章节内容介绍
本书一共10个章节,从基础入门到高级初步。
第1章学习了开发工具Android Studio,孔子云:“工欲善其事,必先利其器”,一个好的开发工具可以让开发人员的工作效率有大幅度的提高。
第2章节讲解了Android控件相关知识,一个UI界面是由多个控件组成,只有熟练使用各种控件才能做出好看的App,达到UI设计师想要的效果。
第3章节学习了Android中四大组件,在真实的企业开发中,四大组件的其中三个:Activity(活动)、Service(服务)、Broadcast Receiver(广播接收器)使用及其频繁,ContentProvider(内容提供者)使用频率相对少一些,只有某些需求需要用到时才会使用。
第4章节学习了Fragment(碎片),从Fragment简单使用,到最后的案例开发,一步步深入的学习Fragment,使用了Fragment让我们的App模块化,还能解决手机跟平板适配问题。
第5章学习了多线程开发,从多线程的创建,到字线程如何更新UI,通过阅读源码分析了Handle的实现原理,最后介绍了线程池的使用。
第6章首先学习了Android网络编程,通过Get/Post方式向服务器发送Http请求,现在市面上大部分App跟服务器交互都是返回Json数据,所以介绍了Gson框架,还学习了OkHttp开源项目的使用以及封装,让我们站在巨人的肩膀上。最后还学习了数据存储的三种方式。
第7章节学习了Android高级初步知识点,内容比较多、比较杂。主要介绍了Notification使用、多媒体开发、WebView使用、定位的三种方式、NDK跟JNI开发、Git管理项目等。
第8章节学习介绍了Android中各大版本的更新,让我们的App解决版本适配问题,完美兼容5.0以上各个版本。站在技术的最前言,不输在起跑线上。
第9章节学习了常用功能模板,这些功能是大家在企业开发中可能会碰到的需求,通过模版的学习,让我们知道对一个App中功能的划分,以及如何封装模块。
第10章节通过模仿一个商业App,从零开始搭建一个项目,使用了前面9个章节所学内容,让我们所学知识点能达到融会贯通的地步,进一步熟练掌握。有了项目经验,在真实的企业开发中也能成为一名合格的开发人员。
行业大佬推荐
安辉是我们团队里的的Android专家,本书讲解清晰、示例丰富,是他的倾心力作,同时也是技术经历的真实写照,能帮助大家快速提升开发经验,少走弯路。
------------------------------ 郭鹏 上海翼成CTO
万丈高楼平地起,这本书带你稳扎稳打,筑造更高的Android大厦。
------------------------------ 徐宜生 《Android群英传》作者
这是一本有特色的Android 入门书籍,有基础、有新特性还有实战,推荐一读。
------------------------------ 刘望舒《Android进阶之光》、《Android进阶解密》作者
本书是一本非常实用的Android 入门到进阶教材,也是Android 开发者加深强化基础知识的教材,内容简明扼要,重点突出,值得大家阅读!
------------------------------ Tamic 美团Android高级工程师
感谢一些人
首先得感谢清华出版社编辑卞诚君先生,没有他的邀请就没有本书的诞生,并且在排版以及审核上花费了很多时间,因为有他的努力付出使本书能够更快的完成。
第二个要感谢的就是我的好朋友王帅,本书的早期大纲是我们两共同完成的(后面有修改),并且计划跟我一起写这本书,但是由于个人原因放弃了。
还要感谢王帅跟芮成兵他两担任本书的审阅工作,给本书提供了宝贵的意见,同时感谢四位行业大佬推荐,最后感谢翼成的小伙伴们,在我写书的这段时间里对我的帮助。
封面
封面也改了好几次,最后还是觉得这个好看,简洁明了,希望大家喜欢。
购买
目前已经上线了京东、天猫、当当这三个平台,有需要的小伙伴点击下面链接购买:
京东购买地址
天猫购买地址
当当网购买地址
资源与勘误
由于技术水平有限,书中难免会有错误,欢迎大家向我反馈:androidcoder666@163.com,邮箱在沟通上难免会有延迟,大家也可以加入我创建的QQ群。
本书互动地址
CSDN博客:https://blog.csdn.net/lowprofile_coding
QQ群:202928390
微信公众号:Android开发666
书中案例源码下载
如果你想第一时间看我的后期文章,扫码关注公众号,长期推送Android开发文章、最新动态、开源项目,让你各种涨姿势。
Android开发666 - 安卓开发技术分享
扫描二维码加关注
我的新书《Android App开发从入门到精通》终于出版啦的更多相关文章
- 我的新书《C++服务器开发精髓》终于出版啦
一.千呼万唤始出来 亲爱的各位读者,我的新书<C++ 服务器开发精髓>终于终于终于与大家见面了,图书如下: 图书的封面设计很精美,当然内容一定不负众望.因出版社老师要求提供一张照片放到封面 ...
- 《H5+移动应用实战开发》已出版
<H5+移动应用实战开发>终于出版了,最近在忙着Vue和Webpack相关的前端书籍写稿.本书面向的读者为:从后端转前端,或零基础开始学习移动端开发的人.前后端完全分离的开发方式越来越成为 ...
- C#自制Web 服务器开发:用C#开发自己的Web服务器
当输入: GET / HTTP/1.1 Accept: text/html, application/xhtml+xml, */* Accept-Language: zh-CN User-Agent: ...
- (转)C#自制Web 服务器开发:用C#开发自己的Web服务器
当输入:127.0.0.1:5050 GET / HTTP/1.1 Accept: text/html, application/xhtml+xml, */* Accept-Language: zh- ...
- C++服务器开发之笔记三
为什么需要原子性操作? 我们考虑一个例子:(1)x++这个常见的运算符在内存中是怎样操作的?从内存中读x的值到寄存器中,对寄存器加1,再把新值写回x所处的内存地址 若是有两个线程同时对同一个变量++, ...
- Python09作业思路及源码:高级FTP服务器开发(仅供参考)
高级FTP服务器开发 一,作业要求 高级FTP服务器开发 用户加密认证(完成) 多用户同时登陆(完成) 每个用户有不同家目录且只能访问自己的家目录(完成) 对用户进行磁盘配额,不同用户配额可不同(完成 ...
- linux服务器开发浅谈
[开发前准备] 在进行linux服务器开发之前,必须很清楚地了解所开发的对象需要考虑的相关问题比如:功能架构:提供服务的模块体系结构稳定性:服务器的出core率,内存泄露情况性能:请求与返回的速度与正 ...
- linux下http服务器开发
linux下http服务器开发 1.mystery引入 1)超文本传输协议(HTTP)是一种应用于分布式.合作式.多媒体信息系统的应用层协议 2)工作原理 1)客户端一台客户机与服务器建立连接后,会发 ...
- NIO原理剖析与Netty初步----浅谈高性能服务器开发(一)
除特别注明外,本站所有文章均为原创,转载请注明地址 在博主不长的工作经历中,NIO用的并不多,由于使用原生的Java NIO编程的复杂性,大多数时候我们会选择Netty,mina等开源框架,但理解NI ...
- openfire:基于开源 Openfire 聊天服务器 - 开发Openfire聊天记录插件
基于开源 Openfire 聊天服务器 - 开发Openfire聊天记录插件 上一篇文章介绍到怎么在自己的Java环境中搭建openfire插件开发的环境,同时介绍到怎样一步步简单的开发openfir ...
随机推荐
- [Swift]LeetCode326. 3的幂 | Power of Three
Given an integer, write a function to determine if it is a power of three. Example 1: Input: 27 Outp ...
- [Swift]LeetCode636. 函数的独占时间 | Exclusive Time of Functions
Given the running logs of n functions that are executed in a nonpreemptive single threaded CPU, find ...
- [Swift]LeetCode740. 删除与获得点数 | Delete and Earn
Given an array nums of integers, you can perform operations on the array. In each operation, you pic ...
- 知识扩展--if...else...与switch...case...的执行原理
一.简述 编程语言中的条件分支结构有两种:if-else和switch-case,这两种条件分支之间可以相互转换,但是也存在一些区别,那么什么时候该用if-else,什么时候该用switch-case ...
- iOS学习——#define、const、typedef的区别
在iOS开发中经常遇到一些字段和类型的定义,例如配置生产和测试不同环境的参数等,这时候经常用到#define.const以及typedef.那么它们之间有什么区别呢?我们接下来一个一个具体了解下. 一 ...
- iReport 5.6.0 Error: net.sf.jasperreports.engine.JRException: Error executing SQL statement for : data 最优解决方案
问题描述 近期学习iReport(个人使用的是最新版本的 iReport-5.6.0,MySQL是 5.5.56版本),遇到一些问题,在安装完成后,创建了数据库,配置了MySQL数据库连接信息,新建报 ...
- UE4 打包C++项目到win32平台报错 could not find mspdbcore.dll
解决方法: 将Visual Studio中相应系统(如32位对应x86.64位对应x64)下的 ms.*.dll 等一系列文件拷贝到 C:\Windows\System32\ 路径下.踩坑:不能只拷贝 ...
- 免费SSL证书(支持1.0、1.1、1.2)
由于公司要开发微信小程序,而微信小程序的接口需要https协议的,并且要支持TLS1.0.TLS1.1.TLS1.2.如果仅仅是为了开发小程序,安全等级又不用太高,可以选择免费的SSL证书 在这里选择 ...
- asp.net core 系列 8 Razor框架路由(下)
三.页面路由操作约定 接着上篇讲asp.net core 系列 7 Razor框架路由.在上篇继续第三节 "页面路由操作约定" 的最后一小节 AddPageRoute . 3.3. ...
- Django的静态资源
如果你的静态资源是某个APP专属,那么就在这个APP目录下建立一个static目录,就像上图report这个APP中的static目录.当浏览这个APP的网页时它会从这里去找资源,当然,它首先会从共用 ...