Awesome
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:).
🌿 SonarQube Plugin
<sub>The custom GUI above is reserved to educational purpose only.</sub>
🚀 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
📢 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 |