Grazel is a Gradle plugin that migrates Android projects from Gradle to Bazel build systems. It analyzes Gradle project configuration, extracts Android-specific information (dependencies, variants, resources, manifest), and generates equivalent Bazel BUILD and WORKSPACE files. The plugin supports incremental migration, allowing parts of a project to use Bazel while others remain on Gradle. Architecture follows Gradle plugin conventions with modular separation: core plugin implementation, extension points for configuration, dependency analysis/resolution components, Android-specific extraction logic, Bazel rule generation using a type-safe Kotlin DSL for Starlark, and task management for orchestrating the migration process. Dependency injection via Dagger/Hilt ensures loose coupling and testability.
Android Code Studio (formerly AndroidIDE) is a full-featured Integrated Development Environment (IDE) designed to run natively on Android devices. It enables users to write, compile, and debug Android and Java applications directly on mobile hardware. The architecture is a modular monolith built with Kotlin and Java, utilizing a composite build system to bundle critical dependencies like the OpenJDK compiler, Logback, and XML parsers directly into the application rather than relying on external Maven repositories. Key functionality includes a custom code editor powered by Tree-sitter, a Language Server Protocol (LSP) implementation for Java and XML, a UI Designer for visual layout editing, and a terminal integration via Termux.
Yasea is an Android live-streaming library and demo application that captures camera video and microphone audio, applies real-time GPU image filters, hardware-encodes to H.264/AAC via MediaCodec, muxes into FLV, and publishes over RTMP to servers such as SRS. The main entry point is SrsPublisher, which orchestrates SrsCameraView (an OpenGL ES preview surface), SrsEncoder (MediaCodec lifecycle and format negotiation), SrsFlvMuxer (FLV-over-RTMP publishing), and SrsMp4Muxer (simultaneous MP4 recording). The demo app (MainActivity) provides a working UI for URL entry, publish/pause, camera switching, recording, and filter selection. Architecturally, the repo is a Gradle project with two modules: a reusable Android library (library/) and a demo app (app/). The library is a monolith that bundles large vendored third-party codebases as source: Google's libyuv (native YUV/RGB conversion and scaling), mp4parser (ISO BMFF/MP4 parsing and authoring), simple-rtmp (RTMP client protocol), and MagicCamera (40+ GPU image filters with GLSL shaders). The repo's own code is the net.ossrs.yasea package, which integrates these pieces: camera frames flow through the GLSurfaceView filter chain as RGBA, are converted to I420/NV12 by the libenc JNI bridge (libenc.cc wrapping libyuv), encoded by MediaCodec, and muxed to FLV/MP4. Audio is captured via AudioRecord and encoded to AAC. Despite a recent commit, the codebase is frozen in the 2017-2020 Android era: compileSdk/targetSdk 26, Android support library 26.1.0, the deprecated Camera API, Gradle 6.5 with AGP 4.1.1, and a mips ABI that modern NDKs no longer support. The native build is commented out in library/build.gradle, and 285 open issues remain. Technical drift is high. This is purely an application/library repo - no data pipelines, notebooks, or research components.
This repository is a crowdsourced collection of Android development guides and tutorials, known as CodePath Android Cliffnotes. It does not contain any executable code or data pipelines; instead, it consists entirely of markdown documentation and illustrative diagrams (Gliffy files) stored in a submodule pointing to a wiki. The primary purpose is to provide a centralized, up-to-date reference for Android developers covering topics from beginner to advanced levels, such as using the ActionBar, fragments, and Dagger dependency injection. The 'application' classification is nominal as it serves as a knowledge base for building Android apps, not as a software application itself. The repository is well-maintained with a large community of contributors, but some content may lag behind the rapid evolution of Android APIs.