中图网(原中国图书网):网上书店,尾货特色书店,30万种特价书低至2折!

歡迎光臨中圖網(wǎng) 請(qǐng) | 注冊(cè)

包郵 ASM全埋點(diǎn)開發(fā)實(shí)戰(zhàn)

出版社:人民郵電出版社出版時(shí)間:2023-07-01
開本: 16開 頁數(shù): 388
中 圖 價(jià):¥70.9(7.1折) 定價(jià)  ¥99.8 登錄后可看到會(huì)員價(jià)
加入購物車 收藏
開年大促, 全場(chǎng)包郵
?新疆、西藏除外
本類五星書更多>

ASM全埋點(diǎn)開發(fā)實(shí)戰(zhàn) 版權(quán)信息

ASM全埋點(diǎn)開發(fā)實(shí)戰(zhàn) 本書特色

1.開啟數(shù)據(jù)新時(shí)代:由神策數(shù)據(jù)專業(yè)團(tuán)隊(duì)傾力打造,結(jié)合實(shí)戰(zhàn)案例,通過深入淺出的方式,揭示了ASM技術(shù)和Android全埋點(diǎn)技術(shù)的奧秘。讓您擁有玩轉(zhuǎn)數(shù)據(jù)的先機(jī)!

2.行業(yè)先進(jìn)技術(shù):作者王灼洲、張偉是業(yè)內(nèi)杰出人才,在移動(dòng)開發(fā)領(lǐng)域有超過十年的經(jīng)驗(yàn),分別撰寫過《Android 全埋點(diǎn)解決方案》和《iOS 全埋點(diǎn)解決方案》,為您呈現(xiàn)前沿的ASM技術(shù)和全埋點(diǎn)開發(fā)實(shí)踐。

3.滿足用戶需求:行業(yè)用戶對(duì)全埋點(diǎn)技術(shù)的需求迫切。本書詳細(xì)、客觀地闡述了ASM在Android全埋點(diǎn)中的應(yīng)用。覆蓋各種真實(shí)商業(yè)場(chǎng)景,并清晰地講解其技術(shù)原理和實(shí)現(xiàn)步驟,助您充分利用全埋點(diǎn)技術(shù)的特長和優(yōu)勢(shì)。

4.非專業(yè)工程師的福音:作為一本技術(shù)參考書,本書特別適合非專業(yè)開發(fā)工程師在日常工作中使用。書中將復(fù)雜的技術(shù)內(nèi)容解讀為通俗易懂的語言,讓您輕松掌握與自動(dòng)化埋點(diǎn)相關(guān)的知識(shí),實(shí)現(xiàn)數(shù)據(jù)采集的無縫銜接。

6.詳盡深入的技術(shù)指南:無論是想學(xué)習(xí)技術(shù)的開發(fā)人員還是相關(guān)研究者,本書都是實(shí)用的參考書。涵蓋插件開發(fā)和全埋點(diǎn)技術(shù),詳細(xì)介紹Android插件開發(fā)的基礎(chǔ)知識(shí),講解字節(jié)碼基礎(chǔ)和ASM技術(shù)的應(yīng)用。通過本書,您將掌握全埋點(diǎn)開發(fā)的核心概念和實(shí)現(xiàn)方法,能夠獨(dú)立完成插件開發(fā)和全埋點(diǎn)實(shí)踐。

ASM全埋點(diǎn)開發(fā)實(shí)戰(zhàn) 內(nèi)容簡(jiǎn)介

本書由業(yè)內(nèi)專業(yè)團(tuán)隊(duì)神策數(shù)據(jù)的專業(yè)人士編寫,結(jié)合實(shí)戰(zhàn)案例,深入淺出地介紹了ASM技術(shù)和Android全埋點(diǎn)技術(shù)。 作者從神策數(shù)據(jù)服務(wù)超過2000家客戶的經(jīng)歷中,發(fā)現(xiàn)了行業(yè)用戶對(duì)全埋點(diǎn)技術(shù)的迫切需求。本書針對(duì)這一點(diǎn),詳細(xì)、客觀地闡述了ASM在Android全埋點(diǎn)中的應(yīng)用,涵蓋各種真實(shí)商業(yè)場(chǎng)景,并清晰地講解其技術(shù)原理和實(shí)現(xiàn)步驟,以幫助用戶利用好全埋點(diǎn)技術(shù)的特長和優(yōu)勢(shì)。 本書作為一本技術(shù)參考書,特別適合非專業(yè)開發(fā)工程師在日常工作中使用。

