Skip to content

A plugin for IntelliJ IDEA & Android Studio to easily compile Java & Kotlin files to smali.

License

Notifications You must be signed in to change notification settings

ollide/intellij-java2smali

Repository files navigation

intellij-java2smali

Travis Build Status AppVeyor Build status Quality Gate status

Simple plugin for IntelliJ IDEA & Android Studio to easily compile Java & Kotlin files to smali.

Have you ever compiled and packaged a dummy Android application just to grab some Java sources in smali? Stop that! Transforming Java to smali just got easier.

Usage

  1. create or open a Java source file with your desired functionality
  2. click 'Build' and 'Compile to smali'
  3. wait while IDEA's indicating the compilation process
  4. the smali file is opened automatically in your editor

java2smali usage gif

Installation

java2smali is available at JetBrains Plugin Repository and can therefore be found in your IDE's plugin manager! Alternatively, you can download the plugin from the release section.

Build From Source

This plugin uses JetBrains gradle-intellij-plugin and can easily build from source.

Clone the repository:

git clone https://github.com/ollide/intellij-java2smali.git
cd intellij-java2smali

Build the plugin with Gradle:

./gradlew buildPlugin

The plugin can be found in /build/distributions/java2smali-$VERSION.zip.

Troubleshooting

To enable debug logging of the plugin, select Help -> Diagnostic Tools -> Debug Log Settings… and add the following line:

#org.ollide.java2smali

Third-Party Libraries & Credits

  • dx from the Android platform-tools is used to create a .dex version of the compiled Java (.class) file
  • baksmali – a great disassembler for Android's dex format is used to create the final .smali output file
  • intellij-emberjs – a nicely written plugin which uses the gradle-intellij-plugin with Kotlin

About

A plugin for IntelliJ IDEA & Android Studio to easily compile Java & Kotlin files to smali.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages