当前位置:主页 > 计算机电子书 > 移动开发 > Android开发下载
Android插件化开发指南

Android插件化开发指南 PDF 完整超清版

  • 更新:2023-10-27
  • 大小:181.1 MB
  • 类别:Android开发
  • 作者:包建强
  • 出版:机械工业出版社
  • 格式:PDF

  • 资源介绍
  • 相关推荐

《Android插件化开发指南》是一本非常实用的书籍,对于想要深入了解并应用Android插件化技术的开发者来说,是一本不可多得的指南。书中详细介绍了Android插件化开发的实现原理和方法,以及如何利用插件化技术修复线上的bug或者推出新功能,而不需要发布新版本。对于日活千万的App来说,这是非常重要的,能够极大地提升开发效率,节省时间和资源。通过阅读本书,开发者可以快速掌握插件化开发的技巧,从而更好地应用在移动开发中。

Android插件化开发指南

Android插件化开发指南

内容介绍

Android插件化技术广泛应用在移动开发中,通过插件化技术,AndroidApp可以不通过发布新版本而修复线上的bug或者推出新功能,这对于日活千万的App而言是非常重要的,可极大程度提升App开发效率和质量。本书详细介绍了插件化技术的原理、各种方案,及其在AndroidApp中的使用。在介绍插件化技术的同时,还详细介绍了Android底层知识,能帮助AndroidApp开发人员更好地掌握Android的开发技术。本书共22章,先介绍Android插件化技术的历史和现状,系统介绍了Android的底层知识以及反射、代理等技术;然后介绍插件化技术的基本知识,包括各类插件化解决方案及其对比;之后分析了一些插件化框架,如that、Zeus等,深入分析了资源及其在插件化中的应用,以及混淆、增量更新等周边技术的插件化解决方案。

