集成 SDK
本文介绍如何在 Android 工程中集成福昕 PDF SDK(AAR 方式),并完成授权初始化。
步骤 1:创建 Android 工程
- 打开 Android Studio,选择 File → New → New Project…。
- 选择 Empty Activity 模板,点击 Next。
- 填写应用信息并创建工程(例如工程名
PDFReader)。
步骤 2:集成福昕 PDF SDK
本节以“直接使用 AAR(推荐快速验证)”为例。若您需要深度定制 UI,可考虑引入 UI Extensions 源码工程(libs/uiextensions_src),详见后续文档。
2.1 拷贝 AAR 到工程
将 SDK 包 libs/ 中的以下文件拷贝到工程 app/libs/:
必需(核心)
FoxitRDK.aar
可选(内置 UI / 按需启用)
- UI Extensions:
FoxitRDKUIExtensions.aar - RMS:
RMSSDK-4.2-release.aar、rms-sdk-ui.aar - 扫描:
FoxitMobileScanningRDK.aar、FoxitPDFScan-UI.aar
- UI Extensions:
2.2 配置 app/build.gradle
- 将
libs目录声明为本地仓库(用于加载 AAR):
kotlin
repositories {
flatDir {
dirs 'libs'
}
}
- 启用 MultiDex(SDK 典型场景需要):
kotlin
android {
defaultConfig {
multiDexEnabled true
}
}
dependencies {
implementation 'androidx.multidex:multidex:2.0.1'
}
- 添加 SDK 依赖(最小可运行集合):
kotlin
dependencies {
// 必需:第三方依赖(如工程中未包含,请显式添加)
implementation 'androidx.appcompat:appcompat:1.3.0'
implementation 'com.google.android.material:material:1.3.0'
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
// 必需:核心 SDK
implementation(name: 'FoxitRDK', ext: 'aar')
}
2.2.1 启用 UI Extensions(完整阅读器)
如果您需要构建“功能完整的 PDF 阅读器(UI Extensions)”,请同时满足以下条件:
- 已将
FoxitRDKUIExtensions.aar拷贝到app/libs/(参考:拷贝 AAR 到工程)。 - 已在
app/build.gradle的dependencies中添加:
kotlin
implementation(name: 'FoxitRDKUIExtensions', ext: 'aar')
2.3(可选)启用常见扩展能力的依赖
根据功能需要再引入相应依赖,避免无谓增重:
- RMS(打开 RMS 保护文档)
kotlin
dependencies {
implementation 'com.microsoft.identity.client:msal:2.+'
implementation(name: 'RMSSDK-4.2-release', ext: 'aar')
implementation(name: 'rms-sdk-ui', ext: 'aar')
}
并在项目级 build.gradle 的仓库配置中加入 Microsoft Maven 源,示例代码如下:
kotlin
allprojects {
repositories {
google()
jcenter()
maven {
url 'https://pkgs.dev.azure.com/MicrosoftDeviceSDK/DuoSDK-Public/_packaging/Duo-SDK-Feed/maven/v1'
}
}
}
- 截屏
kotlin
dependencies {
implementation 'com.edmodo:cropper:1.0.1'
}
- 墨迹识别
kotlin
dependencies {
implementation 'com.google.mlkit:digital-ink-recognition:18.1.0'
}
- 扫描(调用扫描 UI 模块)
kotlin
dependencies {
implementation(name: 'FoxitMobileScanningRDK', ext: 'aar')
implementation(name: 'FoxitPDFScan-UI', ext: 'aar')
implementation 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'
}
- PDF 对比
kotlin
dependencies {
implementation "io.reactivex.rxjava2:rxjava:2.2.16"
implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'
}
- PDF 签名
kotlin
dependencies {
implementation 'org.bouncycastle:bcpkix-jdk15on:1.64'
implementation 'org.bouncycastle:bcprov-jdk15on:1.64'
}
2.4 参考实现:app/build.gradle
以下是app/build.gradle 的完整示例, 包含了多个可选能力相关依赖,便于快速验证与对照;实际项目中请按需裁剪。
[app/build.gradle]
kotlin
plugins {
id 'com.android.application'
}
android {
compileSdkVersion 33
defaultConfig {
applicationId "com.foxit.pdfreader"
minSdkVersion 19
targetSdkVersion 33
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
repositories {
flatDir {
dirs 'libs'
}
}
dependencies {
implementation 'androidx.multidex:multidex:2.0.1'
implementation 'androidx.appcompat:appcompat:1.3.0'
implementation 'com.google.android.material:material:1.3.0'
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
implementation(name: 'FoxitRDK', ext: 'aar')
implementation(name: 'FoxitRDKUIExtensions', ext: 'aar')
implementation 'com.edmodo:cropper:1.0.1'
// RMS
implementation 'com.microsoft.identity.client:msal:2.+'
implementation(name: 'RMSSDK-4.2-release', ext: 'aar')
implementation(name: 'rms-sdk-ui', ext: 'aar')
// Ink Recognition
implementation 'com.google.mlkit:digital-ink-recognition:18.1.0'
// Scanning
implementation(name: 'FoxitPDFScan-UI', ext: 'aar')
implementation(name: 'FoxitMobileScanningRDK', ext: 'aar')
implementation 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'
// RxJava: Compare
implementation "io.reactivex.rxjava2:rxjava:2.2.16"
implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'
// Signature
implementation 'org.bouncycastle:bcpkix-jdk15on:1.64'
implementation 'org.bouncycastle:bcprov-jdk15on:1.64'
}
步骤 3:授权并初始化 SDK
在调用任何 Foxit API 之前,必须先完成授权初始化。请参考:试用与授权。