Skip to content

Latest commit

 

History

History
56 lines (38 loc) · 2.47 KB

README.md

File metadata and controls

56 lines (38 loc) · 2.47 KB

RAndroid

An Android Studio plugin for code smell refactoring. It is able to fix Android-specific code smells and/or recommends appropriate refactorings to resolve them.

RAndroid logo

The plugin Supports the following code smells:

Automatic refactoring:

  • Init OnDraw (IOD)
  • Heavy Start Service (HSS)
  • Rigid AlarmManager (RAM)
  • Inefficient Data Structure (IDS)

Giving Recommendations:

  • UI OverDraw (UIO)

RAndroid adapts the logic behind JDeodorant. It is the outcome of a research conducted as part of Abderraouf Gattal & Abir Hammache's graduation project, in the "Laboratoire Méthodes de Conception de Systèmes (LMCS)" Lab @ "Ecole nationale Supérieure d’Informatique (ESI)" Algiers, Algeria.

PS: Detection should be made manually by the developer using either aDoctor or Paprika & than the resulting files should be uploaded to the plugin.

Installation and execution

Install from Jetbrains Plugin Repository

Follow these steps to install the plugin in Android Studio for production use:

  • Open Android Studio
  • Go into File>Settings...>Plugins>Marketplace
  • Type "RAndroid"
  • Install it
  • Restart Android Studio
  • Open the Android project you wish to analyze
  • Go to Refactor>RAndroid
  • Choose the code smell you wish to handle
  • Upload the detection file
  • Click Refactor

The process will be handled automatically after that. You can find the infected classes open in the IDE opened window, so all you have to do is check the changes or the recommendations the plugin leaves in the shape of //TODO comments.

Evaluation process

RAndroid were tested on over 56 open source application found in F-Droid & GitHub. The list of these Applications can be found here.

Credits

Thanks to Madame Nabila Bousbia and Mister Adel Nassim Henniche for their guidance through the entire process.

Troubleshootings

RAndroid is still in development.

Found a bug? We'd love to know about it!

Please report all issues on the github issue tracker.