green-code-initiative / ecoCode-android

Reduce the environmental footprint of your Java-based Android apps with SonarQube
https://ecocode.io
GNU General Public License v3.0
58 stars 18 forks source link
android mobile native sonarqube sonarqube-plugin

Logo

Mobile apps running on top of battery-limited, android-powered devices are more than others concerned by the reduction of their environmental footprint. Hence, we created ecoCode android, the version of ecoCode project fully dedicated to the Android platform. It provides static code analyzers to highlight code structures that may have a negative ecological impact: energy over-consumption, "fatware", shortening devices' lifespan, etc.

ecoCode android is based on an evolving catalog of best practices for Android. A SonarQube plugin then implements this catalog as rules for scanning your native Android projects written in Java only. To learn more, take a look at the complete presentation (:fr:) or the presentation in a nutshell. A hands-on tutorial and free demo access is also available (:fr:).

License: GPL v3

🌿 SonarQube Plugin

Screenshot

The custom GUI above is reserved to educational purpose only.

🚀 Quickstart

A SonarQube container image with ecoCode Android embedded exists !

docker run -ti --rm \
       -v sq_ecocode_android_logs:/opt/sonarqube/logs \
       -v sq_ecocode_android_data:/opt/sonarqube/data \
       -p 9000:9000 \
       --name sonarqube-ecocode-android  \
       ghcr.io/green-code-initiative/sonarqube-ecocode-android:latest

Wait a little bit during first start initialization, and go to http://localhost:9000. Default credentials are admin/admin

🤝 Partners

Snapp’ Université de Pau Région Nouvelle-Aquitaine Solocal / PagesJaunes

📢 Cite this work

If you use ecoCode in an academic work we would be really glad if you cite our seminal paper using the following bibtex entry:

@inproceedings{10.1145/3551349.3559518,
  author = {Le Goaer, Olivier and Hertout, Julien},
  title = {ecoCode: A SonarQube Plugin to Remove Energy Smells from Android Projects},
  year = {2023},
  isbn = {9781450394758},
  publisher = {Association for Computing Machinery},
  address = {New York, NY, USA},
  url = {https://doi.org/10.1145/3551349.3559518},
  doi = {10.1145/3551349.3559518},
  booktitle = {37th IEEE/ACM International Conference on Automated Software Engineering},
  articleno = {157},
  numpages = {4},
  keywords = {android, energy, smells, debt, quality, battery},
  location = {Rochester, MI, USA},
  series = {ASE22}
}

🛒 Distribution

Ready to use binaries are available from GitHub.

🧩 Plugins version compatibility

Plugins Version SonarQube version
0.0.+ SonarQube 8.9.+ LTS to 9.3
0.1.+ SonarQube 9.4.+ LTS to 9.9
1.0.+ SonarQube 9.4.+ LTS to 9.9
1.1.+ SonarQube 9.4.+ LTS to 10.3

☕ Plugin Java part compatibility

Plugins Version Java version
0.0.+ 11 / 17
0.1.+ 11 / 17
1.0.+ 11 / 17
1.1.+ 11 / 17