ASM全埋點(diǎn)開發(fā)實(shí)戰(zhàn) 目錄

1 Gradle插件介紹

1.1 什么是Gradle插件 /002

1.2 Gradle基礎(chǔ)知識(shí) /002

1.2.1 學(xué)習(xí)前提 /002

1.2.2 Gradle項(xiàng)目結(jié)構(gòu) /002

1.2.3 生命周期 /004

1.2.4 Project API介紹 /005

1.2.5 Gradle任務(wù)介紹 /007

1.2.6 生命周期回調(diào) /013

1.2.7 Gradle執(zhí)行流程 /018

1.2.8 獲取屬性的幾種常見方式 /018

1.2.9 任務(wù)執(zhí)行后的幾種狀態(tài) /018

1.2.10 增量構(gòu)建 /019

1.3 插件類型 /022

1.3.1 腳本插件 /022

1.3.2 buildSrc插件 /024

1.3.3 單獨(dú)項(xiàng)目插件 /025

1.3.4 單獨(dú)項(xiàng)目插件優(yōu)化 /028

1.3.5 插件使用方式 /032

1.3.6 小結(jié) /034

1.4 Gradle擴(kuò)展 /035

1.4.1 什么是擴(kuò)展 /035

1.4.2 ExtensionContainer API介紹 /035

1.4.3 創(chuàng)建擴(kuò)展 /038

1.4.4 添加和查找擴(kuò)展 /040

1.4.5 擴(kuò)展嵌套 /042

1.4.6 NamedDomainObjectContainer /043

1.5 綜合示例 /050

1.5.1 概述 /050

1.5.2 集成步驟 /051

1.6 插件發(fā)布 /055

1.6.1 Gradle Plugin Portal /055

1.6.2 Maven Central簡(jiǎn)介 /059

1.6.3 上傳到Maven Central /060

1.7 插件調(diào)試 /067

1.7.1 輸出日志 /067

1.7.2 斷點(diǎn)調(diào)試 /068

1.8 小結(jié) /070



2 Transform介紹

2.1 Android應(yīng)用的構(gòu)建 /072

2.1.1 什么是APK文件 /072

2.1.2 什么是DEX文件 /073

2.1.3 Android應(yīng)用的構(gòu)建流程 /073

2.2 Transform簡(jiǎn)介 /076

2.3 Transform的簡(jiǎn)單應(yīng)用 /076

2.4 Transform API詳細(xì)介紹 /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 并發(fā)編譯 /101

2.7 Transform原理介紹 /102

2.8 小結(jié) /106



3 字節(jié)碼基礎(chǔ)

3.1 Java虛擬機(jī) /108

3.2 javap工具介紹 /108

3.3 特定名稱介紹 /113

3.3.1 字段描述符、方法描述符 /113

3.3.2 全限定名 /114

3.3.3  和 /116

3.4 .class文件結(jié)構(gòu) /117

3.4.1 初識(shí) .class文件 /117

3.4.2 .class文件的組成 /118

3.5 小結(jié) /151



4 字節(jié)碼指令

4.1 Java虛擬機(jī)棧 /154

4.2 棧幀 /155

4.3 局部變量表 /156

4.4 操作數(shù)棧 /158

4.5 字節(jié)碼指令介紹 /159

4.5.1 加載和存儲(chǔ)指令 /160

4.5.2 算術(shù)指令 /163

4.5.3 類型轉(zhuǎn)換指令 /166

4.5.4 對(duì)象的創(chuàng)建和操作指令 /167

4.5.5 操作數(shù)棧管理指令 /171

4.5.6 控制轉(zhuǎn)移指令 /175

4.5.7 方法調(diào)用和返回指令 /179

4.5.8 異常拋出指令 /180

4.5.9 同步指令 /180

4.6 方法調(diào)用 /181

4.6.1 invokevirtual指令 /181

4.6.2 invokestatic指令 /182

4.6.3 invokespecial指令 /183

4.6.4 invokeinterface指令 /185

4.6.5 方法調(diào)用指令的區(qū)別和方法分派 /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循環(huán)原理 /198

4.7.4 try-catch-finally原理 /198

4.8 加載、鏈接、初始化 /203

4.8.1 加載時(shí)機(jī) /204

4.8.2 加載過程 /205

4.8.3 字節(jié)碼剖析 /207

4.9 字節(jié)碼指令偏移 /211

4.10 Java虛擬機(jī)中的數(shù)據(jù)類型 /212

4.10.1 基本數(shù)據(jù)類型 /213

4.10.2 引用數(shù)據(jù)類型 /214

4.11 小結(jié) /214



