meta data for this page
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
ixc2024:tech:tools:green-tools [2024/05/22 16:15] – sharjeel_193 | ixc2024:tech:tools:green-tools [2024/05/28 12:42] (current) – arsh | ||
---|---|---|---|
Line 13: | Line 13: | ||
* Track power consumption related to CPU, network, and other system components. | * Track power consumption related to CPU, network, and other system components. | ||
* Make necessary code and design changes to improve app performance and reduce energy consumption. | * Make necessary code and design changes to improve app performance and reduce energy consumption. | ||
+ | |||
+ | **It is highly recommended to perform test on physical mobile device.** | ||
**Measurements** | **Measurements** | ||
Line 84: | Line 86: | ||
//Data Transfer Efficiency:// | //Data Transfer Efficiency:// | ||
- | ==== Android Studio Profile | + | ==== Flutter Dev Tools ==== |
**Description: | **Description: | ||
- | Built into Android Studio, the Android | + | Flutter DevTools is a suite of performance and debugging tools for Flutter and Dart applications. It provides a wide range of features to help developers diagnose and optimize their apps for better performance, |
+ | |||
+ | |||
+ | **Launching Dev Tools** | ||
+ | |||
+ | | ||
+ | |||
+ | **Prerequisites** | ||
+ | |||
+ | **Flutter SDK:** Ensure you have Flutter installed. You can check by running flutter --version in your terminal. | ||
+ | **IDE:** Use either Visual Studio Code or Android | ||
+ | **Device or Emulator:** Have a device connected or an emulator running. | ||
+ | |||
+ | Launching Flutter DevTools | ||
+ | **Using Visual Studio Code (VS Code)** | ||
+ | |||
+ | 1-**Install Flutter and Dart Plugins: | ||
+ | ** | ||
+ | * Unordered List ItemGo to the Extensions view (Ctrl+Shift+X). | ||
+ | * Unordered List ItemSearch for Flutter and Dart and install both plugins. | ||
+ | |||
+ | 2-**Open your Flutter project: | ||
+ | |||
+ | * Unordered List ItemOpen your Flutter project in VS Code. | ||
+ | |||
+ | 3-**Start Debugging: | ||
+ | |||
+ | * Unordered List ItemPress F5 or go to the Debug view (Ctrl+Shift+D) and click on " | ||
+ | |||
+ | 4-**Open DevTools: | ||
+ | |||
+ | * Unordered List ItemOnce the app is running, you will see a notification in the bottom right corner saying "Dart DevTools is available" | ||
+ | * Unordered List ItemClick on "Open DevTools" | ||
+ | |||
+ | Alternatively, you can open DevTools from the command palette: | ||
+ | |||
+ | * Unordered List ItemPress Ctrl+Shift+P to open the command palette. | ||
+ | * Unordered List ItemType Open DevTools | ||
+ | |||
+ | **Using Android Studio** | ||
+ | |||
+ | 1-**Install Flutter and Dart Plugins: | ||
+ | |||
+ | * Unordered List ItemGo to File > Settings (or Preferences on macOS) > Plugins. | ||
+ | * Unordered List ItemSearch for Flutter and Dart plugins and install them. | ||
+ | |||
+ | 2-**Open | ||
+ | |||
+ | * Unordered List ItemOpen your Flutter project in Android Studio. | ||
+ | |||
+ | 3-**Start Debugging: | ||
+ | |||
+ | * Unordered List ItemClick on the green play button in the toolbar or select Run > Run ' | ||
+ | |||
+ | 4-**Open DevTools: | ||
+ | |||
+ | * Unordered List ItemOnce the app is running, you will see an icon in the toolbar labeled Flutter Inspector. Click on it. | ||
+ | * Unordered List ItemIn the Flutter Inspector tab, click on the Open DevTools button. | ||
+ | |||
+ | **Using Terminal** | ||
+ | |||
+ | 1-**Run your Flutter app:** | ||
+ | |||
+ | * Unordered List ItemNavigate to your Flutter project directory in the terminal. | ||
+ | * Unordered List ItemRun flutter run to start your app. | ||
+ | |||
+ | 2-**Open DevTools: | ||
+ | |||
+ | * Unordered List ItemIn a separate terminal window, run flutter pub global activate devtools to ensure DevTools is installed. | ||
+ | * Unordered List ItemThen run flutter pub global run devtools to start the DevTools server. | ||
+ | * Unordered List ItemOpen a web browser and navigate to the URL provided in the terminal (usually http:// | ||
+ | |||
+ | |||
+ | **Video to understand dev tool and how to interpret results** : | ||
- | **How to Use?** | ||
- | * Open your project in Android Studio. | ||
- | * Run your app on an emulator or a physical device. | ||
- | * Navigate to " | ||
- | * Monitor thread activity, function calls, and execution times. | ||
- | * Track power consumption related to CPU, network, and other system components. | ||
- | * Make necessary code and design changes to improve app performance and reduce energy consumption. | ||
**Measurements** | **Measurements** | ||
- | // | + | // |
- | //CPU Usage:// Monitor how much the app utilizes the device' | + | //Performance Profiling:// Identify energy-intensive operations that can be optimized for better performance. |
- | //Battery Drain:// Measure how the app affects battery life, focusing on high-consumption activities. | + | //CPU Profiler:// Detects and optimizes high CPU usage spikes that can be reduced which lowers |
- | //Component-Specific Usage//: Assess energy consumption of specific components like the screen, GPS, Wi-Fi, and sensors. | + | //Background Processes:// Use DevTools to monitor background processes and minimize unnecessary background activity, which can drain the battery |
- | //__Data Usage__:// | + | //__CPU Optimization__// |
- | //Network Traffic:// Monitor | + | //CPU Usage Analysis:// Use the CPU Profiler to analyze the CPU usage of different parts of your app. After identifying these parts which consume a high percentage |
- | //Data Efficiency:// Evaluate the app's data usage that can be used to minimize unnecessary data transfers, reducing network load and energy consumption. | + | //Isolate High CPU Tasks:// Detect CPU-intensive tasks that can be considered |
- | //__Performance Metrics:__// | + | //__Memory Optimization:__// |
- | //App Load Time:// Measure | + | //Memory Profiler:// Monitor memory allocations and usage patterns. Detects memory leaks and unnecessary memory allocations, |
- | //Response Time:// Evaluate the app’s responsiveness to user inputs to ensure a smooth user experience. | + | //__Network Efficiency:__// |
- | //Resource Utilization:// Track the usage of memory and other resources | + | //Network Profiling:// Track network requests and data transfer patterns. Using this information one can optimize network calls by implementing effective caching and reducing |
+ | //__UI Performance: | ||
+ | //Frame Rendering Analysis:// Use the performance tab to analyze frame rendering times. Using this information one can make sure that the UI thread usage does not exceed 16 ms per frame for more than 5% of frames to maintain a smooth user experience and reduce energy consumption. | ||