前言

经过了两年多终于完成了这本书,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

书中案例源码下载

https://github.com/ansen666/book_source_code

如果你想第一时间看我的后期文章,扫码关注公众号,长期推送Android开发文章、最新动态、开源项目,让你各种涨姿势。

      Android开发666 - 安卓开发技术分享
扫描二维码加关注

我的新书《Android App开发从入门到精通》终于出版啦的更多相关文章

  1. 我的新书《C++服务器开发精髓》终于出版啦

    一.千呼万唤始出来 亲爱的各位读者,我的新书<C++ 服务器开发精髓>终于终于终于与大家见面了,图书如下: 图书的封面设计很精美,当然内容一定不负众望.因出版社老师要求提供一张照片放到封面 ...

  2. 《H5+移动应用实战开发》已出版

    <H5+移动应用实战开发>终于出版了,最近在忙着Vue和Webpack相关的前端书籍写稿.本书面向的读者为:从后端转前端,或零基础开始学习移动端开发的人.前后端完全分离的开发方式越来越成为 ...

  3. C#自制Web 服务器开发:用C#开发自己的Web服务器

    当输入: GET / HTTP/1.1 Accept: text/html, application/xhtml+xml, */* Accept-Language: zh-CN User-Agent: ...

  4. (转)C#自制Web 服务器开发:用C#开发自己的Web服务器

    当输入:127.0.0.1:5050 GET / HTTP/1.1 Accept: text/html, application/xhtml+xml, */* Accept-Language: zh- ...

  5. C++服务器开发之笔记三

    为什么需要原子性操作? 我们考虑一个例子:(1)x++这个常见的运算符在内存中是怎样操作的?从内存中读x的值到寄存器中,对寄存器加1,再把新值写回x所处的内存地址 若是有两个线程同时对同一个变量++, ...

  6. Python09作业思路及源码:高级FTP服务器开发(仅供参考)

    高级FTP服务器开发 一,作业要求 高级FTP服务器开发 用户加密认证(完成) 多用户同时登陆(完成) 每个用户有不同家目录且只能访问自己的家目录(完成) 对用户进行磁盘配额,不同用户配额可不同(完成 ...

  7. linux服务器开发浅谈

    [开发前准备] 在进行linux服务器开发之前,必须很清楚地了解所开发的对象需要考虑的相关问题比如:功能架构:提供服务的模块体系结构稳定性:服务器的出core率,内存泄露情况性能:请求与返回的速度与正 ...

  8. linux下http服务器开发

    linux下http服务器开发 1.mystery引入 1)超文本传输协议(HTTP)是一种应用于分布式.合作式.多媒体信息系统的应用层协议 2)工作原理 1)客户端一台客户机与服务器建立连接后,会发 ...

  9. NIO原理剖析与Netty初步----浅谈高性能服务器开发(一)

    除特别注明外,本站所有文章均为原创,转载请注明地址 在博主不长的工作经历中,NIO用的并不多,由于使用原生的Java NIO编程的复杂性,大多数时候我们会选择Netty,mina等开源框架,但理解NI ...

  10. openfire:基于开源 Openfire 聊天服务器 - 开发Openfire聊天记录插件

    基于开源 Openfire 聊天服务器 - 开发Openfire聊天记录插件 上一篇文章介绍到怎么在自己的Java环境中搭建openfire插件开发的环境,同时介绍到怎样一步步简单的开发openfir ...

随机推荐

  1. 文本编辑器激活系列(一):Sublime 安装、激活、汉化教程

    如您激活出现问题,请点击这里加入:软件激活问题解决群 前言 推荐几款文本编辑器: Sublime:内嵌python解释器.大量插件 EditPlus:语法着色.内嵌浏览器 Notepad++:所见即所 ...

  2. spark使用udf给dataFrame新增列

    在 spark 中给 dataframe 增加一列的方法一般使用 withColumn // 新建一个dataFrame val sparkconf = new SparkConf() .setMas ...

  3. vue + hbuilder 开发备忘录

    踩过的坑: axios 安卓低版本兼容性处理 阻止表单中,button默认事件,出现刷新问题. 设置滚动条的位置 vue 数据和对象数据变化 dom结构不变 android低版本 白屏问题 你是不是用 ...

  4. python scrapy 入门,10分钟完成一个爬虫

    在TensorFlow热起来之前,很多人学习python的原因是因为想写爬虫.的确,有着丰富第三方库的python很适合干这种工作. Scrapy是一个易学易用的爬虫框架,尽管因为互联网多变的复杂性仍 ...

  5. IntelliJ IDEA maven项目new里没有package

    idea maven项目new里没有package. 如图,idea maven项目new里没有package.: 这是因为java是普通的文件夹,要设置为Source Root 设置好以后可以了.

  6. 行为驱动:Cucumber + Selenium + Java(三) - 使用标签实现测试分组

    在上一篇中,我们写出了Selenium + Cucumber + Java环境下的第一个BDD自动化测试用例,这一篇我们说说怎么用标签对用例进行分组. 3.1 Cucumber标签 实际工作中,我们的 ...

  7. .netcore2.0+pgsql 脚手架

    mystaging介绍 这是一个 .netcore+pgsql 的脚手架,可以一键生成实体对象和业务层接口,让开发人员无需关注底层变动,专注编写业务代码,它可以让你使用 .netcore2.0的新特性 ...

  8. DriverManager 驱动管理器类简介 JDBC简介(三)

    驱动程序管理器是负责管理驱动程序的,驱动注册以后,会保存在DriverManager中的已注册列表中 后续的处理就可以对这个列表进行操作 简言之,驱动管理器,就是字面含义,主要负责就是管理 驱动 概述 ...

  9. 权限管理系统之LayUI实现页面增删改查和弹出层交互

    由于对LayUI框架不太熟悉,昨天抽空看了下LayUI的文档,今天在网上找了使用LayUI进行增删改查相关内容,自己照葫芦画了个瓢,画瓢部分不是很难,主要是下午遇到了一个弹出层的问题耗时比较久. 同一 ...

  10. Valgrind简介

    Valgrind是一款用于内存调试.内存泄漏检测以及性能分析的软件开发工具.