Slide 1

Slide 1 text

December 15, 2022 In a nutshell Apidays Paris Olivier Le Goaër

Slide 2

Slide 2 text

2023 SERIES OF EVENT New York May 16&17 Australia October 11&12 Singapore April 12&13 Helsinki & North June 5&6 Paris SEPTEMBER London November 15&16 June 28-30 SILICON VALLEY March 14&15 Dubai & Middle East February 22&23

Slide 3

Slide 3 text

Apidays Paris December 15, 2022 Associate Professor in Computer Science (France) STEE College (Sciences & Technologies for Energy and Environment) Research in the field of Software Engineering How to build “greener” software? Teaching Android programming Online course (+130k views) Olivier Le Goaër Who I am?

Slide 4

Slide 4 text

Apidays Paris December 15, 2022 Ecological impact Direct Indirect 10% (FR) 25% 90% (FR) 75% Terminals (...more devices!!!) Power Consumption eq. CO2, water, abiotic resources Context Loosely adapted from “iNUM : impacts environnementaux du numérique en France” (Jan. 2021) 🔋Li-ion battery wear

Slide 5

Slide 5 text

Apidays Paris December 15, 2022 Insights Green code extends clean code with ecological concerns “ ” Carbon debt adds to the technical debt “ ” Software programs should have an eco-score too “ ”

Slide 6

Slide 6 text

Apidays Paris December 15, 2022 World-class solution to improve code quality Motivation No guidelines on how to write energy-friendly apps

Slide 7

Slide 7 text

Apidays Paris December 15, 2022 Energy code smells for Android Research Papers Dev Interviews API Reference Documentation

Slide 8

Slide 8 text

Apidays Paris December 15, 2022 http://olegoaer.perso.univ-pau.fr/android-energy-smells/ # OPTIMIZED API (2) Fused Location, Bluetooth Low-Energy # LEAKAGE (3) Media Leak, Sensor Leak, Everlasting Service # BOTTLENECK (4) Internet In The Loop, Wifi Multicast Lock, Uncompressed Data Transmission, Uncached Data Reception # SOBRIETY (10) Dark UI, Day Night Mode, Brightness Override, Thrifty Geoloc, Thrifty BLE, Thrifty Motion Sensor, Thrifty Notification, Vibration-free, Torch-free, High Frame Rate # IDLENESS (6) Keep Screen On, Keep CPU On, Durable Wake Lock, Rigid Alarm, Continuous Rendering, Keep Voice Awake # POWER (4) Ignore Battery Optimizations, Companion in background, Charge Awareness, Save Mode Awareness # BATCH (3) Service@Boot-time, Sensor Coalesce, Job Coalesce # RELEASE (8) Supported Version Range, Same dependencies, Duplicate dependencies, Fat app, Clear Cache, Disable Obfuscation, Shrink Resources, Convert to WebP Catalog of energy code smells

Slide 9

Slide 9 text

Apidays Paris December 15, 2022 Focus on Keep CPU On PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE); WakeLock wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyApp::MyWakelockTag"); wakeLock.acquire();

Slide 10

Slide 10 text

Apidays Paris December 15, 2022 ● Statically detectable ○ Few green best practices resist to this “great filter” ● Broader detection scope ○ A native android project mixes Java, XML, File System, Gradle* ● Good and bad smells ○ Albeit code quality tools are only focused on bad smells ● Revamped User Interface ○ Green code merits its own user experience *Groovy script Highlights

Slide 11

Slide 11 text

Apidays Paris December 15, 2022 ● Commitment to digital commons ○ Released as OSS in January 2022 (hosted by Green IT assoc.) ○ https://github.com/green-code-initiative/ecoCode-mobile ● Attract early-adopters ○ Hackathon in Paris in June 2022 (in the presence of the VP of Products @ SonarSource) ○ Next edition planned in March 2023 Open Source Software new

Slide 12

Slide 12 text

Apidays Paris December 15, 2022 Currently Soon Technical guidelines

Slide 13

Slide 13 text

Apidays Paris December 15, 2022 Screenshots

Slide 14

Slide 14 text

Apidays Paris December 15, 2022 ● From academic ○ EcoAndroid [Ribeiro et al., 2021] ○ E-Debitum [Maia et al., 2020] ○ xAL [Fatimaa et al., 2020] ○ aDoctor [Iannone et al., 2020] ○ Green Android Lint [Le Goaer, 2019] ● From industry ○ EcoSonar [Accenture, 2022] ○ Greensight Sonar [Capgemini, 2022] Related works

Slide 15

Slide 15 text

Apidays Paris December 15, 2022 core web mobile AI cloud … Roadmap

Slide 16

Slide 16 text

Apidays Paris December 15, 2022 DevFest Perros-Guirec (oct. 2022) Extended talk

Slide 17

Slide 17 text

Apidays Paris December 15, 2022 (ekko, our mascotte) Live demo?