> For the complete documentation index, see [llms.txt](https://beacon-help.gitbook.io/beacon-help/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://beacon-help.gitbook.io/beacon-help/faq/guan-yu-sdk.md).

# 关于SDK

## 1、灯塔SDK支持哪些终端，如何接入灯塔SDK？

灯塔SDK目前支持Android、iOS、H5、小程序4大平台的终端设备；接入SDK请参照[SDK下载页面](/beacon-help/sdkhuo-qu.md),下载的资源包里面的灯塔SDK接入指南文档。

## 2、请问产品app接入灯塔SDK的工作量大吗？

SDK的基础接入工作只需要简单的三个步骤：资源包的引入，APPKEY的配置，初始化接口的调用。正常情况下10分钟内即可完成接入，并看到启动上报的数据。具体可参见下载资源包里的SDK接入指南文档

## 3、灯塔SDK的包有多大？

Android SDK 全功能包大小为215KB，引入后apk实际增长113KB；基础功能包(事件测速)包大小为155KB，引入后apk实际增长84KB；\
iOS SDK 资源包合入app后，实际增长大小为0.54MB。

## 4、使用灯塔SDK后，会对终端资源的占用增加多少，主要是流量内存的占用？

Android\
内存占用：0.5-2.7MB；\
流量消耗：首次初始化策略请求上报2.8-3.6K，触发一次事件上报，5条实时事件0.6K，20条普通事件2K。\
iOS\
内存占用：0.5-0.61MB；\
流量消耗：10条实时事件：1K，50条普通事件：1.3K。

## 5、QIMEI是什么，如何使用灯塔的QIMEI服务？

QIMEI是灯塔推出的终端ID精准识别体系，包含Android/iOS两类主流终端的识别。其主要思想为：SDK将各种ID采集上报，后台利用的ID关系库、山寨库和校准算法，实时生成/找回终端唯一ID并下发。

嵌入灯塔SDK之后，即可调用统一的QIMEI获取接口进行获取QIMEI。

## 6、SDK上报的数据有加密和压缩吗？

灯塔SDK本地存储以及上报的数据均有加密和压缩，对称加解密密钥云端可配置，压缩方式云端可配，支持zip和gzip两种方式。

## 7、SDK上报时机和策略是什么？

普通事件：普通事件会先存在内存中，累计12条或者等待1分钟写DB，在符合以下任意一条件的时候，会把db和内存所有事件上报：

* DB中累计20条事件
* 熄屏&灭屏
* 热启动
* 网络状态切换

实时事件：每累计12条会上报，或者等待1分钟时间会进行上报，实时事件重试3次上报失败，变成普通事件同步DB。参数值SDK和云端均支持修改配置

{% hint style="info" %}
重要事件建议使用实时事件，并立即上报
{% endhint %}

## 8、应用从后台切换至前台，灯塔会上报启动数据吗？

会上报，上报规则为距上一次切到后台间隔1分钟以上才会记录上报，有频率控制。并且会当作热启动，纳入启动次数的统计。

## 9、SDK的网络测速是怎么实现的，需要app做哪些操作？

SDK支持IP:Port和域名探测2种，获取TCP连接耗时和域名探测中的dns解析，TCP连接，请求发送，等待响应，接收返回数据5个阶段的耗时情况。

探测由SDK主动完成并上报，不需要app做额外的操作。

## 10、灯塔是如何区分不同的渠道用户的？

需要app按照接入指南文档中的说明，正确规范配置不同的渠道号标识，灯塔在上报时会采集渠道信息。

## 11、在自定义事件上报数据中会记录发生的时间吗？

会记录。

## 12、灯塔是怎样获取app的版本号的？

Android平台是采集的AndroidManifest.xml配置文件中的versionName+ versionCode的值。

iOS平台是采集的XCode中设置的版本号。

## 13、怎么样获取SDK的版本号？

Android，UserAction.getSDKVersion() 接口。

iOS，AnalyticsInterface getSDKVersion接口。

## 14、灯塔对Android的多进程应用上报支持吗，需要怎么做？

支持，在SDK初始化函数中，UserAction.initUserAction(Context context, boolean isUploadProcess) 通过第二个参数进行设置，true为上报进程，只需设置一个做为上报进程，其他的设置为false，当作记录进程。其他接口的使用上无区别。

## 15、SDK对网络流量的消耗有记录吗，SDK有没有流量消耗上限控制？

SDK会记录本次启动到目前SDK自身的网络流量消耗，并且区分了wifi和非wifi的流量消耗，Android上可通过UserAction.getSDKTotalConsume(Context context, boolean onlyGPRS)接口获取，@param onlyGPRS true只统计GPRS流量，否则包括wifi。 SDK自身的流量消耗上限是10M/天（wifi下不限制流量），超过之后数据将不会进行上报。\
app的网络流量消耗目前的版本还未进行记录统计。

还有疑问？欢迎反馈给<tbeacon@tencent.com>，会有专人为您服务。
