# 关于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>，会有专人为您服务。


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://beacon-help.gitbook.io/beacon-help/faq/guan-yu-sdk.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
