$ show nova-video-player/aos-AVP
This repository is the manifest and build orchestration layer for Nova Video Player, an open-source Android video player. It does not contain the application source code itself; that resides in referenced submodules (Video, MediaLib, FileCoreLibrary, native/avos, etc.). The repo provides a repo-based manifest, Makefile, Dockerfile, CI/CD workflows, release scripts, comprehensive FAQ documentation, and SDK setup scripts. The build system is sophisticated, supporting native code compilation (FFmpeg, dav1d, libtorrent, etc.) via Android NDK, Gradle wrappers, and external dependency management. The repo is actively maintained with frequent releases and detailed changelogs. While the core application code is not present here, the build infrastructure demonstrates high craftsmanship with clear documentation, automated releases, and continuous integration. The repo serves as an entry point for building the entire application across multiple stores (Google Play, Amazon, F-Droid).
The LLM identified 4 files worth highlighting for reuse:
A Dockerfile that sets up a complete build environment for Nova Video Player, including Android SDK, NDK, CMake, and all dependencies. It fetches the source code via repo, installs necessary tools, and configures environment variables. This is a self-contained, reusable pattern for anyone needing a reproducible Android build environment with native code compilation, not specific to Nova.
A standalone Python script that fetches GitHub releases from a repository and updates a local CHANGELOG.md file with any missing entries. It uses the GitHub REST API, parses existing changelog, and formats new entries. This is a reusable utility for maintaining changelogs across any project that uses GitHub releases, with minimal adaptation needed.
A comprehensive Logback configuration file for Android that defines log appenders (logcat, rolling file), log levels, and logger categories for various subsystems (player, network, scraper, trakt, etc.). This file demonstrates a structured approach to logging in an Android app, enabling easy debugging by toggling logger levels. The pattern is reusable for any Android project using SLF4J/Logback.
A shell script that detects the host OS, locates the Android SDK, installs the latest NDK, CMake, and build tools via sdkmanager, and sets up PATH and environment variables for native compilation. It handles Java version selection and NDK prebuilt toolchain paths. This is a reusable script for automating Android SDK/NDK setup in CI or local development environments.