万本电子书0元读

万本电子书0元读

顶部广告

Android插件化开发指南电子书 租阅

售       价:¥

纸质售价:¥54.50购买纸书

793人正在读 | 0人评论 6.3

作       者:包建强

出  版  社:机械工业出版社

出版时间:2018-08-01

字       数:32.9万

所属分类: 教育 > 大中专教材 > 成人/中高职教材

温馨提示:此类商品不支持退换货,不支持下载打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(0条)
  • 读书简介
  • 目录
  • 累计评论(0条)
Android插件化技术广泛应用在移动开发中,通过插件化技术,AndroidApp可以不通过发布新版本而修复线上的bug或者推出新功能,这对于日活千万的App而言是非常重要的,可极大程度提升App开发效率和质量。本书详细介绍了插件化技术的原理、各种方案,及其在AndroidApp中的使用。在介绍插件化技术的同时,还详细介绍了Android底层知识,能帮助AndroidApp开发人员更好地掌握Android的开发技术。 Android插件化技术广泛应用在移动发中,通过插件化技术,AndroidApp可以不通过发布新版本而修复线上的bug或者推出新功能,这对于日活千万的App而言是非常重要的,可极大程度提升App发效率和质量。本书详细介绍了插件化技术的原理、各种方案,及其在AndroidApp中的使用。在介绍插件化技术的同时,还详细介绍了Android底层知识,能帮助AndroidApp发人员更好地掌握Android的发技术。本书共22章,先介绍Android插件化技术的历史和现状,系统介绍了Android的底层知识以及反射、代理等技术;然后介绍插件化技术的基本知识,包括各类插件化解决方案及其对比;之后分析了一些插件化框架,如that、Zeus等,深分析了资源及其在插件化中的应用,以及混淆、增量更新等周边技术的插件化解决方案。
【推荐语】
本书不仅详细介绍Android插件化技术如何实现,而且包含大量Android系统的底层知识,有助于App发人员深理解Android系统,从而写出更健壮的代码。Android插件化技术不仅适用于快速修复bug,还可以快速上线新功能,从而在时间上和竞争对手抢占用户。本书详细介绍了插件化技术的各种方案,及其实现代码,并给出了应用场景。
【作者】
作者简介包建强 毕业于复旦大学数学系。先后在多家互联网公司担任无线部门技术总监,现在从事区块技术领域的研究,在Android、iOS、ReactNative等多门无线技术中跋涉过,在App的项目管理上也有多年的实践经验。他曾经出版了《App研发录》,并有一个坚持写了10年的技术博客:http://jax.cnblogs.com/,他的GitHub地址:https://github.com/BaoBaoJianqiang。
目录展开

序一

序二

序三

前言

第一部分 预备知识

第1章 插件化技术的昨天、今天与明天

1.1 插件化技术是什么

1.2 为什么需要插件化

1.3 插件化技术的历史

1.4 插件化技术的用途到底是什么

1.5 更好的替代品:React Native

1.6 只有中国这么玩吗

1.7 四大组件都需要插件化技术吗

1.8 双开和虚拟机

1.9 从原生页面到HTML 5的过渡

1.10 本章小结

第2章 Android底层知识

2.1 概述

2.2 Binder原理

2.3 AIDL原理

2.4 AMS

2.5 Activity工作原理

2.6 App内部的页面跳转

2.7 Context家族史

2.8 Service工作原理

2.9 BroadcastReceiver工作原理

2.10 ContentProvider工作原理

2.11 PMS及App安装过程

2.12 ClassLoader家族史

2.13 双亲委托

2.14 MultiDex

2.15 实现一个音乐播放器App

2.16 本章小结

第3章 反射

3.1 基本反射技术

3.2 jOOR

3.3 对基本反射语法的封装

3.4 对反射的进一步封装

3.5 本章小结

第4章 代理模式

4.1 概述

4.2 静态代理和动态代理

4.3 对AMN的Hook

4.4 对PMS的Hook

4.5 本章小结

第5章 对startActivity方法进行Hook

5.1 startActivity方法的两种形式

5.2 对Activity的startActivity方法进行Hook

5.3 对Context的startActivity方法进行Hook

5.4 启动没有在AndroidManifest中声明的Activity

5.5 本章小结

第二部分 解决方案

第6章 插件化技术基础知识

6.1 加载外部的dex

