Replication package of the paper titled "An Empirical Study on the Impact of CSS Prefixes on the Energy Consumption and Performance of Mobile Web Apps"
This experiment is conducted using AndroidRunner: https://github.com/S2-group/android-runner/tree/master
IT IS IMPORTANT IN ORDER TO REPLICATE THE EXPERIMENT TO FOLLOW THE SETUP STEPS FOR ANDROID-RUNNER FIRST!
Steps for gathering the experiment's data:
- Modify devices.json file from android-runner/ folder and add the desired ADB addresses of the devices (ADB is required).
- Follow the steps from here: https://github.com/S2-group/android-runner/blob/master/AndroidRunner/Plugins/batterymanager/README.md , thus BatteryManager is the main Android-Runner Plugin used in this experiment.
- From AndroidRunner folder copy & paste & replace config.json, Scripts folder and Plugins folder to the android-runner/examples/batterymanager folder.
- Run the command: sudo android-runner android-runner/examples/batterymanager/config.json in the terminal.
- Due to a bug, to aggregate the results gathered from the BatteryManager plugin use this fix here: https://github.com/S2-group/battery-manager-ar-plugin-evaluation/blob/main/fix_Pixel_experiment.py , and modify the path where the results are.
- The output raw data by the Android Runner can be found inside Analysis/DEVICE MODEL FOLDER/raw data folder.
Steps for running data analysis scripts:
- Install requirements.txt file from Analysis folder via typing in the terminal the following command: pip3 install -r requirements.txt
- To run the analysis tests and to obtain the plots, run the following Python scripts (for both datasets, individually): Analysis/analysis_J7.py for Samsung Galaxy J7 Duo and Analysis/analysis_Pixel5 for Google Pixel 5.
Notations:
- the "raw_data" folder stores the unprocessed data generated by AndroidRunner.
- the "curated_data" folder stores:
- the data curated from the "raw_data" folder. This curation involves merging aggregated result files (BatteryManager + mem-CPU) into a single file, with columns specifically tailored for the experiment and using specific column names.
- descriptive statistics specific to each device.