内容简介

本书收集了约20个关于高级Android开发的进阶实例,这些实例都是对在日常开发中遇到的问题的抽象,涉及整个Android开发的各个技术栈。本书从常见的问题入手,引导读者逐步地掌握进阶的各个实例,同时提供分析和解决问题的思考过程,寻求*方案。本书的内容分为以下几个部分。进阶基础:通过管中窥豹,剖析Activity和View的一些基本概念,展示源码分析的常见方法;高阶控件:讲解MD的两个复合布局和约束布局,介绍高级控件的开发流程;项目架构:架构是项目的骨骼,该部分介绍主流的MVP系列和Flux架构;响应式编程:解析响应式编程三剑客RxJava Dagger Retrofit的不同特性组合使用方法;功能与动画:列举若干实际开发中的经典实例,包含功能定制和页面动画等;Kotlin与SVG:讲解Kotlin编程语言和SVG图像技术的若干开发技巧;测试与优化:介绍自动化测试框架的设计方法,以及优化应用的常用工具。通过对本书的学习,读者可以极大地提高Android开发的工程能力,从而成为一名合格的高级Android工程师,不仅在理论上有所提升,在实践中也能直接应用。高级Android工程师通过对本书的学习也能完善知识体系和技术栈。

目录

第1章 进阶基础1

1.1 深入剖析 Activity 的生命周期1

1.1.1 Activity的生命周期的各种状态2

1.1.2 实例:准备4

1.1.3 实例:因硬件导致的生命周期变化6

1.1.4 实例:页面切换时的生命周期变化11

1.1.5 实例:由系统原因导致的生命周期变化16

1.2 深入剖析Activity的启动模式20

1.2.1 ADB命令20

1.2.2 标准模式21

1.2.3 栈顶复用模式25

1.2.4 栈内复用模式27

1.2.5 单实例模式32

1.2.6 startActivity34

1.3 深入剖析View的工作流程36

1.3.1 装饰视图和MeasureSpec38

1.3.2 测量39

1.3.3 布局44

1.3.4 绘制45

1.4 深入剖析View的动画原理47

1.4.1 默认视图动画48

1.4.2 自定义视图动画51

1.4.3 帧动画54

1.4.4 属性动画54

1.4.5 列表控件58

第2章 高阶控件62

2.1 熟练掌握AppBarLayout的开发技术62

2.1.1 搭建项目框架63

2.1.2 页面设置ViewPager布局67

2.1.3 页面添加AppBarLayout布局73

2.1.4 页面添加AppBarLayout逻辑76

2.1.5 页面添加AppBarLayout动画81

2.2 熟练掌握 CoordinatorLayout的开发技术85

2.2.1 项目框架86

2.2.2 布局设计86

2.2.3 联动逻辑90

2.2.4 图片交互93

2.3 熟练掌握 ConstraintLayout 的开发技术96

2.3.1 工程配置97

2.3.2 约束布局99

2.3.3 链式结构107

第3章 项目架构110

3.1 顶层设计 Android 的工程架构110

3.1.1 MVC架构111

3.1.2 MVP架构116

3.1.3 MVVM架构120

3.2 顶层设计基于Flux的流式架构124

3.2.1 视图125

3.2.2 行为创建器129

3.2.3 调度器131

3.2.4 存储器133

第4章 响应式编程141

4.1 全面解析响应式库RxJava的使用方式141

4.1.1 项目框架142

4.1.2 链式表达式144

4.1.3 流的加工函数148

4.1.4 Lambda表达式151

4.1.5 网络请求152

4.1.6 控件的异步事件159

4.1.7 线程安全161

4.2 全面解析依赖注入库 Dagger 的使用方式164

4.2.1 工程配置165

4.2.2 主页逻辑166

4.2.3 详情逻辑169

4.3 基于响应式编程的网络数据同步及缓存框架173

4.3.1 工程配置174

4.3.2 首页175

4.3.3 数据源177

4.3.4 依赖注入179

4.3.5 无缓存模式181

4.3.6 缓存模式183

第5章 炫酷功能186

5.1 设计与实现朋友圈视频的滚动播放功能186

5.1.1 项目框架187

5.1.2 视频列表189

5.1.3 视频项的适配器193

5.1.4 视频列表项196

5.2 设计与实现基于 DialogFragment 的底部弹窗布局200

5.2.1 首页逻辑201

5.2.2 弹窗样式202

5.2.3 弹窗逻辑204

第6章 精美动画208

6.1 实现页面切换中元素分享的动画效果208

6.1.1 项目框架208

6.1.2 效果显示动画210

6.1.3 预留位置动画214

6.2 实现页面展开中圆形爆炸的动画效果220

6.2.1 首页逻辑221

6.2.2 新页逻辑223

6.2.3 显示动画226

6.2.4 退出动画229

第7章 Kotlin与SVG231

7.1 Kotlin基础教程231

7.1.1 基础部分232

7.1.2 进阶部分237

7.2 SVG基础教程241

7.2.1 Vector图像242

7.2.2 Vector动画245

7.2.3 第三方Sharp库249

第8章 测试与优化254

8.1 基于Espresso和Dagger的自动化测试框架254

8.1.1 工程配置255

8.1.2 业务逻辑257

8.1.3 功能测试265

8.2 优化内存泄漏与电量消耗的技术框架272

8.2.1 内存泄漏272

