Ackpine - Android Coroutines-friendly Kotlin-first Package Installer extensions
See the project website 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.
Ackpine is available on mavenCentral()
.
Ackpine depends on Jetpack libraries, so it's necessary to declare the google()
Maven repository.
dependencies {
val ackpineVersion = "0.8.3"
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 - support for asset files inside of application's package
implementation("ru.solrudev.ackpine:ackpine-assets:$ackpineVersion")
}
Copyright (C) 2023-2024 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.