5 ASM基礎(chǔ)

5.1 ASM簡(jiǎn)介 /216

5.2 ASM組成 /216

5.3 ClassReader API介紹 /217

5.3.1 構(gòu)造方法 /217

5.3.2 accept()方法 /219

5.4 ClassVisitor API介紹 /221

5.4.1 ClassVisitor()構(gòu)造方法 /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 構(gòu)造方法 /233

5.5.2 toByteArray() /233

5.6 類的轉(zhuǎn)換和修改 /235

5.6.1 轉(zhuǎn)換類的方式 /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 方法的轉(zhuǎn)換和修改 /264

5.8.1 方法生成 /264

5.8.2 刪除方法和方法體內(nèi)容 /266

5.8.3 優(yōu)化方法中的指令 /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 其他實(shí)例 /284

5.10.1 方法替換 /284

5.10.2 方法參數(shù)復(fù)用 /286

5.11 小結(jié) /288



6 ASM基礎(chǔ)之Tree API

6.1 Tree API簡(jiǎn)介 /290

6.2 ClassNode API介紹 /290

6.2.1 類的生成 /293

6.2.2 類的轉(zhuǎn)換和修改 /294

6.3 ClassNode與Core API相互轉(zhuǎn)換 /295

6.3.1 ClassNode的特性 /296

6.3.2 與Core API相互轉(zhuǎn)換 /296

6.4 MethodNode API介紹 /299

6.4.1 方法的生成 /303

6.4.2 方法的轉(zhuǎn)換和修改 /304

6.5 MethodNode與Core API相互轉(zhuǎn)換 /305

6.5.1 MethodNode的特性 /305

6.5.2 與Core API相互轉(zhuǎn)換 /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 小結(jié) /322



7 ASM實(shí)現(xiàn)全埋點(diǎn)——基礎(chǔ)部分

7.1 目標(biāo) /324

7.2 實(shí)現(xiàn)步驟 /324

7.2.1 創(chuàng)建Demo工程和SDK模塊 /324

7.2.2 創(chuàng)建插件框架 /328

7.2.3 編寫插件邏輯 /332

7.2.4 驗(yàn)證 /335

7.2.5 發(fā)布 /336

7.3 小結(jié) /336



8 ASM實(shí)現(xiàn)全埋點(diǎn)——進(jìn)階部分

8.1 黑名單 /338

8.2 防止多次插入 /341

8.3 方法前插還是后插 /344

8.4 支持Lambda和方法引用 /346

8.4.1 原因分析 /346

8.4.2 Lambda表達(dá)式的實(shí)現(xiàn)原理 /347

8.4.3 Lambda設(shè)計(jì)參考 /360

8.4.4 Hook Lambda和方法引用 /365

8.5 小結(jié) /376



9 ASM實(shí)踐分享和未來展望

9.1 是否可以注冊(cè)多個(gè)Transform /378

9.2 插入代碼是否會(huì)改變行號(hào) /378

9.3 是否支持Kotlin /380

9.4 ASM如何處理繼承關(guān)系 /381

9.4.1 ClassLoader方式 /382

9.4.2 類圖方式 /384

9.5 慎用static變量 /384

9.6 AGP 7的變化 /385

9.7 小結(jié) /388
展開全部

ASM全埋點(diǎn)開發(fā)實(shí)戰(zhàn) 作者簡(jiǎn)介

王灼洲是《Android 全埋點(diǎn)解決方案》《iOS 全埋點(diǎn)解決方案》作者,擔(dān)任數(shù)據(jù)治理研發(fā)部負(fù)責(zé),有超過十年的Android & iOS 相關(guān)開發(fā)經(jīng)驗(yàn),是國內(nèi)早期從事 Android 研發(fā)工作的工程師。 張偉,從事移動(dòng)研發(fā)工作超過十年,在神策主要負(fù)責(zé)埋點(diǎn)技術(shù)研究工作。編寫過Flutter全埋點(diǎn)解決方案。

