Web 内核(Android)快速接入

最近更新时间:2026-03-18 16:41:02

我的收藏
本文档旨在指导开发者快速将互动课堂(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.26'
}

2. 配置 CPU 架构

defaultConfig 闭包中指定支持的架构。
说明:
目前 SDK 支持 armeabi-v7aarm64-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 接口获取。
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 内核定制指南