{"id":20833723,"url":"https://github.com/droideveloper/android-dynamic-feature-test","last_synced_at":"2026-04-29T05:33:32.736Z","repository":{"id":96348804,"uuid":"436984644","full_name":"droideveloper/android-dynamic-feature-test","owner":"droideveloper","description":"testing dynamic feature of android","archived":false,"fork":false,"pushed_at":"2021-12-10T13:15:20.000Z","size":828,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-12-27T14:10:58.156Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/droideveloper.png","metadata":{"files":{"readme":"README.markdown","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-12-10T13:14:23.000Z","updated_at":"2021-12-10T13:15:23.000Z","dependencies_parsed_at":"2023-05-20T00:45:54.921Z","dependency_job_id":null,"html_url":"https://github.com/droideveloper/android-dynamic-feature-test","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/droideveloper/android-dynamic-feature-test","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/droideveloper%2Fandroid-dynamic-feature-test","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/droideveloper%2Fandroid-dynamic-feature-test/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/droideveloper%2Fandroid-dynamic-feature-test/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/droideveloper%2Fandroid-dynamic-feature-test/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/droideveloper","download_url":"https://codeload.github.com/droideveloper/android-dynamic-feature-test/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/droideveloper%2Fandroid-dynamic-feature-test/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32412890,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-29T05:20:56.964Z","status":"ssl_error","status_checked_at":"2026-04-29T05:19:54.749Z","response_time":110,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-18T00:16:31.273Z","updated_at":"2026-04-29T05:33:32.713Z","avatar_url":"https://github.com/droideveloper.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PlayCore API sample\n\nThis sample demonstrates usage of the PlayCore API.\n\nRead more at http://g.co/androidappbundle\n\n## Introduction\n\nThe sample contains several modules.\n\n`app` -\u003e Contains the base application which always will be installed on device.\n\nThe `MainActivity` class demonstrates how to use the API to load and launch features.\n\nThe `BaseSplitActivity` abstract class implements the required `SplitCompat.Install()` call in the `attachBaseContext` method. This allow to launch an activity from a freshly downloaded dynamic module without having the restart the application.\n\n`features/*` -\u003e Contains features which can be downloaded on demand using the PlayCore API.\n`instant/*` -\u003e Contains instant enabled features which can be downloaded using the PlayCore API or via Url.\n\nEach feature as some distinctly unique characteristics.\n\n- `features/assets` -\u003e Feature containing only assets.\n- `features/kotlin` -\u003e Feature written in Kotlin.\n- `features/java` -\u003e Feature written in Java.\n- `features/maxSdk` -\u003e Conditionally delivered feature based on max sdk version\n- `features/native` -\u003e Feature written in Kotlin using JNI.\n- `instant/split` -\u003e Instant Feature without an URL route. Loaded using SplitInstall API\n- `instant/url` -\u003e Instant Feature with a URL route\n\nThe `AndroidManifest` files in each feature show how to declare a feature module as part of a dynamic app. Any module with the instant attribute is instant enabled. In this sample these can be found in the `instant/` folder:\n\n```\n  \u003cdist:module\n    dist:instant=\"true\"/\u003e\n```\n\n## Screenshots\n\n\u003cimg src=\"screenshots/main.png\" width=\"30%\" /\u003e\n\n\n## Getting Started\n\nClone this repository, enter the top level directory and run \u003ccode\u003e./gradlew tasks\u003c/code\u003e to get an overview of all the tasks available for this project.\n\n## Testing dynamic delivery\n\nTo test dynamic delivery with this sample, you can follow any of the below steps:\n* Upload the aab to the Google Play Store's internal testing channel. Before uploading, make sure to change the `applicationId` in `app/build.gradle`.\n* Locally test the dynamic delivery by using [FakeSplitInstallManager](https://developer.android.com/guide/app-bundle/test/testing-fakesplitinstallmanager) and [bundletool](https://developer.android.com/studio/command-line/bundletool\u003ebundletool):\n    1. Build a set of APKs: `bundletool build-apks --local-testing --bundle=\u003cpath_to_aab\u003e  --output=\u003cpath_to_apks\u003e`. _Make sure to include  --local-testing flag_\n    2. Connect to the device/emulator\n    3. Deploy app to the device: `bundletool install-apks --apks=\u003cpath_to_apks\u003e`\n\n## Running instrumentation tests\n\nIn order to run instrumentation tests, parallel builds have to be turned off at the moment.\nThis means you can run them via `./gradlew connectedAndroidTest --no-parallel`.\n\nTooling support for this is being worked on – currently it's not possible to run instrumentation tests for dynamic-feature modules from Android Studio directly. _Use the command line instead._\n\n## Support\n\n- Stack Overflow: http://stackoverflow.com/questions/tagged/android\n\nIf you've found an error *in this sample*, please file an issue:\n\nhttps://github.com/android/app-bundle/issues\n\nPatches are encouraged, and may be submitted by forking this project and submitting a pull request through GitHub.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdroideveloper%2Fandroid-dynamic-feature-test","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdroideveloper%2Fandroid-dynamic-feature-test","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdroideveloper%2Fandroid-dynamic-feature-test/lists"}