{"id":"src_2eAHO01eRRBPgExZm9eai","slug":"launchdarkly-android-sdk","name":"Android SDK","type":"github","url":"https://github.com/launchdarkly/android-client-sdk","orgId":"org_bSzZpRzHXJ2mMJRcQ0ETB","productId":null,"productSlug":null,"org":{"id":"org_bSzZpRzHXJ2mMJRcQ0ETB","slug":"launchdarkly","name":"LaunchDarkly"},"isPrimary":false,"isHidden":false,"discovery":"curated","metadata":"{\"evaluatedMethod\":\"github\",\"evaluatedAt\":\"2026-04-11T13:43:14.583Z\",\"changelogUrl\":\"https://github.com/launchdarkly/android-client-sdk/blob/HEAD/CHANGELOG.md\",\"changelogDetectedAt\":\"2026-04-11T13:43:46.636Z\",\"wellKnownSweptAt\":\"2026-07-16T06:00:26.474Z\",\"sourceActor\":{\"nextAlarmAt\":\"2026-07-21T00:41:40.835Z\",\"lastAlarmAt\":\"2026-07-20T00:41:42.410Z\",\"managed\":true}}","notice":null,"kind":"sdk","stars":50,"starsFetchedAt":"2026-07-20T00:42:20.765Z","releaseCount":100,"releasesLast30Days":1,"avgReleasesPerWeek":0.5,"latestVersion":"5.13.2","latestDate":"2026-07-10T15:03:19.000Z","changelogUrl":"https://github.com/launchdarkly/android-client-sdk/blob/HEAD/CHANGELOG.md","hasChangelogFile":true,"lastFetchedAt":"2026-07-20T00:42:20.765Z","lastPolledAt":"2026-07-20T00:42:12.195Z","changeDetectedAt":null,"trackingSince":"2016-09-29T21:35:40.000Z","releases":[{"id":"rel_J0Oz3nikeZASR3cy7OSPM","version":"5.13.2","type":"feature","title":"v5.13.2","summary":"Coalesced SharedPreferences writes to reduce memory pressure in the Android SDK.","titleGenerated":"Android SDK v5.13.2 reduces memory pressure with coalesced SharedPreferences writes","titleShort":"SharedPreferences coalesced to reduce memory pressure","breaking":"none","importance":2,"content":"## [5.13.2](https://github.com/launchdarkly/android-client-sdk/compare/5.13.1...5.13.2) (2026-07-10)\n\n\n### Bug Fixes\n\n* coalesce SharedPreferences writes to reduce memory pressure ([#374](https://github.com/launchdarkly/android-client-sdk/issues/374)) ([bc82217](https://github.com/launchdarkly/android-client-sdk/commit/bc822173db3c80b3d73ce5e3dd72d7f95920ea6b))\n\n---\nThis PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).\n\n<!-- CURSOR_SUMMARY -->","publishedAt":"2026-07-10T15:03:19.000Z","fetchedAt":"2026-07-10T16:36:52.043Z","url":"https://github.com/launchdarkly/android-client-sdk/releases/tag/5.13.2","media":[],"coverageCount":0},{"id":"rel_8xhqwUk7OpEKiCpS2Bv2B","version":"5.13.1","type":"feature","title":"v5.13.1","summary":"Removed the deprecation marker from LDConfig.Builder.plugins.","titleGenerated":"LaunchDarkly Android SDK v5.13.1 removes deprecation marker from plugins","titleShort":"Deprecation marker removed from LDConfig.Builder.plugins","breaking":"unknown","importance":null,"content":"## [5.13.1](https://github.com/launchdarkly/android-client-sdk/compare/5.13.0...5.13.1) (2026-06-09)\n\n\n### Bug Fixes\n\n* remove deprecation marker from LDConfig.Builder.plugins ([1c681c2](https://github.com/launchdarkly/android-client-sdk/commit/1c681c25d5dd8216a158166acea6a34685771dd1))\n* remove deprecation marker from LDConfig.Builder.plugins ([#371](https://github.com/launchdarkly/android-client-sdk/issues/371)) ([2446924](https://github.com/launchdarkly/android-client-sdk/commit/24469242522547bcfaaabb2352045378a6373c22))\n\n---\nThis PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).\n\n<!-- CURSOR_SUMMARY -->","publishedAt":"2026-06-09T21:05:27.000Z","fetchedAt":"2026-06-10T05:01:36.449Z","url":"https://github.com/launchdarkly/android-client-sdk/releases/tag/5.13.1","media":[],"coverageCount":0},{"id":"rel_DQE2tYqYWuVWSStbTRYmC","version":"5.13.0","type":"feature","title":"v5.13.0","summary":"Added early access support for the second generation flag delivery protocol (FDv2), also known as data-saving mode, via a new data system configuration. The SDK continues to use the first generation protocol by default unless explicitly configured with Components.dataSystem(). The data system supports flexible configuration for initializers and synchronizers, with predefined modes for default, polling-only, streaming-only, offline, and custom per-mode behavior; automatic mode switching respects foreground/background lifecycle and network state changes.","titleGenerated":"LaunchDarkly Android SDK v5.13.0 adds FDv2 early access with data-saving mode","titleShort":"FDv2 early access; data-saving mode configuration available","breaking":"unknown","importance":null,"content":"## [5.13.0](https://github.com/launchdarkly/android-client-sdk/compare/5.12.2...5.13.0) (2026-06-08)\r\n\r\n\r\n### Features\r\n\r\n* **experimental:** Android Client SDK FDv2 EAP ([#369](https://github.com/launchdarkly/android-client-sdk/issues/369)) ([2597ad8](https://github.com/launchdarkly/android-client-sdk/commit/2597ad8dcce4a4cf38f5b1fa0c902123191b21a3))\r\n\r\n## Data Saving Mode EAP\r\n\r\nThis release adds support for our second generation flag delivery protocol, also known as data-saving mode.\r\n\r\nThis SDK version uses the first generation flag delivery protocol unless you explicitly configure the new protocol.\r\n\r\nSupport for the new protocol is defined by a data system configuration. Setting a data system via `Components.dataSystem()` enables the new protocol.\r\n\r\nThe data system supports more flexible configuration for **initializers** (how the SDK gets an initial payload) and **synchronizers** (how it stays up to date).\r\n\r\n> **This is an Early Access feature.** The `dataSystem` configuration surface is subject to change without notice and is not covered by the SDK's semantic-versioning guarantees until it graduates to GA. Existing applications that do not call `.dataSystem(...)` are unaffected.\r\n\r\n## Configuration\r\n\r\nSeveral predefined data system configurations are available depending on how you deploy the SDK. The Android Client SDK exposes the data system through the same `ConnectionMode` enum it already uses; the syntactic shape differs from the server SDKs because Android retains its existing foreground/background lifecycle semantics under FDv2. See [Automatic mode switching](#automatic-mode-switching) below.\r\n\r\n### Default\r\n\r\nThis is the LaunchDarkly-recommended default. It uses a two-phase strategy for initialization and includes fallbacks for synchronization in each connection mode.\r\n\r\nThe SDK gets an initial payload with a single request to the polling endpoints, then keeps it up to date via streaming in the foreground. If that initial polling request fails, the SDK can still initialize via streaming once it enters synchronization. During synchronization the SDK can fall back to polling if streaming has problems. The SDK automatically switches to polling in the background and during network changes.\r\n\r\n```java\r\nLDConfig config = new LDConfig.Builder(AutoEnvAttributes.Enabled)\r\n    .mobileKey(\"my-key\")\r\n    .dataSystem(Components.dataSystem())\r\n    .build();\r\n```\r\n\r\n### Polling only or streaming only\r\n\r\nYou can configure the SDK to use only polling or only streaming in the foreground. This is not the recommended mode, and fewer fallbacks are available. To prevent the SDK from switching modes based on app lifecycle or network state, disable automatic mode switching:\r\n\r\nPolling:\r\n\r\n```java\r\nLDConfig config = new LDConfig.Builder(AutoEnvAttributes.Enabled)\r\n    .mobileKey(\"my-key\")\r\n    .dataSystem(\r\n        Components.dataSystem()\r\n            .automaticModeSwitching(AutomaticModeSwitchingConfig.disabled())\r\n            .foregroundConnectionMode(ConnectionMode.POLLING))\r\n    .build();\r\n```\r\n\r\nStreaming:\r\n\r\n```java\r\nLDConfig config = new LDConfig.Builder(AutoEnvAttributes.Enabled)\r\n    .mobileKey(\"my-key\")\r\n    .dataSystem(\r\n        Components.dataSystem()\r\n            .automaticModeSwitching(AutomaticModeSwitchingConfig.disabled())\r\n            .foregroundConnectionMode(ConnectionMode.STREAMING))\r\n    .build();\r\n```\r\n\r\nIn streaming-only mode, polling may still be used if we need to disable the second generation protocol. In that case the data system is told to fall back to our v1 protocol and uses polling to do so.\r\n\r\n### Offline\r\n\r\nThe top-level `offline(true)` configuration applies to the data system.\r\n\r\n```java\r\nLDConfig config = new LDConfig.Builder(AutoEnvAttributes.Enabled)\r\n    .mobileKey(\"my-key\")\r\n    .offline(true)\r\n    .build();\r\n```\r\n\r\nIf both `offline(true)` and a data system (for example `Components.dataSystem()`) are set, the data system's initializers and synchronizers are not used.\r\n\r\n```java\r\nLDConfig config = new LDConfig.Builder(AutoEnvAttributes.Enabled)\r\n    .mobileKey(\"my-key\")\r\n    .offline(true)\r\n    .dataSystem(Components.dataSystem())\r\n    .build();\r\n```\r\n\r\n### Custom configuration\r\n\r\nFor advanced use cases, you can customize the initializers and synchronizers used by a specific `ConnectionMode`. This is the Android equivalent of the `custom()` data system configuration in the server SDKs: per-mode initializers and synchronizers built from `DataSystemComponents`.\r\n\r\nFor example, polling once every six hours when the app is in the background:\r\n\r\n```java\r\nLDConfig config = new LDConfig.Builder(AutoEnvAttributes.Enabled)\r\n    .mobileKey(\"my-key\")\r\n    .dataSystem(\r\n        Components.dataSystem()\r\n            .customizeConnectionMode(ConnectionMode.BACKGROUND,\r\n                DataSystemComponents.customMode()\r\n                    .initializers(DataSystemComponents.pollingInitializer())\r\n                    .synchronizers(\r\n                        DataSystemComponents.pollingSynchronizer()\r\n                            .pollIntervalMillis(21_600_000))))\r\n    .build();\r\n```\r\n\r\n### Automatic mode switching\r\n\r\nUnder FDv2 the `ConnectionMode` enum carries the same meaning it has today — the SDK still tracks foreground/background lifecycle, still respects network connectivity changes, and still exposes the same status surface. What changes is the data pipeline that backs each mode: per-mode initializers and synchronizers drawn from `DataSystemComponents` rather than the FDv1 polling/streaming components from `Components.pollingDataSource()` / `Components.streamingDataSource()`.\r\n\r\nTo disable automatic switching entirely, keeping the SDK in a single mode regardless of lifecycle or network changes:\r\n\r\n```java\r\nLDConfig config = new LDConfig.Builder(AutoEnvAttributes.Enabled)\r\n    .mobileKey(\"my-key\")\r\n    .dataSystem(\r\n        Components.dataSystem()\r\n            .automaticModeSwitching(AutomaticModeSwitchingConfig.disabled())\r\n            .foregroundConnectionMode(ConnectionMode.STREAMING))\r\n    .build();\r\n```\r\n\r\nTo disable lifecycle switching but keep network-driven switching:\r\n\r\n```java\r\nLDConfig config = new LDConfig.Builder(AutoEnvAttributes.Enabled)\r\n    .mobileKey(\"my-key\")\r\n    .dataSystem(\r\n        Components.dataSystem()\r\n            .automaticModeSwitching(\r\n                DataSystemComponents.automaticModeSwitching()\r\n                    .lifecycle(false)\r\n                    .network(true)\r\n                    .build()))\r\n    .build();\r\n```\r\n\r\n### Mutually exclusive with `dataSource(...)`\r\n\r\n`LDConfig.Builder.dataSystem(...)` and `LDConfig.Builder.dataSource(...)` are mutually exclusive. The data system uses FDv2; `dataSource()` uses the legacy FDv1 protocol. If you call both, the last call wins.\r\n","publishedAt":"2026-06-08T15:05:02.000Z","fetchedAt":"2026-06-09T05:00:47.305Z","url":"https://github.com/launchdarkly/android-client-sdk/releases/tag/5.13.0","media":[],"coverageCount":0},{"id":"rel_YWWXT9FXiquJRZs5FExZn","version":"5.12.2","type":"feature","title":"v5.12.2","summary":"Fixed a race condition where a 401 error could trigger a restart before the error callback was notified, by setting the 401 guard before invoking the error callback.","titleGenerated":"Android SDK v5.12.2 fixes 401 restart race condition","titleShort":"401 restart race fixed","breaking":"unknown","importance":null,"content":"## [5.12.2](https://github.com/launchdarkly/android-client-sdk/compare/5.12.1...5.12.2) (2026-06-03)\n\n\n### Bug Fixes\n\n* set 401 guard before notifying error callback to prevent restart race ([d875b00](https://github.com/launchdarkly/android-client-sdk/commit/d875b00b2a22cda4ca94eb7c2a04ab308518ab12))\n* set 401 guard before notifying error callback to prevent restart race ([#362](https://github.com/launchdarkly/android-client-sdk/issues/362)) ([24b2f38](https://github.com/launchdarkly/android-client-sdk/commit/24b2f384c4ce460ab4088f73c28c9c4c870ab7b8))\n* set connection401Error before invoking resultCallback in onError ([#332](https://github.com/launchdarkly/android-client-sdk/issues/332)) ([6fb1b85](https://github.com/launchdarkly/android-client-sdk/commit/6fb1b85506614078edccfe918d8011233e9894fc))\n\n---\nThis PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).\n\n<!-- CURSOR_SUMMARY -->","publishedAt":"2026-06-03T19:52:45.000Z","fetchedAt":"2026-06-04T00:01:30.646Z","url":"https://github.com/launchdarkly/android-client-sdk/releases/tag/5.12.2","media":[],"coverageCount":0},{"id":"rel_xH6vnI_SXna-eZ_CHmSNu","version":"5.12.1","type":"feature","title":"v5.12.1","summary":"Fixed track order processing to forward according to contracts.","titleGenerated":"LaunchDarkly Android SDK v5.12.1 fixes order processing tracking","titleShort":"Order processing tracking fixed","breaking":"unknown","importance":null,"content":"## [5.12.1](https://github.com/launchdarkly/android-client-sdk/compare/5.12.0...5.12.1) (2026-06-02)\n\n\n### Bug Fixes\n\n* track order processing to forward according contracts ([#358](https://github.com/launchdarkly/android-client-sdk/issues/358)) ([d4218a7](https://github.com/launchdarkly/android-client-sdk/commit/d4218a75304669c769c1f774f9d0cf1180649dd7))\n\n---\nThis PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).\n\n<!-- CURSOR_SUMMARY -->","publishedAt":"2026-06-02T21:37:16.000Z","fetchedAt":"2026-06-02T23:01:05.466Z","url":"https://github.com/launchdarkly/android-client-sdk/releases/tag/5.12.1","media":[],"coverageCount":0},{"id":"rel__dwRc2Evklo4mOry1yfEb","version":"5.12.0","type":"feature","title":"v5.12.0","summary":"## [5.12.0](https://github.com/launchdarkly/android-client-sdk/compare/5.11.2...5.12.0) (2026-04-29)\n\n\n### Features\n\n* remove kotlin ([#353](https://g...","titleGenerated":null,"titleShort":null,"breaking":"unknown","importance":null,"content":"## [5.12.0](https://github.com/launchdarkly/android-client-sdk/compare/5.11.2...5.12.0) (2026-04-29)\n\n\n### Features\n\n* remove kotlin ([#353](https://github.com/launchdarkly/android-client-sdk/issues/353)) ([5e332a8](https://github.com/launchdarkly/android-client-sdk/commit/5e332a8fa6c2fd016d01a829b877c1f2575a4fe0))\n\n---\nThis PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).\n\n<!-- CURSOR_SUMMARY -->","publishedAt":"2026-04-29T17:39:44.000Z","fetchedAt":"2026-04-29T19:01:04.699Z","url":"https://github.com/launchdarkly/android-client-sdk/releases/tag/5.12.0","media":[],"coverageCount":0},{"id":"rel_jFvyDxYVp7s7bqCuZeV7a","version":"5.11.2","type":"feature","title":"v5.11.2","summary":"## [5.11.2](https://github.com/launchdarkly/android-client-sdk/compare/5.11.1...5.11.2) (2026-04-29)\n\n\n### Miscellaneous Chores\n\n* releasing version w...","titleGenerated":null,"titleShort":null,"breaking":"unknown","importance":null,"content":"## [5.11.2](https://github.com/launchdarkly/android-client-sdk/compare/5.11.1...5.11.2) (2026-04-29)\n\n\n### Miscellaneous Chores\n\n* releasing version with DataSystem hidden in preparation for FDv2 EAP ([2f10f8d](https://github.com/launchdarkly/android-client-sdk/commit/2f10f8d498f06e74470529445d9a9a4b386fc335))\n\n---\nThis PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).\n\n<!-- CURSOR_SUMMARY -->","publishedAt":"2026-04-29T13:07:07.000Z","fetchedAt":"2026-04-29T19:01:04.699Z","url":"https://github.com/launchdarkly/android-client-sdk/releases/tag/5.11.2","media":[],"coverageCount":0},{"id":"rel_51YkD3KNsDOUHkAMueei3","version":"5.11.1","type":"feature","title":"v5.11.1","summary":"## [5.11.1](https://github.com/launchdarkly/android-client-sdk/compare/5.11.0...5.11.1) (2026-03-23)\n\n\n### Bug Fixes\n\n* Call identify hooks during ini...","titleGenerated":null,"titleShort":null,"breaking":"unknown","importance":null,"content":"## [5.11.1](https://github.com/launchdarkly/android-client-sdk/compare/5.11.0...5.11.1) (2026-03-23)\n\n\n### Bug Fixes\n\n* Call identify hooks during init. ([#331](https://github.com/launchdarkly/android-client-sdk/issues/331)) ([a09cb57](https://github.com/launchdarkly/android-client-sdk/commit/a09cb571f60a6573bbf13bb484a4ccda3feacc06))\n\n---\nThis PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).\n\n<!-- CURSOR_SUMMARY -->","publishedAt":"2026-03-23T20:52:50.000Z","fetchedAt":"2026-04-11T13:43:46.550Z","url":"https://github.com/launchdarkly/android-client-sdk/releases/tag/5.11.1","media":[],"coverageCount":0},{"id":"rel_w4iyd5LCqC1hdKKVfSPqE","version":"5.11.0","type":"feature","title":"v5.11.0","summary":"## [5.11.0](https://github.com/launchdarkly/android-client-sdk/compare/5.10.0...5.11.0) (2026-02-13)\n\n\n### Features\n\n* Add support for per-context sum...","titleGenerated":null,"titleShort":null,"breaking":"unknown","importance":null,"content":"## [5.11.0](https://github.com/launchdarkly/android-client-sdk/compare/5.10.0...5.11.0) (2026-02-13)\n\n\n### Features\n\n* Add support for per-context summary events. ([#320](https://github.com/launchdarkly/android-client-sdk/issues/320)) ([c5f078f](https://github.com/launchdarkly/android-client-sdk/commit/c5f078fd62df7dea367510f64c975eef4f06d208))\n\n---\nThis PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).\n\n<!-- CURSOR_SUMMARY -->","publishedAt":"2026-02-13T21:17:05.000Z","fetchedAt":"2026-04-11T13:43:46.550Z","url":"https://github.com/launchdarkly/android-client-sdk/releases/tag/5.11.0","media":[],"coverageCount":0},{"id":"rel_5rwetpMIR8AI7J2oQldt6","version":"5.10.0","type":"feature","title":"v5.10.0","summary":"## [5.10.0](https://github.com/launchdarkly/android-client-sdk/compare/5.9.2...5.10.0) (2025-12-11)\n\n\n### Features\n\n* Add plugins registration result ...","titleGenerated":null,"titleShort":null,"breaking":"unknown","importance":null,"content":"## [5.10.0](https://github.com/launchdarkly/android-client-sdk/compare/5.9.2...5.10.0) (2025-12-11)\n\n\n### Features\n\n* Add plugins registration result handling ([#318](https://github.com/launchdarkly/android-client-sdk/issues/318)) ([ea4a41c](https://github.com/launchdarkly/android-client-sdk/commit/ea4a41c63a58d5a46ed519033796e1777b61818c))\n\n---\nThis PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).\n\n<!-- CURSOR_SUMMARY -->","publishedAt":"2025-12-11T19:59:48.000Z","fetchedAt":"2026-04-11T13:43:46.550Z","url":"https://github.com/launchdarkly/android-client-sdk/releases/tag/5.10.0","media":[],"coverageCount":0},{"id":"rel_UW8jifBLO-UphsqilQ4VZ","version":"5.9.2","type":"feature","title":"v5.9.2","summary":"## [5.9.2](https://github.com/launchdarkly/android-client-sdk/compare/5.9.1...5.9.2) (2025-10-17)\n\n\n### Bug Fixes\n\n* bumping gson to incorporate fixes...","titleGenerated":null,"titleShort":null,"breaking":"unknown","importance":null,"content":"## [5.9.2](https://github.com/launchdarkly/android-client-sdk/compare/5.9.1...5.9.2) (2025-10-17)\n\n\n### Bug Fixes\n\n* bumping gson to incorporate fixes and improvements ([#312](https://github.com/launchdarkly/android-client-sdk/issues/312)) ([9ee3537](https://github.com/launchdarkly/android-client-sdk/commit/9ee3537d62d6a2a0cb1ba9feadc5bf31d73724b0))\n\n---\nThis PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).\n\n<!-- CURSOR_SUMMARY -->","publishedAt":"2025-10-17T20:52:34.000Z","fetchedAt":"2026-04-11T13:43:46.550Z","url":"https://github.com/launchdarkly/android-client-sdk/releases/tag/5.9.2","media":[],"coverageCount":0},{"id":"rel_feIvU3oQ86q23nL1V2zBX","version":"5.9.1","type":"feature","title":"v5.9.1","summary":"## [5.9.1](https://github.com/launchdarkly/android-client-sdk/compare/5.9.0...5.9.1) (2025-07-21)\n\n\n### Bug Fixes\n\n* prevent flag change listener from...","titleGenerated":null,"titleShort":null,"breaking":"unknown","importance":null,"content":"## [5.9.1](https://github.com/launchdarkly/android-client-sdk/compare/5.9.0...5.9.1) (2025-07-21)\n\n\n### Bug Fixes\n\n* prevent flag change listener from being invoked with null flag key ([#307](https://github.com/launchdarkly/android-client-sdk/issues/307)) ([feada66](https://github.com/launchdarkly/android-client-sdk/commit/feada66ffde8834ad03d471a2d805888bed38908))","publishedAt":"2025-07-21T20:21:58.000Z","fetchedAt":"2026-04-11T13:43:46.550Z","url":"https://github.com/launchdarkly/android-client-sdk/releases/tag/5.9.1","media":[],"coverageCount":0},{"id":"rel_cDAtSMnD-eP76zpHgbO2N","version":"5.9.0","type":"feature","title":"v5.9.0","summary":"## [5.9.0](https://github.com/launchdarkly/android-client-sdk/compare/5.8.0...5.9.0) (2025-07-16)\n\n\n### Features\n\n* adds experimental plugin functiona...","titleGenerated":null,"titleShort":null,"breaking":"unknown","importance":null,"content":"## [5.9.0](https://github.com/launchdarkly/android-client-sdk/compare/5.8.0...5.9.0) (2025-07-16)\n\n\n### Features\n\n* adds experimental plugin functionality ([#305](https://github.com/launchdarkly/android-client-sdk/issues/305)) ([2bca41b](https://github.com/launchdarkly/android-client-sdk/commit/2bca41b1ca93d35900b024a5083129b894d1017d))","publishedAt":"2025-07-16T13:32:37.000Z","fetchedAt":"2026-04-11T13:43:46.602Z","url":"https://github.com/launchdarkly/android-client-sdk/releases/tag/5.9.0","media":[],"coverageCount":0},{"id":"rel_LWX-PQb03WnCAddw4GUyP","version":"5.8.0","type":"feature","title":"v5.8.0","summary":"## [5.8.0](https://github.com/launchdarkly/android-client-sdk/compare/5.7.0...5.8.0) (2025-05-27)\n\n\n### Features\n\n* Add hooks support ([#300](https://...","titleGenerated":null,"titleShort":null,"breaking":"unknown","importance":null,"content":"## [5.8.0](https://github.com/launchdarkly/android-client-sdk/compare/5.7.0...5.8.0) (2025-05-27)\n\n\n### Features\n\n* Add hooks support ([#300](https://github.com/launchdarkly/android-client-sdk/issues/300)) ([f5fb5cf](https://github.com/launchdarkly/android-client-sdk/commit/f5fb5cf7bbb0aaf2fe28326acec91a3be916ed16))","publishedAt":"2025-05-27T15:23:06.000Z","fetchedAt":"2026-04-11T13:43:46.602Z","url":"https://github.com/launchdarkly/android-client-sdk/releases/tag/5.8.0","media":[],"coverageCount":0},{"id":"rel_4Z1O9XszMWQYQBa_jBD21","version":"5.7.0","type":"feature","title":"v5.7.0","summary":"## [5.7.0](https://github.com/launchdarkly/android-client-sdk/compare/5.6.1...5.7.0) (2025-05-19)\n\n\n### Features\n\n* Add support for inline contexts fo...","titleGenerated":null,"titleShort":null,"breaking":"unknown","importance":null,"content":"## [5.7.0](https://github.com/launchdarkly/android-client-sdk/compare/5.6.1...5.7.0) (2025-05-19)\n\n\n### Features\n\n* Add support for inline contexts for custom events ([#296](https://github.com/launchdarkly/android-client-sdk/issues/296)) ([7ea838f](https://github.com/launchdarkly/android-client-sdk/commit/7ea838ff3f55c2b511c0ed5ffbbcb8112bf48fa8))","publishedAt":"2025-05-19T17:29:04.000Z","fetchedAt":"2026-04-11T13:43:46.602Z","url":"https://github.com/launchdarkly/android-client-sdk/releases/tag/5.7.0","media":[],"coverageCount":0},{"id":"rel_8gTxWhvO8IUmQN8Kgmw0P","version":"5.6.1","type":"feature","title":"v5.6.1","summary":"## [5.6.1](https://github.com/launchdarkly/android-client-sdk/compare/5.6.0...5.6.1) (2025-01-21)\n\n\n### Bug Fixes\n\n* correcting protocol parsing logic...","titleGenerated":null,"titleShort":null,"breaking":"unknown","importance":null,"content":"## [5.6.1](https://github.com/launchdarkly/android-client-sdk/compare/5.6.0...5.6.1) (2025-01-21)\n\n\n### Bug Fixes\n\n* correcting protocol parsing logic that may lead to incorrect sanitization of an incoming message from LD servers ([#288](https://github.com/launchdarkly/android-client-sdk/issues/288)) ([9969148](https://github.com/launchdarkly/android-client-sdk/commit/996914893f84422de55681d3a4e065c528cdaffd))","publishedAt":"2025-01-21T17:14:47.000Z","fetchedAt":"2026-04-11T13:43:46.602Z","url":"https://github.com/launchdarkly/android-client-sdk/releases/tag/5.6.1","media":[],"coverageCount":0},{"id":"rel_ZhE_pd46uw0EtByKqiEVW","version":"5.6.0","type":"feature","title":"v5.6.0","summary":"## [5.6.0](https://github.com/launchdarkly/android-client-sdk/compare/5.5.0...5.6.0) (2025-01-08)\n\n\n### Features\n\n* polling data source now supports o...","titleGenerated":null,"titleShort":null,"breaking":"unknown","importance":null,"content":"## [5.6.0](https://github.com/launchdarkly/android-client-sdk/compare/5.5.0...5.6.0) (2025-01-08)\n\n\n### Features\n\n* polling data source now supports one shot configuration ([a995a4e](https://github.com/launchdarkly/android-client-sdk/commit/a995a4e0fae91552e563e4235970f933292d7be8))\n\n\n### Bug Fixes\n\n* polling data source no longer reports initialized=true incorrectly when rate limiting delays first poll ([a995a4e](https://github.com/launchdarkly/android-client-sdk/commit/a995a4e0fae91552e563e4235970f933292d7be8))","publishedAt":"2025-01-08T18:09:43.000Z","fetchedAt":"2026-04-11T13:43:46.602Z","url":"https://github.com/launchdarkly/android-client-sdk/releases/tag/5.6.0","media":[],"coverageCount":0},{"id":"rel_Q1d7yflptgPJa3j616ArU","version":"5.5.0","type":"feature","title":"v5.5.0","summary":"## [5.5.0](https://github.com/launchdarkly/android-client-sdk/compare/5.4.0...5.5.0) (2024-11-22)\n\n\n### Features\n\n* honor polling interval across proc...","titleGenerated":null,"titleShort":null,"breaking":"unknown","importance":null,"content":"## [5.5.0](https://github.com/launchdarkly/android-client-sdk/compare/5.4.0...5.5.0) (2024-11-22)\n\n\n### Features\n\n* honor polling interval across process restarts ([#282](https://github.com/launchdarkly/android-client-sdk/issues/282)) ([9b3ca70](https://github.com/launchdarkly/android-client-sdk/commit/9b3ca7002394a14641929974ceb7b2d2c0f34952))","publishedAt":"2024-11-22T23:42:38.000Z","fetchedAt":"2026-04-11T13:44:08.077Z","url":"https://github.com/launchdarkly/android-client-sdk/releases/tag/5.5.0","media":[],"coverageCount":0},{"id":"rel_vSnX08a4WjkKq64kSWJPf","version":"5.4.0","type":"feature","title":"v5.4.0","summary":"## [5.4.0](https://github.com/launchdarkly/android-client-sdk/compare/5.3.1...5.4.0) (2024-10-18)\n\n\n### Features\n\n* Adds support for client-side prere...","titleGenerated":null,"titleShort":null,"breaking":"unknown","importance":null,"content":"## [5.4.0](https://github.com/launchdarkly/android-client-sdk/compare/5.3.1...5.4.0) (2024-10-18)\n\n\n### Features\n\n* Adds support for client-side prerequisite events ([#279](https://github.com/launchdarkly/android-client-sdk/issues/279)) ([8d59b96](https://github.com/launchdarkly/android-client-sdk/commit/8d59b9605560724df26598961e9b69fc1bd1820c))","publishedAt":"2024-10-18T14:50:28.000Z","fetchedAt":"2026-04-11T13:44:08.077Z","url":"https://github.com/launchdarkly/android-client-sdk/releases/tag/5.4.0","media":[],"coverageCount":0},{"id":"rel_QwvDXlS89rh9-h8SXfz-s","version":"5.3.1","type":"feature","title":"v5.3.1","summary":"## [5.3.1](https://github.com/launchdarkly/android-client-sdk/compare/5.3.0...5.3.1) (2024-07-10)\n\n\n### Bug Fixes\n\n* registered LDStatusListeners are ...","titleGenerated":null,"titleShort":null,"breaking":"unknown","importance":null,"content":"## [5.3.1](https://github.com/launchdarkly/android-client-sdk/compare/5.3.0...5.3.1) (2024-07-10)\n\n\n### Bug Fixes\n\n* registered LDStatusListeners are now sent updates that result from a call to LDClient.identify(...) ([#274](https://github.com/launchdarkly/android-client-sdk/issues/274)) ([a648213](https://github.com/launchdarkly/android-client-sdk/commit/a648213dfd6b7f50a76f7a8160f07e62628aedbb))","publishedAt":"2024-07-10T18:08:55.000Z","fetchedAt":"2026-04-11T13:44:08.077Z","url":"https://github.com/launchdarkly/android-client-sdk/releases/tag/5.3.1","media":[],"coverageCount":0}],"pagination":{"nextCursor":"2024-07-10T18:08:55.000Z|2026-04-11T13:44:08.077Z|rel_QwvDXlS89rh9-h8SXfz-s","limit":20},"summaries":{"rolling":{"windowDays":90,"summary":"The SDK shifted focus toward improving context handling and event reporting. It added support for per-context summary events to give finer-grained visibility into flag evaluation across different user contexts, then patched an initialization issue where identify hooks weren't firing during setup.","releaseCount":2,"generatedAt":"2026-04-11T13:44:09.881Z"},"monthly":[{"year":2026,"month":3,"summary":"Ensured identify hooks fire during initialization, fixing a timing issue where hooks were skipped on app startup.","releaseCount":1,"generatedAt":"2026-04-11T13:43:49.118Z"}]}}