在做一些商业化相关的项目时,经常听到其他部门的同事讲一些程序化广告方面的术语,让人一头雾水。这篇博客就来整理一下常见的术语和它们的含义,这样以后就能愉快的和别人交(zhuang)流(bi)啦😊
在之前的博客中提到过,如果直接使用 Xcode 集成的代码覆盖率工具,提交 App 的时候似乎会被拒绝。这就导致如果我们想让线上的用户参与覆盖率测试就会受到困难,只能局限在公司内部进行测试。为了解决这个问题,就需要自己实现一套覆盖率检测工具。
获得代码覆盖率报告可以让我们更精准地进行测试。LLVM 本身就通过编译插桩提供了这样的能力,因此可以很简便地实现这一功能。但根据 Technical Q&A QA1964 提到的内容,带有 LLVM instrumentation 的 App 在提交的时候会被以下理由拒绝。因此如果要在线上做覆盖率检测,可能需要我们自己来实现。
1 | Invalid Bundle - Disallowed LLVM instrumentation. Do not submit apps with LLVM profiling instrumentation or coverage collection enabled. Turn off LLVM profiling or code coverage, rebuild your app and resubmit the app. |
这篇文章记录了编写第一个 LLVM Pass 的过程,主要跟随 LLVM 官方的 Hello Pass 教程。
所谓 Tagged Pointer 就是指针不再指向数据,而是用其中的一部分直接表示该数据本身。这个词借鉴于 Tagged Architecture 。在 Tagged Architecture 中,每个字(word)的一部分被用来表示数据的类型(type),这部分就是所谓的 Tag。虽然本质上和 Tagged Pointer 有所区别,但该名称还是被一直沿用下来。
最近遇到一个需求,一个被远程控制的小车需要在多个网络中无缝漫游。如果按照我们熟悉的方式,搭建一个 Wi-Fi 网络,小车上的树莓派就可能在网络切换时掉线 1 至 2 秒钟。鉴于小车是被实时远程控制的,我们需要网络切换时间极短,而不同 Wi-Fi 之间的切换速度就不符合要求。
Update your browser to view this website correctly. Update my browser now