商品評(píng)論(0條)
暫無評(píng)論……
書友推薦
本類暢銷
返回頂部
中圖網(wǎng)
在線客服
主站蜘蛛池模板: 重庆钣金加工厂家首页-专业定做监控电视墙_操作台 | 深圳市宏康仪器科技有限公司-模拟高空低压试验箱-高温防爆试验箱-温控短路试验箱【官网】 | 合肥防火门窗/隔断_合肥防火卷帘门厂家_安徽耐火窗_良万消防设备有限公司 | 新能源汽车电机定转子合装机 - 电机维修设备 - 睿望达 | 上海公司注册-代理记账-招投标审计-上海昆仑扇财税咨询有限公司 上海冠顶工业设备有限公司-隧道炉,烘箱,UV固化机,涂装设备,高温炉,工业机器人生产厂家 | 中国玩具展_玩具展|幼教用品展|幼教展|幼教装备展 | 钢木实验台-全钢实验台-化验室通风柜-实验室装修厂家-杭州博扬实验设备 | 上海租车公司_上海包车_奔驰租赁_上海商务租车_上海谐焕租车 | 国资灵活用工平台_全国灵活用工平台前十名-灵活用工结算小帮手 | 上海风淋室_上海风淋室厂家_上海风淋室价格_上海伯淋 | 运动木地板厂家,篮球场木地板品牌,体育场馆木地板安装 - 欧氏运动地板 | 山东氧化铁红,山东铁红-淄博科瑞化工有限公司 | 耐酸泵,耐腐蚀真空泵,耐酸真空泵-淄博华舜耐腐蚀真空泵有限公司 精密模具-双色注塑模具加工-深圳铭洋宇通 | 压片机_高速_单冲_双层_花篮式_多功能旋转压片机-上海天九压片机厂家 | 大白菜官网,大白菜winpe,大白菜U盘装系统, u盘启动盘制作工具 | 智能气瓶柜(大型气瓶储存柜)百科| 碳钢法兰厂家,非标法兰,定制异型,法兰生产厂家-河北九瑞管道 | 华禹护栏|锌钢护栏_阳台护栏_护栏厂家-华禹专注阳台护栏、楼梯栏杆、百叶窗、空调架、基坑护栏、道路护栏等锌钢护栏产品的生产销售。 | VI设计-LOGO设计公司-品牌设计公司-包装设计公司-导视设计-杭州易象设计 | 福建珂朗雅装饰材料有限公司「官方网站」 | 安平县鑫川金属丝网制品有限公司,声屏障,高速声屏障,百叶孔声屏障,大弧形声屏障,凹凸穿孔声屏障,铁路声屏障,顶部弧形声屏障,玻璃钢吸音板 | 天津次氯酸钠酸钙溶液-天津氢氧化钠厂家-天津市辅仁化工有限公司 | 丁基胶边来料加工,医用活塞边角料加工,异戊二烯橡胶边来料加工-河北盛唐橡胶制品有限公司 | 包塑软管|金属软管|包塑金属软管-闵彬管业 | 垃圾压缩设备_垃圾处理设备_智能移动式垃圾压缩设备--山东明莱环保设备有限公司 | 广州展览设计公司_展台设计搭建_展位设计装修公司-众派展览装饰 广州展览制作工厂—[优简]直营展台制作工厂_展会搭建资质齐全 | 科普仪器菏泽市教育教学仪器总厂| 上海宿田自动化设备有限公司-双面/平面/单面贴标机 | 圆盘鞋底注塑机_连帮鞋底成型注塑机-温州天钢机械有限公司 | 刹车盘机床-刹车盘生产线-龙口亨嘉智能装备 | 比亚迪叉车-比亚迪电动叉车堆垛车托盘车仓储叉车价格多少钱报价 磁力去毛刺机_去毛刺磁力抛光机_磁力光饰机_磁力滚抛机_精密金属零件去毛刺机厂家-冠古科技 | 煤矿人员精确定位系统_矿用无线通信系统_煤矿广播系统 | 高精度电阻回路测试仪-回路直流电阻测试仪-武汉特高压电力科技有限公司 | 对照品_中药对照品_标准品_对照药材_「格利普」高纯中药标准品厂家-成都格利普生物科技有限公司 澳门精准正版免费大全,2025新澳门全年免费,新澳天天开奖免费资料大全最新,新澳2025今晚开奖资料,新澳马今天最快最新图库 | 定制/定做衬衫厂家/公司-衬衫订做/订制价格/费用-北京圣达信 | 列管冷凝器,刮板蒸发器,外盘管反应釜厂家-无锡曼旺化工设备有限公司 | 陕西鹏展科技有限公司 | 螺纹三通快插接头-弯通快插接头-宁波舜驰气动科技有限公司 | 北京银联移动POS机办理_收银POS机_智能pos机_刷卡机_收银系统_个人POS机-谷骐科技【官网】 | 低噪声电流前置放大器-SR570电流前置放大器-深圳市嘉士达精密仪器有限公司 | 游泳池设备安装工程_恒温泳池设备_儿童游泳池设备厂家_游泳池水处理设备-东莞市君达泳池设备有限公司 |