6.2 面向接口编程

6.3 插件的瘦身

6.4 对插件进行代码调试

6.5 Application的插件化解决方案

6.6 本章小结

第7章 资源初探

7.1 资源加载机制

7.2 资源的插件化解决方案

7.3 换肤

7.4 殊途同归:另一种换肤方式

7.5 本章小结

第8章 最简单的插件化解决方案

8.1 在AndroidManifest中声明插件中的组件

8.2 宿主App加载插件中的类

8.3 启动插件Service

8.4 加载插件中的资源

8.5 本章小结

第9章 Activity的插件化解决方案

9.1 启动没有在AndroidManifest中声明的插件Activity

9.2 基于动态替换的Activity插件化解决方案

9.3 加载插件中类的方案2:合并多个dex

9.4 为Activity解决资源问题

9.5 对LaunchMode的支持

9.6 加载插件中类的方案3:修改App原生的ClassLoader

9.7 本章小结

第10章 Service的插件化解决方案

10.1 Android界的荀彧和荀攸:Service和Activity

10.2 预先占位

10.3 startService的解决方案

10.4 bindService的解决方案

10.5 本章小结

第11章 BroadcastReceiver的插件化解决方案

11.1 Receiver概述

11.2 动态广播的插件化解决方案

11.3 静态广播的插件化解决方案

11.4 静态广播的插件化终极解决方案

11.5 本章小结

第12章 ContentProvider的插件化解决方案

12.1 ContentProvider基本概念

12.2 一个简单的ContentProvider例子

12.3 ContentProvider插件化

12.4 执行这段Hook代码的时机

12.5 ContentProvider的转发机制

12.6 本章小结

第13章 基于静态代理的插件化解决方案:that框架

13.1 静态代理的思想

13.2 一个最简单的静态代理的例子

13.3 插件内部的页面跳转

13.4 从“肉体”上消灭that关键字

13.5 插件向外跳转

13.6 面向接口编程在静态代理中的应用

13.7 对LaunchMode的支持

13.8 本章小结

第14章 that框架对Service和BroadcastReceiver的支持

14.1 静态代理的思想在Service的应用

14.2 对BindService的支持

14.3 Service的预先占位思想

14.4 Service插件化的终极解决方案:动静结合

14.5 静态代理的思想在BroadcastReceiver的应用

14.6 本章小结

第15章 再谈资源

15.1 Android App的打包流程

15.2 修改AAPT

15.3 public.xml固定资源id值

15.4 插件使用宿主的资源

15.5 本章小结

第16章 基于Fragment的插件化框架

16.1 AndroidDynamicLoader概述

16.2 最简单的Fragment插件化例子

16.3 插件内部的Fragment跳转

16.4 从插件的Fragment跳转到插件外部的Fragment

16.5 本章小结

第三部分 相关技术

第17章 降级

17.1 从Activity到HTML 5

17.2 从HTML 5到Activity

17.3 对返回键的支持

17.4 本章小结

第18章 插件的混淆

18.1 插件的基本混淆

18.2 方案1:不混淆公共库MyPluginLibrary

18.3 方案2:混淆公共库MyPluginLibrary

18.4 本章小结

第19章 增量更新

19.1 如何使用增量更新

19.2 制作插件的增量包

19.3 App下载增量包并解压到本地

19.4 App合并增量包

19.5 本章小结

第20章 so的插件化解决方案

20.1 编写一个最简单的so

20.2 使用so

20.3 so的加载原理

20.4 基于System.load的插件化解决方案

20.5 基于System.loadLibrary的插件化解决方案

20.6 本章小结

第21章 对App的打包流程进行Hook

21.1 自定义Gradle插件

21.2 修改resources.arsc

21.3 本章小结

第22章 插件化技术总结

22.1 插件的工程化

22.2 插件中类的加载

22.3 哪些地方可以Hook

22.4 Activity插件化的解决方案

22.5 资源的解决方案

22.6 Fragment是哪门哪派

22.7 Service、ContentProvider、BroadcastReceiver插件化的通用解决方案

22.8 特定于Service的插件化解决方案

22.9 特定于BroadcastReceiver的插件化解决方案

22.10 特定于ContentProvider的插件化解决方案

22.11 本章小结

附录

附录A 常用工具

附录B 本书代码索引

累计评论(0条) 0个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部