# Native Android >[!NOTE] >The following integration instructions are relevant for SDK 3.0 or higher.
Follow our migration instructions to [upgrade from SDK 2.x to 3.0](/migration-docs/README.md) or refer to our [2.x integration instruction](https://github.com/pendo-io/pendo-mobile-sdk/blob/2.22.5/README.md). >[!IMPORTANT] >**Jetpack Compose** is supported by our track events only solution. We plan to add codeless support in the future. >[!IMPORTANT] >Requirements: >- Android Gradle Plugin `7.2` or higher >- Kotlin version `1.9.0` or higher >- JAVA version `11` or higher >- minSdkVersion `21` or higher >- compileSDKVersion `33` or higher ## Step 1. Install Pendo SDK 1. #### Add the Pendo repository to **android/build.gradle**: ```java repositories { maven { url "https://software.mobile.pendo.io/artifactory/androidx-release" } mavenCentral() } ``` 2. #### Add Pendo as a dependency to **android/build.gradle** file: ```shell dependencies { implementation group:'sdk.pendo.io' , name:'pendoIO', version:'3.1.+', changing:true } ``` 3. **Minimum and compile SDK versions**: If applicable, set your app to be compiled with **compileSdkVersion 33** or higher and **minSdkVersion 21** or higher: ```java android { minSdkVersion 21 compileSdkVersion 33 } ``` 4. #### Using ProGuard If you are using **ProGuard(D8/DX only)** to perform compile-time code optimization, and have `{Android SDK Location}/tools/proguard/proguard-android-optimize.txt`, add `!code/allocation/variable` to the `-optimizations` line in your `app/proguard-rules.pro` file. The optimizations line should look like this: `-optimizations *other optimizations*,!code/allocation/variable` ## Step 2. Pendo SDK integration >[!NOTE] >The `API Key` can be found in your Pendo Subscription Settings in App Details. 1. Set up Pendo in the **Application class**. Add the following code in the **onCreate** method: ```java import sdk.pendo.io.*; String pendoApiKey = "YOUR_API_KEY_HERE"; Pendo.setup( this, pendoApiKey, null, // PendoOptions (use only if instructed by Pendo support) null // PendoPhasesCallbackInterface (Optional) ); ``` 2. Initialize Pendo in the **Activity/fragment** where your visitor is being identified. ```java String visitorId = "VISITOR-UNIQUE-ID"; String accountId = "ACCOUNT-UNIQUE-ID"; // send Visitor Level Data HashMap visitorData = new HashMap<>(); visitorData.put("age", 27); visitorData.put("country", "USA"); // send Account Level Data HashMap accountData = new HashMap<>(); accountData.put("Tier", 1); accountData.put("Size", "Enterprise"); Pendo.startSession( visitorId, accountId, visitorData, accountData ); ``` **visitorId**: a user identifier (e.g. John Smith) **visitorData**: the user metadata (e.g. email, phone, country, etc.) **accountId**: an affiliation of the user to a specific company or group (e.g. Acme inc.) **accountData** : the account metadata (e.g. tier, level, ARR, etc.)   This code ends the previous mobile session (if applicable), starts a new mobile session and retrieves all guides based on the provided information.   >[!TIP] >To begin a session for an anonymous visitor, pass ```null``` or an empty string ```""``` as the visitor id. You can call the `startSession` API more than once and transition from an anonymous session to an identified session (or even switch between multiple identified sessions). ## Step 3. Mobile device connectivity for tagging and testing >[!NOTE] >The `Scheme ID` can be found in your Pendo Subscription Settings in App Details. This step enables page tagging and guide testing capabilities. Add the following **activity** to the application **AndroidManifest.xml** in the `` tag: ## Step 4. Verify installation 1. Test using Android Studio: Run the app while attached to the Android Studio. Review the Android Studio logcat and look for the following message: `Pendo SDK was successfully integrated and connected to the server.` 2. In the Pendo UI, go to Settings>Subscription Settings. 3. Select the **Applications** tab and then your application. 4. Select the Install Settings tab and follow the instructions under Verify Your Installation to ensure you have successfully integrated the Pendo SDK. 5. Confirm that you can see your app as Integrated under subscription settings. ## Developer Documentation - API documentation available [here](/api-documentation/native-android-apis.md). - If for any reason you need to manually install the SDK - please refer to the [manual installation page](/android/pnddocs/android_sdk_manual_installation.md). ## Troubleshooting - For technical issues, please [review open issues](https://github.com/pendo-io/pendo-mobile-sdk/issues) or [submit a new issue](https://github.com/pendo-io/pendo-mobile-sdk/issues). - Release notes can be found [here](https://developers.pendo.io/category/mobile-sdk/). - For Dex issues with Android applications refer to this [resource](https://developer.android.com/studio/build/multidex). - For additional documentation, visit our [Help Center Mobile Section](https://support.pendo.io/hc/en-us/categories/4403654621851-Mobile).