目录

  • 第一部分 预备知识
  • 第1章 插件化技术的昨天、今天与明天2
  • 1.1 插件化技术是什么2
  • 1.2 为什么需要插件化3
  • 1.3 插件化技术的历史3
  • 1.4 插件化技术的用途到底是什么8
  • 1.5 更好的替代品:React Native8
  • 1.6 只有中国这么玩吗9
  • 1.7 四大组件都需要插件化技术吗10
  • 1.8 双开和虚拟机10
  • 1.9 从原生页面到HTML 5的过渡11
  • 1.10 本章小结12
  • 第2章 Android底层知识13
  • 2.1 概述13
  • 2.2 Binder原理14
  • 2.3 AIDL原理16
  • 2.4 AMS20
  • 2.5 Activity工作原理21
  • 2.5.1 App是怎么启动的21
  • 2.5.2 启动App并非那么简单21
  • 2.6 App内部的页面跳转32
  • 2.7 Context家族史34
  • 2.8 Service工作原理36
  • 2.8.1 在新进程启动Service36
  • 2.8.2 启动同一进程的Service39
  • 2.8.3 在同一进程绑定Service39
  • 2.9 BroadcastReceiver工作原理41
  • 2.9.1 注册过程43
  • 2.9.2 发送广播的流程44
  • 2.9.3 广播的种类45
  • 2.10 ContentProvider工作原理46
  • 2.10.1 ContentProvider的本质49
  • 2.10.2 匿名共享内存(ASM)49
  • 2.10.3 ContentProvider与AMS的通信流程50
  • 2.11 PMS及App安装过程52
  • 2.11.1 PMS简介52
  • 2.11.2 App的安装流程52
  • 2.11.3 PackageParser53
  • 2.11.4 ActivityThread与PackageManager54
  • 2.12 ClassLoader家族史55
  • 2.13 双亲委托57
  • 2.14 MultiDex57
  • 2.15 实现一个音乐播放器App59
  • 2.15.1 基于两个Receiver的音乐播放器59
  • 2.15.2 基于一个Receiver的音乐播放器63
  • 2.16 本章小结68
  • 第3章 反射70
  • 3.1 基本反射技术70
  • 3.1.1 根据一个字符串得到一个类70
  • 3.1.2 获取类的成员71
  • 3.1.3 对泛型类的反射75
  • 3.2 jOOR77
  • 3.2.1 根据一个字符串得到一个类78
  • 3.2.2 获取类的成员78
  • 3.2.3 对泛型类的反射79
  • 3.3 对基本反射语法的封装80
  • 3.3.1 反射出一个构造函数81
  • 3.3.2 调用实例方法81
  • 3.3.3 调用静态方法82
  • 3.3.4 获取并设置一个字段的值82
  • 3.3.5 对泛型类的处理83
  • 3.4 对反射的进一步封装84
  • 3.5 本章小结88
  • 第4章 代理模式89
  • 4.1 概述89
  • 4.1.1 远程代理(AIDL)90
  • 4.1.2 保护代理(权限控制)92
  • 4.1.3 虚代理(图片占位)92
  • 4.1.4 协作开发(Mock Class)92
  • 4.1.5 给生活加点料(记日志)93
  • 4.2 静态代理和动态代理94
  • 4.3 对AMN的Hook95
  • 4.4 对PMS的Hook97
  • 4.5 本章小结98
  • 第5章 对startActivity方法进行Hook99
  • 5.1 startActivity方法的两种形式99
  • 5.2 对Activity的startActivity方法进行Hook100
  • 5.2.1 方案1:重写Activity的startActivityForResult方法102
  • 5.2.2 方案2:对Activity的mInstrumentation字段进行Hook102
  • 5.2.3 方案3:对AMN的getDefault方法进行Hook104
  • 5.2.4 方案4:对H类的mCallback字段进行Hook107
  • 5.2.5 方案5:再次对Instrumentation字段进行Hook109
  • 5.3 对Context的startActivity方法进行Hook111
  • 5.3.1 方案6:对ActivityThread的mInstrumentation字段进行Hook111
  • 5.3.2 对AMN的getDafault方法进行Hook是一劳永逸的113
  • 5.4 启动没有在AndroidManifest中声明的Activity113
  • 5.4.1 “欺骗AMS”的策略分析114
  • 5.4.2 Hook的上半场115
  • 5.4.3 Hook的下半场:对H类的mCallback字段进行Hook118
  • 5.4.4 Hook的下半场:对ActivityThread的mInstrumentation字段进行Hook119
  • 5.4.5 “欺骗AMS”的弊端121
  • 5.5 本章小结121
  • 第二部分 解决方案
  • 第6章 插件化技术基础知识124
  • 6.1 加载外部的dex124
  • 6.2 面向接口编程126
  • 6.3 插件的瘦身129
  • 6.4 对插件进行代码调试131
  • 6.5 Application的插件化解决方案133
  • 6.6 本章小结134
  • 第7章 资源初探135
  • 7.1 资源加载机制135
  • 7.1.1 资源分类135
  • 7.1.2 剪不断理还乱:Resources和AssetManager136
  • 7.2 资源的插件化解决方案137
  • 7.3 换肤141
  • 7.4 殊途同归:另一种换肤方式149
  • 7.5 本章小结149
  • 第8章 最简单的插件化解决方案150
  • 8.1 在AndroidManifest中声明插件中的组件150
  • 8.2 宿主App加载插件中的类151
  • 8.3 启动插件Service152
  • 8.4 加载插件中的资源152
  • 8.5 本章小结154
  • 第9章 Activity的插件化解决方案155
  • 9.1 启动没有在AndroidManifest中声明的插件Activity155
  • 9.2 基于动态替换的Activity插件化解决方案159
  • 9.2.1 Android启动Activity的原理分析159
  • 9.2.2 故意命中缓存160
  • 9.2.3 加载插件中类的方案1:为每个插件创建一个ClassLoader164
  • 9.2.4 为了圆一个谎言而编造更多的谎言164
  • 9.3 加载插件中类的方案2:合并多个dex166
  • 9.4 为Activity解决资源问题169
  • 9.5 对LaunchMode的支持169
  • 9.6 加载插件中类的方案3:修改App原生的ClassLoader172
  • 9.7 本章小结174
  • 第10章 Service的插件化解决方案175
  • 10.1 Android界的荀彧和荀攸:Service和Activity175
  • 10.2 预先占位176
  • 10.3 startService的解决方案178
  • 10.4 bindService的解决方案183
  • 10.5 本章小结185
  • 第11章 BroadcastReceiver的插件化解决方案186

资源下载

资源下载地址1:https://pan.baidu.com/s/1M7jKsId7Roqb56NYUF-0cQ

相关资源

网友留言