写点什么

华为云 APM 非侵入式移动 APP 埋点技术分析

  • 2020-03-31
  • 本文字数:2204 字

    阅读完需:约 7 分钟

华为云APM非侵入式移动APP埋点技术分析

华为云近期推出重磅新特性——端到云全链路应用性能管理,其中,移动 APP 的数据分析是非常重要的一部分。与业内使用 SDK 的方式接入移动端数据不同,华为云采用的业界首发非侵入式接入“黑科技”,本文将分析华为云是如何做到的。

移动 APP 的发展

随着移动互联网的兴起,基于 Android 的移动 APP 数量呈现井喷式的增长。由此带动的不仅仅是智能手机行业的发展,而且带动了移动 APP 性能管理行业的发展。同时,越来越多的移动 APP 开发企业把目光投向了传统 APM 行业,希望传统 APM 企业能够提供移动 APP 的性能管理解决方案来减少企业的移动 APP 运维成本。

移动 APP 的运维困局

移动 APP 的运维不同于传统服务运维,由于移动 APP 运行在用户的手机上,开发者无法直接获取 APP 的运行状况,很难判断 APP 的用户体验。因此如果需要了解移动 APP 的用户体验,开发者一般会在业务代码中增加获取用户非隐私数据的代码,比如说获取 http 请求时延,获取 http 请求吞吐量等。但是这种方式将会极大的增加开发人员的工作,同时也需要开发者搭建一套处理运维数据的后台系统,这对于企业来讲成本开销很大。在本文接下来的篇幅中,我们会着重于讲解如何获取 APP 运行时数据。

侵入式 SDK 埋点

Android 为了更好让开发者收集 APP 运行时数据,提供了一个可以再代码编译期修改安卓运行字节码的解决方案,目前各大移动 APM 提供商使用的都是这套解决方案,通过修改字节码完成通用三方包的埋点来获取 APP 运行期数据。但是,这个解决方案依然需要开发者在编码阶段对业务代码进行修改,代码修改难度和修改量取决于 APM 提供商给出的 SDK 开发指南。可以说 SDK 集成的方式帮助开发者免去了搭建移动 APP 运维系统的烦恼,但是仍然需要开发者将 SDK 集成到业务代码中,从开发的角度讲,并没有真正减轻移动 APP 开发者的工作。

非侵入式埋点解决方案

为了进一步减少开发者的工作,华为独家提供了更加简便的非侵入式埋点解决方案。通过这个解决方案,开发者只需一个命令就能完成整个 APP 的埋点工作,无需 SDK 集成,无需编译发布,无需搭建运维系统。华为真正做到了移动 APP 埋点的非侵入式:一个命令行,解决所有问题。


非侵入式技术解密

  • 技术原理

  • 非侵入式埋点技术源自于 gihub 的 dexlib2 开源项目,而移动 APP 开发者熟悉的项目 apktool 使用的就是 dexlib2,实际上,dexlib2 就是 android 虚拟机 Dalvik 上的字节码解析库。它提供了将 Dalvik 字节码翻译成 smali 汇编码的方法,同时也提供了将 smali 汇编码打包成 Dalvik 字节码的方法。


我们通过深入研究提出了一套基于 dexlib2 解析库的非侵入式埋点框架。基本原理就是通过 dexlib2 将开发者已经生成 apk 进行字节码翻译成 smali 汇编码,在翻译的过程中对指定的代码进行埋点,达到非侵入式埋点的效果,最后通过 dexlib2 重新将开发者的 apk 进行打包还原,完成整个 apk 的埋点。而在整个过程中,开发者完全不感知埋点过程,也不感知任何代码变化,同时经过我们的精心优化,埋点后的代码对于整个 APP 业务影响非常小,可以忽略不计。


最后,埋点过后的代码也支持开发者使用 apktool 工具进行查看和验证,开发者可以清晰的看到所有代码的改动之处,完全透明。


下面是业界通用的 SDK 埋点采集和我们非侵入式采集的对比图:



  • 技术框架

  • 基于 dexlib2 开发的非侵入式开发框架支持开发者通过配置文件自定义埋点类型、埋点包以及埋点函数。可以说,开发者可以根据配置文件来定义整个埋点过程。下面的示意图展示了我们非侵入式埋点的架构设计:



可以看到,上述架构设计下的非侵入式埋点框架自由度非常灵活,拥有无限扩展和自由定制的能力,所有的三方开源包都支持可插拔。用户可以通过配置文件自由选择自己想埋点的三方包,函数和埋点类型。我们甚至可以很轻松的接纳某些特殊用户的定制类需求。


截至目前,我们已经开发出来的插件包括:Okhttp,Okhttp3,Volley,HttpUrlConnection 等,后续插件还在努力研发中。


为了获取三方开源软件中的运行数据,非侵入式数据采集框架是通过不同埋点类型来获取的,具体介绍如下:


1.环绕型埋点:在关键函数调用点增加 before 和 after 函数,获取函数调用前后的参数变化,返回值等信息。


2.Getter/Setter 型埋点:对私有类型的类成员变量增加 getter/setter 函数,获取 APP 运行期关键数据信息。


3.函数入口型埋点:在关键函数第一行增加调用配置文件指定的静态函数,用来统计函数入口相关信息,同时也可以对函数参数注入跟踪信息。


4.函数替换型埋点:将所有关键函数的调用替换为配置文件指定的静态函数,为用户提供灵活的关键函数 mock 能力。


使用上述四种埋点类型,我们基本上可以获取三方开源库中的任何数据,不仅如此,我们还可以根据客户的要求来定制更多的埋点类型, 只有客户想不到,没有我们做不到。通过非侵入式埋点框架,我们可以将移动 APP 的运行状态纤毫毕现的呈现给开发者。


目前,非侵入式埋点技术已经在华为云 APM 的 Mobile 监控中使用,已经历实际工程的考验,希望大家可以多多关注。

结语

一切都是为了更好的服务消费者,华为始终以客户为中心的价值观永远不会变,我们对开发者提供的非侵入式埋点框架和运维系统就如同一套顶级的体检系统一样,将使用权完全的交给开发者,开发者通过最简单的使用方式,最强大的数据采集方式与数据分析系统来完成移动 APP 的诊断和体检。


本文转载自 华为云产品与解决方案 公众号。


原文链接:https://mp.weixin.qq.com/s/XZEHjA_w_YJgCrYCfGe5Tg


2020-03-31 14:451920

评论

发布
暂无评论
发现更多内容

如何塑造全方位安全远控,贝锐向日葵安全体系解析

科技热闻

同一天!国内AI杀疯了!蚂蚁集团宣布将发布3款AI新产品!腾讯、零一万物、面壁智能推出最新大模型|AI日报

可信AI进展

AE插件-漂亮真实高级辉光发光插件 Deep Glow v1.5.7 Win/Mac苹果版

Rose

PS插件眼睛糖果滤镜Alien Skin Eye Candy插件安装教程 Mac苹果版/win

Rose

2024年网络安全周相关知识汇总

行云管家

网络安全 网络安全周

京东商品列表数据接口为价格监控带来的便利

tbapi

京东API接口 京东商品列表数据接口

PingCAP 荣登 2024 Cloud 100 China 榜单第七

先锋IT

提前锁定!2024云栖大会大数据AI参会攻略来啦

阿里云大数据AI技术

大数据 阿里云 AI 云栖大会

e3d插件下载Video Copilot Element 3D AE三维模型安装教程 支持M1/M2

Rose

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出

汀丶人工智能

TTS 文转语音

自定义界面扫码,满足应用个性化定制需求

HarmonyOS SDK

HarmonyOS

aftercodecs(AE/PR/AME渲染队列插件)

Rose

怪兽AI知识库:智能时代的企业大脑、企业知识管理

Mr_song

大模型 知识库 知识库管理 知识库工具 知识库软件

FCPX插件-15个镜头漏光散景光效转场过渡动画预设 Light Leaks Transitions

Rose

中文版PS插件-胶片调色降噪锐化HDR图像处理特效滤镜Nik Collection 6.12.0 Win/Mac

Rose

客户管理太难了?你可能忽视了这些常见问题!

天津汇柏科技有限公司

低代码平台 客户关系管理系统 #人工智能

百度营销平台轻舸升级:AI MAX平均转化率提升7.2%

极客天地

人工智能 | Hugging Face 的应用

测吧(北京)科技有限公司

测试

怪兽 AI 知识库:搭建知识库与训练垂类大模型的创新解决方案

Mr_song

AI大模型 大模型 知识库 企业知识库

PS笔刷: 标记笔刷

Rose

基于51单片机+SHT30设计的环境温度与湿度检测设备(IIC模拟时序)

DS小龙哥

9月月更

深入探索AI文生语音技术的奥秘:从文本输入到逼真语音输出的全链条语音合成过程解析

汀丶人工智能

语音识别 TTS

企业如何治理“两高一弱”?

芯盾时代

身份认证 iam 网络安全、攻防演练

人工智能 | Hugging Face 的应用

测试人

人工智能 软件测试

OpenAI 联合 SWE 发布 AI 软件工程能力测试集,Gru.ai 荣登榜首

极客天地

淘宝商品详情API中的优惠券与红包信息解析

代码忍者

API 测试 API 策略

PS一键磨皮插件Delicious Retouch for mac(DR5白金版)

Rose

FXGradient (AE颜色渐变快速生成器) v1.2 Mac/win

Rose

怪兽AI知识库:企业内部知识库搭建的智能解决方案

Mr_song

大模型 知识库 知识库问答 知识库软件

华为云APM非侵入式移动APP埋点技术分析_行业深度_华为云产品与解决方案_InfoQ精选文章