8.2.2 电量优化282

文档截图

android高级开发强化实战,高级Android开发强化实战[PDF][215.59MB]相关推荐

  1. android开发JNI之高级篇

    android开发JNI之高级篇 一,JNI介绍 百度百科 : http://baike.baidu.com/view/1272329.htm 二,JNI开发教程 1,JNI注册方式有两种,一种是静态 ...

  2. android开发笔记之高级主题—传感器的简单介绍

    今天我们开始进入讲解android中的一些高级主题的用法,比如传感器.GPS.NFC.语音和人脸识别等. 这次来对传感器的一个简单介绍: Android平台支持三大类的传感器: 位移传感器 这些传感器 ...

  3. 程序员开发指南!半路出家Android程序员看我轻松逆袭!实战篇

    前言 不清楚你是不是知道,咱们中国有相当大的一部分软件公司,他们的软件开发团队都小的可怜,甚至只有1-3个人,连一个项目小组都算不上,而这样的团队却要承担一个软件公司所有的软件开发任务,在软件上线和开 ...

  4. libraries 和android runtime之间的关系,《Android Studio应用开发实战详解》——第1章,第1.3节Android系统架构...

    本节书摘来自异步社区<Android Studio应用开发实战详解>一书中的第1章,第1.3节Android系统架构,作者 王翠萍,更多章节内容可以访问云栖社区"异步社区&quo ...

  5. Android开发周报:锤子新品发布、实战解析Android架构

    新闻 <锤子Smartisan OS 2.0发布:超200项改进>:锤子科技于8月25日在上海梅赛德斯-奔驰文化中心举行了新品发布会,在此次发布会上,锤子Smartisan OS 2.0也 ...

  6. SLAM导航机器人零基础实战系列:(五)树莓派3开发环境搭建——5.Android手机端与robot端ROS网络通信...

    SLAM导航机器人零基础实战系列:(五)树莓派3开发环境搭建--5.Android手机端与robot端ROS网络通信 摘要 通过前面一系列的铺垫,相信大家对整个miiboo机器人的DIY有了一个清晰整 ...

  7. 移动应用开发之路 04 Android Studio 5种控件介绍、实战详解

    学校开了一门移动应用开发课程,我一开始兴趣盎然,但是看到使用的环境是 Java 8 的时候心就凉了一半,在询问老师的意见之后决定使用现在比较常用的Android Studio完成学习,特此记录自学之路 ...

  8. Android开发入门与实战之Android应用安装卸载

    当一个Android开发者完整的开发完毕一个程序应用软件结束后要进行软件测试,这就是软件测试员的来历,那么在这之前,要进行Android开发应用的安装与卸载. Android开发入门与实战之Andro ...

  9. Android开发入门——推箱子游戏开发实战(十二)

    绘制游戏局面 本文是推箱子游戏程序开发的第七步.系列文章前五篇描述准备工作,故本文编号是(十二).本文讲解如何绘制游戏局面. 本文目标 本文讲解如何绘制游戏局面.游戏局面的示例如图1,图2所示.这两幅 ...

最新文章

  1. 大数据SQL日常学习——CASE WHEN THEN END用法
  2. lvm 扩展根目录_Linux下lvm在线扩容步骤
  3. kdj超卖_kdj超买超卖是什么意思?kdj指标里说的“超买区,超卖区”什么意思?...
  4. 苹果手机咋截屏_才知道,苹果手机轻点2下就能截屏,还支持长截图厉害了
  5. Android--Pin流程,飞行模式相关流程总结【工作日记一】
  6. Vue-cli使用prerender-spa-plugin插件预渲染和配置cdn
  7. 深度 | 无法找到“黑点”的代码,连顶级黑客也束手无策
  8. SSD,单次多框检测器Single Shot Multibox Detector,超越YOLO和Fast-RCNN
  9. 面向对象的三大特性 - 继承、多态、封装
  10. 公众号排版技巧:如何让你的公众号文章排版变美观?
  11. 二极管、稳压二极管、发光二极管电路测试
  12. 物联网产品的发展简介(二)【产品篇02】
  13. apex Error : Given no hashes to check 137 links for project 'pip': discarding no candidates
  14. Trove系列(七)——Trove的Mysql的复制功能介绍
  15. json的存在意义(json和String的区别)
  16. 一起学WEB HTML5 第1讲
  17. 说中台,以正本清源之名
  18. 绿之韵传销是空穴来风,一心一意为健康事业奋斗
  19. 一款规范大方的主界面源码,会用的狐友都说好
  20. C#:魔术师发牌-解法思路

热门文章

  1. 基础教程:Mac 电脑小白应该了解哪些东西?
  2. 经济寒冬影响存储专业人士
  3. No binary rubies available for: osx/10.8/x86_64/ruby-1.9.2-p320解决
  4. 联盛德 HLK-W806 (八): 4线SPI驱动SSD1306/SSD1315 128x64 OLED液晶屏
  5. Python 套件管理程式簡介
  6. 为什么中国只有5%的景区暴利惊人?95%的景区却总是踩到陷阱!做文旅必须看懂此文!
  7. 智能手表APP方案开发公司那个好
  8. Java 运算符中 前++ 和后++ 的区别详解
  9. Windows远程桌面(RDP)密码凭证获取 (゚益゚メ) 渗透测试
  10. access身份证号掩码_ACCESS掩码表