Skip to content

集成 SDK

本文介绍如何在 Android 工程中集成福昕 PDF SDK(AAR 方式),并完成授权初始化。

步骤 1:创建 Android 工程

  1. 打开 Android Studio,选择 File → New → New Project…
  2. 选择 Empty Activity 模板,点击 Next
  3. 填写应用信息并创建工程(例如工程名 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.aarrms-sdk-ui.aar
    • 扫描:FoxitMobileScanningRDK.aarFoxitPDFScan-UI.aar

2.2 配置 app/build.gradle

  1. libs 目录声明为本地仓库(用于加载 AAR):
kotlin
repositories {
    flatDir {
        dirs 'libs'
    }
}
  1. 启用 MultiDex(SDK 典型场景需要):
kotlin
android {
    defaultConfig {
        multiDexEnabled true
    }
}

dependencies {
    implementation 'androidx.multidex:multidex:2.0.1'
}
  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.gradledependencies 中添加:
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 之前,必须先完成授权初始化。请参考:试用与授权