您好,欢迎来到聚文网。
登录
免费注册
网站首页
|
搜索
热搜:
画笔
|
马克笔
|
购物车
0
我的订单
商品分类
首页
幼儿
文学
社科
教辅
生活
销量榜
ASM全埋点开发实战
字数: 627
出版社: 人民邮电
作者: 王灼洲 张伟
商品条码: 9787115612618
版次: 1
开本: 16开
页数: 388
出版年份: 2023
印次: 1
定价:
¥99.8
销售价:
登录后查看价格
¥{{selectedSku?.salePrice}}
库存:
{{selectedSku?.stock}}
库存充足
{{item.title}}:
{{its.name}}
加入购物车
立即购买
加入书单
收藏
精选
¥5.83
世界图书名著昆虫记绿野仙踪木偶奇遇记儿童书籍彩图注音版
¥5.39
正版世界名著文学小说名家名译中学生课外阅读书籍图书批发 70册
¥8.58
简笔画10000例加厚版2-6岁幼儿童涂色本涂鸦本绘画本填色书正版
¥5.83
世界文学名著全49册中小学生青少年课外书籍文学小说批发正版
¥4.95
全优冲刺100分测试卷一二三四五六年级上下册语文数学英语模拟卷
¥8.69
父与子彩图注音完整版小学生图书批发儿童课外阅读书籍正版1册
¥24.2
好玩的洞洞拉拉书0-3岁宝宝早教益智游戏书机关立体翻翻书4册
¥7.15
幼儿认字识字大王3000字幼儿园中班大班学前班宝宝早教启蒙书
¥11.55
用思维导图读懂儿童心理学培养情绪管理与性格培养故事指导书
¥19.8
少年读漫画鬼谷子全6册在漫画中学国学小学生课外阅读书籍正版
¥64
科学真好玩
¥12.7
一年级下4册·读读童谣和儿歌
¥38.4
原生态新生代(传统木版年画的当代传承国际研讨会论文集)
¥11.14
法国经典中篇小说
¥11.32
上海的狐步舞--穆时英(中国现代文学馆馆藏初版本经典)
¥22.05
猫的摇篮(精)
¥30.72
幼儿园特色课程实施方案/幼儿园生命成长启蒙教育课程丛书
¥24.94
旧时风物(精)
¥12.04
三希堂三帖/墨林珍赏
¥6.88
寒山子庞居士诗帖/墨林珍赏
¥6.88
苕溪帖/墨林珍赏
¥6.88
楷书王维诗卷/墨林珍赏
¥9.46
兰亭序/墨林珍赏
¥7.74
祭侄文稿/墨林珍赏
¥7.74
蜀素帖/墨林珍赏
¥12.04
真草千字文/墨林珍赏
¥114.4
进宴仪轨(精)/中国古代舞乐域外图书
¥24.94
舞蹈音乐的基础理论与应用
内容简介
本书由业内专业团队神策数据的专业人士编写,结合实战案例,深入浅出地介绍了ASM技术和Android全埋点技术。 作者从神策数据服务超过2000家客户的经历中,发现了行业用户对全埋点技术的迫切需求。本书针对这一点,详细、客观地阐述了ASM在Android全埋点中的应用,涵盖各种真实商业场景,并清晰地讲解其技术原理和实现步骤,以帮助用户利用好全埋点技术的特长和优势。 本书作为一本技术参考书,特别适合非专业开发工程师在日常工作中使用。
作者简介
王灼洲是《Android 全埋点解决方案》《iOS 全埋点解决方案》作者,担任数据治理研发部负责,有超过十年的Android & iOS 相关开发经验,是国内早期从事 Android 研发工作的工程师。 张伟,从事移动研发工作超过十年,在神策主要负责埋点技术研究工作。编写过Flutter全埋点解决方案。
目录
1 Gradle插件介绍 1.1 什么是Gradle插件 /002 1.2 Gradle基础知识 /002 1.2.1 学习前提 /002 1.2.2 Gradle项目结构 /002 1.2.3 生命周期 /004 1.2.4 Project API介绍 /005 1.2.5 Gradle任务介绍 /007 1.2.6 生命周期回调 /013 1.2.7 Gradle执行流程 /018 1.2.8 获取属性的几种常见方式 /018 1.2.9 任务执行后的几种状态 /018 1.2.10 增量构建 /019 1.3 插件类型 /022 1.3.1 脚本插件 /022 1.3.2 buildSrc插件 /024 1.3.3 单独项目插件 /025 1.3.4 单独项目插件优化 /028 1.3.5 插件使用方式 /032 1.3.6 小结 /034 1.4 Gradle扩展 /035 1.4.1 什么是扩展 /035 1.4.2 ExtensionContainer API介绍 /035 1.4.3 创建扩展 /038 1.4.4 添加和查找扩展 /040 1.4.5 扩展嵌套 /042 1.4.6 NamedDomainObjectContainer /043 1.5 综合示例 /050 1.5.1 概述 /050 1.5.2 集成步骤 /051 1.6 插件发布 /055 1.6.1 Gradle Plugin Portal /055 1.6.2 Maven Central简介 /059 1.6.3 上传到Maven Central /060 1.7 插件调试 /067 1.7.1 输出日志 /067 1.7.2 断点调试 /068 1.8 小结 /070 2 Transform介绍 2.1 Android应用的构建 /072 2.1.1 什么是APK文件 /072 2.1.2 什么是DEX文件 /073 2.1.3 Android应用的构建流程 /073 2.2 Transform简介 /076 2.3 Transform的简单应用 /076 2.4 Transform API详细介绍 /079 2.4.1 getName() /080 2.4.2 getInputTypes() /081 2.4.3 getScopes() /082 2.4.4 transform() /085 2.4.5 getReferencedScopes() /090 2.4.6 isIncremental() /091 2.4.7 isCacheable() /092 2.4.8 getSecondaryFiles() /092 2.5 Transform模板 /094 2.6 并发编译 /101 2.7 Transform原理介绍 /102 2.8 小结 /106 3 字节码基础 3.1 Java虚拟机 /108 3.2 javap工具介绍 /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.1 Java虚拟机栈 /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.1 invokevirtual指令 /181 4.6.2 invokestatic指令 /182 4.6.3 invokespecial指令 /183 4.6.4 invokeinterface指令 /185 4.6.5 方法调用指令的区别和方法分派 /185 4.6.6 invokedynamic指令 /191 4.7 案例分析 /195 4.7.1 System.out.println /195 4.7.2 switch-case与String /195 4.7.3 for循环原理 /198 4.7.4 try-catch-finally原理 /198 4.8 加载、链接、初始化 /203 4.8.1 加载时机 /204 4.8.2 加载过程 /205 4.8.3 字节码剖析 /207 4.9 字节码指令偏移 /211 4.10 Java虚拟机中的数据类型 /212 4.10.1 基本数据类型 /213 4.10.2 引用数据类型 /214 4.11 小结 /214 5 ASM基础 5.1 ASM简介 /216 5.2 ASM组成 /216 5.3 ClassReader API介绍 /217 5.3.1 构造方法 /217 5.3.2 accept()方法 /219 5.4 ClassVisitor API介绍 /221 5.4.1 ClassVisitor()构造方法 /222 5.4.2 visit() /223 5.4.3 visitSource() /223 5.4.4 visitModule() /223 5.4.5 visitNestHost() /224 5.4.6 visitNestMember() /227 5.4.7 visitInnerClass() /228 5.4.8 visitOuterClass() /228 5.4.9 visitField() /228 5.4.10 visitMethod() /229 5.4.11 visitAnnotation() /230 5.4.12 visitTypeAnnotation() /230 5.4.13 visitPermittedSubclass() /232 5.4.14 visitRecordComponent() /232 5.4.15 visitEnd() /233 5.5 ClassWriter API介绍 /233 5.5.1 构造方法 /233 5.5.2 toByteArray() /233 5.6 类的转换和修改 /235 5.6.1 转换类的方式 /235 5.6.2 删除Class成员 /239 5.6.3 增加Class成员 /240 5.6.4 修改Class成员 /242 5.7 MethodVisitor API介绍 /245 5.7.1 visitParameter() /248 5.7.2 visitAnnotationDefault() /249 5.7.3 visitAnnotation() /249 5.7.4 visitTypeAnnotation() /250 5.7.5 visitAnnotableParameterCount()和visitParameterAnnotation() /251 5.7.6 visitAttribute() /252 5.7.7 visitCode() /252 5.7.8 visitInsn() /252 5.7.9 visitIntInsc() /253 5.7.10 visitVarInsn() /253 5.7.11 visitTypeInsn() /253 5.7.12 visitFieldInsn() /254 5.7.13 visitMethodInsn() /254 5.7.14 visitInvokeDynamicInsn() /254 5.7.15 visitLabel() /256 5.7.16 visitJumpInsn() /256 5.7.17 visitLdcInsn() /257 5.7.18 visitIincInsn() /258 5.7.19 visitTableSwitchInsn() /258 5.7.20 visitLookupSwitchInsn() /259 5.7.21 visitTryCatchBlock() /261 5.7.22 visitLocalVariable和visitLineNumber() /261 5.7.23 visitFrame() /261 5.7.24 visitMaxs() /263 5.7.25 visitEnd() /264 5.8 方法的转换和修改 /264 5.8.1 方法生成 /264 5.8.2 删除方法和方法体内容 /266 5.8.3 优化方法中的指令 /267 5.9 ASM工具包介绍 /269 5.9.1 Type /269 5.9.2 TraceClassVisitor /270 5.9.3 CheckClassAdapter /271 5.9.4 ASMifier /274 5.9.5 TraceMethodVisitor /278 5.9.6 CheckMethodAdapter /278 5.9.7 LocalVariableSorter /278 5.9.8 GeneratorAdapter /282 5.9.9 AdviceAdapter /283 5.10 其他实例 /284 5.10.1 方法替换 /284 5.10.2 方法参数复用 /286 5.11 小结 /288 6 ASM基础之Tree API 6.1 Tree API简介 /290 6.2 ClassNode API介绍 /290 6.2.1 类的生成 /293 6.2.2 类的转换和修改 /294 6.3 ClassNode与Core API相互转换 /295 6.3.1 ClassNode的特性 /296 6.3.2 与Core API相互转换 /296 6.4 MethodNode API介绍 /299 6.4.1 方法的生成 /303 6.4.2 方法的转换和修改 /304 6.5 MethodNode与Core API相互转换 /305 6.5.1 MethodNode的特性 /305 6.5.2 与Core API相互转换 /305 6.6 Core API和Tree API如何选择 /307 6.7 其他 /307 6.7.1 方法分析 /307 6.7.2 兼容性探讨 /311 6.7.3 Attribute /314 6.7.4 ASM框架分析 /315 6.8 小结 /322 7 ASM实现全埋点——基础部分 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 8 ASM实现全埋点——进阶部分 8.1 黑名单 /338 8.2 防止多次插入 /341 8.3 方法前插还是后插 /344 8.4 支持Lambda和方法引用 /346 8.4.1 原因分析 /346 8.4.2 Lambda表达式的实现原理 /347 8.4.3 Lambda设计参考 /360 8.4.4 Hook Lambda和方法引用 /365 8.5 小结 /376 9 ASM实践分享和未来展望 9.1 是否可以注册多个Transform /378 9.2 插入代码是否会改变行号 /378 9.3 是否支持Kotlin /380 9.4 ASM如何处理继承关系 /381 9.4.1 ClassLoader方式 /382 9.4.2 类图方式 /384 9.5 慎用static变量 /384 9.6 AGP 7的变化 /385 9.7 小结 /388
×
Close
添加到书单
加载中...
点此新建书单
×
Close
新建书单
标题:
简介:
蜀ICP备2024047804号
Copyright 版权所有 © jvwen.com 聚文网