# Android

Welcome to the Flagship Android SDK documentation!

The following article will guide you through the steps to get Flagship up and running on your native Android app using our client library with preconfigured methods to implement the Decision API.

Wants to have a look at the GitHub repo? Link [here](https://github.com/flagship-io/flagship-android).

Feel free to [contact us](mailto:product.feedback@abtasty.com?subject=Flagship%20Developer%20Documentation) if you have any questions regarding this documentation.

### Release notes

#### [4.0.0-beta2 (Latest version)](#id-4.0.0-beta2-latest-version)

**Fixed**

* Fix Room Database opening by upgrading dependency

#### [4.0.0-beta2 (Latest version)](#id-4.0.0-beta2-latest-version)

**Fixed**

* Enhance code security by using safer patterns
* Fix blocking coroutine execution within lifecycle callbacks

#### 4.0.0-beta1

**Revamped SDK Statuses**

* Redesigned and improved the SDK statuses for better clarity and efficiency.

**Tracking Manager**

* **New Feature**: Introduced a Tracking Manager to batch hits efficiently, reducing the overhead and enhancing performance.

**Visitor Flag Status Updates**

* **Enhancement**: Added new visitor flag statuses, enabling users to know when flags need to be updated.

**Get Flag and FlagCollection**

* Revamped the `Get Flag` functionality for improved usability.
* **New Feature**: Introduced `FlagCollection`, a new collection object for managing multiple flags easily.

**Emotion AI**

* **New Feature**: Added a cutting-edge Emotion AI feature, providing advanced emotional analytics.

#### [3.1.0 (Latest stable version)](/server-side/sdks/android/android-v31.md)

* **Changed**
  * userExposed has been renamed to visitorExposed
* **Added**
  * Flagmetadata now returns campaign name, variation group name and variation name.
  * onVisitorExposed callback
  * Warning when Flags need to be updated

#### 3.0.5

* **Changed**
  * Compilation and publishing to MavenCentral

#### 3.0.4

* Fix Event value type: must be interger > to 0.

#### 3.0.3

* Added campaign slug information in FlagMetadata

#### 3.0.2

**Fixed**

* Hit batch length limitation.

#### 3.0.1

**Fixed**

* Prevention of variation reallocation in Bucketing mode.
* Offline flag management have been fixed in Bucketing mode.

**Added**

* VariationGroup and Variation ids assignations history have been added in IVisitorCacheImplementation cache lookup format.

#### 3.0.0

**Added**

* Visitor instance management
* Flag management class

**Changed**

* SDK new architecture
* Init and configuration
* synchronizeModification / getModification / getModificationInfo / activateModification are now obsolete and have been replaced by Flag class

#### 2.1.1

**Added**

* Visitor consent management

#### 2.1.0

**Changed**

* New builder options for withVisitorId().
* Removed builder method withVisitorContext().
* Rename Page for Screen hit.

**Added**

* Methods for experience continuity : authenticateVisitor() and unauthenticateVisitor()
* Method to get current visitor : context getContext()

#### 2.0.3

**Changed**

* Change Page hit for Screen hit.

#### 2.0.2

**Fixed**

* Remove header from api call to events and activate endpoints.

#### 2.0.1

**Fixed**

* Targeting on lists

**Added**

* `isReference` value in getModificationInfo().

#### 2.0.0

**Changed**

* New API endpoints for better performance.
* Murmur hash allocation improvements in bucketing mode.

**Added**

* JSONArray / JSONObject modifications management.
* Timeout configuration.


---

# Agent Instructions: 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:

```
GET https://docs.abtasty.com/server-side/sdks/android.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
