帮你快速理解、总结文档立即下载

Web 内核(Android)快速接入

最近更新时间:2026-05-09 22:01:51
我的收藏
本文档旨在指导开发者快速将互动课堂(LCIC)Web 内核版 SDK 集成至 Android 项目中。
说明:
阅读本文前,您可以先了解 移动端原生内核与 Web 内核的区别。

开发环境要求

在开始集成前,请确保您的开发环境满足以下要求:
开发工具:Android Studio 3.0 或更高版本。
系统版本:Android 6.0(API Level 23)及以上。

集成步骤

步骤 1:导入 SDK

LCIC SDK 已发布至 Maven Central,建议通过 Gradle 进行远程集成。
请在应用模块(Module)的 build.gradle 文件中进行如下配置。

1. 添加依赖

在 dependencies 闭包中添加 SDK 依赖:
dependencies {
// LCICSDK 组件
implementation 'com.tencent.edu:TCICSDK:1.8.32'
}

2. 配置 CPU 架构

在 defaultConfig 闭包中指定支持的架构。
说明:
目前 SDK 支持 armeabi-v7a 和 arm64-v8a。您可以根据业务需求灵活配置,支持的架构越多,安装包体积越大。
defaultConfig {
ndk {
abiFilters "armeabi-v7a", "arm64-v8a"
}
}

3. 配置 Java 编译版本

在 compileOptions 闭包中,设置 JDK 版本为1.8:
compileOptions {
sourceCompatibility 1.8
targetCompatibility 1.8
}

4. 适配高版本 AGP

如果您的 Android Gradle Plugin (AGP) 版本大于4.2.0,请在 android 闭包中添加以下配置以避免打包错误:
android {
packagingOptions {
jniLibs {
useLegacyPackaging true
}
}
}

5. 同步项目

配置完成后,单击 Android Studio 右上角的 Sync Now,等待 SDK 下载并集成完成。

步骤 2:配置清单文件

在 AndroidManifest.xml 中声明 SDK 所需的权限:
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

<application
...
<!-- 注意:当 minSdkVersion ≥ 23 时,必须添加此属性 -->
android:extractNativeLibs="true">
...
</application>

步骤 3:配置混淆规则(可选)

如果您开启了代码混淆,请在 proguard-rules.pro 文件中添加以下规则,防止 LCIC SDK 核心类被混淆:
-keep class com.tencent.** { *; }

步骤 4:申请 SDK 授权 (License)

App 开发需要获取以下两种 License:

1. Web 引擎 License

测试环境:请参考 申请 Web 引擎测试用 License,完成流程至第四部分获取 LicenseKey 即可。
正式环境:购买旗舰版后,请通过 联系我们 加入微信群联系技术支持申请正式版 License。

2. 播放器授权(仅“直播大班课”需要)

如果是“直播大班课”班型,需申请播放器权限。请按以下模板填写信息并提交 腾讯云工单,相关疑问可通过 联系我们 加入微信群了解。
注意:
一个旗舰版仅支持授权一个正式包名,请确认信息无误。
参考模板提供信息:
问题:实时互动-教育版申请播放器授权
公司名称:
联系方式:
App Name:
Package Name (Android):
Bundle ID (iOS):

步骤 5:初始化 Web 引擎

Web 引擎相较于系统 WebView 具有更好的兼容性和速度。

1. 隐私合规检查

请务必在用户同意隐私政策协议之后,再调用初始化方法,以免违规收集个人信息导致应用上架失败。

2. 执行初始化

初始化代码必须在主进程中执行,且只需调用一次。
// 判断是否为主进程
if (TCICInitProvider.isMainProcess(context)) {
// 初始化 Web 引擎
// licenseKey 获取方式请参考步骤 4
TCICManager.getInstance().initX5Core(licenseKey, new TBSSdkManageCallback() {
@Override
public void onCoreInitFinished() {
// 内核初始化结束回调
}
@Override
public void onViewInitFinished(boolean isX5Core) {
// Web 引擎初始化完成,此时可以进入课堂
Log.i("LCIC", "Web Engine Init Finished. Is X5 Core: " + isX5Core);
}
});
}

步骤 6:构建进房参数

请按照文档 接入准备 获取必要参数。
进入课堂需要构建 TCICClassConfig 对象。请通过以下方式获取所需参数:

参数详情表

字段
类型
必填
含义
备注
schoolid
int
是
应用 ID
在 接入准备 中创建的应用 ID (SdkAppId)。
userid
long
是
课堂 ID
通过 RegisterUser 接口获取。
token
string
是
用户 ID
通过 LoginUser 接口获取。
classid
string
是
鉴权 Token
通过 CreateRoom 接口获取。
region
string
否
服务器地域
默认值 cn,即访问中国大陆服务器节点. 支持值:
cn:中国大陆。国内用户或全球不确定位置用户。
sg:新加坡。全球非中国大陆用户。
scene
string
否
场景名称
用于区分不同的定制布局,有两种配置方式:
方式1:使用 SetAppCustomContent 接口配置。
方式2:控制台 场景配置。
lng
string
否
语言参数
界面语言设置。支持值:
zh-CN:中文简体
zh-TW:中文繁体
en-US:英语
ja:日语
ko:韩语
ar:阿拉伯语
vi:越南语
id:印尼语
需配合 TCICWebViewManager.getInstance().setClassLanguage 使用。
camera
int
否
开启摄像头
1:开启 (默认),0:关闭。
mic
int
否
开启麦克风
1:开启 (默认),0:关闭。
speaker
int
否
开启扬声器
1:开启 (默认),0:关闭。
groupLiveCode
string
否
分组直播码
详见 分组直播。

步骤 7:调起课堂页面

使用配置好的参数启动 TCICClassActivity 即可进入课堂。
// 1. 构建配置对象
TCICClassConfig initConfig = new TCICClassConfig.Builder()
.schoolId(schoolId) // 应用 ID
.classId(classId) // 课堂 ID
.userId(userId) // 用户 ID
.token(token) // 鉴权 Token
.build();

// 2. 启动课堂 Activity
Intent intent = new Intent(getActivity(), TCICClassActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);
Bundle bundle = new Bundle();
bundle.putParcelable(TCICConstants.KEY_INIT_CONFIG, initConfig);
intent.putExtras(bundle);
startActivity(intent);

监听退出课堂

如果您需要感知用户退出课堂的事件,可以注册本地广播接收器:
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(TCICConstants.ON_CLASS_EXITED_ACTION);
LocalBroadcastManager.getInstance(context).registerReceiver(broadcastReceiver, intentFilter);

推荐与资源

异常监控:建议接入 腾讯 Bugly 以快速发现并解决线上异常,提升用户体验。
示例代码:请参考 Android 开发 Demo。
进阶功能:如需定制界面,请参考 Web 内核定制指南。