> For the complete documentation index, see [llms.txt](https://docs.apryse.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.apryse.com/android/get-started/faq/run-tools-source.md).

# How to integrate the Apryse libraries from source

World's #1 PDF SDK Library for Web, Mobile, Server, Desktop

The source code for the [Tools library](/android/get-started/get-started.md) can be integrated into your Android app and further customized to meet your needs.

## Integrate Apryse libraries from source

### Prerequisites

* An existing Android Studio project running in the latest version of [Android Studio](https://developer.android.com/studio/)
* Minimum API: 21 (using AndroidX)
* Compile API: 35
* Recommended target API: 35
* Downloaded the Apryse Android SDK:

Download the SDK

[Download](https://pdftron.s3.amazonaws.com/downloads/PDFNetAndroid.zip)

This guide will help you integrate the Tools library with your Android Studio project.

1. Add the following lines in your project's root-level `build.gradle` file.

{% tabs %}
{% tab title="Groovy" %}
{% code lineNumbers="true" %}

```groovy
allprojects {
    repositories {
        // ...
        flatDir {
            dirs '../libs'
        }
    }
}

// ...
ext.mySupportVersion = "1.3.1"
ext.myBuildToolsVersion = "30.0.2"
ext.myMinSdkVersion = 16
ext.myTargetSdkVersion = 34
ext.myCompileSdkVersion = 34

ext.pdfnetGroup = { dependencyHandler ->
    delegate = dependencyHandler

    implementation "com.pdftron:pdftron@aar"
}

ext.supportLibGroup = { dependencyHandler ->
    delegate = dependencyHandler

    implementation 'androidx.legacy:legacy-support-v4:1.0.0'
    implementation 'androidx.appcompat:appcompat:$ext.mySupportVersion'
    implementation 'androidx.recyclerview:recyclerview:1.2.1'
    implementation 'com.google.android.material:material:1.13.0'
    implementation 'androidx.constraintlayout:constraintlayout:2.1.0'
    implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'
    implementation "androidx.preference:preference:1.1.0"

    implementation "commons-io:commons-io:2.4"
    implementation "org.apache.commons:commons-lang3:3.18.0"
    implementation "com.google.code.gson:gson:2.8.0"
    implementation "io.reactivex.rxjava2:rxjava:2.2.2"
    implementation 'io.reactivex.rxjava2:rxandroid:2.1.0'
    implementation "com.github.clans:fab:1.6.4"
    implementation "androidx.exifinterface:exifinterface:1.3.3"
    implementation "com.squareup.picasso:picasso:2.71828"
    implementation "org.ccil.cowan.tagsoup:tagsoup:1.2.1"

    implementation 'androidx.multidex:multidex:2.0.1'
    implementation "androidx.room:room-runtime:2.4.2"
    annotationProcessor "androidx.room:room-compiler:2.4.2"
}
```

{% endcode %}
{% endtab %}
{% endtabs %}

1. Create a new folder named `libs` in your project's root directory, then copy the following files from the SDK package to this folder:

* Either `lib/full/pdftron.aar` or the file `lib/standard/pdftron.aar`. [You can read about the differences between the two versions here](/android/get-started/faq/full-vs-standard.md).

1. Open your project in Android Studio and go to **File > New > Import Module...** Import the `lib\src\PDFViewCtrlTools` library modules from the SDK package into your project.
2. Finally, add the MultiDex and Apryse library dependencies to your app by adding the following to your app's module level `build.gradle` file:

{% tabs %}
{% tab title="Groovy" %}
{% code lineNumbers="true" %}

```groovy
android {
    defaultConfig {
        // ...
        multiDexEnabled true
        vectorDrawables.useSupportLibrary = true
    }
}

dependencies {
    // ...
    pdfnetGroup dependencies
    supportLibGroup dependencies
    
    implementation project(':PDFViewCtrlTools')
}
```

{% endcode %}
{% endtab %}
{% endtabs %}

Your project is now running Apryse from source and you can start modifying the Apryse Android libraries in your project.

## Next Steps

* [Add a license key](/android/get-started/faq/add-license.md)
* Show a document in an [Activity](/android/open-save-document/open.md) or [Fragment](/android/open-save-document/open/fragment.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

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

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.apryse.com/android/get-started/faq/run-tools-source.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
