https://github.com/solrudev/Ackpine
Android package installer library
https://github.com/solrudev/Ackpine
android android-library apk apk-installation apk-installer apks coroutines coroutines-android coroutines-flow flow install-apk java kotlin kotlin-library library package-installer split-apk
Last synced: 10 days ago
JSON representation
Android package installer library
- Host: GitHub
- URL: https://github.com/solrudev/Ackpine
- Owner: solrudev
- License: apache-2.0
- Created: 2023-05-16T20:13:15.000Z (almost 2 years ago)
- Default Branch: master
- Last Pushed: 2025-04-11T12:23:11.000Z (12 days ago)
- Last Synced: 2025-04-11T14:08:48.601Z (12 days ago)
- Topics: android, android-library, apk, apk-installation, apk-installer, apks, coroutines, coroutines-android, coroutines-flow, flow, install-apk, java, kotlin, kotlin-library, library, package-installer, split-apk
- Language: Kotlin
- Homepage: https://ackpine.solrudev.ru/
- Size: 2.72 MB
- Stars: 92
- Watchers: 3
- Forks: 9
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-list - solrudev/Ackpine - Android package installer library (Kotlin)
- mobile-awesome - Ackpine - Android package installer library. (Android / Android libraries)
README

[](https://github.com/solrudev/Ackpine/actions/workflows/ci.yml)

[](https://github.com/solrudev/Ackpine/blob/master/LICENSE)
[](https://app.codacy.com/gh/solrudev/Ackpine/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade)
[](https://androidweekly.net/issues/issue-593)_**Ackpine** - **A**ndroid **C**oroutines-friendly **K**otlin-first **P**ackage **In**staller **e**xtensions_
See the [project website](https://ackpine.solrudev.ru) for documentation and API reference.
A library providing consistent APIs for installing and uninstalling apps on an Android device.
Key features of Ackpine:
- **Ease of use**: Ackpine reduces complexity of dealing with system `PackageInstaller` APIs.
- **Unifying of different system APIs**: Ackpine provides an ability to choose system package installer API which will be used to install a package.
- **Built-in split APKs support**: Ackpine provides simple lazy sequences-based APIs for reading, parsing and filtering split APKs.
- **Persistent**: Ackpine persists every session so it can properly handle process death.
- **Deferred**: Ackpine allows to defer user's intervention via customizable high-priority notification.
- **Progress and state updates**: it's easy to observe every session's state and progress updates.
- **100% Java and Kotlin-friendly**: while maintaining full Java compatibility, Ackpine was developed as a Kotlin-first library.
- **Compatibility**: Ackpine supports Android versions starting from API level 16.Download
--------Ackpine is available on `mavenCentral()`.
Ackpine depends on Jetpack libraries, so it's necessary to declare the `google()` Maven repository.
```kotlin
dependencies {
val ackpineVersion = "0.11.1"
implementation("ru.solrudev.ackpine:ackpine-core:$ackpineVersion")// optional - Kotlin extensions and Coroutines support
implementation("ru.solrudev.ackpine:ackpine-ktx:$ackpineVersion")// optional - utilities for working with split APKs
implementation("ru.solrudev.ackpine:ackpine-splits:$ackpineVersion")// optional - Kotlin extensions and Coroutines support for ackpine-splits
implementation("ru.solrudev.ackpine:ackpine-splits-ktx:$ackpineVersion")// optional - support for asset files inside of application's package
implementation("ru.solrudev.ackpine:ackpine-assets:$ackpineVersion")
}
```License
-------Copyright (C) 2023-2025 Ilya Fomichev
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.