- 博客(50)
- 收藏
- 关注
原创 可视化全埋点系列文章之元素遍历篇
遍历元素构建上传后,前端需要了解各个元素的尺寸和大小,才能渲染,从而方便用户圈选,所以 App 遍历的元素,还需要同时上传元素位置。比如图 3-5 中,视图 1 上按顺添加了三个子元素 ②、③、④,然后视图 2 添加了子元素 ⑤、⑥,以此类推。虽然最终我们需要圈选埋点的只是可点击元素,但是因为需要递归去找到所有可点击元素,并且可点击元素可能是普通元素的子元素,所以在遍历查询过程中,不可避免地需要找到其他非点击元素,比如 UIView、UIViewController、UIWindow 等。
2022-09-21 14:27:22
1349
1
原创 如何知道页面浏览时长系列之 Web 篇
随着客户对页面浏览时长采集的需求日渐增长,神策数据重新调研和实现了精确统计页面浏览时长的方案,推出了 Web 页面浏览时长功能。1. 神策数据 Web JS SDK 会在页面的「活跃状态切换」、「离开」这两个生命周期,采集页面浏览时长事件($WebPageLeave 事件),其中浏览时长属性(event_duration)是指页面浏览的时长(单位是秒);当进入某个页面时获取开始时间,页面关闭或者进入一个新的页面时(此时视为当前页面已经消失)获取结束时间,页面浏览时长 = 结束时间 - 开始时间。
2022-09-21 11:52:15
4664
原创 如何知道页面浏览时长系列文章之 Android 篇
因为 ViewPager 的缓存机制,在两个相邻的 Fragment 进行切换的时候,不会执行 onPause() 和 onResume() 方法。我们需要在用户离开当前页面的时候来计算用户在当前页面浏览的总时长,因此 SDK 会在 Activity 的 onPause() 方法中记录一个离开页面的结束时间戳,页面浏览时长就是记录的结束时间戳减去开始时间戳,并触发一个页面离开事件 $AppPageLeave 事件,同时将当前 Activity 从 mResumedActivities 集合中移除。
2022-09-21 11:42:01
953
原创 多模块间通信存在完美的设计么?
在两个 SDK 间,我们要明确 SDK 直接的依赖关系,比如本文的技术背景,是建立在 SF SDK 依赖 SA SDK 之上的,那么 SF SDK 可以直接调用 SA SDK 对外公开的 API,如果要调用一些私有 API 时,需要多加考虑。利用通知传递信息,并将其加入 SF SDK 的任务队列,使其与 SA SDK 传递的其他数据,都在 SF SDK 的一个任务队列执行,避免 SA SDK 和 SF SDK 之间出现线程不同步的问题。其他的都不需要关注,客户端就可以在设置好的时机进行弹窗。
2022-09-21 10:27:46
515
原创 如何知道页面浏览时长?
页面浏览时长是用于统计用户在页面的停留时长。对于神策分析 iOS SDK 而言,在没有推出页面浏览时长自动采集功能之前,客户是通过手动调用开始计时和结束计时的相关接口实现页面浏览时长采集的。这种手动采集的方式对客户业务代码侵入性大,并且客户使用的成本较高......
2021-12-13 14:30:42
3849
原创 问题也许没有看上去那么简单
1. 前言作为一名技术顾问,在日常工作中会遇到各种各样的问题。有些问题看上去很简单,但背后的原因却是异常的复杂。为了更好的解决问题、服务客户,我们需要培养自己 “透过现象看本质” 的能力。下面我们就一起来看一个表现简单排查却复杂的真实案例。2. 背景阳光正好,微风不燥的一天,我正在值班。突然客户反馈在使用 App 点击分析时,扫描二维码后报错,如图 2-1 所示:图 2-1 扫描二维码报错信息收到这个报错之后,我就第一时间进行排查。在介绍具体的排查过程之前,我们先来了解.
2021-11-18 14:23:02
345
原创 可视化全埋点系列文章之元素标识篇
1.前言在介绍元素标识之前,先回顾一下之前的《可视化全埋点系列文章之功能介绍篇》,根据这篇文章我们了解到:可视化全埋点事件,是通过可视化的方式,把某些全埋点事件创建成一个重新命名的虚拟事件[1],进而从数量庞大的全埋点事件中快速筛选到我们所关心的事件[2]。那么问题来了,如何将 SDK 触发的元素点击事件 $AppClick 和前端定义的可视化全埋点事件进行匹配?也就是说,保存了哪些配置信息,就可以唯一标识一个元素,从而筛选出这个元素触发的 $AppClick 事件?答案是:只有准确地进行元素.
2021-11-02 15:57:58
356
原创 如何打造实时性的弹窗?
1.前言在 App 的运营活动中,对用户进行弹窗提示,是一种常见的运营方式。例如:用户已经下单但未付款的时候,可以给用户一个优惠券的弹窗提示。神策 Android 弹窗 SDK[1] 主要针对的就是上述运营场景,运营人员可以在神策智能运营中配置弹窗的 UI 以及触发弹窗的一些条件,当用户满足配置的条件时,集成了弹窗 SDK 的 App 会展示弹窗。UI 效果如图 1-1 所示:图 1-1 弹窗 UI 效果图2.弹窗的实时性在很多场景下,弹窗需要很高的实时性。如果弹窗的计...
2021-11-02 11:30:08
578
原创 一个递归调用引发的 “血案”
1.前言递归是指一种通过重复将问题分解为同类的子问题而解决问题的方法。在程序中,通过函数直接或间接的调用自身来进行递归。[1]我们在设计递归程序时需要一个或多个边界条件,用于退出递归。当未满足边界条件时调用函数自身,达到边界条件时退出递归。2.问题在日常开发过程中,我们往往会使用递归处理一些逻辑。例如:在神策分析 iOS SDK 中,会使用递归逻辑进行埋点数据的上传。简化流程如图 2-1 所示:图 2-1 埋点数据上传的流程图在程序中,如果函数无限调用自身,最终会导...
2021-11-02 10:31:27
1683
原创 一个程序员眼中的项目经理
1.从 OKR 说起2021 年初,我们部门制定了第一季度的 OKR。过完年回来,OKR 涉及到的项目陆陆续续正式开展起来。分配到我个人身上的有下面两个项目:App 可视化全埋点自定义属性; SDG(Sensors Data Governor,中文名:神策数据治理) 技术架构演进。这两个项目都是由我负责跟进,因此一个程序员的项目管理之路就此拉开帷幕。2.可视化项目首先说说比较熟悉的「App 可视化全埋点自定义属性」项目,因为个人是Android研发,从技术栈的角度来说,对于该项目...
2021-11-01 16:57:23
4294
1
原创 可视化全埋点系列文章之功能介绍篇
1.什么是可视化全埋点1.1.全埋点在介绍可视化全埋点之前,先了解一下全埋点。全埋点,也叫无埋点、无码埋点、无痕埋点、自动埋点。全埋点是指无需应用程序开发工程师写代码或者只写少量的代码,即可预先自动收集用户的所有或者绝大部分的行为数据,然后就可以根据实际的业务分析需求从中筛选出所需行为数据并进行分析[1]。神策分析 iOS SDK 目前支持的全埋点事件有:App 启动、App 退出、元素点击、页面浏览。只需要客户开发人员按照正确的方式集成,然后初始化 SDK并开启相关配置,即可在对应的...
2021-11-01 16:41:54
903
原创 如何选择 Web 的数据存储方式?看我就够了
1.前言为了最大限度地保证同一浏览器同一域名下各个网页的用户统一,Web JS SDK 需要及时地将用户标识存入到 Cookie;为了最大限度地减少关闭页面导致的数据丢失,WebJS SDK将采集的数据存入到 localStorage 里进行批量发送,关闭页面未发送完的数据下次打开页面再次发送;为了最大限度地保证可视化全埋点和网页热力图窗口打开的正确性,Web JS SDK 将相关的标识存入到 sessionStorage 里。由此可见,存储数据是 Web JS SDK 的核心功能,下...
2021-10-15 16:23:23
814
原创 数据上报那些事
1.前言神策分析是依托于数据进行的,数据是分析的根基。因此,数据上报的时效性是至关重要的。那么 iOS SDK(后面简称 SDK)是如何保证数据上报的时效性呢?接下来,我们就围绕这个问题来看看 SDK 究竟做了什么。2.上报策略直观来说,要解决数据上报的时效性问题似乎很简单:实时上报(当触发事件后立刻上报到服务端)不就可以保证时效性了吗?但是,事实并非如此简单。不同于服务端,移动设备上的资源是非常有限的,采取实时上报的方式势必会造成 App 整体性能的下降,如何平衡性能与数据上报的时..
2021-10-14 15:36:06
1215
原创 神策分析 iOS SDK 架构解析
前言神策分析 iOS SDK,是一款轻量级用于 iOS 端的数据采集埋点 SDK。神策分析 iOS SDK 不仅有代码埋点功能,还通过使用运行时机制(Runtime)中的相关技术实现 iOS 端的全埋点(无埋点、无码埋点、无痕埋点、自动埋点)、点击图、可视化全埋点等功能,下面将以SDK 版本 v1.11.16为例介绍神策分析 iOS SDK 的架构。目录结构神策分析 iOS SDK 自开源以来,从最开始满足代码埋点的需求,到后来支持全埋点、可视化全埋点,SDK 的代码不断优化,目录结构也不...
2021-08-14 10:29:34
1358
原创 神策分析 Android SDK 架构解析
前言神策分析 Android 埋点 SDK,是一款轻量级用于 Android 端的数据采集埋点 SDK,包含代码埋点、全埋点、点击图和可视化全埋点功能。全埋点通过配合神策 Android 埋点插件来实现,神策分析 Android 埋点插件使用字节码插桩(ASM)的技术实现 Android 端的全埋点(无埋点 / 无码埋点 / 无痕埋点 / 自动埋点)。SDK 目录分层神策分析 Android 埋点 SDK 自开源以来,从最开始为了满足代码埋点的需求,到后来全埋点、可视化全埋点..
2021-08-14 10:29:10
2363
2
原创 神策分析 Android SDK 之用户路径采集
用户路径用户路径分析为八大重要分析模型之一,可以追踪用户从某个开始行为事件直到结束事件的行为路径,是一种监测用户流向,从而统计产品使用深度的分析方法,帮助业务人员了解用户行为分布情况,对海量用户的行为习惯形成宏观了解。用户路径的作用用户路径可以帮助使用者洞察用户看似平常的行为背后真正的思想,从而摆脱“大海捞针”式的用户行为数据查询。使用者既可以有的放矢,验证自身假设,有针对性地解决问题;也可以日常监测用户的行为路径,及时发现用户的核心关注点及干扰选项,引导用户持续挖掘产品及服务的价值..
2021-08-13 14:44:04
629
原创 写作—开启技术成长之路
一、前言作为一名程序员,经常在网络上查找各种各样的资料。此时,会检索到很多优秀的技术文章。一篇好的技术文章,可能不仅仅会解决我们的问题,更能在阅读的过程中带给我们一些美好的体验。许多时候我们也憧憬自己能写出优秀的技术文章,然而却往往感觉到无从下手。那如何写好一篇技术文章呢?其实是存在一些方法和技巧的,下面我们就对这些内容进行详细的介绍。二、写作目的在正式介绍如何写技术文章之前,我们先来看下为什么要写技术文章?因为知道了我们的目的,才能有动力更好的完成写作。2.1 写给自己可能..
2021-08-13 14:38:48
208
原创 神策分析 Web JS SDK 功能介绍
一、前言神策分析 Web JS SDK,是一款轻量级用于 Web 端和 H5 端的数据采集埋点 SDK,它的核心功能是数据采集和发送数据到指定的服务端。具体而言,是指使用原生 JavaScript 技术实现代码埋点、全埋点、可视化全埋点、网页热力图和触达图等功能。下面,我们将对这些功能逐一进行介绍。二、数据采集对于 SDK 而言,数据采集是指在用户行为触发时(例如:进入某个页面、点击了某个按钮等),按照既定的数据格式,将用户的行为进行数据化。按照采集方式的不同,可以分为代码埋点、全埋点和..
2021-08-13 14:24:24
2597
原创 ASM 实现 Hook Lambda 和方法引用 | 数据采集
一、前言本文是前作「Lambda 设计参考」的实战部分,具体将介绍如何使用 ASM 对 Java 8 Lambda 表达式和方法引用进行 Hook 操作。在此之前会介绍一些基础概念和字节码相关的知识方便大家对这块内容的理解,最后会给出一个完整的代码供大家参考。二、脱糖2.1概念介绍Java 脱糖(Desugar):简单地说,就是在编译阶段将语法层面一些底层字节码不支持的特性转换为底层支持的结构。例如:可以在 Android 中使用 Java 8 的 Lambda ..
2021-08-13 11:18:12
328
原创 神策数据微信小程序 SDK 功能介绍 | 数据采集
一、前言神策数据微信小程序 SDK,是一款用于微信小程序端的数据采集埋点 SDK。具体而言,是指开发者将 SDK 集成到开发的微信小程序项目中,通过配置或者在特定时机调用 SDK 提供的接口采集用户数据并通过网络发送到指定的服务端。二、数据采集对于 SDK 而言,数据采集是指在用户行为触发时(例如:小程序启动、点击了某个按钮等),按照既定的数据格式,将用户的行为进行数据化。根据采集方式的不同,可以分为代码埋点、全埋点和自定义全埋点: 代码埋点是指调用 SDK 提供的 t..
2021-08-13 11:13:27
3091
1
原创 神策分析 iOS SDK 全埋点解析之启动与退出 | 数据采集
一、前言上一篇《神策分析 iOS SDK 代码埋点解析》主要介绍了如何设计与实现代码埋点。具体而言,就是实现了一个 - track: 接口,可以在合适的时机调用,来记录一条用户的行为数据。一般情况下,对于不同的 App,有价值的行为数据是不一样的,调用 - track: 接口的时机自然也是不一样的,需要开发者根据业务场景来手动调用。对于 App 而言,有些特定的且有分析意义的用户行为我们可以在 SDK 直接采集。例如:App 启动、App 退出、元素点击、页面浏览等。为了将其与代码埋点区..
2021-08-13 10:56:49
884
原创 手把手教你写 Gradle 插件 | 数据采集
一、前言在上一篇文章《神策 Android 全埋点插件介绍》中,我们了解到神策 Android 插件其实是自定义的 Gradle 插件。Gradle 是一个专注于灵活性和性能的开源自动化构建工具,而插件的作用在于打包模块化的、可重用的构建逻辑。可以通过插件实现特定的逻辑,并打包起来分享给别人使用。例如:神策 Android 全埋点插件正是通过插件在编译时对特定函数进行处理,从而实现控件点击和 Fragment 页面浏览全埋点的采集。本文我们会先针对 Gradle 的基础知识作一定的介绍,..
2021-08-13 10:53:22
219
原创 神策分析 Android SDK 网络模块解析 | 数据采集
一、前言在信息化时代,数据成为移动互联网企业的宝贵资源。数据的获取、上报、储存、分析乃至可视化地呈现,都成为了当前重要的研究方向。当然,大数据分析最核心的还是数据,其中数据的来源更是至关重要的。如何保证数据能够准确、及时、完整地上传到指定的服务端,是神策分析 Android SDK 需要面临的核心问题。神策分析 Android SDK 针对数据传输,从完整性、正确性以及高效性等多方面综合考虑,设计并实现了一套适用于数据采集的网络传输方案。下面针对神策分析 Android SDK 网络模块..
2021-08-13 10:50:26
925
原创 神策 Android 全埋点插件介绍 | 数据采集
一、前言埋点是数据采集领域的一个术语,它是指针对特定用户行为或事件进行捕获、处理、上报的过程。埋点技术实质就是在合适的时机去采集行为数据,同时获取必要的上下文信息,最后将行为数据上报到指定的服务端。埋点获取到的业务数据可以为产品后续的迭代方向和评判营销价值提供有力、可靠的数据支撑。常见的埋点方式主要包括全埋点和代码埋点(又称自定义埋点)。其中,全埋点可以满足 UV、PV、点击量等常见指标统计的需求,适用于以较小的埋点代价收集尽可能多的用户行为数据的场景。下面将首先针对神策 Andro..
2021-08-13 10:48:05
1449
原创 神策分析 iOS SDK 代码埋点解析 | 数据采集
一、前言所谓埋点,是数据采集领域(尤其是用户行为数据采集领域)的术语,指的是针对特定用户行为或事件进行捕获、处理和发送的相关技术及其实施过程,为进一步优化产品或制定有针对性的运营计划提供数据支撑。埋点的实质,是先监听软件应用运行过程中的关键节点,当需要关注的事件发生时进行判断和捕获,获取必要的上下文信息,最后将信息整理后发送至指定的服务端。神策分析 iOS SDK,是一款轻量级用于 iOS 端的数据采集埋点 SDK。神策分析 iOS SDK 不仅有代码埋点功能,还有通过使用运行时机制(Run..
2021-08-13 10:45:33
1304
原创 Hadoop 基本原理与应用
一、时代背景2000 年左右的时候,中国互联网尚处在门户时代,世界互联网已经开始腾飞。一方面,以 Google 为代表的主流互联网公司开始面临数据爆发的场景;另一方面,当时的互联网公司普遍选择使用配置低下的廉价服务器。所以急剧增加的数据量与低下的计算存储能力之间的矛盾成为了当时的主流互联网公司面临的主要矛盾之一。超级计算机虽然能够解决一部分大数据计算的问题,但是超级计算机价格高昂,主要在实验室和科研机构中采用。工业界尚没有一个统一的且得到广泛商用的分布式计算框架,虽然当时已经也研...
2021-08-12 10:39:29
638
原创 iOS SDK 的 H5 打通方案演进 | 数据采集
一、前言在介绍 iOS SDK 的 H5 打通方案之前,我们先了解一下什么是 App 与 H5 打通。所谓 “打通”,是指 H5 集成 JavaScript 数据采集 SDK 后,H5 触发的事件不是直接同步给服务端,而是先发给 App 端的数据采集 SDK,经 App 端数据采集 SDK 二次加工处理后缓存到本地,再经过合适的上传策略同步到服务端。二、APP与 H5打通的原因关于 App 与 H5 打通的原因,我们主要是从以下几个角度考虑:2.1数据丢失率...
2021-08-12 10:36:54
379
1
原创 Android SDK 的 H5 打通方案演进 | 数据采集
一、前言近年来,混合开发越来越流行,App 与 H5 的打通需求也越来越迫切。那什么是 App 与 H5 打通呢?所谓 “打通”,是指 H5 集成 JavaScript 数据采集 SDK 后,H5 触发的事件不直接同步给服务端,而是先发给 App 端的数据采集 SDK,经 App 端数据采集 SDK 二次加工处理后存入本地缓存再进行同步。本文的内容,主要是回答以下两个问题: App 与 H5 为什么要打通? App 与 H5 该如何打通? 二、App 与H5...
2021-08-12 10:16:12
591
原创 Logback 日志探针与动态化
大家好,首先给大家做一个简短的自我介绍,我叫陶明凯,2014 年曾在百度糯米负责大数据推荐工程侧的研发工作,后来加入到创业公司,在创业公司经历了几次从无到有的工程架构的搭建,目前就职于神策,负责中台业务的工程架构工作。今天主要给大家分享的内容是神策在 log 日志探针与动态化的探索和实践,希望能够给大家带来一些不一样的收获。一、前言今天的分享主要分为如下几个方面: 第一个方面,首先会给大家去讲一下背景,就是在数据安全私有部署的场景下,在问题诊断这个层面上所面临的一些挑战。 ..
2021-08-12 10:11:32
524
原创 React Native 点击事件采集方案 | 数据采集
一、前言React Native 是由 Facebook 推出的移动应用开发框架,可以用来开发 iOS、Android、Web 等跨平台应用程序,官网为:https://facebook.github.io/react-native/。React Native 和传统的 Hybrid 应用最大的区别就是它抛开了 WebView 控件。React Native 产出的并不是 “网页应用”、“HTML5 应用” 或者 “混合应用”,而是一个真正的移动应用,从使用感受上和用 Objective-C..
2021-08-12 10:06:15
823
原创 Web JS SDK 架构解析 | 数据采集
一、前言神策分析 Web JS SDK[1],是一款轻量级用于 Web 端和 H5 端的数据采集埋点 SDK,包含代码埋点、全埋点、可视化全埋点、点击图、触达图、跨域用户打通和弹窗推送等功能。基于 JavaScript 原生语言编写,兼容 Chrome、Firefox、IE(IE6 +)等所有主流浏览器,并提供不同模式的源码,包括 AMD 模块依赖的 amd.js 源码文件和 ES6 标准的 es6.js 源码文件。二、目录结构Web JS SDK 的源码是独立的 JS 文件,目录如图 ..
2021-08-12 09:35:15
950
原创 React Native 页面浏览事件采集方案 | 数据采集
一、前言React Native 是由 Facebook 推出的移动应用开发框架,可以用来开发 iOS、Android、Web 等跨平台应用程序,官网为:https://facebook.github.io/react-native/。React Native 和传统的 Hybrid 应用最大的区别就是它抛开了 WebView 控件。React Native 产出的并不是 “网页应用”、“HTML5 应用” 或者 “混合应用”,而是一个真正的移动应用,从使用感受上和用 Objective-C 或..
2021-08-12 09:35:04
401
原创 Android SDK 启动退出方案演进 | 数据采集
一、前言在运营分析中,DAU(Daily Active User)、UV(Unique Visitor)和用户使用时长是最常见的三个指标。对于一个 App 来说,三个指标的含义如下: DAU:日活跃用户数; UV:独立访客; 用户使用时长:App 使用时长。 根据上面的描述可知,DAU 和 UV 的统计分析与 App 启动事件息息相关,用户使用时长则需要通过 App 退出事件进行分析。在神策分析中,统计上述三个指标的方式如下: DAU:通过查询 App 每日启..
2021-08-12 09:34:50
285
原创 神策数据微信小程序 SDK 架构解析
一、前言神策数据微信小程序 SDK[1],是一款轻量级用于微信小程序端的数据采集埋点 SDK,包含代码埋点、全埋点功能。其中,全埋点功能通过代理微信小程序原生 App、Page、Component 接口及相应生命周期函数来实现。下面将以 SDK 版本 v1.13.28[2]为例介绍微信小程序 SDK 的架构。二、基本原理神策数据微信小程序 SDK 自开源以来,SDK 的代码和目录结构不断调整、优化。目前开源代码中存在 product 目录以及其他不同版本的源码文件,如图 2-1 所示:...
2021-08-12 09:34:39
1646
原创 神策分析 iOS SDK 全埋点解析之元素点击与页面浏览
一、前言本文是继《神策分析 iOS SDK 全埋点解析之启动与退出》之后,全埋点解析系列博客的第二篇,主要介绍元素点击与页面浏览的全埋点采集方案。在介绍具体的方案之前,我们需要先了解下相关的背景知识。二、背景知识2.1 Target-ActionTarget-Action,也叫 “目标 - 动作” 模式,即当某个事件发生的时候,调用特定对象的特定方法。“特定对象” 就是 Target,“特定方法” 就是 Action。例如:在 LoginViewController 页面上有一...
2021-08-12 09:34:30
903
原创 你不知道的 Activity 生命周期
一、前言对于 Android 开发者而言,Activity 生命周期执行顺序并不陌生。但总是如此吗?它的生命周期会不会在某些场景下发生改变呢?下面我们一起来看看,这些熟悉的东西为何不一样,我们又有什么应对策略。二、常见的生命周期函数Google 官网提供的 Activity 生命周期流程如图 2-1 所示:图 2-1 Activity 生命周期流程图[1]首先我们来看看常见的生命周期函数,有 onCreate()、onStart()、onResume()、onPause()、..
2021-08-11 20:02:42
116
原创 还不了解 static ?年轻人,劝你耗子尾汁...
一、引言Java 的 static 关键字大家应该都不陌生,网上也有很多介绍 static 的文章,笔者认为很多文章并没有从源头知识上对其进行介绍,反而让读者阅读完以后变的更加迷惑。本文带大家从虚拟机类加载机制角度详细认识一下 static。在正式介绍 static 之前,我们先看看两个小例子。1.1 案例一思考下面的代码输出什么:class Base{ static{ System.out.println("base static"); } ..
2021-08-11 19:33:54
137
原创 老板不让用 AFNetworking,我该怎么办?
一、引言大数据分析最核心的是数据,我们不仅仅要做到采集数据,还需要把数据上传到指定的服务端。然后再经过服务端的存储、抽取、分析和展现,才能充分发挥数据真正的价值。神策分析 iOS SDK 针对数据传输,从完整性、正确性以及高效性等多方面综合考虑,设计并实现了一套适用于数据采集的网络传输方案。下面针对神策分析 iOS SDK 网络模块进行解析,希望能够给大家提供一些参考。二、网络请求方案iOS 中网络请求的实现有多种方式,例如:苹果官方提供的网络请求 API ;或者一些开源网络框架..
2021-08-11 18:31:44
183
原创 如何找到程序崩溃的 “凶手” ?
一、引言在 iOS 应用程序开发过程中,我们难免会碰到因各种异常而导致应用程序崩溃的情况。对于开发过程中遇到的崩溃,我们可以根据本地崩溃信息快速定位问题。但对于线上版本发生的一些崩溃情况,我们只能通过收集崩溃信息来分析具体的原因。虽然 Apple 提供了崩溃信息上报的功能,但是并非所有的用户都开启了该功能。因此,对于数据采集 SDK 来说,采集崩溃信息并上报是一项必不可少的功能。下面针对神策分析 iOS SDK 崩溃采集模块进行解析,希望能够给大家提供一些参考。二、崩溃类型采集应用程..
2021-08-11 18:24:15
472
原创 七步实现列表点击事件的采集
一、前言在 iOS 全埋点采集中,cell 点击事件采集通常是指对 UITableViewCell 和 UICollectionViewCell 的用户点击行为进行采集。cell 的点击是通过协议中的方法实现的,因此我们对 UITableView 的协议方法 - tableView:didSelectRowAtIndexPath: 和 UICollectionView 的协议方法 - collectionView:didSelectItemAtIndexPath: 进行 hook 即可达到采集的..
2021-08-11 18:08:03
309
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人