ASM全埋点开发实战
全新正版 极速发货
¥
64.82
6.5折
¥
99.8
全新
库存4件
作者王灼洲,张伟
出版社人民邮电出版社
ISBN9787115612618
出版时间2023-07
装帧平装
开本16开
定价99.8元
货号1202981477
上书时间2024-08-07
商品详情
- 品相描述:全新
- 商品描述
-
作者简介
王灼洲是《Android 全埋点解决方案》《iOS 全埋点解决方案》作者,担任数据治理研发部负责,有超过十年的Android & iOS 相关开发经验,是国内早期从事 Android 研发工作的工程师。
张伟,从事移动研发工作超过十年,在神策主要负责埋点技术研究工作。编写过Flutter全埋点解决方案。
目录
1Gradle插件介绍
1.1什么是Gradle插件/002
1.2Gradle基础知识/002
1.2.1学习前提/002
1.2.2Gradle项目结构/002
1.2.3生命周期/004
1.2.4ProjectAPI介绍/005
1.2.5Gradle任务介绍/007
1.2.6生命周期回调/013
1.2.7Gradle执行流程/018
1.2.8获取属性的几种常见方式/018
1.2.9任务执行后的几种状态/018
1.2.10增量构建/019
1.3插件类型/022
1.3.1脚本插件/022
1.3.2buildSrc插件/024
1.3.3单独项目插件/025
1.3.4单独项目插件优化/028
1.3.5插件使用方式/032
1.3.6小结/034
1.4Gradle扩展/035
1.4.1什么是扩展/035
1.4.2ExtensionContainerAPI介绍/035
1.4.3创建扩展/038
1.4.4添加和查找扩展/040
1.4.5扩展嵌套/042
1.4.6NamedDomainObjectContainer/043
1.5综合示例/050
1.5.1概述/050
1.5.2集成步骤/051
1.6插件发布/055
1.6.1GradlePluginPortal/055
1.6.2MavenCentral简介/059
1.6.3上传到MavenCentral/060
1.7插件调试/067
1.7.1输出日志/067
1.7.2断点调试/068
1.8小结/070
2Transform介绍
2.1Android应用的构建/072
2.1.1什么是APK文件/072
2.1.2什么是DEX文件/073
2.1.3Android应用的构建流程/073
2.2Transform简介/076
2.3Transform的简单应用/076
2.4TransformAPI详细介绍/079
2.4.1getName()/080
2.4.2getInputTypes()/081
2.4.3getScopes()/082
2.4.4transform()/085
2.4.5getReferencedScopes()/090
2.4.6isIncremental()/091
2.4.7isCacheable()/092
2.4.8getSecondaryFiles()/092
2.5Transform模板/094
2.6并发编译/101
2.7Transform原理介绍/102
2.8小结/106
3字节码基础
3.1Java虚拟机/108
3.2javap工具介绍/108
3.3特定名称介绍/113
3.3.1字段描述符、方法描述符/113
3.3.2全限定名/114
3.3.3和/116
3.4.class文件结构/117
3.4.1初识.class文件/117
3.4.2.class文件的组成/118
3.5小结/151
4字节码指令
4.1Java虚拟机栈/154
4.2栈帧/155
4.3局部变量表/156
4.4操作数栈/158
4.5字节码指令介绍/159
4.5.1加载和存储指令/160
4.5.2算术指令/163
4.5.3类型转换指令/166
4.5.4对象的创建和操作指令/167
4.5.5操作数栈管理指令/171
4.5.6控制转移指令/175
4.5.7方法调用和返回指令/179
4.5.8异常抛出指令/180
4.5.9同步指令/180
4.6方法调用/181
4.6.1invokevirtual指令/181
4.6.2invokestatic指令/182
4.6.3invokespecial指令/183
4.6.4invokeinterface指令/185
4.6.5方法调用指令的区别和方法分派/185
4.6.6invokedynamic指令/191
4.7案例分析/195
4.7.1System.out.println/195
4.7.2switch-case与String/195
4.7.3for循环原理/198
4.7.4try-catch-finally原理/198
4.8加载、链接、初始化/203
4.8.1加载时机/204
4.8.2加载过程/205
4.8.3字节码剖析/207
4.9字节码指令偏移/211
4.10Java虚拟机中的数据类型/212
4.10.1基本数据类型/213
4.10.2引用数据类型/214
4.11小结/214
5ASM基础
5.1ASM简介/216
5.2ASM组成/216
5.3ClassReaderAPI介绍/217
5.3.1构造方法/217
5.3.2accept()方法/219
5.4ClassVisitorAPI介绍/221
5.4.1ClassVisitor()构造方法/222
5.4.2visit()/223
5.4.3visitSource()/223
5.4.4visitModule()/223
5.4.5visitNestHost()/224
5.4.6visitNestMember()/227
5.4.7visitInnerClass()/228
5.4.8visitOuterClass()/228
5.4.9visitField()/228
5.4.10visitMethod()/229
5.4.11visitAnnotation()/230
5.4.12visitTypeAnnotation()/230
5.4.13visitPermittedSubclass()/232
5.4.14visitRecordComponent()/232
5.4.15visitEnd()/233
5.5ClassWriterAPI介绍/233
5.5.1构造方法/233
5.5.2toByteArray()/233
5.6类的转换和修改/235
5.6.1转换类的方式/235
5.6.2删除Class成员/239
5.6.3增加Class成员/240
5.6.4修改Class成员/242
5.7MethodVisitorAPI介绍/245
5.7.1visitParameter()/248
5.7.2visitAnnotationDefault()/249
5.7.3visitAnnotation()/249
5.7.4visitTypeAnnotation()/250
5.7.5visitAnnotableParameterCount()和visitParameterAnnotation()/251
5.7.6visitAttribute()/252
5.7.7visitCode()/252
5.7.8visitInsn()/252
5.7.9visitIntInsc()/253
5.7.10visitVarInsn()/253
5.7.11visitTypeInsn()/253
5.7.12visitFieldInsn()/254
5.7.13visitMethodInsn()/254
5.7.14visitInvokeDynamicInsn()/254
5.7.15visitLabel()/256
5.7.16visitJumpInsn()/256
5.7.17visitLdcInsn()/257
5.7.18visitIincInsn()/258
5.7.19visitTableSwitchInsn()/258
5.7.20visitLookupSwitchInsn()/259
5.7.21visitTryCatchBlock()/261
5.7.22visitLocalVariable和visitLineNumber()/261
5.7.23visitFrame()/261
5.7.24visitMaxs()/263
5.7.25visitEnd()/264
5.8方法的转换和修改/264
5.8.1方法生成/264
5.8.2删除方法和方法体内容/266
5.8.3优化方法中的指令/267
5.9ASM工具包介绍/269
5.9.1Type/269
5.9.2TraceClassVisitor/270
5.9.3CheckClassAdapter/271
5.9.4ASMifier/274
5.9.5TraceMethodVisitor/278
5.9.6CheckMethodAdapter/278
5.9.7LocalVariableSorter/278
5.9.8GeneratorAdapter/282
5.9.9AdviceAdapter/283
5.10其他实例/284
5.10.1方法替换/284
5.10.2方法参数复用/286
5.11小结/288
6ASM基础之TreeAPI
6.1TreeAPI简介/290
6.2ClassNodeAPI介绍/290
6.2.1类的生成/293
6.2.2类的转换和修改/294
6.3ClassNode与CoreAPI相互转换/295
6.3.1ClassNode的特性/296
6.3.2与CoreAPI相互转换/296
6.4MethodNodeAPI介绍/299
6.4.1方法的生成/303
6.4.2方法的转换和修改/304
6.5MethodNode与CoreAPI相互转换/305
6.5.1MethodNode的特性/305
6.5.2与CoreAPI相互转换/305
6.6CoreAPI和TreeAPI如何选择/307
6.7其他/307
6.7.1方法分析/307
6.7.2兼容性探讨/311
6.7.3Attribute/314
6.7.4ASM框架分析/315
6.8小结/322
7ASM实现全埋点——基础部分
7.1目标/324
7.2实现步骤/324
7.2.1创建Demo工程和SDK模块/324
7.2.2创建插件框架/328
7.2.3编写插件逻辑/332
7.2.4验证/335
7.2.5发布/336
7.3小结/336
8ASM实现全埋点——进阶部分
8.1黑名单/338
8.2防止多次插入/341
8.3方法前插还是后插/344
8.4支持Lambda和方法引用/346
8.4.1原因分析/346
8.4.2Lambda表达式的实现原理/347
8.4.3Lambda设计参考/360
8.4.4HookLambda和方法引用/365
8.5小结/376
9ASM实践分享和未来展望
9.1是否可以注册多个Transform/378
9.2插入代码是否会改变行号/378
9.3是否支持Kotlin/380
9.4ASM如何处理继承关系/381
9.4.1ClassLoader方式/382
9.4.2类图方式/384
9.5慎用static变量/384
9.6AGP7的变化/385
9.7小结/388
内容摘要
本书由业内专业团队神策数据的专业人士编写,结合实战案例,深入浅出地介绍了ASM技术和Android全埋点技术。作者从神策数据服务超过2000家客户的经历中,发现了行业用户对全埋点技术的迫切需求。本书针对这一点,详细、客观地阐述了ASM在Android全埋点中的应用,涵盖各种真实商业场景,并清晰地讲解其技术原理和实现步骤,以帮助用户利用好全埋点技术的特长和优势。本书作为一本技术参考书,特别适合非专业开发工程师在日常工作中使用。
主编推荐
1.开启数据新时代:由神策数据专业团队倾力打造,结合实战案例,通过深入浅出的方式,揭示了ASM技术和Android全埋点技术的奥秘。让您拥有玩转数据的先机!
2.行业优选技术:作者王灼洲、张伟是业内杰出人才,在移动开发领域有超过十年的经验,分别撰写过《Android 全埋点解决方案》和《iOS 全埋点解决方案》,为您呈现前沿的ASM技术和全埋点开发实践。
3.满足用户需求:行业用户对全埋点技术的需求迫切。本书详细、客观地阐述了ASM在Android全埋点中的应用。覆盖各种真实商业场景,并清晰地讲解其技术原理和实现步骤,助您充分利用全埋点技术的特长和优势。
4.非专业工程师的福音:作为一本技术参考书,本书特别适合非专业开发工程师在日常工作中使用。书中将复杂的技术内容解读为通俗易懂的语言,让您轻松掌握与自动化埋点相关的知识,实现数据采集的无缝衔接。
6.详尽深入的技术指南:无论是想学习技术的开发人员还是相关研究者,本书都是实用的参考书。涵盖插件开发和全埋点技术,详细介绍Android插件开发的基础知识,讲解字节码基础和ASM技术的应用。通过本书,您将掌握全埋点开发的核心概念和实现方法,能够独立完成插件开发和全埋点实践。
媒体评论
要想做好“数据”,重要的就是抓好数据源这一环。如何更好地实现数据采集,是一个很关键的问题。过去这八年,神策数据花了大量精力钻研数据采集技术,并将50 多个SDK 开源。为了更好地帮助技术工作者学习数据采集技术,我们编写了多本图书,本书就是其中一本。本书详细讲解了如何在Android系统下实现自动化埋点,并且总结了神策数据在实践中的经验,相信会让您有所收获。
神策数据创办人&CEO 桑文锋
本书是一本非常难得的实用指南。作者深入浅出、通俗易懂的讲解方式能让读者轻松掌握与自动化埋点相关的知识。对于任何对自动化埋点感兴趣的读者,本书都是一本值得阅读的图书。
神策数据联合创始人&CTO 曹犟
ASM 是一项“古老”的技术,但在数字化转型的大背景下,它因为可以实现非侵入式的自动化埋点,扩展出了一个新的应用场景。本书不仅是基于ASM 实现自动化埋点的技术指南,同时也在如何更好地应用老技术来实现全新业务价值这一点上,为我们提供了很好的视角和思路。
神策数据联合创办人& 技术VP 付力力
本书是一本全面深入的技术指南,涵盖插件开发和全埋点技术。书中详细介绍了Android 插件开发的基础知识,讲解了字节码基础和ASM 技术的应用。通过本书,读者将掌握全埋点开发的核心概念和实现方法,能够独立完成插件开发和全埋点实践。无论是想学习这些技术的开发人员还是相关研究者,本书都是实用的参考书。
神策数据首席架构师张铎
— 没有更多了 —
以下为对购买帮助不大的评价