> 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 dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
