anroid埋点
- 格式:doc
- 大小:46.00 KB
- 文档页数:4
埋点的常见方式
埋点是一种常见的数据采集方式,它可以帮助我们收集用户行为数据,从而更好地了解用户需求和行为习惯。
在实际应用中,埋点有多种常见的方式,下面我们来一一介绍。
1. 页面埋点
页面埋点是指在网站或应用的页面中嵌入代码,用于收集用户在页面上的行为数据。
这种方式可以帮助我们了解用户在页面上的操作习惯,比如点击哪些按钮、浏览哪些内容等等。
通过分析这些数据,我们可以优化页面设计,提升用户体验。
2. 事件埋点
事件埋点是指在应用中定义一些特定的事件,比如用户点击某个按钮、提交表单等等,然后在代码中嵌入相应的埋点代码,用于收集这些事件的数据。
通过分析这些数据,我们可以了解用户在应用中的行为习惯,从而优化应用的功能和设计。
3. 接口埋点
接口埋点是指在应用的接口中嵌入代码,用于收集用户在接口上的行为数据。
这种方式可以帮助我们了解用户在应用中的数据交互情况,比如哪些接口被频繁调用、哪些接口出现了错误等等。
通过分析这些数据,我们可以优化应用的接口设计,提升应用的性能和稳
定性。
4. 日志埋点
日志埋点是指在应用中嵌入代码,用于记录应用的运行日志。
这种方式可以帮助我们了解应用的运行情况,比如哪些功能出现了异常、哪些接口响应时间过长等等。
通过分析这些数据,我们可以及时发现和解决应用的问题,提升应用的稳定性和可靠性。
埋点是一种非常重要的数据采集方式,它可以帮助我们了解用户需求和行为习惯,从而优化应用的功能和设计。
在实际应用中,我们可以根据具体的需求选择不同的埋点方式,以达到最佳的数据采集效果。
移动应用开发中的用户行为分析与埋点方案近年来,移动应用市场的快速发展使得移动应用开发成为一个热门领域。
然而,开发一款优秀的移动应用并不容易,仅有功能和外观上的优化远远不够,还需要对用户行为进行深入分析,并制定相应的埋点方案。
本文将探讨移动应用开发中的用户行为分析与埋点方案,帮助开发者们更好地了解和应用这些技术。
一、用户行为分析用户行为分析是指通过对用户的行为数据进行收集、整理和分析,以了解用户在使用移动应用过程中的习惯和偏好。
通过深入了解用户行为,开发者可以根据用户的需求和行为模式来调整和优化应用的功能和体验,提高用户满意度。
1. 数据收集用户行为分析的第一步是收集数据。
在移动应用开发中,可以通过使用统计分析工具或者自行开发数据收集模块来收集用户的行为数据。
这些数据可以包括用户使用时间、浏览页面、点击按钮、购买记录等等。
开发者需要明确收集哪些数据,并确保数据的准确性和安全性。
2. 数据整理和分析收集到的大量数据需要进行整理和分析,以获得有价值的信息。
数据整理可以使用数据挖掘算法,将用户的行为数据分类、标记和归类,以便后续的分析和应用。
数据分析则可以使用统计学方法、机器学习等技术,比如用户画像分析、用户行为模式挖掘等,以获取用户的特征和行为规律。
3. 结果应用通过分析用户行为,开发者可以得到用户的偏好和需求。
根据这些信息,开发者可以改进应用的用户界面、功能设计等,以更好地满足用户的需求。
此外,还可以通过数据分析来推荐相关内容和广告,提高应用的用户粘性和收益。
二、埋点方案埋点是指在应用中插入代码,用于收集用户行为数据。
在进行用户行为分析时,埋点是非常重要的工具。
开发者可以根据需要埋点,并通过代码的触发来收集相应的数据。
1. 埋点位置选择在选择埋点位置时,开发者需要根据具体情况来确定。
一般来说,可以选择用户频繁操作的位置,比如按钮点击、页面访问等,以及用户可能产生价值的位置,比如下单、购买等。
同时,还可以结合用户画像和行为分析的结果,选择更加符合用户习惯和需求的位置进行埋点。
埋点基础(二):常用埋点技术原理浅析引言上篇文章中我们浅谈了一下埋点是什么,埋点需要具备哪些要素,哪些场景下需要埋点和业界内常用的埋点方式。
这篇文章着重谈一下埋点技术上的实现原理,还望看官们不喜勿喷。
埋点的原理埋点的核心在于在应用程序或网页的特定位置插入代码,以捕捉用户的某些动作(如点击、浏览、完成交易等)。
当用户执行相应操作时,这些代码就会被触发,并将相关数据发送到分析平台进行后续处理。
主流埋点技术简析前端埋点代码埋点代码埋点是最经典的帮助工程师了解用户是如何使用产品的埋点方式。
因为是工程师人工将埋点结合到代码逻辑中,理论上只要是客户端种的操作,再复杂也能采集到。
常见的如:页面停留时间,页面浏览深度,视频播放时长,用户鼠标轨迹,表单项停留及终止等等。
尤其是一些非点击的、不可视的行为,非代码埋点实现不可。
代码埋点的原理是通过在代码中手动添加埋点代码,通过监控用户行为事件来收集用户数据。
这种方式需要开发人员的配合,适用于网站或应用开发过程中。
代码埋点的优点是灵活性高,可以准确记录用户行为数据,但缺点是维护困难。
例如,在电商网站中,可以在商品详情页的购买按钮处添加一个点击事件的埋点,记录用户点击该按钮的时间、位置和商品信息等数据。
这种方式通过技术手段实现,也被称为自定义埋点,客服端SDK客户端SDK通常是一组库和工具,它们被设计用来帮助开发者更容易地与特定的服务或平台进行交互。
实现一个SDK通常需要考虑跨平台兼容性、安全性、稳定性和性能等因素。
客服端SDK可以分为以下几类1.iOS SDK:顾名思义,就是以iOS操作系统进行开发的SDK工具包;2.Android SDK:同样是以安卓操作系统进行开发的,可应用在所有安卓类软件中;3.H5 SDK:指以网页操作系统为生的SDK,可应用在web网站、H5网页、公众号(功能实质是H5开发)等;4.小程序SDK:小程序是这两年新兴的产品应用,依赖于不同的软件平台。
埋点的实例操作全文共四篇示例,供读者参考第一篇示例:埋点在互联网行业是一种非常常见的技术手段,用来收集和分析用户的行为数据,从而优化业务流程、提升用户体验和效果。
在实际的运营过程中,埋点通常会根据不同的需求和场景进行定制化的设置和操作,以达到更好的效果。
下面我们就来看一些关于埋点的实例操作。
一、页面加载时的埋点操作在网页或移动应用的开发中,通常会经过一系列的页面加载过程,包括页面资源的加载、渲染和交互等阶段。
针对这些不同的阶段,我们可以设置相应的埋点来收集用户在页面加载过程中的行为数据。
我们可以设置一个页面加载完成的埋点事件,用来统计每个页面加载的耗时情况,从而优化页面加载速度和性能。
又或者我们可以设置一个页面元素点击事件的埋点,用来收集用户在页面上的交互行为,以便进行用户行为分析和优化。
二、用户行为触发的埋点操作除了页面加载过程中的埋点操作,用户在页面上的各种行为触发也是一个非常重要的数据收集点。
用户点击某个按钮、填写表单、触发滚动等行为,都可以通过相应的埋点来收集和记录用户的行为数据。
举个例子,假设我们的网站有一个在线购物功能,用户在购物过程中可能会点击“加入购物车”按钮,这时我们可以设置一个相应的埋点事件,用来记录用户的购物行为。
通过这些购物行为数据,我们可以分析用户的购物习惯和偏好,从而优化产品推荐和购物体验。
四、A/B测试和埋点操作在产品运营和优化过程中,A/B测试是一个非常重要的策略,通过对比不同版本的产品或页面,来找出最优的设计和方案。
在A/B测试中,我们通常也会结合埋点操作,来收集和分析测试数据。
举个例子,假设我们要对比两个不同的购物页面设计,我们可以设置不同的埋点事件来收集用户在不同页面上的行为数据,比如页面加载速度、点击率、转化率等。
通过这些测试数据,我们可以分析两个页面的优劣势,选择更优的设计方案。
第二篇示例:埋点是指在网站或应用程序中插入代码,用于跟踪用户在页面上的行为和交互情况。
Android 埋点技术分析2018/06/05 16转自:cnblogs/ganchuanpu/p/8065465.html1.现有的几种埋点技术的实现原理和优劣分析1)代码埋点:将收集数据的代码直接写在需要的地方,当用户点击某个控件或者打开某个页面时调用到该部分代码完成数据的收集。
优势:准确性高,收集数据和发送数据都能精确控制,同时能方便的设置自定义属性,自定义控件,自定义View 等。
劣势:埋点工作量大,更新代价大。
(2)可视化埋点:根据配置文件收集用户行为,从而获取数据进行分析。
优势:无须手动埋点,配置文件可动态更新。
劣势:配置文件的配置比较耗时,弹出框,隐藏控件等行为不能收集。
收集的数据比较简单,只能收集用户行为,不能收集到与行为相关的具体数据。
(3)无埋点:与可视化埋点基本一致。
不同点在于可视化埋点是根据配置文件收集数据,无埋点是预先收集所有的用户行为,然后根据配置文件来提取数据。
无埋点可以通过修改配置文件追溯之前的用户行为数据。
(4)后端埋点:Sensors Analytics 这个平台有解决方案,优点是能收集到详细的与行为相关的数据,适用于电商等大平台。
比如用户选择了一件商品,点击了加入购物车,那么可以收集到用户信息,商品信息,商品价格,商品库存,卖家等诸多信息。
埋点技术的选择(1)代码埋点:既可以自己与后台定义接口,也可以使用第三方,常用的有友盟,百度统计等。
(2)可视化埋点和无埋点:移动端可以自己实现数据采集(下面有Android 端的实现原理和demo)。
第三方有诸葛IO,GrowingIO 。
在知乎上查了关于这两个平台的信息,GrowingIO 隐藏收费,官网并没有说到收费,但是使用15 天后发邮件通知收费并停止数据采集和分析。
诸葛IO免费模式的数据量是每月200 万条,还有其他收费模式。
(3)后端埋点:Sensors Analytics。
App埋点方案1. 引言随着移动互联网的普及,越来越多的公司开发了自己的移动应用以提供服务和产品。
为了更好地了解用户行为,优化产品体验,监控应用性能,埋点成为了开发和运营团队必备的手段之一。
本文将介绍一种常见的移动应用埋点方案,帮助开发人员了解如何在应用中添加埋点功能。
2. 什么是埋点在移动应用中,埋点是将用户行为、应用性能等信息采集并发送到统计分析平台以进行分析和监控的过程。
通过埋点,开发和运营团队可以了解用户在应用中的操作行为、使用习惯和喜好,并根据分析结果进行产品优化和决策支持。
3. 埋点的作用埋点可以帮助开发和运营团队实现以下目标:3.1 用户行为分析:通过埋点数据,可以了解用户在应用中的行为路径、操作次数、停留时长等,帮助团队了解用户使用习惯和行为偏好,优化产品设计和功能开发。
3.2 产品决策支持:基于用户行为数据分析,可以为团队提供决策支持,例如何时推出新功能、如何调整产品定位等。
3.3 应用性能监控:埋点不仅可以采集用户行为信息,还可以监控应用的性能指标,如加载时间、崩溃率等,帮助团队了解应用的稳定性和性能瓶颈。
4. 埋点方案为了实现埋点功能,我们可以借助第三方统计分析平台的SDK,例如友盟、百度移动统计等。
这些SDK提供了一套集成简单、功能完善的接口,可以帮助开发人员快速添加埋点功能。
下面以友盟统计为例,介绍一种常见的埋点方案。
4.1 集成SDK首先,我们需要在应用中集成友盟统计的SDK。
具体步骤如下:1.在友盟官网注册账号并创建应用。
2.下载友盟统计SDK,并将其添加到应用的工程中。
3.在应用的配置文件中添加友盟统计的AppKey。
4.2 埋点事件定义在应用中,我们需要明确需要采集的埋点事件。
例如,可以采集用户的注册行为、登录行为、页面浏览行为等。
每个埋点事件需要定义一个对应的事件ID和事件属性。
例如,定义一个“注册”事件:事件ID 事件属性register 用户名、手机号、注册结果4.3 触发埋点事件在应用的相关代码中,通过调用友盟统计SDK提供的接口来触发埋点事件。
详解微信⼩程序(Taro)⼿动埋点和⾃动埋点的实现每⼀个公司要想⽤户增长,都要收集和分析⽤户操作数据,因此埋点是必不可少的事情。
⽽对于前端职业发展来说,传统的⼿动埋点,⽆疑是繁琐⼜⽆聊的事情,能简化就简化。
⼀、⼿动埋点⼿动埋点就是在每⼀处需要的地⽅,都加⼀段上报埋点的代码。
影响代码的阅读体验,且散落的埋点代码不⽅便管理。
以页⾯ pv 为例,我们此前是在每⼀个页⾯中上报 pv:// src/manual/home/index.tsximport tracking from "./tracking";// pageSn 是前端和产品约定的「页⾯在埋点系统的唯⼀标识」,⽐如这个项⽬⾸页的标识符是数字 11664const pageSn = 11111;export default () => {// useDidShow 是 Taro 专有的 Hook,等同于⼩程序原⽣ componentDidShow ⽣命周期,会在页⾯展⽰的时候调⽤。
useDidShow(() => {// 通过统⼀封装的 sendPv ⽅法发送 pv 埋点sendPv(pageSn);});return <View>⼿动埋点页⾯</View>;};⼆、⾃动埋点⾃动埋点可分为全⾃动埋点和半⾃动埋点。
全⾃动埋点则是不管需不需要,将所有的点都埋了。
前端肯定开⼼了 “以后埋点产品都不要不要找我啦”,可数据同学就哭唧唧了。
⽐如,腾讯和 Taro 团队共同推出,接⼊超级简单。
⽐如配置 proxyPage 为 true 即可 “上报所有页⾯的 browse 、leave、share 等事件”,配置 autoTrack 为 true 即可 “⾃动上报所有元素的 tap、change、longpress、confirm 事件”。
可从数据量和有效性来说,「全埋」等于「不埋」,因为「全埋」⼀⽅⾯对数据存储量要求很⾼,另⼀⽅⾯会给我们负责数据清洗的同学带来⼤量⼯作。
神策Android全埋点⽅案分析原理简单分析: Activity⽣命周期通过监听Application.ActivityLifecycleCallbacks,fragment的⽣命周期及⼀些点击事件则编译时通过ASM对相应⽅法进⾏hook神策Android SDK分析sdk git仓库官⽹SDK介绍Gradle 插件分析仓库上好像没有插件代码,通过/com/sensorsdata/analytics/android/android-gradle-plugin2/2.0.0/下载相应jar包解压image-20180916112522297.png⽬录sa-gradle.pnggradle plugin uml1. SensorsAnalyticPlugin 插件⼊⼝2. SensorsAnalyticsExtension 配置⽂件(debug 是否输出⽇⽇志,disableJar是否修改jar包,exclude不修改的包)3. SensorsAnalyticsTransform 遍历jar 遍历⽬录满⾜条件调⽤SensorsAnalyticsClassVisitor4. SensorsAnalyticsClassVisitor 扫描到SensorsAnalyticsHookConfig 中配置的⽅法时字节码修改调⽤sdk中com/sensorsdata/analytics/android/sdk/SensorsDataAutoTrackHelper的⽅法SDK 分析1. org.aspectj:aspectjrt:1.8.10 实际上并没⽤到其实⽤的是上⾯的ASM 所以可以去除这个依赖以及 com.sensorsdata.analytics.android.sdk.aop这个包2. AnalyticsMessages 类⽤于上报。
逻辑简单看了下开了个Work线程。
直接上报或者间隔⼀端时间去上报。
数据埋点⽅案和规范确定⽤户的⾏为分析是产品调整迭代,运营推⼴、精准营销等的基础,此类⾏为的⼀切均基于良好的数据采集⽅案。
当下⼏乎所有互联⽹公司的数据源都是通过埋点⽅式获得基础的业务数据。
简单来说,数据埋点就是传统的数据打点,在⽹站或者APP中加⼊⼀些统计代码进⾏数据采集。
具体埋点的价值以及正确埋点的重要性已经⽆需多⾔,基本上所有的产品或者数据⼈员都得需要了解⾃⼰业务的埋点⽅案。
基本的埋点介绍和流程相对⽐较固定:作为产品经理或者数据分析⼈员,本⾝未必需要完整的掌握埋点的技术,但是作为数据需求⽅在了解完整埋点⽅案的情况下,需要着重考虑两个⽅⾯以确定埋点⽅案和可⾏性。
⼀基于哪些维度埋点埋点的⽬的是为了获取有效的数据,⽽数据是否有效是由数据需求拆解到具体 “指标维度”。
1 基于⾕歌分析的AARRR模型来拆分产品⽅案,通过产品逻辑拆解出分析维度和业务逻辑。
AARRR(分别是指获取、激活、留存、收⼊和推荐)正常情况下数据埋点的事件维度是基于⼀个Session,即⼀个⽤户完整的从注册进⼊系统到注销退出系统之间所经过的时间。
拆解⽤户的产品逻辑判断出⽤户所属的周期继⽽制定分析的维度。
⽐如整个产品体系处于初⽣期,整个运维的重⼼在于获客,整个逻辑是⽤户通过不同的渠道来源进⼊APP,继⽽留存或流失,埋点的重⼼必然是在如何获客的渠道来源上。
2 基于后期分析⽅法判定埋点⽬标任务流分析法:根据产品设计的任务流,在任务流开始和结束处埋点,分析⽤户处理任务的情任务流分析法况。
页⾯转化分析法:统计相关页⾯的转化率及页⾯元素点击率,分析⽤户⾏为。
页⾯转化分析法情景分析法:列出各种⽤户使⽤场景,⾃⼰或多⼈体验不同场景下产品的使⽤流程,寻找依据情景分析法设⽴数据埋点,通过数据反馈验证⽤户⾏为。
埋点前⾸先要考虑清楚埋点的⽬的,⽐如是为了获取⽤户群体的某些⾏为特征以更深层次地理解⽤户,⼜或者是为了检验新功能的使⽤情况是否符合预期,再或者是监控程序运⾏过程中的异常情况。
安卓全埋点技术报告摘要:全埋点技术是一种能够实现对移动应用程序中各种用户行为进行自动追踪和分析的技术。
本文主要介绍了安卓平台上的全埋点技术,包括实现原理、应用场景、优缺点等方面的内容。
通过对全埋点技术的深入研究,我们对于如何更好地利用全埋点技术进行数据分析和优化移动应用经验有了更深入的了解。
1.引言随着移动互联网的快速发展,越来越多的应用程序涌现出来。
然而,很多应用并不清楚用户在使用过程中的实际行为,这给应用的优化和改进带来了很大的困难。
全埋点技术就是为了解决这个问题而出现的。
2.实现原理全埋点技术通过在应用程序中添加埋点代码,对用户的各种行为进行自动追踪和记录。
埋点代码需要在应用程序的各个关键节点进行插入,比如按钮点击、页面跳转等。
一旦用户进行了一些操作,埋点代码就会触发相应的追踪事件,并将相关数据发送给数据分析平台。
数据分析平台会对这些数据进行处理和分析,然后生成相应的报表和图表。
3.应用场景全埋点技术可以应用于移动应用的各个方面,包括用户行为分析、产品优化、广告投放等。
通过全埋点技术,可以了解用户对于应用的实际使用情况,发现用户在使用过程中的痛点和需求,为产品改进提供有力的依据。
同时,可以通过分析用户行为,对广告投放进行优化,提高广告的点击率和转化率。
4.优缺点全埋点技术的优点主要包括实时数据分析、全面了解用户行为、准确度高等。
通过实时数据分析,可以及时掌握用户的实际需求和使用情况,及时做出相应的调整。
全面了解用户行为,可以帮助应用程序提供更好的用户体验和个性化服务。
同时,全埋点技术准确度高,不受用户自主填报的限制。
然而,全埋点技术并不完美,也存在一些缺点。
首先,全埋点技术需要在应用程序的各个关键节点插入埋点代码,而且埋点代码的编写也需要投入大量的人力和时间。
其次,对于数据的处理和分析也需要投入相应的资源和精力。
最后,全埋点技术也面临用户隐私问题,需要注意对用户隐私的保护。
5.结论全埋点技术是一种能够实现对移动应用程序中各种用户行为进行自动追踪和分析的技术。
埋点
埋点原理
当我们开发一款Android应用上线后,希望能收集一些用户操作的行为数据,比如用户在某个页面点击了多少次,在某个控件被点击了多少次,在某个页面停留了多少时间等。
这些数据收集起来可以交给数据分析师,他们可以统计出应用的PV或UV;或者统计应用中哪些页面最受欢迎,哪些控件点击率最低,从而来改进应用。
对于控件被点击多少次,一般做法是在控件点击事件中加入几行log代码,然后将此次的点击记录下来,最终发送到服务端,页面的点击也是类似,需要在页面生命周期的开始加入log代码。
这种插入log代码记录操作行为的方式定义为埋点。
埋点的好处
通过埋点监控,我们可以深入业务的每一个细节,产生的用户行为可以通过所埋的点累计次数并将这些数据发送到数据中心,通过数据分析师就能给产品提出宝贵的意见,指导产品的演化方向。
埋点设计方案
埋点方案要做到以下功能:
A、Android界面上的空间被用户点击,需要记录下点击控件的名称并保存此信息。
B、Android界面被打开或关闭,也需要记录此信息
C、最好能自动化完成,不需要修改大量代码,最好能定制
大概思路:
A、通过创建基类BaseActivity重写Activity的生命周期或利用事件传递机制
Activity的生命周期分为onCreate,onStart,onResume,onPause,onStop和onDestroy,一个界面的展示和消失都会要经过这几个阶段,所以如果监控了Activity的生命周期,就可以监控一个界面的打开、关闭以及用户在界面上停留的时间。
实现这种监控方式,可以通过创造一个界面基类,让所有业务界面去继承它,然后基类中重写所有Activity的生命周期方法,见如下代码。
public BaseActivity extends Activity{
//其他的Activity生命周期重写类似
protected void onStart() {
super.onStart();
LocalBroadcastManager broadcastManager = LocalBroadcastManager.getInstance(this);
Intent intent = new Intent(ACTIVITY_START);
intent.putExtra(ACTIVITY_START, event);
broadcastManager.sendBroadcast(intent);
}
protected boolean dispatchTouchEvent(MotionEvent ev) {
if (event.getAction() == MotionEvent.ACTION_UP) {
LocalBroadcastManager broadcastManager = LocalBroadcastManager.getInstance(this);
Intent intent = new Intent(VIEW_CLICK);
intent.putExtra(VIEW_CLICK, event);
broadcastManager.sendBroadcast(intent);
}
}
}
B、利用广播来统一管理用户行为的Log信息。
public class AutoMonitorReceiver extends BroadcastReceiver{
public void onReceive(Context context,Intent intent){
String action=intent.getAction();
if(action==VIEW_CLICK){
MotionEvent event=intent.getParcelableExtra(VIEW_CLICK);
//1.递归遍历Activity(就是Context)中的所有View,找出被点击的View
View clickView=searchClickView(view,event);
//2.生成log记录下来
writeLog();
}else if(action==ACTIVITY_START){
//可以知道某个界面被打开了,然后记录此次操作行为
writeLog();
}
}
private View searchClickView(View view,MotionEvent event){
View clickView=null;
if(isInView(view,event)&&
view.getVisibility()==View.VISIBLE){//这里一定要判断View是可见的
if(view instanceof ViewGroup){//遇到一些Layout之类的ViewGroup,继续遍历它下面的子View
ViewGroup group=(ViewGroup)view;
for(int i=group.getChildCount()-1;i>=0;i--){
View chilView=group.getChildAt(i);
clickView=searchClickView(chilView,event);
if(clickView!=null){
return clickView;
}
}
}
clickView=view;
}
return clickView;
}
}
C、数据积累到一定量,将用户行为数据发送到后台服务器。
注意
1、log信息的格式大致要有如下几个字段:
monitor_type|ui_name|view_ui_path | date
比如是MainActivity界面打开的埋点log,则可以记录为
ACTIVITY_START|MainActivity|NULL | NULL
2、View的路径如:Button的路径可以表示为
DecorView>LinearLayout[0]>FrameLayout[1]>RelativeLayout[0]>Button[0]
难点和问题
1.Android版本不同会造成控件的UI路径不同。
比如Android
2.2与Android4.1版本下,获取到上文中Button的UI路径分别为
//android2.2
DecorView>FrameLayout[1]>RelativeLayout[0]>Button[0]
//android4.1
DecorView>LinearLayout[0]>FrameLayout[1]>RelativeLayout[0]>Button[0]
这个问题可以通过将控件的UI路径缩短来解决,比如就只用
FrameLayout[1]>RelativeLayout[0]>Button[0]路径来标识Button控件。
2.对一些隐藏控件、弹出窗口或者浮动窗口不好处理。
比如,在上文中的Button同样位置存在另外一个Button,不过是隐藏的,有时出现,有时不出现。
当一个Button被点击,单纯依靠DecorView>FrameLayout[1]>RelativeLayout[0]>Button[0]路径不能判断出是哪个Button被点击。
解决这个问题,有时做一些特殊处理可以解决,比如扩展log的字段,多加入一些控件的信息,比如Button上的文字等。
但是有时,开发应用的控件布局千变万化,一些控件确实不能通过UI路径进行唯一标识,这种就没法自动化埋点了。
只能通过手动埋点来来补充了。
3.文中提到为了实现埋点的定制,需要开发者自己写代码生成一个埋点列表,这个也是比较麻烦的。
要遍历一个应用中所有界面和界面中控件的UI路径,这个比较容易,但是取出自己想要埋点的控件UI路径,这个可能需要人工去查看比对。
另外,一些大型应用开发的时候,界面随时发生着变化,一些控件的布局在随时发生变化。
每次发布应用的时候,都需要扫描一下应用控件信息,以及重新找一下埋点控件的UI路径,这个是相当麻烦的。
如何实现这部分的自动化,也是一个难题。
第三方
第三方埋点统计有很多如:友盟、TalkingData、DataEye等等。
个人感觉,单从各家业务来看,talkingdata和友盟主要做app统计监测,但做游戏的都知道手游和一般的app在需要统计的点上差异太大了,DataEye在游戏统计上很多特色的点都是很值得推荐的,像滚服分析、玩家群体标签分析、游戏内的关卡等级道具任务分析等,还有数据挖掘模块,对我们做运营的支持和帮助挺大的,SDK本身在数据准确性上容易被人诟病,但DataEye专门支持sever端的SDK接入,还有像H5游戏监测等等,我觉得术业有专攻,不是专门做游戏监测能做到这么细致用心吗?不得不说我身边做游戏的伙伴们用DataEye的越来越多了,像中手游、谷得、人人游戏这样的大公司也在用,用户量小不了。
以上只是个人总结,可能有许多不足,多多谅解。