Creedengo is a collective project aiming to reduce the environmental footprint of software at the code level. This repository hosts the Android-focused plugin, originally released as ecoCode android and now branded as Creedengo Android Java.
It provides static code analyzers to highlight code structures that may have a negative ecological impact: energy over-consumption, "fatware", shortening devices' lifespan, etc.
The project is based on an evolving catalog of best practices for Android. A SonarQube plugin implements this catalog as rules for scanning native Android projects written in Java only.
Resources:
- Complete presentation (FR)
- Presentation in a nutshell
- Hands-on tutorial (FR, ecoCode name)
The custom GUI above is reserved to educational purpose only.
This plugin targets:
- Android Java source code
- Android XML configurations
- Gradle build files (Groovy)
A SonarQube container image with Creedengo Android Java embedded exists!
docker run -ti --rm \
-v sq_creedengo_android_logs:/opt/sonarqube/logs \
-v sq_creedengo_android_data:/opt/sonarqube/data \
-p 9000:9000 \
--name sonarqube-creedengo-android \
ghcr.io/green-code-initiative/sonarqube-creedengo-android:latestWait a little bit during first start initialization, and go to http://localhost:9000. Default credentials are admin/admin
Ready to use binaries are available from GitHub.
| 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 |
| Plugins Version | Java version |
|---|---|
| 0.0.+ | 11 / 17 |
| 0.1.+ | 11 / 17 |
| 1.0.+ | 11 / 17 |
| 1.1.+ | 11 / 17 |
Have an idea or want to help? We welcome contributions. See CONTRIBUTING.md and the related guides.
If you use Creedengo 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 = {Creedengo: 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}
}




