Android Lite Tools (ALT) is a lightweight Android development extension for VS Code-compatible editors. It uses the Android project’s own Gradle Wrapper, ADB, and a physical Android device so common build, run, Logcat, preview, and source-inspection workflows do not require Android Studio to remain open.
Highlights
- Build Only, Build Debug APK, Build Release APK, Build Release AAB, and Build / Install / Run.
- App-process Logcat with selectable log level.
- Physical-device selection and app restart / force stop.
- Real-Time Device Preview using a persistent H.264 stream, with Snapshot fallback.
- Device → Source: inspect an element in Device Preview and navigate to matching XML / Java / Kotlin source when it can be resolved.
- Source → Device: Find on Device highlights the matching element on the current device screen.
- UI hierarchy is loaded on demand, so UIAutomator does not run for every video frame.
- Build & Refresh Current Screen with best-effort runtime screen restoration.
- Gradle Build Performance inspector, elapsed build timer, Stop Build, memory modes, and RAM monitoring.
- Project-aware Gradle RAM Monitor can discover compatible Gradle JVM/process activity even when a build is started outside ALT, such as from a terminal.
- Gradle-native progress parsing for build percentage/status when Gradle exposes rich-console progress.
- Release signing configuration with passwords stored using VS Code SecretStorage.
Requirements
- A physical Android device with USB debugging / wireless ADB enabled.
- Android SDK Platform Tools with
adb available in PATH.
- A project containing the Gradle Wrapper (
gradlew / gradlew.bat and wrapper files).
- A compatible JDK. ALT can reuse the JBR bundled with Android Studio while Android Studio itself remains closed.
You can verify the device connection with:
adb devices
Installation
Install the officially distributed .vsix using Extensions → … → Install from VSIX…, then open an Android project folder.
ALT is distributed as proprietary, closed-source software. The public VSIX is intended to be installed directly; users do not need the extension source code or a development toolchain to use it. See LICENSE.txt for the distribution and usage terms.
Getting started
- Connect the Android device and open the Android project.
- Open Android Lite Tools in Explorer and select the target device.
- Use Build, Install & Run or Run + Logcat.
- Open Device Preview and choose Start Live Preview for the real-time H.264 view.
- Click an element to inspect it; double-click an element to attempt Device → Source navigation.
- Place the editor cursor near an Android view/resource reference and use Find on Device for Source → Device highlighting.
Real-Time Device Preview
Live Preview uses Android’s screen encoder and a persistent ADB H.264 stream. Decoding is handled by the editor runtime through WebCodecs when available. Snapshot mode remains available as a fallback.
Live video and UI inspection are deliberately separate: the video stream stays lightweight, while UIAutomator is invoked only when inspection/source mapping needs the current hierarchy. Closing Device Preview or using Stop Live Preview cleans up the streaming process.
Actual frame rate and latency depend on the Android device, screen resolution, ADB connection, encoder, and host machine.
- Build Only uses
androidLite.buildOnlyTask (default assembleDebug).
- Build Debug APK builds the debug APK.
- Build Release APK builds the release APK and can use the configured signing key.
- Build Release AAB runs
bundleRelease, reuses ALT release signing or the project signing configuration, verifies the JAR signature with JDK jarsigner, and offers to open/copy the output path. Default output: app/build/outputs/bundle/release/. AAB files cannot be installed directly with ADB.
- For Play Console, confirm your
applicationId, increment versionCode, meet current target SDK requirements, and preserve your upload key.
- Stop Build terminates the active ALT-started build.
- Open APK Folder and Copy APK Path help locate generated APK output.
- Build Performance shows captured Gradle task/performance information.
When Gradle exposes rich-console progress, ALT can surface Gradle’s own percentage/status instead of estimating build completion itself.
Gradle Memory Mode provides Project Default, Low Memory, and Custom profiles. The default is Project Default, so the project’s normal Gradle configuration is respected unless another mode is selected.
Gradle RAM Monitor is project-aware and is not limited to builds launched by ALT. It can discover compatible Gradle JVM/process activity associated with the current Gradle environment, including builds started from a terminal. Because Gradle daemons can be reused by compatible projects, a daemon is not necessarily exclusive to one project; the monitor therefore reports compatible/project-aware discovery rather than claiming exclusive ownership.
Now is the currently observed RAM and Peak is the highest value observed by ALT during its monitoring session.
Java / JBR selection
ALT selects Java in this order:
androidLite.javaHome when explicitly configured.
- JBR from
androidLite.androidStudioPath.
- Auto-detected Android Studio JBR when
androidLite.preferAndroidStudioJbr is enabled.
JAVA_HOME.
java from PATH.
Use Java / JBR Info to see the runtime selected for Gradle. If auto-detection cannot locate Android Studio, use Select Android Studio Folder and select the installation root; ALT will look for its jbr directory.
Main settings
androidLite.gradleTask — default installDebug.
androidLite.buildOnlyTask — default assembleDebug.
androidLite.logLevel — V, D, I, W, or E; default D.
androidLite.autoRefreshPreviewAfterRun — default true.
androidLite.javaHome — optional explicit JDK/JBR override.
androidLite.preferAndroidStudioJbr — default true.
androidLite.androidStudioPath — optional Android Studio installation path.
androidLite.enableGradleProfile — default true.
androidLite.liveTaskInspector — default true.
androidLite.gradleMemoryMode — default projectDefault.
androidLite.gradleRamMonitor — default true.
androidLite.gradleAutoStopDaemonSeconds — default 0 (disabled).
Current limitations
- Real-time H.264/WebCodecs behavior can vary between Android devices and editor/Electron versions; Snapshot remains the fallback.
- UI inspection depends on what Android exposes through UIAutomator/accessibility semantics. Some custom-rendered or Compose UI may expose less detail.
- Source mapping is best-effort and depends on stable resource IDs, bindings, text/content descriptions, or other source clues.
- Restoring an arbitrary nested Fragment or Compose navigation destination after reinstall cannot be guaranteed externally without app cooperation, a route/deep link, or deterministic replay.
- A Gradle daemon may be shared by multiple compatible projects, so RAM attribution is project-aware rather than guaranteed exclusive process ownership.
Changelog
See CHANGELOG.md for release history, fixes, implementation notes, and historical decisions.
License and distribution
Android Lite Tools is proprietary, closed-source software. Official VSIX builds may be used under the terms in LICENSE.txt. Source code, the private development repository, internal build materials, and unpublished development documentation are not part of the public distribution.
Live Gradle RAM Monitor
Open Gradle RAM Monitor from Android Lite Tools to see a live, one-second view of Gradle-related JVM processes detected for the current project. The panel shows total current RAM, the maximum simultaneously observed total for the current monitoring session, process count, PID/type/RAM breakdown, command-line detail, and the current project path.
The monitor is independent of who starts the build: ALT, a terminal, or another client can start Gradle. Process discovery is best-effort because compatible Gradle daemons may be shared across projects.
Export Project to ZIP
Run Android Lite: Export Project to ZIP from the Command Palette. ALT proposes <ProjectName>-YYYY-MM-DD.zip; the normal Save As dialog lets you change both the filename and destination before export. Clean export excludes generated/cache/local items such as .gradle, build, .idea, local.properties, APK/AAB outputs, VCS metadata, and node_modules. A confirmation shows file count and uncompressed source size, and completion reports the ZIP size.
Gradle RAM Monitor behavior
The RAM monitor is on-demand. It samples every 2 seconds only while its panel is open and stops immediately when the panel is closed. ALT does not poll Gradle RAM while idle or merely because a build is running.
Gradle Daemon Controls & Build Console
Use Start / Warm Up Gradle Daemon before a build session when you want Gradle ready, and Stop Gradle Daemons when you want to reclaim memory. The optional Build Console presents build output with semantic styling while the normal Output channel remains clean plain text. Both features are on-demand and add no polling while idle.
First Run
Open an Android Gradle project and use ENVIRONMENT → Check Environment. Android Lite verifies the project, Java/JBR, Android SDK, ADB, device authorization, and application ID without changing the system. The check is on-demand and does not run as a background poller.
Explorer Tree
Commands are grouped into collapsible DEVICE, BUILD, GRADLE, UI & SOURCE, PROJECT, and ENVIRONMENT sections. Run App is the single primary run action; Logcat is a separate tool.
Gradle dependency actions
Open GRADLE → Sync Gradle to resolve debug dependency graphs after changing implementation versions, without building an APK. Use GRADLE → Download Dependencies to download debug compile/runtime artifacts for later builds. Both are manual; use BUILD → Stop Build to cancel an active operation. The first run may download the Gradle distribution or plugins. This is not a full Android Studio project-model sync, and offline builds may still need additional artifacts.