This plugin is built with Gradle Kotlin DSL and written entirely in Kotlin, making it easy to integrate and maintain within modern Android projects. It analyzes your Android project to identify native libraries (.so files) that are not compatible with the 16KB alignment requirement. The plugin then generates a clear report with:
- Incompatible libraries
- 16 KB Alignment
- Helps with large multi-module projects
- Cover all the CPU types (x86, x86_64, arm64-v8a, armeabi-v7a)
- Support JDK 17 For Running
- Saves hours of manual investigation
- Works as an alternative to custom Lint checks
- Automates verification of native library alignment during the build process
Add the plugin to your build.gradle.kts:
Make sure to add this in your Android application entry module (or app):
plugins {
id("io.github.sparrow007.skyhigh.16kb-doctor") version "1.0.2"
}MaveCentral should be included in plugin Management repo
pluginManagement {
repositories {
mavenCentral()
}
}After adding the dependency, click "Sync Now" in Android Studio or run the following command in your terminal to sync your project:
After applying the plugin, run: with your app entry module name
./gradlew :app:skyhighDoctor
You can now directly test any new dependency in this project's app module without importing the full plugin into a large project.
Simply add the dependency you want to test in this project's app-level build.gradle.kts, then run:
./gradlew :app:runWithFreshReport
This command will build the app, generate a fresh report, and launch the app with the latest report.

| Column | Explanation |
|---|---|
| Artifact |
The build output where the check is performed:
|
| Path |
Shows the file path of the native library:
|
| ABI |
The target CPU architecture for the library.
Common Android ABIs include:
|
| p_align |
Page alignment value of the native library.
Must be 16384 (16KB) for compatibility with modern devices.
Any lower value (e.g., 4096) is flagged ❌.
|
| 16KB Compatible |
Indicates whether the library is compiled with --page-size=16384.
|
| Owner | The dependency or module that provides the .so file. This tells developers which library must be updated to fix incompatibility. |
We welcome contributions to the SkyHigh 16KB Doctor! Here are some ways you can help:
If you find an issue, please open a new issue ticket on GitHub. Please provide as much detail as possible, including steps to reproduce the problem.
This library is in a very early stage, which means there may be edge cases where it doesn’t work as expected. If you encounter any issues, please report them—we’ll review and address them in upcoming versions. Your feedback helps us improve the plugin.
Support it by joining stargazers for this repository. ⭐
And follow me for next creation 🤩
Copyright 2025 Sparrow007 (Ankit)
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.