magnax 1.0.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- magnax/__init__.py +3 -0
- magnax/__main__.py +25 -0
- magnax/debug.py +65 -0
- magnax/public/__init__.py +1 -0
- magnax/public/adb/linux/adb +0 -0
- magnax/public/adb/linux_arm/adb +0 -0
- magnax/public/adb/mac/adb +0 -0
- magnax/public/adb/windows/AdbWinApi.dll +0 -0
- magnax/public/adb/windows/AdbWinUsbApi.dll +0 -0
- magnax/public/adb/windows/adb.exe +0 -0
- magnax/public/adb.py +96 -0
- magnax/public/android_fps.py +750 -0
- magnax/public/apm.py +1306 -0
- magnax/public/apm_pk.py +184 -0
- magnax/public/common.py +1598 -0
- magnax/public/config.json +1 -0
- magnax/public/ios_perf_adapter.py +790 -0
- magnax/public/report_template/android.html +526 -0
- magnax/public/report_template/ios.html +482 -0
- magnax/public/scrcpy/scrcpy-win32-v2.4/AdbWinApi.dll +0 -0
- magnax/public/scrcpy/scrcpy-win32-v2.4/AdbWinUsbApi.dll +0 -0
- magnax/public/scrcpy/scrcpy-win32-v2.4/SDL2.dll +0 -0
- magnax/public/scrcpy/scrcpy-win32-v2.4/adb.exe +0 -0
- magnax/public/scrcpy/scrcpy-win32-v2.4/avcodec-60.dll +0 -0
- magnax/public/scrcpy/scrcpy-win32-v2.4/avformat-60.dll +0 -0
- magnax/public/scrcpy/scrcpy-win32-v2.4/avutil-58.dll +0 -0
- magnax/public/scrcpy/scrcpy-win32-v2.4/icon.png +0 -0
- magnax/public/scrcpy/scrcpy-win32-v2.4/libusb-1.0.dll +0 -0
- magnax/public/scrcpy/scrcpy-win32-v2.4/open_a_terminal_here.bat +1 -0
- magnax/public/scrcpy/scrcpy-win32-v2.4/scrcpy-console.bat +2 -0
- magnax/public/scrcpy/scrcpy-win32-v2.4/scrcpy-noconsole.vbs +7 -0
- magnax/public/scrcpy/scrcpy-win32-v2.4/scrcpy-server +0 -0
- magnax/public/scrcpy/scrcpy-win32-v2.4/scrcpy.exe +0 -0
- magnax/public/scrcpy/scrcpy-win32-v2.4/swresample-4.dll +0 -0
- magnax/public/scrcpy/scrcpy-win64-v2.4/AdbWinApi.dll +0 -0
- magnax/public/scrcpy/scrcpy-win64-v2.4/AdbWinUsbApi.dll +0 -0
- magnax/public/scrcpy/scrcpy-win64-v2.4/SDL2.dll +0 -0
- magnax/public/scrcpy/scrcpy-win64-v2.4/avformat-60.dll +0 -0
- magnax/public/scrcpy/scrcpy-win64-v2.4/avutil-58.dll +0 -0
- magnax/public/scrcpy/scrcpy-win64-v2.4/open_a_terminal_here.bat +1 -0
- magnax/public/scrcpy/scrcpy-win64-v2.4/scrcpy-noconsole.vbs +7 -0
- magnax/public/scrcpy/scrcpy-win64-v2.4/scrcpy-server +0 -0
- magnax/public/scrcpy/scrcpy-win64-v2.4/scrcpy.exe +0 -0
- magnax/public/scrcpy/scrcpy-win64-v2.4/swresample-4.dll +0 -0
- magnax/static/css/highlight.min.css +9 -0
- magnax/static/css/magnax-dark-theme.css +1237 -0
- magnax/static/css/select2-bootstrap-5-theme.min.css +3 -0
- magnax/static/css/select2-bootstrap-5-theme.rtl.min.css +3 -0
- magnax/static/css/select2.min.css +1 -0
- magnax/static/css/sweetalert2.min.css +1 -0
- magnax/static/css/tabler.demo.min.css +9 -0
- magnax/static/css/tabler.min.css +14 -0
- magnax/static/image/500.png +0 -0
- magnax/static/image/avatar.png +0 -0
- magnax/static/image/empty.png +0 -0
- magnax/static/image/readme/home.png +0 -0
- magnax/static/image/readme/pk.png +0 -0
- magnax/static/js/apexcharts.js +14 -0
- magnax/static/js/gray.js +16 -0
- magnax/static/js/highlight.min.js +1173 -0
- magnax/static/js/highstock.js +803 -0
- magnax/static/js/html2canvas.min.js +20 -0
- magnax/static/js/jquery.min.js +2 -0
- magnax/static/js/magnax-chart-theme.js +492 -0
- magnax/static/js/select2.min.js +2 -0
- magnax/static/js/sweetalert2.min.js +1 -0
- magnax/static/js/tabler.demo.min.js +9 -0
- magnax/static/js/tabler.min.js +9 -0
- magnax/static/logo/logo.png +0 -0
- magnax/templates/404.html +30 -0
- magnax/templates/analysis.html +1375 -0
- magnax/templates/analysis_compare.html +600 -0
- magnax/templates/analysis_pk.html +680 -0
- magnax/templates/base.html +365 -0
- magnax/templates/index.html +2471 -0
- magnax/templates/pk.html +743 -0
- magnax/templates/report.html +416 -0
- magnax/view/__init__.py +1 -0
- magnax/view/apis.py +952 -0
- magnax/view/pages.py +146 -0
- magnax/web.py +345 -0
- magnax-1.0.0.dist-info/METADATA +242 -0
- magnax-1.0.0.dist-info/RECORD +87 -0
- magnax-1.0.0.dist-info/WHEEL +5 -0
- magnax-1.0.0.dist-info/entry_points.txt +2 -0
- magnax-1.0.0.dist-info/licenses/LICENSE +21 -0
- magnax-1.0.0.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,2471 @@
|
|
|
1
|
+
{% extends 'base.html' %}
|
|
2
|
+
|
|
3
|
+
{% block title %}
|
|
4
|
+
{% if lan == 'cn' %}
|
|
5
|
+
MagnaX - 性能测试
|
|
6
|
+
{% else %}
|
|
7
|
+
MagnaX - Application Performance Monitoring
|
|
8
|
+
{% endif %}
|
|
9
|
+
{% endblock %}
|
|
10
|
+
|
|
11
|
+
{% block css %}{% endblock %}
|
|
12
|
+
|
|
13
|
+
{% block page_title %}
|
|
14
|
+
{% if platform == 'Android' %}
|
|
15
|
+
<a class="btn btn-primary" href="/?platform=Android&lan={{ lan }}" >
|
|
16
|
+
<svg t="1651055484580" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2077" width="2000" height="2000"><path d="M133.336 914.896a381.336 81.488 0 1 0 762.672 0 381.336 81.488 0 1 0-762.672 0Z" fill="#B8CBCD" p-id="2078"></path><path d="M373.336 769.4a87.68 87.68 0 0 1-24-3.4v123.4a56 56 0 1 0 112 0v-120h-88z" fill="#B2EDA6" p-id="2079"></path><path d="M405.336 961.4c-39.696 0-72-32.296-72-72V766a16.008 16.008 0 0 1 20.36-15.392 72.248 72.248 0 0 0 19.64 2.792h88a16 16 0 0 1 16 16v120c0 39.704-32.304 72-72 72z m-40-176.32v104.32c0 22.056 17.944 40 40 40s40-17.944 40-40v-104h-72c-2.664 0-5.328-0.112-8-0.32z" fill="#3C663E" p-id="2080"></path><path d="M661.336 769.4c8.328 0 16.36-1.232 24-3.4v123.4a56 56 0 1 1-112 0v-120h88z" fill="#B2EDA6" p-id="2081"></path><path d="M629.336 961.4c-39.696 0-72-32.296-72-72v-120a16 16 0 0 1 16-16h88c6.496 0 13.096-0.936 19.64-2.792a15.984 15.984 0 0 1 20.368 15.392v123.4c-0.008 39.704-32.312 72-72.008 72z m-40-176v104c0 22.056 17.944 40 40 40s40-17.944 40-40v-104.32c-2.672 0.208-5.344 0.32-8 0.32h-72z" fill="#3C663E" p-id="2082"></path><path d="M765.336 393.4v368c0 35.344-104.824 64-244 64s-252-28.656-252-64v-368" fill="#B2EDA6" p-id="2083"></path><path d="M521.336 841.4c-92.696 0-268-16.72-268-80v-368a16 16 0 0 1 32 0v368c0 14.352 80.296 48 236 48 157.888 0 228-34.784 228-48v-368a16 16 0 0 1 32 0v368c0 55.264-130.592 80-260 80zM649.336 197.4a23.984 23.984 0 0 1-16.968-40.968l108-108a23.984 23.984 0 0 1 33.936 0 23.984 23.984 0 0 1 0 33.936l-108 108a23.928 23.928 0 0 1-16.968 7.032zM397.336 197.4a23.904 23.904 0 0 1-16.968-7.032l-108-108a23.984 23.984 0 0 1 0-33.936 23.984 23.984 0 0 1 33.936 0l108 108a23.984 23.984 0 0 1-16.968 40.968z" fill="#3C663E" p-id="2084"></path><path d="M877.336 661.4a56 56 0 1 1-112 0v-224a56 56 0 1 1 112 0v224z" fill="#B2EDA6" p-id="2085"></path><path d="M821.336 733.4c-39.696 0-72-32.296-72-72v-224c0-39.704 32.304-72 72-72s72 32.296 72 72v224c0 39.704-32.304 72-72 72z m0-336c-22.056 0-40 17.944-40 40v224c0 22.056 17.944 40 40 40s40-17.944 40-40v-224c0-22.056-17.944-40-40-40z" fill="#3C663E" p-id="2086"></path><path d="M269.336 661.4a56 56 0 1 1-112 0v-224a56 56 0 1 1 112 0v224z" fill="#B2EDA6" p-id="2087"></path><path d="M213.336 733.4c-39.696 0-72-32.296-72-72v-224c0-39.704 32.304-72 72-72s72 32.296 72 72v224c0 39.704-32.304 72-72 72z m0-336c-22.056 0-40 17.944-40 40v224c0 22.056 17.944 40 40 40s40-17.944 40-40v-224c0-22.056-17.944-40-40-40z" fill="#3C663E" p-id="2088"></path><path d="M725.336 809.4a24 24 0 0 1-24-24v-352a24 24 0 1 1 48 0v352a24 24 0 0 1-24 24z" fill="#3C663E" p-id="2089"></path><path d="M309.336 809.4a24 24 0 0 1-24-24v-352a24 24 0 1 1 48 0v352a24 24 0 0 1-24 24zM381.336 817.728a16 16 0 0 1-16-16V433.4a16 16 0 0 1 32 0v368.328a16 16 0 0 1-16 16z" fill="#FFFFFF" p-id="2090"></path><path d="M517.336 145.4c-136.968 0-248 111.032-248 248 0 35.344 112.824 64 252 64s244-28.656 244-64c0-136.968-111.04-248-248-248z" fill="#B2EDA6" p-id="2091"></path><path d="M521.336 473.4c-92.696 0-268-16.72-268-80 0-145.568 118.432-264 264-264s264 118.432 264 264c0 55.264-130.592 80-260 80z m-4-312c-127.928 0-232 104.08-232 232 0 14.352 80.296 48 236 48 157.888 0 228-34.784 228-48 0-127.92-104.08-232-232-232z" fill="#3C663E" p-id="2092"></path><path d="M413.336 321.4m-32 0a32 32 0 1 0 64 0 32 32 0 1 0-64 0Z" fill="#FFFFFF" p-id="2093"></path><path d="M413.336 369.4c-26.472 0-48-21.528-48-48s21.528-48 48-48 48 21.528 48 48c0 26.464-21.536 48-48 48z m0-64c-8.824 0-16 7.176-16 16 0 8.816 7.176 16 16 16s16-7.184 16-16c0-8.824-7.176-16-16-16z" fill="#3C663E" p-id="2094"></path><path d="M621.336 321.4m-32 0a32 32 0 1 0 64 0 32 32 0 1 0-64 0Z" fill="#FFFFFF" p-id="2095"></path><path d="M621.336 369.4c-26.472 0-48-21.528-48-48s21.528-48 48-48 48 21.528 48 48c0 26.464-21.536 48-48 48z m0-64c-8.824 0-16 7.176-16 16 0 8.816 7.176 16 16 16s16-7.184 16-16c0-8.824-7.176-16-16-16z" fill="#3C663E" p-id="2096"></path><path d="M629.336 969.4c-44.112 0-80-35.888-80-80v-32.392c-21.176 0.584-42.728 0.504-64-0.248v32.64c0 44.112-35.888 80-80 80s-80-35.888-80-80v-54.616c-59.92-16.544-88-37.52-88-65.384V737.52a73.848 73.848 0 0 1-24 3.872c-44.112 0-80-35.888-80-80v-224c0-44.112 35.888-80 80-80a79.52 79.52 0 0 1 33.496 7.352c14.36-136.56 130.2-243.352 270.504-243.352s256.136 106.792 270.504 243.36a79.52 79.52 0 0 1 33.496-7.352c44.112 0 80 35.888 80 80v224c0 44.112-35.888 80-80 80a73.848 73.848 0 0 1-24-3.872v31.872c0 28.168-28.832 49.976-88 66.416v53.584c0 44.104-35.888 80-80 80z m-56-161.392a24 24 0 0 1 24 24v57.392c0 17.648 14.352 32 32 32s32-14.352 32-32v-72.208c0-11.136 7.648-20.808 18.488-23.36 46.368-10.944 64.912-22.48 69.512-27.232v-105.2c0-13.256 3.992-24 17.248-24s15.248 10.744 15.248 24c0 7.504 7.504 32 39.504 32 17.648 0 32-14.352 32-32v-224c0-17.648-14.352-32-32-32s-40 14.352-40 32c0 13.256-2.744 24-16 24s-16-22.24-16-35.504l-8-32.504c0-123.52-100.488-224-224-224s-224 109.64-224 233.152l-8.504 34.848c0 13.256-2.248 24-15.504 24s-17.248-15.992-17.248-29.248c0-17.648-21.104-26.752-38.752-26.752s-32 14.352-32 32v224c0 17.648 14.352 32 32 32 36 0 41-22.992 41-30.504 0-13.256-2.232-25.144 11.016-25.144 13.256 0 19.984 10.384 19.984 23.64v104.72c4.976 4.712 23.784 15.824 69.544 26.68a24 24 0 0 1 18.456 23.352v73.248c0 17.648 14.352 32 32 32s32-14.352 32-32v-57.84c0-6.624 2.736-12.952 7.56-17.496a24.032 24.032 0 0 1 17.928-6.464c35.92 2.24 73.696 2.384 109.208 0.448l1.312-0.024z" fill="#3C663E" p-id="2097"></path><path d="M521.336 841.4c-92.696 0-268-16.72-268-80v-368a16 16 0 0 1 32 0v368c0 14.352 80.296 48 236 48 157.888 0 228-34.784 228-48v-368a16 16 0 0 1 32 0v368c0 55.264-130.592 80-260 80z" fill="#3C663E" p-id="2098"></path></svg>
|
|
17
|
+
{% if lan == 'cn' %} 安卓 {% else %} Android {% endif %}
|
|
18
|
+
</a>
|
|
19
|
+
<a class="btn btn-default" href="/?platform=iOS&lan={{ lan }}" style="margin-left: 10px">
|
|
20
|
+
<svg t="1656846283611" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3683" width="200" height="200"><path d="M649.785306 161.506856C707.566241 88.169516 694.232179 8.165145 689.787492 1.498114c-6.667031-6.667031-93.338433 6.667031-153.341711 86.671402-53.336247 73.33734-53.336247 153.341711-46.669217 160.008742C496.443594 254.845289 583.114997 248.178259 649.785306 161.506856L649.785306 161.506856zM649.785306 161.506856M794.237643 534.860588c-6.667031-106.672495 93.338433-173.342804 113.339526-186.676866l0-6.667031c0 0-86.671402-106.672495-213.34499-100.005464-80.004371 6.667031-120.006557 46.669217-173.342804 46.669217-66.67031 0-126.673588-46.669217-200.010928-46.669217-60.003278 0-233.346082 53.336247-246.680145 280.015299C63.086584 748.205579 223.095326 959.328225 283.098605 999.330411c60.003278 40.002186 100.005464 26.668124 166.675774-6.667031 33.335154-20.001093 140.00765-26.668124 200.010928 13.334062 73.33734 26.668124 180.009835 6.667031 300.016392-260.014206C934.245292 748.205579 800.904674 714.870423 794.237643 534.860588L794.237643 534.860588zM794.237643 534.860588" p-id="3684"></path></svg>
|
|
21
|
+
{% if lan == 'cn' %} 苹果 {% else %} iOS {% endif %}
|
|
22
|
+
</a>
|
|
23
|
+
{% elif platform == 'iOS' %}
|
|
24
|
+
<a class="btn btn-default" href="/?platform=Android&lan={{ lan }}" >
|
|
25
|
+
<svg t="1651055484580" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2077" width="2000" height="2000"><path d="M133.336 914.896a381.336 81.488 0 1 0 762.672 0 381.336 81.488 0 1 0-762.672 0Z" fill="#B8CBCD" p-id="2078"></path><path d="M373.336 769.4a87.68 87.68 0 0 1-24-3.4v123.4a56 56 0 1 0 112 0v-120h-88z" fill="#B2EDA6" p-id="2079"></path><path d="M405.336 961.4c-39.696 0-72-32.296-72-72V766a16.008 16.008 0 0 1 20.36-15.392 72.248 72.248 0 0 0 19.64 2.792h88a16 16 0 0 1 16 16v120c0 39.704-32.304 72-72 72z m-40-176.32v104.32c0 22.056 17.944 40 40 40s40-17.944 40-40v-104h-72c-2.664 0-5.328-0.112-8-0.32z" fill="#3C663E" p-id="2080"></path><path d="M661.336 769.4c8.328 0 16.36-1.232 24-3.4v123.4a56 56 0 1 1-112 0v-120h88z" fill="#B2EDA6" p-id="2081"></path><path d="M629.336 961.4c-39.696 0-72-32.296-72-72v-120a16 16 0 0 1 16-16h88c6.496 0 13.096-0.936 19.64-2.792a15.984 15.984 0 0 1 20.368 15.392v123.4c-0.008 39.704-32.312 72-72.008 72z m-40-176v104c0 22.056 17.944 40 40 40s40-17.944 40-40v-104.32c-2.672 0.208-5.344 0.32-8 0.32h-72z" fill="#3C663E" p-id="2082"></path><path d="M765.336 393.4v368c0 35.344-104.824 64-244 64s-252-28.656-252-64v-368" fill="#B2EDA6" p-id="2083"></path><path d="M521.336 841.4c-92.696 0-268-16.72-268-80v-368a16 16 0 0 1 32 0v368c0 14.352 80.296 48 236 48 157.888 0 228-34.784 228-48v-368a16 16 0 0 1 32 0v368c0 55.264-130.592 80-260 80zM649.336 197.4a23.984 23.984 0 0 1-16.968-40.968l108-108a23.984 23.984 0 0 1 33.936 0 23.984 23.984 0 0 1 0 33.936l-108 108a23.928 23.928 0 0 1-16.968 7.032zM397.336 197.4a23.904 23.904 0 0 1-16.968-7.032l-108-108a23.984 23.984 0 0 1 0-33.936 23.984 23.984 0 0 1 33.936 0l108 108a23.984 23.984 0 0 1-16.968 40.968z" fill="#3C663E" p-id="2084"></path><path d="M877.336 661.4a56 56 0 1 1-112 0v-224a56 56 0 1 1 112 0v224z" fill="#B2EDA6" p-id="2085"></path><path d="M821.336 733.4c-39.696 0-72-32.296-72-72v-224c0-39.704 32.304-72 72-72s72 32.296 72 72v224c0 39.704-32.304 72-72 72z m0-336c-22.056 0-40 17.944-40 40v224c0 22.056 17.944 40 40 40s40-17.944 40-40v-224c0-22.056-17.944-40-40-40z" fill="#3C663E" p-id="2086"></path><path d="M269.336 661.4a56 56 0 1 1-112 0v-224a56 56 0 1 1 112 0v224z" fill="#B2EDA6" p-id="2087"></path><path d="M213.336 733.4c-39.696 0-72-32.296-72-72v-224c0-39.704 32.304-72 72-72s72 32.296 72 72v224c0 39.704-32.304 72-72 72z m0-336c-22.056 0-40 17.944-40 40v224c0 22.056 17.944 40 40 40s40-17.944 40-40v-224c0-22.056-17.944-40-40-40z" fill="#3C663E" p-id="2088"></path><path d="M725.336 809.4a24 24 0 0 1-24-24v-352a24 24 0 1 1 48 0v352a24 24 0 0 1-24 24z" fill="#3C663E" p-id="2089"></path><path d="M309.336 809.4a24 24 0 0 1-24-24v-352a24 24 0 1 1 48 0v352a24 24 0 0 1-24 24zM381.336 817.728a16 16 0 0 1-16-16V433.4a16 16 0 0 1 32 0v368.328a16 16 0 0 1-16 16z" fill="#FFFFFF" p-id="2090"></path><path d="M517.336 145.4c-136.968 0-248 111.032-248 248 0 35.344 112.824 64 252 64s244-28.656 244-64c0-136.968-111.04-248-248-248z" fill="#B2EDA6" p-id="2091"></path><path d="M521.336 473.4c-92.696 0-268-16.72-268-80 0-145.568 118.432-264 264-264s264 118.432 264 264c0 55.264-130.592 80-260 80z m-4-312c-127.928 0-232 104.08-232 232 0 14.352 80.296 48 236 48 157.888 0 228-34.784 228-48 0-127.92-104.08-232-232-232z" fill="#3C663E" p-id="2092"></path><path d="M413.336 321.4m-32 0a32 32 0 1 0 64 0 32 32 0 1 0-64 0Z" fill="#FFFFFF" p-id="2093"></path><path d="M413.336 369.4c-26.472 0-48-21.528-48-48s21.528-48 48-48 48 21.528 48 48c0 26.464-21.536 48-48 48z m0-64c-8.824 0-16 7.176-16 16 0 8.816 7.176 16 16 16s16-7.184 16-16c0-8.824-7.176-16-16-16z" fill="#3C663E" p-id="2094"></path><path d="M621.336 321.4m-32 0a32 32 0 1 0 64 0 32 32 0 1 0-64 0Z" fill="#FFFFFF" p-id="2095"></path><path d="M621.336 369.4c-26.472 0-48-21.528-48-48s21.528-48 48-48 48 21.528 48 48c0 26.464-21.536 48-48 48z m0-64c-8.824 0-16 7.176-16 16 0 8.816 7.176 16 16 16s16-7.184 16-16c0-8.824-7.176-16-16-16z" fill="#3C663E" p-id="2096"></path><path d="M629.336 969.4c-44.112 0-80-35.888-80-80v-32.392c-21.176 0.584-42.728 0.504-64-0.248v32.64c0 44.112-35.888 80-80 80s-80-35.888-80-80v-54.616c-59.92-16.544-88-37.52-88-65.384V737.52a73.848 73.848 0 0 1-24 3.872c-44.112 0-80-35.888-80-80v-224c0-44.112 35.888-80 80-80a79.52 79.52 0 0 1 33.496 7.352c14.36-136.56 130.2-243.352 270.504-243.352s256.136 106.792 270.504 243.36a79.52 79.52 0 0 1 33.496-7.352c44.112 0 80 35.888 80 80v224c0 44.112-35.888 80-80 80a73.848 73.848 0 0 1-24-3.872v31.872c0 28.168-28.832 49.976-88 66.416v53.584c0 44.104-35.888 80-80 80z m-56-161.392a24 24 0 0 1 24 24v57.392c0 17.648 14.352 32 32 32s32-14.352 32-32v-72.208c0-11.136 7.648-20.808 18.488-23.36 46.368-10.944 64.912-22.48 69.512-27.232v-105.2c0-13.256 3.992-24 17.248-24s15.248 10.744 15.248 24c0 7.504 7.504 32 39.504 32 17.648 0 32-14.352 32-32v-224c0-17.648-14.352-32-32-32s-40 14.352-40 32c0 13.256-2.744 24-16 24s-16-22.24-16-35.504l-8-32.504c0-123.52-100.488-224-224-224s-224 109.64-224 233.152l-8.504 34.848c0 13.256-2.248 24-15.504 24s-17.248-15.992-17.248-29.248c0-17.648-21.104-26.752-38.752-26.752s-32 14.352-32 32v224c0 17.648 14.352 32 32 32 36 0 41-22.992 41-30.504 0-13.256-2.232-25.144 11.016-25.144 13.256 0 19.984 10.384 19.984 23.64v104.72c4.976 4.712 23.784 15.824 69.544 26.68a24 24 0 0 1 18.456 23.352v73.248c0 17.648 14.352 32 32 32s32-14.352 32-32v-57.84c0-6.624 2.736-12.952 7.56-17.496a24.032 24.032 0 0 1 17.928-6.464c35.92 2.24 73.696 2.384 109.208 0.448l1.312-0.024z" fill="#3C663E" p-id="2097"></path><path d="M521.336 841.4c-92.696 0-268-16.72-268-80v-368a16 16 0 0 1 32 0v368c0 14.352 80.296 48 236 48 157.888 0 228-34.784 228-48v-368a16 16 0 0 1 32 0v368c0 55.264-130.592 80-260 80z" fill="#3C663E" p-id="2098"></path></svg>
|
|
26
|
+
{% if lan == 'cn' %} 安卓 {% else %} Android {% endif %}
|
|
27
|
+
</a>
|
|
28
|
+
<a class="btn btn-primary" style="margin-left: 10px" href="/?platform=iOS&lan={{ lan }}" >
|
|
29
|
+
<svg t="1656846283611" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3683" width="200" height="200"><path d="M649.785306 161.506856C707.566241 88.169516 694.232179 8.165145 689.787492 1.498114c-6.667031-6.667031-93.338433 6.667031-153.341711 86.671402-53.336247 73.33734-53.336247 153.341711-46.669217 160.008742C496.443594 254.845289 583.114997 248.178259 649.785306 161.506856L649.785306 161.506856zM649.785306 161.506856M794.237643 534.860588c-6.667031-106.672495 93.338433-173.342804 113.339526-186.676866l0-6.667031c0 0-86.671402-106.672495-213.34499-100.005464-80.004371 6.667031-120.006557 46.669217-173.342804 46.669217-66.67031 0-126.673588-46.669217-200.010928-46.669217-60.003278 0-233.346082 53.336247-246.680145 280.015299C63.086584 748.205579 223.095326 959.328225 283.098605 999.330411c60.003278 40.002186 100.005464 26.668124 166.675774-6.667031 33.335154-20.001093 140.00765-26.668124 200.010928 13.334062 73.33734 26.668124 180.009835 6.667031 300.016392-260.014206C934.245292 748.205579 800.904674 714.870423 794.237643 534.860588L794.237643 534.860588zM794.237643 534.860588" p-id="3684" data-spm-anchor-id="a313x.7781069.0.i1" class="selected" fill="#ffffff"></path></svg>
|
|
30
|
+
{% if lan == 'cn' %} 苹果 {% else %} iOS {% endif %}
|
|
31
|
+
</a>
|
|
32
|
+
{% endif %}
|
|
33
|
+
{% endblock %}
|
|
34
|
+
|
|
35
|
+
{% block navbar_nav %}
|
|
36
|
+
<ul class="navbar-nav">
|
|
37
|
+
<li class="nav-item active" id="apm_tab" style="margin-left: 20px;font-weight: bolder;">
|
|
38
|
+
<a class="nav-link" href="/?platform=Android&lan={{ lan }}">
|
|
39
|
+
<span class="nav-link-icon d-md-none d-lg-inline-block">
|
|
40
|
+
<svg t="1635060342196" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="82258" width="200" height="200"><path d="M512 512m-512 0a512 512 0 1 0 1024 0 512 512 0 1 0-1024 0Z" fill="#FBD000" p-id="82259"></path><path d="M949.6 848H92.8c-4.8 0-8-3.2-8-8s3.2-8 8-8h856.8c4.8 0 8 3.2 8 8s-4 8-8 8z" fill="#074370" p-id="82260"></path><path d="M903.2 776c0 35.2-28.8 64-64 64H203.2c-35.2 0-64-28.8-64-64V293.6c0-35.2 28.8-64 64-64h636c35.2 0 64 28.8 64 64V776z" fill="#415E6D" p-id="82261"></path><path d="M839.2 797.6H203.2c-35.2 0-64-28.8-64-64V776c0 35.2 28.8 64 64 64h636c35.2 0 64-28.8 64-64v-42.4c0 35.2-28.8 64-64 64z" fill="#324D5B" p-id="82262"></path><path d="M839.2 229.6H203.2c-35.2 0-64 28.8-64 64V728h764V293.6c0-35.2-28.8-64-64-64z" fill="#EAEAEA" p-id="82263"></path><path d="M901.6 736H144c-4.8 0-8-3.2-8-8s3.2-8 8-8h757.6c4.8 0 8 3.2 8 8s-4 8-8 8z" fill="#074370" p-id="82264"></path><path d="M816 784m-24 0a24 24 0 1 0 48 0 24 24 0 1 0-48 0Z" fill="#28A5C6" p-id="82265"></path><path d="M216 784m-16 0a16 16 0 1 0 32 0 16 16 0 1 0-32 0Z" fill="#3AD0F9" p-id="82266"></path><path d="M280 784m-16 0a16 16 0 1 0 32 0 16 16 0 1 0-32 0Z" fill="#FF4848" p-id="82267"></path><path d="M344 784m-16 0a16 16 0 1 0 32 0 16 16 0 1 0-32 0Z" fill="#75B600" p-id="82268"></path><path d="M408 784m-16 0a16 16 0 1 0 32 0 16 16 0 1 0-32 0Z" fill="#FFFFFF" p-id="82269"></path><path d="M904 592h-72c-4.8 0-8-3.2-8-8s4-8 8-8h71.2c4.8 0 8 3.2 8 8s-3.2 8-7.2 8zM639.2 664c-3.2 0-6.4-2.4-8-5.6L592 523.2l-14.4 63.2c-0.8 4-4 6.4-8 6.4H391.2c-4 0-7.2-2.4-8-6.4l-21.6-119.2-17.6 73.6c-0.8 4-5.6 7.2-9.6 5.6-4-0.8-7.2-5.6-5.6-9.6L355.2 424c0.8-4 4-6.4 8-6.4s7.2 3.2 8 6.4l27.2 152h166.4L584 488.8c0.8-3.2 4-8.8 8-8.8s6.4 4.8 8 8.8l38.4 132.8 40.8-224.8c0.8-4 4-6.4 8-6.4s7.2 2.4 8 6.4L732 576h76c4.8 0 8 3.2 8 8s-3.2 8-8 8H725.6c-4 0-7.2-2.4-8-6.4l-30.4-146.4-40 218.4c-0.8 3.2-4 6.4-8 6.4 0.8 0 0.8 0 0 0zM305.6 680c-4 0-7.2-2.4-8-6.4L268 536l-15.2 50.4c-0.8 3.2-4 5.6-8 5.6H146.4c-4.8 0-8-3.2-8-8s3.2-8 8-8h92.8l22.4-74.4c0.8-3.2 4.8-5.6 8-5.6 4 0 6.4 2.4 7.2 6.4l28.8 132.8 11.2-47.2c0.8-4 5.6-7.2 9.6-5.6 4 0.8 7.2 5.6 5.6 9.6l-19.2 82.4c0 3.2-4 5.6-7.2 5.6z" fill="#074370" p-id="82270"></path><path d="M776 304h-56c-4.8 0-8-3.2-8-8s3.2-8 8-8h56c4.8 0 8 3.2 8 8s-3.2 8-8 8zM672 304H488c-4 0-8-3.2-8-8s3.2-8 8-8h184c4 0 8 3.2 8 8s-3.2 8-8 8zM424 304H224c-4.8 0-8-3.2-8-8s4-8 8-8h200c4.8 0 8 3.2 8 8s-4 8-8 8zM711.2 344H584c-4.8 0-8-3.2-8-8s3.2-8 8-8h127.2c4.8 0 8 3.2 8 8s-3.2 8-8 8zM528 344H224c-4.8 0-8-3.2-8-8s4-8 8-8h304c4.8 0 8 3.2 8 8s-4 8-8 8z" fill="#ADADAD" p-id="82271"></path><path d="M840 848H200c-40 0-72-32-72-72V296c0-40 32-72 72-72h640c40 0 72 32 72 72v480c0 40-32 72-72 72zM200 240c-31.2 0-56 24.8-56 56v480c0 31.2 24.8 56 56 56h640c31.2 0 56-24.8 56-56V296c0-31.2-24.8-56-56-56H200z" fill="#074370" p-id="82272"></path><path d="M864 553.6c-4.8 0-8-3.2-8-8v-80c0-4.8 3.2-8 8-8s8 3.2 8 8v80c0 4.8-3.2 8-8 8zM864 425.6c-4.8 0-8-3.2-8-8V312c0-22.4-17.6-40-40-40H408c-4.8 0-8-3.2-8-8s3.2-8 8-8h408c31.2 0 56 24.8 56 56v105.6c0 4.8-3.2 8-8 8zM345.6 272H224c-4.8 0-8-3.2-8-8s3.2-8 8-8h121.6c4.8 0 8 3.2 8 8s-4 8-8 8zM64 464c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32z m0-48c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zM656 176c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32z m0-48c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zM474.4 124c0-3.2-3.2-6.4-8-7.2l-15.2-2.4c-4-0.8-8.8-4.8-8.8-8.8l-2.4-15.2c-0.8-4-4-8-7.2-8s-6.4 3.2-7.2 8l-2.4 15.2c-0.8 4-4.8 8.8-8.8 8.8l-15.2 2.4c-4 0.8-8 4-8 7.2s3.2 6.4 8 7.2l15.2 2.4c4 0.8 8.8 4.8 8.8 8.8l2.4 15.2c0.8 4 4 8 7.2 8s6.4-3.2 7.2-8l2.4-16.8c0.8-4 4.8-8 8.8-8.8l14.4-0.8c5.6-1.6 8.8-4 8.8-7.2zM502.4 928c0-3.2-3.2-6.4-8-7.2l-15.2-2.4c-4-0.8-8.8-4.8-8.8-8.8l-2.4-15.2c-0.8-4-4-8-7.2-8s-6.4 3.2-7.2 8l-2.4 15.2c-0.8 4-4.8 8.8-8.8 8.8l-15.2 2.4c-4 0.8-8 4-8 7.2s3.2 6.4 8 7.2l15.2 2.4c4 0.8 8.8 4.8 8.8 8.8l2.4 15.2c0.8 4 4 8 7.2 8s6.4-3.2 7.2-8l2.4-16.8c0.8-4 4.8-8 8.8-8.8l14.4-0.8c5.6-1.6 8.8-4 8.8-7.2z" fill="#FFFFFF" p-id="82273"></path></svg>
|
|
41
|
+
</span>
|
|
42
|
+
<span class="nav-link-title strong-text">
|
|
43
|
+
{% if lan == 'cn' %} 性能测试 {% else %} APM {% endif %}
|
|
44
|
+
</span>
|
|
45
|
+
</a>
|
|
46
|
+
</li>
|
|
47
|
+
<li class="nav-item" id="report_tab" style="margin-left: 20px;font-weight: bolder;">
|
|
48
|
+
<a class="nav-link" href="/report?lan={{ lan }}">
|
|
49
|
+
<span class="nav-link-icon d-md-none d-lg-inline-block">
|
|
50
|
+
<svg t="1643364122000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="29349" width="300" height="300"><path d="M777 806.7c0 38.7-31.1 70.3-69.7 70.3H225.9c-38.7 0-69.9-31.6-69.9-70.3V174.4c0-38.7 31.2-70.4 69.9-70.4h481.4c38.7 0 69.7 31.7 69.7 70.4v632.3z" fill="#FFFFFF" p-id="29350"></path><path d="M707.3 886H225.9c-43.5 0-78.9-35.8-78.9-79.3V174.4c0-43.5 35.4-79.4 78.9-79.4h481.4c43.5 0 79.7 35.9 79.7 79.4v632.3c0 43.5-36.2 79.3-79.7 79.3zM225.9 113c-33.7 0-59.9 27.7-59.9 61.4v632.3c0 33.7 26.2 61.3 59.9 61.3h481.4c33.7 0 60.7-27.6 60.7-61.3V174.4c0-33.7-27-61.4-60.7-61.4H225.9z" fill="#282828" p-id="29351"></path><path d="M732 763.1c0 33.3-26.1 60.9-59.4 60.9H251.7c-33.3 0-59.7-27.6-59.7-60.9V226.9c0-33.3 26.4-60.9 59.7-60.9h420.9c33.3 0 59.4 27.5 59.4 60.9v536.2z" fill="#50BCFF" p-id="29352"></path><path d="M361.8 251.9H208.6c-4.9 0-8.9-4-8.9-8.9s4-8.9 8.9-8.9h153.1c4.9 0 8.9 4 8.9 8.9s-3.9 8.9-8.8 8.9zM549.2 313H208.6c-4.9 0-8.9-4-8.9-8.9s4-8.9 8.9-8.9h340.5c4.9 0 8.9 4 8.9 8.9s-3.9 8.9-8.8 8.9zM652 448.4H208.6c-4.9 0-8.9-4-8.9-8.9s4-8.9 8.9-8.9H652c4.9 0 8.9 4 8.9 8.9s-4 8.9-8.9 8.9zM588.4 515.8H208.6c-4.9 0-8.9-4-8.9-8.9s4-8.9 8.9-8.9h379.7c4.9 0 8.9 4 8.9 8.9 0.1 4.9-3.9 8.9-8.8 8.9z" fill="#282828" p-id="29353"></path><path d="M673.3 113.3c0 19.6-15.9 35.5-35.5 35.5h-346c-19.6 0-35.5-15.9-35.5-35.5v-6.7c0-19.6 15.9-35.5 35.5-35.5h346c19.6 0 35.5 15.9 35.5 35.5v6.7z" fill="#1A6DFF" p-id="29354"></path><path d="M637.8 157.6h-346c-24.5 0-44.4-19.9-44.4-44.4v-6.7c0-24.5 19.9-44.4 44.4-44.4h346c24.5 0 44.4 19.9 44.4 44.4v6.7c0 24.5-19.9 44.4-44.4 44.4zM291.9 80c-14.7 0-26.6 11.9-26.6 26.6v6.7c0 14.7 11.9 26.6 26.6 26.6h346c14.7 0 26.6-11.9 26.6-26.6v-6.7c0-14.7-11.9-26.6-26.6-26.6h-346z" fill="#282828" p-id="29355"></path><path d="M849.7 758.4c0 106.3-86.2 192.4-192.4 192.4-106.3 0-192.4-86.2-192.4-192.4C464.8 652.1 551 566 657.3 566c106.2 0 192.4 86.1 192.4 192.4z" fill="#FFFFFF" p-id="29356"></path><path d="M657.3 959.7c-111 0-201.3-90.3-201.3-201.3s90.3-201.3 201.3-201.3 201.3 90.3 201.3 201.3-90.3 201.3-201.3 201.3z m0-384.8c-101.2 0-183.5 82.3-183.5 183.5S556.1 942 657.3 942s183.6-82.3 183.6-183.6c-0.1-101.2-82.4-183.5-183.6-183.5z" fill="#282828" p-id="29357"></path><path d="M657.3 553.6v204.9h203.6c-0.2-112.7-91.2-204-203.6-204.9z" fill="#1A6DFF" p-id="29358"></path><path d="M860.9 767.3H657.3c-4.9 0-8.9-4-8.9-8.9V553.6c0-2.4 0.9-4.6 2.6-6.3 1.7-1.7 3.6-2.4 6.3-2.6 116.9 0.9 212.2 96.8 212.4 213.7 0 2.4-0.9 4.6-2.6 6.3-1.6 1.7-3.9 2.6-6.2 2.6z m-194.8-17.8h185.6C847 649.3 766.2 568 666.1 562.7v186.8z" fill="#282828" p-id="29359"></path><path d="M794.1 903.7c-2.3 0-4.6-0.9-6.3-2.6L652.1 764.7c-3.5-3.5-3.4-9.1 0-12.6 3.5-3.5 9.1-3.4 12.6 0l135.7 136.5c3.5 3.5 3.4 9.1 0 12.6-1.8 1.7-4 2.5-6.3 2.5z" fill="#282828" p-id="29360"></path></svg>
|
|
51
|
+
</span>
|
|
52
|
+
<span class="nav-link-title strong-text">
|
|
53
|
+
{% if lan == 'cn' %} 报告管理 {% else %} Report {% endif %}
|
|
54
|
+
</span>
|
|
55
|
+
</a>
|
|
56
|
+
</li>
|
|
57
|
+
</ul>
|
|
58
|
+
{% endblock %}
|
|
59
|
+
|
|
60
|
+
{% block ms_auto %}
|
|
61
|
+
{% if platform == 'Android' %}
|
|
62
|
+
<div class="ms-auto d-print-none col-auto">
|
|
63
|
+
<a class="cursor-pointer" data-bs-toggle="modal" data-bs-target="#modal-scrollable">
|
|
64
|
+
<svg t="1687917727817" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2540" width="50" height="50"><path d="M861.12 596.608L786.176 678.4c-139.936-158.4-387.04-158.4-526.976 0l-74.976-81.824c179.776-203.52 497.184-203.52 676.96 0z" fill="#080808" p-id="2541"></path><path d="M1011.808 432.896l-75.328 80.544c-219.776-248.864-607.872-248.864-827.616 0l-75.328-80.544c259.616-294.4 718.624-294.4 978.24 0z" fill="#080808" p-id="2542"></path><path d="M422.784 716.128c-50.08 50.048-50.08 128.32 0 178.4 50.08 50.08 128.32 50.08 178.432 0 50.048-50.08 50.048-128.32 0-178.4-53.248-50.24-131.52-50.24-178.432 0z" fill="#FFA115" p-id="2543"></path></svg>
|
|
65
|
+
</a>
|
|
66
|
+
</div>
|
|
67
|
+
<div class="ms-auto d-print-none col-auto">
|
|
68
|
+
<a class="btn btn-default" onclick="cast()">
|
|
69
|
+
<svg t="1690357482122" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5413" width="128" height="128"><path d="M896 192a64 64 0 0 1 63.84 59.2L960 256v384a64 64 0 0 1-59.2 63.84L896 704h-272v64h195.2c7.04 0 12.8 5.76 12.8 12.8v38.4a12.8 12.8 0 0 1-12.8 12.8H448v-64h80v-64h-110.848v-64H896V256H256v32H192V256a64 64 0 0 1 59.2-63.84L256 192h640z m-544 128a32 32 0 0 1 32 32v448a32 32 0 0 1-32 32H128a32 32 0 0 1-32-32V352a32 32 0 0 1 32-32h224z m-32 64H160v384h160V384z" fill="#000000" p-id="5414"></path></svg>
|
|
70
|
+
{% if lan == 'cn' %} 投屏 {% else %} Cast {% endif %}
|
|
71
|
+
</a>
|
|
72
|
+
</div>
|
|
73
|
+
{% endif %}
|
|
74
|
+
<div class="ms-auto d-print-none col-auto">
|
|
75
|
+
<a class="btn btn-default" id="debug-connect">
|
|
76
|
+
<svg t="1638091545450" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="231707" width="200" height="200"><path d="M207.67511 241.617978v295.694382c0 15.532584 4.602247 31.065169 13.231461 43.721348L296.268369 676.530337c13.806742 20.134831 36.242697 32.21573 60.404494 32.21573h109.303371c24.161798 0 46.597753-12.080899 60.404494-32.21573L601.742526 581.033708c8.629213-12.65618 13.231461-28.188764 13.231461-43.721348V241.617978H207.67511z" fill="#4988FD" p-id="231708"></path><path d="M253.122301 4.026966h317.555056V241.617978H253.122301z" fill="#C5DCFA" p-id="231709"></path><path d="M344.016683 184.089888c-9.204494 0-16.683146-7.478652-16.683146-16.683146V83.41573c0-9.204494 7.478652-16.683146 16.683146-16.683146 9.204494 0 16.683146 7.478652 16.683146 16.683146v83.991012c0 9.204494-7.478652 16.683146-16.683146 16.683146zM476.906571 184.089888c-9.204494 0-16.683146-7.478652-16.683146-16.683146V83.41573c0-9.204494 7.478652-16.683146 16.683146-16.683146 9.204494 0 16.683146 7.478652 16.683146 16.683146v83.991012c0 9.204494-7.478652 16.683146-16.683146 16.683146z" fill="#FFFFFF" p-id="231710"></path><path d="M606.344773 1023.424719c-118.507865 0-214.579775-96.07191-214.579775-214.579775v-28.188764c0-12.080899 9.779775-21.860674 21.860674-21.860674 12.080899 0 21.860674 9.779775 21.860674 21.860674v28.188764c0 93.770787 76.51236 170.283146 170.283146 170.283146s170.283146-76.51236 170.283146-170.283146v-231.262922c0-12.080899 9.779775-21.860674 21.860674-21.860674 12.080899 0 21.860674 9.779775 21.860675 21.860674v231.262922c0.575281 118.507865-95.496629 214.579775-213.429214 214.579775z" fill="#C5DCFA" p-id="231711"></path><path d="M439.513312 780.65618h-52.925842c-12.65618 0-23.011236-10.355056-23.011236-23.011236v-48.898877h98.373033v48.898877c0.575281 12.65618-9.779775 23.011236-22.435955 23.011236z" fill="#2767F4" p-id="231712"></path><path d="M411.899829 604.620225c-9.204494 0-16.683146-7.478652-16.683146-16.683146V335.388764c0-9.204494 7.478652-16.683146 16.683146-16.683146 9.204494 0 16.683146 7.478652 16.683146 16.683146v252.548315c-0.575281 9.779775-7.478652 16.683146-16.683146 16.683146z" fill="#FFFFFF" p-id="231713"></path><path d="M411.899829 528.683146c-3.451685 0-7.478652-1.150562-10.355056-4.026966l-65.582022-54.651686c-4.026966-2.876404-5.752809-8.053933-5.752809-12.656179v-54.076405c0-9.204494 7.478652-16.683146 16.683146-16.683146 9.204494 0 16.683146 7.478652 16.683146 16.683146v46.597753L422.830166 499.34382c6.903371 5.752809 8.053933 16.107865 2.301124 23.586517-4.026966 4.026966-8.629213 5.752809-13.231461 5.752809z" fill="#FFFFFF" p-id="231714"></path><path d="M411.899829 480.934831c-4.602247 0-9.204494-1.725843-12.65618-5.752809-5.752809-6.903371-5.177528-17.258427 1.725843-23.586516l60.979775-51.775281V362.426966c0-9.204494 7.478652-16.683146 16.683146-16.683146 9.204494 0 16.683146 7.478652 16.683147 16.683146v44.87191c0 4.602247-2.301124 9.204494-5.752809 12.65618L422.830166 476.907865c-3.451685 2.876404-7.478652 4.026966-10.930337 4.026966z" fill="#FFFFFF" p-id="231715"></path></svg>
|
|
77
|
+
{% if lan == 'cn' %} 连接 {% else %} Connect {% endif %}
|
|
78
|
+
</a>
|
|
79
|
+
</div>
|
|
80
|
+
<div class="ms-auto d-print-none col-auto">
|
|
81
|
+
<div class="btn-list apm-btn-list">
|
|
82
|
+
<a id="run-apm" class="btn btn-default">
|
|
83
|
+
<svg t="1647757457022" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="21859" width="200" height="200"><path d="M511.4 512.1m-448 0a448 448 0 1 0 896 0 448 448 0 1 0-896 0Z" fill="#006DFC" p-id="21860"></path><path d="M658.4 555.6L475.5 661.1c-33.4 19.3-75-4.8-75-43.3V406.6c0-38.5 41.7-62.6 75-43.3l182.9 105.6c33.3 19.3 33.3 67.4 0 86.7z" fill="#FFFFFF" p-id="21861"></path></svg>
|
|
84
|
+
{% if lan == 'cn' %} 开始 {% else %} Start {% endif %}
|
|
85
|
+
</a>
|
|
86
|
+
<a id="stop-apm" onclick="stopTask()" class="btn btn-default" style="display: none">
|
|
87
|
+
<svg t="1638096947956" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="235254" width="200" height="200"><path d="M512 512m-512 0a512 512 0 1 0 1024 0 512 512 0 1 0-1024 0Z" fill="#EE827F" p-id="235255"></path><path d="M512 512m-443.191534 0a443.191534 443.191534 0 1 0 886.383068 0 443.191534 443.191534 0 1 0-886.383068 0Z" fill="#E64537" p-id="235256"></path><path d="M0 512C0 794.638448 229.180952 1023.8194 512 1023.8194V0C229.180952 0 0 229.180952 0 512z" fill="#FEFFFF" opacity=".1" p-id="235257"></path><path d="M477.866667 683.208466H375.647266c-1.083598 0-1.986596-0.902998-1.986596-1.986597V342.597531c0-1.083598 0.902998-1.986596 1.986596-1.986596h102.4c1.083598 0 1.986596 0.902998 1.986596 1.986596v338.443739c-0.1806 1.264198-1.083598 2.167196-2.167195 2.167196zM648.352734 683.208466h-102.4c-1.083598 0-1.986596-0.902998-1.986596-1.986597V342.597531c0-1.083598 0.902998-1.986596 1.986596-1.986596H648.352734c1.083598 0 1.986596 0.902998 1.986596 1.986596v338.443739c0 1.264198-0.902998 2.167196-1.986596 2.167196z" fill="#FFFFFF" p-id="235258"></path></svg>
|
|
88
|
+
{% if lan == 'cn' %} 停止 {% else %} Stop {% endif %}
|
|
89
|
+
</a>
|
|
90
|
+
</div>
|
|
91
|
+
</div>
|
|
92
|
+
{% endblock %}
|
|
93
|
+
|
|
94
|
+
{% block page_body %}
|
|
95
|
+
<div class="row">
|
|
96
|
+
<div class="apm-info" style="width: 25%">
|
|
97
|
+
<div class="dropdown-menu dropdown-menu-demo">
|
|
98
|
+
<h6 class="dropdown-header">{% if lan == 'cn' %} 基础信息 {% else %} Base Info {% endif %}</h6>
|
|
99
|
+
<div class="input-group mb-3 mt-2" style="width: 93%;margin-left: 10px;">
|
|
100
|
+
<div class="input-group-text">
|
|
101
|
+
<svg t="1638090687049" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="186695" width="200" height="200"><path d="M213.33 128.002c-11.782 0-21.328 9.546-21.328 21.328v42.672c0 11.782 9.546 21.328 21.328 21.328s21.344-9.546 21.344-21.328V149.33c0-11.782-9.562-21.328-21.344-21.328zM213.33 234.674c-11.782 0-21.328 9.546-21.328 21.328v85.328c0 11.782 9.546 21.344 21.328 21.344s21.344-9.562 21.344-21.344v-85.328c0-11.782-9.562-21.328-21.344-21.328zM213.33 384.002c-11.782 0-21.328 9.546-21.328 21.326v85.344c0 11.782 9.546 21.328 21.328 21.328s21.344-9.546 21.344-21.328v-85.344c0-11.78-9.562-21.326-21.344-21.326z" fill="#434A54" p-id="186696"></path><path d="M810.686 256.002c-11.812 0-21.376 9.546-21.376 21.328v85.344c0 11.782 9.562 21.328 21.376 21.328 11.75 0 21.312-9.546 21.312-21.328v-85.344c0-11.782-9.562-21.328-21.312-21.328zM298.674 1002.652c-35.296 0-64-28.688-64-63.998V85.33c0-35.28 28.704-63.998 64-63.998h426.636c35.312 0 64 28.718 64 63.998v853.324c0 35.31-28.688 63.998-64 63.998H298.674z" fill="#434A54" p-id="186697"></path><path d="M234.674 149.33h554.636v682.668H234.674z" fill="#5D9CEC" p-id="186698"></path><path d="M725.31 0.004H298.674c-47.14 0-85.344 38.204-85.344 85.326v853.324c0 47.124 38.204 85.342 85.344 85.342h426.636c47.156 0 85.376-38.218 85.376-85.342V85.33c0-47.122-38.22-85.326-85.376-85.326z m64 938.65c0 35.31-28.688 63.998-64 63.998H298.674c-35.296 0-64-28.688-64-63.998V85.33c0-35.28 28.704-63.998 64-63.998h426.636c35.312 0 64 28.718 64 63.998v853.324z" fill="#656D78" p-id="186699"></path><path d="M512 853.342c-35.344 0-64 28.656-64 64s28.656 63.998 64 63.998c35.342 0 64-28.654 64-63.998s-28.656-64-64-64z m0 85.312c-11.766 0-21.328-9.562-21.328-21.312 0-11.782 9.562-21.344 21.328-21.344 11.764 0 21.328 9.562 21.328 21.344 0 11.75-9.562 21.312-21.328 21.312z" fill="#656D78" p-id="186700"></path><path d="M426.672 85.33c0 11.782-9.562 21.344-21.344 21.344S384 97.112 384 85.33s9.546-21.328 21.328-21.328 21.344 9.546 21.344 21.328z" fill="#5D9CEC" p-id="186701"></path><path d="M554.688 64.002h-85.358c-11.782 0-21.328 9.546-21.328 21.328s9.546 21.344 21.328 21.344h85.358c11.75 0 21.312-9.562 21.312-21.344s-9.562-21.328-21.312-21.328z" opacity=".2" p-id="186702"></path><path d="M509.33 832.216h-122.658l128.002-682.886h122.638z" fill="#FFFFFF" opacity=".1" p-id="186703"></path></svg>
|
|
102
|
+
</div>
|
|
103
|
+
{% if lan == 'cn' %}
|
|
104
|
+
<select class="select-device select2-selection--single" data-placeholder="请选择一台设备"></select>
|
|
105
|
+
{% else %}
|
|
106
|
+
<select class="select-device select2-selection--single" data-placeholder="Please select a device"></select>
|
|
107
|
+
{% endif %}
|
|
108
|
+
</div>
|
|
109
|
+
<div class="input-group mb-3" style="width: 93%;margin-left: 10px;">
|
|
110
|
+
<div class="input-group-text">
|
|
111
|
+
<svg t="1645171258689" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2225" width="2000" height="2000"><path d="M352 96H224c-70.4 0-128 57.6-128 128v128c0 70.4 57.6 128 128 128h192c35.2 0 64-28.8 64-64V224c0-70.4-57.6-128-128-128z m64 319.9l-0.1 0.1H224c-17 0-33-6.7-45.1-18.9S160 369 160 352V224c0-17 6.7-33 18.9-45.1S207 160 224 160h128c17 0 33 6.7 45.1 18.9S416 207 416 224v191.9zM800 96H672c-70.4 0-128 57.6-128 128v192c0 35.2 28.8 64 64 64h192c70.4 0 128-57.6 128-128V224c0-70.4-57.6-128-128-128z m64 256c0 17-6.7 33-18.9 45.1S817 416 800 416H608.1l-0.1-0.1V224c0-17 6.7-33 18.9-45.1S655 160 672 160h128c17 0 33 6.7 45.1 18.9S864 207 864 224v128zM416 544H224c-70.4 0-128 57.6-128 128v128c0 70.4 57.6 128 128 128h128c70.4 0 128-57.6 128-128V608c0-35.2-28.8-64-64-64z m0 256c0 17-6.7 33-18.9 45.1S369 864 352 864H224c-17 0-33-6.7-45.1-18.9S160 817 160 800V672c0-17 6.7-33 18.9-45.1S207 608 224 608h191.9l0.1 0.1V800zM800 544H608c-35.2 0-64 28.8-64 64v192c0 70.4 57.6 128 128 128h128c70.4 0 128-57.6 128-128V672c0-70.4-57.6-128-128-128z m64 256c0 17-6.7 33-18.9 45.1S817 864 800 864H672c-17 0-33-6.7-45.1-18.9S608 817 608 800V608.1l0.1-0.1H800c17 0 33 6.7 45.1 18.9S864 655 864 672v128z" fill="#1875F0" p-id="2226"></path></svg>
|
|
112
|
+
</div>
|
|
113
|
+
{% if lan == 'cn' %}
|
|
114
|
+
<select class="select-app select2-selection--single" data-placeholder="请选择一个APP"></select>
|
|
115
|
+
{% else %}
|
|
116
|
+
<select class="select-app select2-selection--single" data-placeholder="Please select a package"></select>
|
|
117
|
+
{% endif %}
|
|
118
|
+
</div>
|
|
119
|
+
{% if platform == 'Android' %}
|
|
120
|
+
<div class="input-group" style="width: 93%;margin-left: 10px;">
|
|
121
|
+
<div class="input-group-text">
|
|
122
|
+
<svg t="1681890999535" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5737" width="50" height="50"><path d="M512 64.303538c-247.254314 0-447.696462 200.438055-447.696462 447.696462s200.442148 447.696462 447.696462 447.696462c247.258407 0 447.696462-200.438055 447.696462-447.696462S759.258407 64.303538 512 64.303538zM512 914.925792c-222.532259 0-402.926816-180.394556-402.926816-402.926816 0-222.532259 180.394556-402.926816 402.926816-402.926816 222.527143 0 402.926816 180.394556 402.926816 402.926816C914.926816 734.531236 734.528166 914.925792 512 914.925792zM512 243.382123c-148.352793 0-268.617877 120.265084-268.617877 268.617877s120.265084 268.617877 268.617877 268.617877 268.617877-120.265084 268.617877-268.617877S660.353816 243.382123 512 243.382123z" p-id="5738" data-spm-anchor-id="a313x.7781069.0.i3" class="selected" fill="#d81e06"></path></svg>
|
|
123
|
+
</div>
|
|
124
|
+
{% if lan == 'cn' %}
|
|
125
|
+
<select class="select-pid select2-selection--single" data-placeholder="请选择一个进程"></select>
|
|
126
|
+
{% else %}
|
|
127
|
+
<select class="select-pid select2-selection--single" data-placeholder="Please select a process"></select>
|
|
128
|
+
{% endif %}
|
|
129
|
+
</div>
|
|
130
|
+
{% endif %}
|
|
131
|
+
<div class="card" style="margin-top: 13px;">
|
|
132
|
+
<div class="card-header">
|
|
133
|
+
<ul class="nav nav-tabs card-header-tabs" data-bs-toggle="tabs">
|
|
134
|
+
<li class="nav-item">
|
|
135
|
+
<a href="#tabs-apm-target" class="nav-link active" data-bs-toggle="tab">
|
|
136
|
+
{% if lan == 'cn' %} 性能指标 {% else %} APM TARGET {% endif %}
|
|
137
|
+
</a>
|
|
138
|
+
</li>
|
|
139
|
+
<li class="nav-item">
|
|
140
|
+
<a href="#tabs-device-info" class="nav-link" data-bs-toggle="tab">
|
|
141
|
+
{% if lan == 'cn' %} 设备信息 {% else %} DEVICE INFO {% endif %}
|
|
142
|
+
</a>
|
|
143
|
+
</li>
|
|
144
|
+
</ul>
|
|
145
|
+
</div>
|
|
146
|
+
<div class="card-body">
|
|
147
|
+
<div class="tab-content">
|
|
148
|
+
<div class="tab-pane active show" id="tabs-apm-target">
|
|
149
|
+
<label class="dropdown-item cursor-pointer"><input class="form-check-input m-0 me-2 cursor-pointer" id="cpu_checkbox" type="checkbox" checked name="cpu">
|
|
150
|
+
<svg t="1702629502002" class="icon me-2" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="7953" width="320" height="320"><path d="M426.666667 85.333333v85.333334h170.666666V85.333333h85.333334v85.333334h42.666666a128 128 0 0 1 128 128v42.666666h85.333334v85.333334h-85.333334v170.666666h85.333334v85.333334h-85.333334v42.666666a128 128 0 0 1-128 128h-42.666666v85.333334h-85.333334v-85.333334h-170.666666v85.333334h-85.333334v-85.333334h-42.666666a128 128 0 0 1-128-128v-42.666666H85.333333v-85.333334h85.333334v-170.666666H85.333333v-85.333334h85.333334v-42.666666a128 128 0 0 1 128-128h42.666666V85.333333h85.333334z m-128 170.666667a42.666667 42.666667 0 0 0-42.666667 42.666667v426.666666a42.666667 42.666667 0 0 0 42.666667 42.666667h426.666666a42.666667 42.666667 0 0 0 42.666667-42.666667V298.666667a42.666667 42.666667 0 0 0-42.666667-42.666667H298.666667z" fill="#000000" p-id="7954"></path><path d="M362.666667 405.333333a42.666667 42.666667 0 0 1 42.666666-42.666666h213.333334a42.666667 42.666667 0 0 1 42.666666 42.666666v213.333334a42.666667 42.666667 0 0 1-42.666666 42.666666H405.333333a42.666667 42.666667 0 0 1-42.666666-42.666666V405.333333z m85.333333 42.666667v128h128v-128h-128z" fill="#0078FF" p-id="7955"></path></svg>
|
|
151
|
+
<strong>CPU</strong>
|
|
152
|
+
</label>
|
|
153
|
+
<label class="dropdown-item cursor-pointer"><input class="form-check-input m-0 me-2 cursor-pointer" id="mem_checkbox" type="checkbox" checked name="mem">
|
|
154
|
+
<svg t="1702629683077" class="icon me-2" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="13054" width="320" height="320"><path d="M798.11 959.56H225.89c-49.11 0-89.07-39.96-89.07-89.07V153.51c0-49.11 39.96-89.07 89.07-89.07h355.8c23.85 0 46.94 9.93 63.35 27.24l218.19 230.21c15.44 16.28 23.94 37.61 23.94 60.05v488.55c0 49.12-39.96 89.07-89.07 89.07zM225.89 135.7c-9.82 0-17.81 7.99-17.81 17.81v716.98c0 9.82 7.99 17.81 17.81 17.81h572.22c9.82 0 17.81-7.99 17.81-17.81V381.94c0-4.12-1.56-8.04-4.4-11.03L593.33 140.7c-3.01-3.18-7.25-5-11.64-5h-355.8z" fill="#474747" p-id="13055"></path><path d="M681.21 814.4H342.99c-21.51 0-39.01-17.5-39.01-39.01V493.42c0-21.51 17.5-39.01 39.01-39.01h338.22c21.51 0 39.01 17.5 39.01 39.01V775.4c0 21.51-17.5 39.01-39.01 39.01z m-323.78-53.44h309.35V507.85H357.43v253.11z" fill="#4F95FC" p-id="13056"></path><path d="M452.76 797.26c-14.76 0-26.72-11.96-26.72-26.72V615.36c0-14.76 11.96-26.72 26.72-26.72 14.76 0 26.72 11.96 26.72 26.72v155.18c0 14.76-11.96 26.72-26.72 26.72zM585.81 797.26c-14.76 0-26.72-11.96-26.72-26.72V615.36c0-14.76 11.96-26.72 26.72-26.72 14.76 0 26.72 11.96 26.72 26.72v155.18c0 14.76-11.96 26.72-26.72 26.72z" fill="#4F95FC" p-id="13057"></path></svg>
|
|
155
|
+
{% if lan == 'cn' %} <strong>内存</strong> {% else %} <strong>Memory</strong> {% endif %}
|
|
156
|
+
</label>
|
|
157
|
+
<label class="dropdown-item cursor-pointer"><input class="form-check-input m-0 me-2 cursor-pointer" id="flow_checkbox" type="checkbox" checked name="network">
|
|
158
|
+
<svg t="1702629797008" class="icon me-2" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="20256" width="320" height="320"><path d="M660.224 662.2208m-248.7296 0a248.7296 248.7296 0 1 0 497.4592 0 248.7296 248.7296 0 1 0-497.4592 0Z" fill="#FFE6D8" p-id="20257"></path><path d="M445.696 721.6128c0-137.3696 111.36-248.7296 248.7296-248.7296 79.9232 0 150.9888 37.7344 196.4544 96.3072-36.864-91.2384-126.208-155.6992-230.656-155.6992-137.3696 0-248.7296 111.36-248.7296 248.7296 0 57.4464 19.5584 110.336 52.2752 152.4224a247.42912 247.42912 0 0 1-18.0736-93.0304z" fill="#FF7B4C" p-id="20258"></path><path d="M477.4912 797.696c0-137.3696 111.36-248.7296 248.7296-248.7296 70.912 0 134.8608 29.7472 180.1216 77.4144-2.8672-19.8656-8.1408-38.9632-15.4112-57.0368-45.4656-58.624-116.5312-96.4096-196.5056-96.4096-137.3696 0-248.7296 111.36-248.7296 248.7296 0 33.0752 6.6048 64.5632 18.3296 93.3888 5.0688 6.5024 10.496 12.8 16.1792 18.7392-1.6896-11.776-2.7136-23.808-2.7136-36.096z" fill="#FE966C" p-id="20259"></path><path d="M726.2208 548.9664c-137.3696 0-248.7296 111.36-248.7296 248.7296 0 12.2368 0.9216 24.2176 2.6624 35.9936 10.8032 11.3152 22.6304 21.6576 35.3792 30.7712 6.7584-131.328 115.3536-235.776 248.3712-235.776 54.016 0 103.936 17.3056 144.6912 46.592 0.2048-4.3008 0.3584-8.704 0.3584-13.056 0-12.2368-0.9216-24.2176-2.6112-35.9936-45.312-47.5648-109.2096-77.2608-180.1216-77.2608z" fill="#FFB392" p-id="20260"></path><path d="M899.6352 729.7024c4.9152-17.4592 8.0384-35.6864 9.0112-54.528a247.48032 247.48032 0 0 0-144.7424-46.4896c-133.0176 0-241.6128 104.3968-248.3712 235.776 13.8752 9.9328 28.8256 18.5344 44.6464 25.4976 29.3888-104.6016 125.3888-181.2992 239.4112-181.2992 35.584 0 69.4272 7.5776 100.0448 21.0432z" fill="#FEC3A6" p-id="20261"></path><path d="M799.5904 708.6592c-113.9712 0-210.0224 76.6976-239.4112 181.2992 18.5344 8.1408 38.2464 14.1312 58.8288 17.5616 42.2912-77.056 124.1088-129.28 218.2144-129.28 14.08 0 27.8016 1.2288 41.2672 3.4816 8.96-16.3328 16.0768-33.7408 21.1968-52.0704-30.6688-13.4656-64.512-20.992-100.096-20.992z" fill="#FED9C4" p-id="20262"></path><path d="M511.744 930.0992c-232.9088 0-422.4-189.4912-422.4-422.4s189.4912-422.4 422.4-422.4 422.4 189.4912 422.4 422.4-189.4912 422.4-422.4 422.4z m0-762.88c-187.7504 0-340.48 152.7296-340.48 340.48s152.7296 340.48 340.48 340.48 340.48-152.7296 340.48-340.48-152.7296-340.48-340.48-340.48z" fill="#373E51" p-id="20263"></path><path d="M436.0704 706.6624c-10.752 0-21.2992-4.2496-29.184-12.1856L310.784 597.0944c-15.872-16.128-15.7184-42.0352 0.4096-57.9072 16.0768-15.872 42.0352-15.7184 57.9072 0.4096l25.9584 26.3168V348.0576c0-22.6304 18.3296-40.96 40.96-40.96s40.96 18.3296 40.96 40.96v317.6448c0 16.64-10.0352 31.5904-25.3952 37.888-5.0176 2.0992-10.2912 3.072-15.5136 3.072z" fill="#373E51" p-id="20264"></path><path d="M587.1616 706.6624c-22.6304 0-40.96-18.3296-40.96-40.96V348.0576c0-16.64 10.0352-31.5904 25.3952-37.888 15.36-6.2976 33.024-2.7136 44.6976 9.1136l96.1024 97.3824c15.872 16.0768 15.7184 42.0352-0.4096 57.9072-16.128 15.872-42.0352 15.7184-57.9072-0.4096l-25.9584-26.3168v217.8048a40.96 40.96 0 0 1-40.96 41.0112z" fill="#373E51" p-id="20265"></path></svg>
|
|
159
|
+
{% if lan == 'cn' %} <strong>流量</strong> {% else %} <strong>Network</strong> {% endif %}
|
|
160
|
+
{% if platform == 'Android' %}
|
|
161
|
+
<span class="ms-auto">
|
|
162
|
+
<label class="form-check form-check-single form-switch">
|
|
163
|
+
<input id="net-switch" class="form-check-input cursor-pointer" type="checkbox" checked name="net-switch" style="margin-right: 5px"> WLAN
|
|
164
|
+
</label>
|
|
165
|
+
</span>
|
|
166
|
+
{% endif %}
|
|
167
|
+
</label>
|
|
168
|
+
<label class="dropdown-item cursor-pointer"><input class="form-check-input m-0 me-2 cursor-pointer" id="fps_checkbox" type="checkbox" name="fps" checked>
|
|
169
|
+
<svg t="1702629928532" class="icon me-2" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="27477" width="320" height="320"><path d="M163.7 749.9c-63.9 0-115.9-52-115.9-116s52-116 115.9-116c63.9 0 116 52 116 116s-52.1 116-116 116z m0-161.9c-25.4 0-46 20.6-46 46s20.6 46 46 46 46-20.6 46-46-20.6-46-46-46zM393.1 538.7c-63.9 0-116-52-116-116 0-63.9 52-115.9 116-115.9 63.9 0 115.9 52 115.9 115.9 0.1 63.9-51.9 116-115.9 116z m0-162c-25.4 0-46 20.6-46 46s20.6 46 46 46 46-20.6 46-46c0-25.3-20.6-46-46-46zM859.9 504.4c-63.9 0-115.9-52-115.9-115.9 0-63.9 52-116 115.9-116 63.9 0 116 52 116 116 0 63.9-52 115.9-116 115.9z m0-161.9c-25.4 0-46 20.6-46 46s20.6 46 46 46 46-20.6 46-46-20.6-46-46-46z" fill="#706D7E" p-id="27478"></path><path d="M220.9 611.7c-8.9 0-17.9-3.4-24.7-10.2-13.7-13.7-13.7-35.8 0-49.5l106.6-106.6c13.7-13.7 35.8-13.7 49.5 0 13.7 13.7 13.7 35.8 0 49.5L245.7 601.4c-6.9 6.9-15.8 10.3-24.8 10.3zM552.7 580c-8.9 0-17.9-3.4-24.7-10.2L441.2 483c-13.7-13.7-13.7-35.8 0-49.5 13.6-13.7 35.8-13.7 49.5 0l86.8 86.8c13.7 13.7 13.7 35.8 0 49.5-6.9 6.7-15.8 10.2-24.8 10.2zM691 592.4c-8.9 0-17.9-3.4-24.7-10.2-13.7-13.7-13.7-35.8 0-49.5L778 421c13.6-13.7 35.8-13.7 49.5 0 13.7 13.7 13.7 35.8 0 49.5L715.7 582.1c-6.8 6.9-15.8 10.3-24.7 10.3z" fill="#706D7E" p-id="27479"></path><path d="M620.1 714.8c-63.9 0-116-52-116-116s52-116 116-116c63.9 0 115.9 52 115.9 116s-52 116-115.9 116z m0-162c-25.4 0-46 20.6-46 46s20.6 46 46 46 46-20.6 46-46c0-25.3-20.6-46-46-46z" fill="#5AC0F9" p-id="27480"></path></svg>
|
|
170
|
+
{% if lan == 'cn' %} <strong>流畅度</strong> {% else %} <strong>FPS</strong> {% endif %}
|
|
171
|
+
{% if platform == 'Android' %}
|
|
172
|
+
<span class="ms-auto">
|
|
173
|
+
<label class="form-check form-check-single form-switch">
|
|
174
|
+
<input id="fps-switch" class="form-check-input cursor-pointer" type="checkbox" checked name="fps-switch" style="margin-right: 5px"> SurfaceView
|
|
175
|
+
</label>
|
|
176
|
+
</span>
|
|
177
|
+
{% endif %}
|
|
178
|
+
</label>
|
|
179
|
+
<label class="dropdown-item cursor-pointer"><input class="form-check-input m-0 me-2 cursor-pointer" id="battery_checkbox" type="checkbox" name="battery" checked>
|
|
180
|
+
<svg t="1702629971672" class="icon me-2" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="29513" width="320" height="320"><path d="M385 228V124c0-19.3 15.7-35 35-35h184c19.3 0 35 15.7 35 35v104H385z" fill="#8F8D94" p-id="29514"></path><path d="M604 114c5.5 0 10 4.5 10 10v79H410v-79c0-5.5 4.5-10 10-10h184m0-50H420c-33.1 0-60 26.9-60 60v129h304V124c0-33.1-26.9-60-60-60z" fill="#504D59" p-id="29515"></path><path d="M410 139h203.5v21H410z" fill="#6F6D75" p-id="29516"></path><path d="M262 935c-35.8 0-65-29.2-65-65V250c0-35.8 29.2-65 65-65h500c35.8 0 65 29.2 65 65v620c0 35.8-29.2 65-65 65H262z" fill="#8BEF99" p-id="29517"></path><path d="M762 210c10.6 0 20.6 4.2 28.2 11.8 7.6 7.6 11.8 17.6 11.8 28.2v620c0 10.6-4.2 20.6-11.8 28.2-7.6 7.6-17.6 11.8-28.2 11.8H262c-10.6 0-20.6-4.2-28.2-11.8-7.6-7.6-11.8-17.6-11.8-28.2V250c0-10.6 4.2-20.6 11.8-28.2S251.4 210 262 210h500m0-50H262c-49.5 0-90 40.5-90 90v620c0 49.5 40.5 90 90 90h500c49.5 0 90-40.5 90-90V250c0-49.5-40.5-90-90-90z" fill="#504D59" p-id="29518"></path><path d="M762 210h-26.4v460.6c0 77.2-62.8 140-140 140H541l151.4-239.5-166-43L470 351.7l-140.9 272 137 65.5 21.2 121.5H222V870c0 22.1 17.9 40 40 40h500c22.1 0 40-17.9 40-40V250c0-22.1-17.9-40-40-40z" fill="#6DC674" p-id="29519"></path><path d="M517.3 656.4l-156-54.1 108.8-227.6 35.7 165.4 154 41.1-144.1 226.1z" fill="#FFCE00" p-id="29520"></path><path d="M464.7 420.8l24.5 113.5 3.9 17.9 17.7 4.7 125.4 33.4-105 164.7 0.9-87.6 0.2-21.6-20.4-7.1-130-45.1 82.8-172.8m10.8-92.2L340.5 611l161.7 56.1-2.1 192.5L683.5 572l-165-44-43-199.4z" fill="#504D59" p-id="29521"></path><path d="M197 269v-19c0-35.8 29.2-65 65-65h500c35.8 0 65 29.2 65 65v19H197z" fill="#A9B7AA" p-id="29522"></path><path d="M762 210c10.6 0 20.6 4.2 28.2 11.8 6.1 6.1 10.1 13.9 11.3 22.2h-579c1.3-8.3 5.2-16.1 11.3-22.2 7.6-7.6 17.6-11.8 28.2-11.8h500m0-50H262c-49.5 0-90 40.5-90 90v44h680v-44c0-49.5-40.5-90-90-90z" fill="#504D59" p-id="29523"></path></svg>
|
|
181
|
+
{% if lan == 'cn' %} <strong>电池</strong> {% else %} <strong>Battery</strong> {% endif %}
|
|
182
|
+
</label>
|
|
183
|
+
<label class="dropdown-item cursor-pointer" style="color:rgb(0, 102, 255)" data-bs-toggle="modal" data-bs-target="#add-more">
|
|
184
|
+
<svg t="1711359199362" class="icon me-2" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="39454" width="200" height="200"><path d="M819.8 196.9C647.9 25 369.1 25 197.2 196.9s-171.9 450.7 0 622.7c171.9 171.9 450.7 171.9 622.7 0s171.9-450.8-0.1-622.7zM508.5 820.6c-33.6 0-61.1-27.5-61.1-61.1V569.3H257.3c-33.6 0-61.1-27.5-61.1-61.1s27.5-61.1 61.1-61.1h190.1V257c0-33.6 27.5-61.1 61.1-61.1s61.1 27.5 61.1 61.1v190.1h190.1c33.6 0 61.1 27.5 61.1 61.1s-27.5 61.1-61.1 61.1H569.6v190.1c0 33.7-27.5 61.2-61.1 61.2z" fill="#FE801D" p-id="39455"></path></svg>
|
|
185
|
+
{% if lan == 'cn' %} 添加更多参数 {% else %} Add More {% endif %}
|
|
186
|
+
</label>
|
|
187
|
+
</div>
|
|
188
|
+
<div class="tab-pane" id="tabs-device-info">
|
|
189
|
+
<div class="mb-2">
|
|
190
|
+
<strong>{% if lan == 'cn' %} 品牌 {% else %} Brand {% endif %}:</strong> <lable id="brand"></lable>
|
|
191
|
+
</div>
|
|
192
|
+
<div class="mb-2">
|
|
193
|
+
<strong>{% if lan == 'cn' %} 设备名称 {% else %} Device Name {% endif %}:</strong> <lable id="device_name"></lable>
|
|
194
|
+
</div>
|
|
195
|
+
<div class="mb-2">
|
|
196
|
+
<strong>{% if lan == 'cn' %} 系统版本 {% else %} Os Version {% endif %}:</strong> <lable id="os_version"></lable>
|
|
197
|
+
</div>
|
|
198
|
+
<div class="mb-2">
|
|
199
|
+
<strong>{% if lan == 'cn' %} 序列号 {% else %} Serial Number {% endif %}:</strong> <lable id="serialno"></lable>
|
|
200
|
+
</div>
|
|
201
|
+
<div class="mb-2">
|
|
202
|
+
<strong>{% if lan == 'cn' %} WiFi地址 {% else %} WiFi Address {% endif %}:</strong> <lable id="wifiadr"></lable>
|
|
203
|
+
</div>
|
|
204
|
+
<div class="mb-2">
|
|
205
|
+
<strong>{% if lan == 'cn' %} 屏幕分辨率 {% else %} Physical Size {% endif %}:</strong> <lable id="physical_size"></lable>
|
|
206
|
+
</div>
|
|
207
|
+
<div class="mb-2">
|
|
208
|
+
<strong>{% if lan == 'cn' %} CPU核心数 {% else %} CPU Cores {% endif %}:</strong> <lable id="cpu_cores"></lable>
|
|
209
|
+
</div>
|
|
210
|
+
</div>
|
|
211
|
+
</div>
|
|
212
|
+
</div>
|
|
213
|
+
</div>
|
|
214
|
+
|
|
215
|
+
<a class="dropdown-item" style="margin-top: 10px;">
|
|
216
|
+
<svg t="1689735902363" class="icon me-2" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1518" width="320" height="320"><path d="M512.9 503.4m-184.8 0a184.8 184.8 0 1 0 369.6 0 184.8 184.8 0 1 0-369.6 0Z" fill="#03BD61" p-id="1519"></path><path d="M512 79.3C273.4 79.3 79.3 273.4 79.3 512S273.4 944.7 512 944.7 944.7 750.6 944.7 512 750.6 79.3 512 79.3z m0 790.9c-197.5 0-358.2-160.7-358.2-358.2S314.5 153.8 512 153.8 870.2 314.5 870.2 512 709.5 870.2 512 870.2z" fill="#23202D" p-id="1520"></path><path d="M753.7 467.5H548.5V244.2c0-20.6-16.7-37.2-37.2-37.2S474 223.6 474 244.2v260.6c0 20.6 16.7 37.2 37.2 37.2h242.5c20.6 0 37.2-16.7 37.2-37.2s-16.6-37.3-37.2-37.3z" fill="#23202D" p-id="1521"></path></svg>
|
|
217
|
+
{% if lan == 'cn' %} 启动时间 {% else %} Start-up Time {% endif %}
|
|
218
|
+
<span class="ms-auto badge" data-bs-toggle="offcanvas" href="#offcanvas-startup-time" role="button" aria-controls="offcanvas-startup-time">
|
|
219
|
+
OPEN
|
|
220
|
+
</span>
|
|
221
|
+
</a>
|
|
222
|
+
{% if platform == 'Android' %}
|
|
223
|
+
<a class="dropdown-item" style="margin-top: 10px;">
|
|
224
|
+
<svg t="1689735866582" class="icon me-2" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4419" width="100" height="100"><path d="M513.2288 509.3888m-456.8576 0a456.8576 456.8576 0 1 0 913.7152 0 456.8576 456.8576 0 1 0-913.7152 0Z" fill="#529FF4" p-id="4420"></path><path d="M561.3056 466.8928l-71.3216-40.96a49.7664 49.7664 0 0 0-74.5984 43.0592v82.3296a49.7664 49.7664 0 0 0 49.7152 49.8176 50.0224 50.0224 0 0 0 24.8832-6.7072l71.3216-40.96a49.7664 49.7664 0 0 0 0-86.1696z m-20.48 50.688l-71.3216 40.96a8.8064 8.8064 0 0 1-13.1584-7.6288V468.7872a8.448 8.448 0 0 1 4.4544-7.5776 8.6528 8.6528 0 0 1 4.4032-1.2288 8.5504 8.5504 0 0 1 4.352 1.2288l71.3216 40.96a8.7552 8.7552 0 0 1 0 15.36z" fill="#FFFFFF" p-id="4421"></path><path d="M803.328 355.4816a54.4768 54.4768 0 0 0-54.9888 0l-21.6576 12.4928v-8.8064a97.28 97.28 0 0 0-97.28-97.28H315.4432a97.28 97.28 0 0 0-97.28 97.28v300.3904a97.28 97.28 0 0 0 97.28 97.28h313.856a97.28 97.28 0 0 0 97.28-97.28v-15.7696l21.6576 12.4928a54.9888 54.9888 0 0 0 82.4832-47.616V403.0976a54.4768 54.4768 0 0 0-27.392-47.616z m-117.76 304.0768a56.32 56.32 0 0 1-56.32 56.32H315.4432a56.32 56.32 0 0 1-56.32-56.32V359.168a56.32 56.32 0 0 1 56.32-56.32h313.856a56.32 56.32 0 0 1 56.32 56.32v300.3904z m104.1408-50.8928a14.0288 14.0288 0 0 1-21.0432 12.1856l-42.1376-24.3712V415.2832l42.1376-24.32a14.0288 14.0288 0 0 1 21.0432 12.1344z" fill="#FFFFFF" p-id="4422"></path><path d="M341.8112 351.488A31.8464 31.8464 0 1 0 373.76 383.2832a31.7952 31.7952 0 0 0-31.9488-31.7952z" fill="#FFFFFF" p-id="4423"></path></svg>
|
|
225
|
+
{% if lan == 'cn' %} 屏幕录制 {% else %} Record Screen {% endif %}
|
|
226
|
+
<span class="ms-auto">
|
|
227
|
+
<label class="form-check form-check-single form-switch">
|
|
228
|
+
<input id="record-switch" class="form-check-input cursor-pointer" type="checkbox" name="record-switch" style="margin-right: 5px">
|
|
229
|
+
</label>
|
|
230
|
+
</span>
|
|
231
|
+
</a>
|
|
232
|
+
|
|
233
|
+
<a class="dropdown-item" style="margin-top: 10px;">
|
|
234
|
+
<svg t="1657093102367" class="icon me-2" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="27860" width="2000" height="2000"><path d="M938.362 256.2V149.626c0-23.576-19.11-42.654-42.652-42.654H43.046C19.502 106.972 0.392 126.05 0.392 149.626V256.2h937.97z" fill="#E6E9ED" p-id="27861"></path><path d="M792.164 831.75H0.392V192.25h937.97v446.306z" fill="#656D78" p-id="27862"></path><path d="M85.67 149.626c0 11.772-9.526 21.296-21.328 21.296-11.74 0-21.294-9.524-21.294-21.296S52.602 128.3 64.342 128.3c11.802 0 21.328 9.556 21.328 21.326z" fill="#ED5564" p-id="27863"></path><path d="M149.62 149.626c0 11.772-9.524 21.296-21.326 21.296-11.742 0-21.296-9.524-21.296-21.296S116.55 128.3 128.292 128.3c11.804 0 21.328 9.556 21.328 21.326z" fill="#FFCE54" p-id="27864"></path><path d="M213.568 149.626c0 11.772-9.524 21.296-21.326 21.296-11.74 0-21.294-9.524-21.294-21.296S180.502 128.3 192.242 128.3c11.802 0 21.326 9.556 21.326 21.326z" fill="#A0D468" p-id="27865"></path><path d="M746.512 277.496H106.996c-11.772 0-21.326 9.554-21.326 21.326s9.554 21.328 21.326 21.328h639.516c11.74 0 21.294-9.556 21.294-21.328s-9.554-21.326-21.294-21.326z" fill="#FC6E51" p-id="27866"></path><path d="M106.996 405.426h341.046c11.802 0 21.326-9.554 21.326-21.328 0-11.772-9.524-21.326-21.326-21.326H106.996c-11.772 0-21.326 9.554-21.326 21.326 0 11.774 9.554 21.328 21.326 21.328z" fill="#AC92EB" p-id="27867"></path><path d="M575.958 448.05H106.996c-11.772 0-21.326 9.556-21.326 21.328s9.554 21.296 21.326 21.296h468.962c11.8 0 21.294-9.524 21.294-21.296s-9.492-21.328-21.294-21.328z" fill="#48CFAD" p-id="27868"></path><path d="M106.996 575.952H405.42c11.772 0 21.326-9.556 21.326-21.328s-9.554-21.296-21.326-21.296H106.996c-11.772 0-21.326 9.526-21.326 21.296s9.554 21.328 21.326 21.328z" fill="#5D9CEC" p-id="27869"></path><path d="M615.678 669.22c8.618 0 16.734-5.278 19.984-13.832 4.122-11.024-1.5-23.326-12.492-27.45-41.03-15.392-47.336-54.708-47.336-55.112a21.332 21.332 0 0 0-24.232-17.956c-11.662 1.716-19.688 12.552-17.97 24.2 0.376 2.624 10.242 64.668 74.55 88.776 2.5 0.938 4.996 1.374 7.496 1.374zM959.534 917.028c1 0 2.06-0.094 3.122-0.25 11.68-1.716 19.674-12.552 17.988-24.2-0.376-2.624-10.242-64.668-74.566-88.776-11.054-4.152-23.296 1.438-27.48 12.458-4.122 11.024 1.5 23.326 12.492 27.448 41.03 15.394 47.336 54.708 47.398 55.114a21.28 21.28 0 0 0 21.046 18.206zM448.042 618.572H106.996c-11.772 0-21.326 9.554-21.326 21.328 0 11.772 9.554 21.326 21.326 21.326h341.046c11.802 0 21.326-9.554 21.326-21.326a21.312 21.312 0 0 0-21.326-21.328z" fill="#FFCE54" p-id="27870"></path><path d="M277.52 703.85H106.996c-11.772 0-21.326 9.554-21.326 21.328 0 11.772 9.554 21.294 21.326 21.294h170.524c11.772 0 21.326-9.524 21.326-21.294 0-11.774-9.554-21.328-21.326-21.328z" fill="#ED5564" p-id="27871"></path><path d="M1002.312 746.472H533.318a21.28 21.28 0 0 1-21.294-21.294c0-11.774 9.524-21.328 21.294-21.328h468.994c11.74 0 21.294 9.554 21.294 21.328 0.002 11.772-9.554 21.294-21.294 21.294zM725.592 555.53a21.332 21.332 0 0 1-18.298-10.368l-64.388-107.478c-5.994-10.086-2.746-23.202 7.372-29.228a21.276 21.276 0 0 1 29.226 7.338l64.324 107.478c6.058 10.086 2.81 23.17-7.306 29.228a21.286 21.286 0 0 1-10.93 3.03zM810.212 555.53c-3.686 0-7.496-0.968-10.93-3.03-10.054-6.058-13.364-19.142-7.306-29.26l64.324-107.446a21.278 21.278 0 0 1 29.228-7.338c10.118 6.026 13.364 19.11 7.368 29.228l-64.324 107.478c-3.996 6.65-11.116 10.368-18.36 10.368zM920.002 669.22c-8.62 0-16.738-5.278-19.922-13.832-4.184-11.024 1.436-23.326 12.426-27.45 41.094-15.392 47.34-54.708 47.402-55.112 1.686-11.648 12.55-19.674 24.168-17.956 11.68 1.716 19.734 12.552 17.986 24.2-0.376 2.624-10.242 64.668-74.568 88.776a20.884 20.884 0 0 1-7.492 1.374zM575.958 917.028c-1 0-2.062-0.094-3.124-0.25-11.616-1.716-19.672-12.552-17.984-24.2 0.438-2.624 10.242-64.668 74.566-88.776 11.054-4.152 23.356 1.438 27.478 12.458 4.124 11.024-1.436 23.326-12.49 27.448-41.032 15.394-47.276 54.708-47.338 55.114-1.56 10.586-10.68 18.206-21.108 18.206z" fill="#FFCE54" p-id="27872"></path><path d="M938.236 682.524c0 129.524-48.71 234.504-170.43 234.504-121.716 0-170.43-104.98-170.43-234.504 0-129.494 63.39-191.85 170.43-191.85 107.044-0.002 170.43 62.356 170.43 191.85z" fill="#ED5564" p-id="27873"></path><path d="M746.512 915.872c6.806 0.75 13.928 1.156 21.294 1.156 7.372 0 14.49-0.406 21.296-1.156v-297.3h-42.592v297.3z" fill="#DA4453" p-id="27874"></path><path d="M603.56 618.572h328.494c-18.298-86.12-76.626-127.9-164.248-127.9-87.616 0-145.946 41.782-164.246 127.9z" fill="#DA4453" p-id="27875"></path></svg>
|
|
235
|
+
{% if lan == 'cn' %} 错误日志 {% else %} Error Log {% endif %}
|
|
236
|
+
<span class="ms-auto badge" data-bs-toggle="offcanvas" href="#offcanvasBottom" role="button" aria-controls="offcanvasBottom">
|
|
237
|
+
OPEN
|
|
238
|
+
</span>
|
|
239
|
+
</a>
|
|
240
|
+
{% endif %}
|
|
241
|
+
|
|
242
|
+
<div class="dropdown-divider"></div>
|
|
243
|
+
<a class="dropdown-item" style="margin-top: 10px;">
|
|
244
|
+
<input type="file" class="form-control" id="app-file" accept=".apk,.ipa"/>
|
|
245
|
+
</a>
|
|
246
|
+
<strong style="margin-top: 5px;margin-left: 140px;">{% if lan == 'cn' %} 或 {% else %} OR {% endif %}</strong>
|
|
247
|
+
<a class="dropdown-item" >
|
|
248
|
+
{% if lan == 'cn' %}
|
|
249
|
+
<input type="text" class="app-link form-control" name="example-text-input" placeholder="请输入文件链接">
|
|
250
|
+
{% else %}
|
|
251
|
+
<input type="text" class="app-link form-control" name="example-text-input" placeholder="Input file link">
|
|
252
|
+
{% endif %}
|
|
253
|
+
</a>
|
|
254
|
+
<a class="dropdown-item" >
|
|
255
|
+
<button type="button" onclick="install()" class="btn btn-default ms-auto">
|
|
256
|
+
{% if lan == 'cn' %} 安装 {% else %} Install {% endif %}
|
|
257
|
+
</button>
|
|
258
|
+
</a>
|
|
259
|
+
|
|
260
|
+
</div>
|
|
261
|
+
</div>
|
|
262
|
+
<div class="apm-data mt-1" style="width: 75%;">
|
|
263
|
+
<div id="cpu" class="mb-3 cpu" style="min-width:400px;height:300px"></div>
|
|
264
|
+
{% if platform == 'Android' %}
|
|
265
|
+
<div id="cpu_core" class="mb-3 cpu_core" style="min-width:400px;height:300px; display: none;"></div>
|
|
266
|
+
<div id="mem_android" class="mb-3 mem" style="min-width:400px;height:300px"></div>
|
|
267
|
+
<div id="mem_detail" class="mb-3 mem_detail" style="min-width:400px;height:300px;display: none;"></div>
|
|
268
|
+
<div id="fps" class="mb-3 fps" style="min-width:400px;height:300px"></div>
|
|
269
|
+
<div id="battery_android" class="mb-3 battery" style="min-width:400px;height:300px"></div>
|
|
270
|
+
{% else %}
|
|
271
|
+
<div id="mem_ios" class="mb-3 mem" style="min-width:400px;height:300px"></div>
|
|
272
|
+
<div id="fps_ios" class="mb-3 fps" style="min-width:400px;height:300px"></div>
|
|
273
|
+
<div id="battery_ios" class="mb-3 battery" style="min-width:400px;height:300px"></div>
|
|
274
|
+
<div id="energy" class="energy mb-3" style="min-width:400px;height:300px; display: none"></div>
|
|
275
|
+
{% endif %}
|
|
276
|
+
<div id="network" class="network mb-3" style="min-width:400px;height:300px"></div>
|
|
277
|
+
<div id="gpu" class="mb-3 gpu" style="min-width:400px;height:300px"></div>
|
|
278
|
+
<div id="disk" class="disk mb-3" style="min-width:400px;height:300px;display: none;"></div>
|
|
279
|
+
</div>
|
|
280
|
+
</div>
|
|
281
|
+
<div class="offcanvas offcanvas-bottom layout-boxed" tabindex="-1" id="offcanvasBottom" aria-labelledby="offcanvasBottomLabel" style="height: 90%">
|
|
282
|
+
<div class="offcanvas-header">
|
|
283
|
+
<h2 class="offcanvas-title" id="offcanvasBottomLabel">Error Log</h2>
|
|
284
|
+
<button type="button" class="btn-close text-reset" data-bs-dismiss="offcanvas" aria-label="Close"></button>
|
|
285
|
+
</div>
|
|
286
|
+
<div class="offcanvas-body">
|
|
287
|
+
<div class="btn-list logcat-btn-list">
|
|
288
|
+
<a id="run-logcat" class="btn btn-default">
|
|
289
|
+
<svg t="1647757457022" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="21859" width="200" height="200"><path d="M511.4 512.1m-448 0a448 448 0 1 0 896 0 448 448 0 1 0-896 0Z" fill="#006DFC" p-id="21860"></path><path d="M658.4 555.6L475.5 661.1c-33.4 19.3-75-4.8-75-43.3V406.6c0-38.5 41.7-62.6 75-43.3l182.9 105.6c33.3 19.3 33.3 67.4 0 86.7z" fill="#FFFFFF" p-id="21861"></path></svg>
|
|
290
|
+
{% if lan == 'cn' %} 开始 {% else %} Start {% endif %}
|
|
291
|
+
</a>
|
|
292
|
+
<a id="stop-logcat" class="btn btn-default" style="display: none">
|
|
293
|
+
<svg t="1638096947956" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="235254" width="200" height="200"><path d="M512 512m-512 0a512 512 0 1 0 1024 0 512 512 0 1 0-1024 0Z" fill="#EE827F" p-id="235255"></path><path d="M512 512m-443.191534 0a443.191534 443.191534 0 1 0 886.383068 0 443.191534 443.191534 0 1 0-886.383068 0Z" fill="#E64537" p-id="235256"></path><path d="M0 512C0 794.638448 229.180952 1023.8194 512 1023.8194V0C229.180952 0 0 229.180952 0 512z" fill="#FEFFFF" opacity=".1" p-id="235257"></path><path d="M477.866667 683.208466H375.647266c-1.083598 0-1.986596-0.902998-1.986596-1.986597V342.597531c0-1.083598 0.902998-1.986596 1.986596-1.986596h102.4c1.083598 0 1.986596 0.902998 1.986596 1.986596v338.443739c-0.1806 1.264198-1.083598 2.167196-2.167195 2.167196zM648.352734 683.208466h-102.4c-1.083598 0-1.986596-0.902998-1.986596-1.986597V342.597531c0-1.083598 0.902998-1.986596 1.986596-1.986596H648.352734c1.083598 0 1.986596 0.902998 1.986596 1.986596v338.443739c0 1.264198-0.902998 2.167196-1.986596 2.167196z" fill="#FFFFFF" p-id="235258"></path></svg>
|
|
294
|
+
{% if lan == 'cn' %} 停止 {% else %} Stop {% endif %}
|
|
295
|
+
</a>
|
|
296
|
+
<a id="logcat-copy" class="btn" onclick="cppyLogcat()">
|
|
297
|
+
<svg t="1681097872350" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="14723" width="50" height="50"><path d="M744.296296 128a151.703704 151.703704 0 0 1 151.703704 151.703704v344.613926a75.851852 75.851852 0 0 1-75.851852 75.851851h-38.589629V373.210074a130.787556 130.787556 0 0 0-130.768593-130.768593L323.830519 242.422519V203.851852a75.851852 75.851852 0 0 1 75.851851-75.851852h344.613926z m-93.50637 179.825778a65.384296 65.384296 0 0 1 65.384296 65.384296v10.467556a75.851852 75.851852 0 0 0-72.059259-75.757037l-3.792593-0.094815h10.467556z" fill="#0CCA8A" fill-opacity=".5" p-id="14724"></path><path d="M144.004741 307.825778m75.851852 0l420.465777 0q75.851852 0 75.851852 75.851852l0 420.465777q0 75.851852-75.851852 75.851852l-420.465777 0q-75.851852 0-75.851852-75.851852l0-420.465777q0-75.851852 75.851852-75.851852Z" fill="#0CCA8A" p-id="14725"></path></svg>
|
|
298
|
+
{% if lan == 'cn' %} 复制 {% else %} Copy {% endif %}
|
|
299
|
+
</a>
|
|
300
|
+
<a id="logcat-clear" class="btn" onclick="clearLogcat()">
|
|
301
|
+
<svg t="1681097907668" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="15706" width="50" height="50"><path d="M274.5344 582.0928h480.9728v265.0624H274.5344z" fill="#D9FFEC" p-id="15707"></path><path d="M852.6336 539.9552H177.408c-43.9296 0-79.6672-35.7376-79.6672-79.6672V335.8208c0-43.9296 35.7376-79.6672 79.6672-79.6672h159.8976V175.7184c0-48.5376 39.4752-88.064 88.064-88.064h179.3536c48.5376 0 88.064 39.4752 88.064 88.064v80.4864h159.8976c43.9296 0 79.6672 35.7376 79.6672 79.6672v124.5184c-0.0512 43.8784-35.7888 79.5648-79.7184 79.5648z m-672.9728-81.92h670.72V338.1248H651.776c-22.6304 0-40.96-18.3296-40.96-40.96V175.7184c0-3.3792-2.7648-6.144-6.144-6.144H425.3696c-3.3792 0-6.144 2.7648-6.144 6.144v121.4464c0 22.6304-18.3296 40.96-40.96 40.96H179.6608v119.9104z" fill="#34333A" p-id="15708"></path><path d="M390.5536 889.9072c-22.6304 0-40.96-18.3296-40.96-40.96v-173.6704c0-22.6304 18.3296-40.96 40.96-40.96s40.96 18.3296 40.96 40.96v173.6704c0 22.6304-18.3296 40.96-40.96 40.96z" fill="#3AD285" p-id="15709"></path><path d="M797.7472 932.1472H232.2944c-53.1456 0-96.3584-43.2128-96.3584-96.3584v-255.9488h81.92v255.9488c0 7.9872 6.5024 14.4384 14.4384 14.4384H797.696c7.9872 0 14.4384-6.5024 14.4384-14.4384v-255.9488h81.92v255.9488c0.0512 53.0944-43.1616 96.3584-96.3072 96.3584z" fill="#34333A" p-id="15710"></path></svg>
|
|
302
|
+
{% if lan == 'cn' %} 清除 {% else %} Clear {% endif %}
|
|
303
|
+
</a>
|
|
304
|
+
</div>
|
|
305
|
+
<div class="mt-2" id="logcat-content" style="color: rgba(214, 39, 8, 0.849);"></div>
|
|
306
|
+
</div>
|
|
307
|
+
</div>
|
|
308
|
+
<div class="offcanvas offcanvas-bottom layout-boxed" tabindex="-1" id="offcanvas-startup-time" aria-labelledby="offcanvasBottomLabel" style="height: 90%">
|
|
309
|
+
<div class="offcanvas-header">
|
|
310
|
+
<h2 class="offcanvas-title" id="offcanvasBottomLabel">Start-up Time</h2>
|
|
311
|
+
<button type="button" class="btn-close text-reset" data-bs-dismiss="offcanvas" aria-label="Close"></button>
|
|
312
|
+
</div>
|
|
313
|
+
<div class="offcanvas-body">
|
|
314
|
+
<div class="row">
|
|
315
|
+
{% if platform == 'Android' %}
|
|
316
|
+
<div class="col-auto">
|
|
317
|
+
<div class="input-group" style="width:550px">
|
|
318
|
+
<span class="input-group-text">
|
|
319
|
+
Activity
|
|
320
|
+
</span>
|
|
321
|
+
<input type="text" id="activity" class="form-control" placeholder="Input activity" autocomplete="off">
|
|
322
|
+
<a onclick="getCurActivity()" class="input-group-text" style="cursor: pointer;color: rgb(0, 132, 255);">
|
|
323
|
+
<strong>Get current activity</strong>
|
|
324
|
+
</a>
|
|
325
|
+
</div>
|
|
326
|
+
</div>
|
|
327
|
+
{% endif %}
|
|
328
|
+
<div class="col-auto">
|
|
329
|
+
{% if platform == 'Android' %}
|
|
330
|
+
<a onclick="getStartupTimeByAndroid()" class="btn btn-default">
|
|
331
|
+
<svg t="1647757457022" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="21859" width="200" height="200"><path d="M511.4 512.1m-448 0a448 448 0 1 0 896 0 448 448 0 1 0-896 0Z" fill="#006DFC" p-id="21860"></path><path d="M658.4 555.6L475.5 661.1c-33.4 19.3-75-4.8-75-43.3V406.6c0-38.5 41.7-62.6 75-43.3l182.9 105.6c33.3 19.3 33.3 67.4 0 86.7z" fill="#FFFFFF" p-id="21861"></path></svg>
|
|
332
|
+
{% if lan == 'cn' %} 开始 {% else %} Start {% endif %}
|
|
333
|
+
</a>
|
|
334
|
+
{% else %}
|
|
335
|
+
<a onclick="getStartupTimeByiOS()" class="btn btn-default">
|
|
336
|
+
<svg t="1647757457022" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="21859" width="200" height="200"><path d="M511.4 512.1m-448 0a448 448 0 1 0 896 0 448 448 0 1 0-896 0Z" fill="#006DFC" p-id="21860"></path><path d="M658.4 555.6L475.5 661.1c-33.4 19.3-75-4.8-75-43.3V406.6c0-38.5 41.7-62.6 75-43.3l182.9 105.6c33.3 19.3 33.3 67.4 0 86.7z" fill="#FFFFFF" p-id="21861"></path></svg>
|
|
337
|
+
{% if lan == 'cn' %} 开始 {% else %} Start {% endif %}
|
|
338
|
+
</a>
|
|
339
|
+
<span class="form-help" style="margin-left: 10px;" data-bs-toggle="popover" data-bs-placement="top" data-bs-html="true" data-bs-content="
|
|
340
|
+
If no results are returned, please reinstall py-ios-device [pip install py-ios-device].
|
|
341
|
+
<p class='mb-0'><a href='https://github.com/YueChen-C/py-ios-device' target='_blank'>Documentation</a></p>">?</span>
|
|
342
|
+
{% endif %}
|
|
343
|
+
</div>
|
|
344
|
+
</div>
|
|
345
|
+
<pre class="mt-2" id="startup-time-content"></pre>
|
|
346
|
+
</div>
|
|
347
|
+
</div>
|
|
348
|
+
<div class="modal modal-blur fade" style="margin-top: 20px;margin-right: 20px;" id="modal-scrollable" tabindex="-1" role="dialog" aria-hidden="true">
|
|
349
|
+
<div class="modal-dialog modal-full-width modal-dialog-centered modal-dialog-scrollable" role="document">
|
|
350
|
+
<div class="modal-content">
|
|
351
|
+
<div class="modal-header">
|
|
352
|
+
<h5 class="modal-title">Connect to a Android device over Wi-Fi</h5>
|
|
353
|
+
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
|
354
|
+
</div>
|
|
355
|
+
<div class="modal-body">
|
|
356
|
+
<iframe src="https://adbshell.com/commands/adb-connect" width="100%" height="1500px"></iframe>
|
|
357
|
+
</div>
|
|
358
|
+
</div>
|
|
359
|
+
</div>
|
|
360
|
+
</div>
|
|
361
|
+
|
|
362
|
+
<div class="modal modal-blur fade" id="add-more" tabindex="-1" role="dialog" aria-hidden="true">
|
|
363
|
+
<div class="modal-dialog modal-dialog-centered" role="document">
|
|
364
|
+
<div class="modal-content">
|
|
365
|
+
<div class="modal-header">
|
|
366
|
+
<h5 class="modal-title">Add More</h5>
|
|
367
|
+
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
|
368
|
+
</div>
|
|
369
|
+
<div class="modal-body">
|
|
370
|
+
<label class="dropdown-item cursor-pointer"><input class="form-check-input m-0 me-2 cursor-pointer" id="gpu_checkbox" type="checkbox" checked name="gpu">
|
|
371
|
+
<svg t="1702629555656" class="icon me-2" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="8114" width="320" height="320"><path d="M809.2 525.5h120.5c13.1 0 23.6-10.6 23.6-23.6 0-13-10.6-23.6-23.6-23.6H809.2c-4.8 0-9.1 1.8-12.8 4.3v-71.5c0-4.9-0.7-9.6-1.4-14.4 4 3.1 8.8 5.3 14.3 5.3h120.5c13.1 0 23.6-10.6 23.6-23.6 0-13-10.6-23.6-23.6-23.6H809.2c-10.4 0-18.9 6.8-22.1 16.1-15.1-32-47.5-54.3-85.2-54.3H409c-52.2 0-94.5 42.3-94.5 94.5v305.3c0 33.1 17 62.1 42.7 78.9-3.7 4.2-6.1 9.5-6.1 15.5v123.6c0 13 10.6 23.6 23.6 23.6 13.1 0 23.6-10.6 23.6-23.6V810.8c0-0.4-0.2-0.7-0.2-1.1 3.6 0.4 7.1 1.1 10.9 1.1h62.6v123.6c0 13 10.6 23.6 23.6 23.6s23.6-10.6 23.6-23.6V810.8H592v123.6c0 13 10.6 23.6 23.6 23.6 13.1 0 23.6-10.6 23.6-23.6V810.8h62.6c3.7 0 7.3-0.7 10.9-1.1 0 0.4-0.2 0.7-0.2 1.1v123.6c0 13 10.6 23.6 23.6 23.6 13.1 0 23.6-10.6 23.6-23.6V810.8c0-6-2.4-11.4-6.1-15.5 14.5-9.5 26-22.9 33.4-38.7 3.2 9.3 11.7 16.1 22.1 16.1h120.5c13.1 0 23.6-10.6 23.6-23.6 0-13-10.6-23.6-23.6-23.6H809.2c-5.5 0-10.3 2.2-14.3 5.3 0.7-4.7 1.4-9.4 1.4-14.4v-71.5c3.7 2.5 8 4.3 12.8 4.3h120.5c13.1 0 23.6-10.6 23.6-23.6 0-13-10.6-23.6-23.6-23.6H809.2c-4.8 0-9.1 1.8-12.8 4.3v-84.9c3.7 2.3 8 4.1 12.8 4.1z" fill="#4DBBF7" p-id="8115"></path><path d="M585 384.4c13 0 23.6 10.6 23.6 23.6v187.8c0 13-10.6 23.6-23.6 23.6H405.4c-13 0-23.6-10.6-23.6-23.6V408c0-13 10.6-23.6 23.6-23.6H585m0-47.2H405.4c-39.1 0-70.9 31.7-70.9 70.9v187.8c0 39.1 31.7 70.9 70.9 70.9H585c39.1 0 70.9-31.7 70.9-70.9V408c-0.1-39.1-31.8-70.8-70.9-70.8z" fill="" p-id="8116"></path><path d="M893 463.8c13.1 0 23.6-10.6 23.6-23.6S906 416.6 893 416.6H776.3v-76.3H893c13.1 0 23.6-10.6 23.6-23.6S906.1 293 893 293H774.8c-6.3-39.1-36.5-70.2-75.3-77.6V107.6c0-13-10.6-23.6-23.6-23.6s-23.6 10.6-23.6 23.6v106h-73.2v-106c0-13-10.6-23.6-23.6-23.6-13.1 0-23.6 10.6-23.6 23.6v106h-73.2v-106c0-13-10.6-23.6-23.6-23.6s-23.6 10.6-23.6 23.6v106h-73.2v-106c0-13-10.6-23.6-23.6-23.6s-23.6 10.6-23.6 23.6v107.8c-38.8 7.4-68.9 38.4-75.2 77.6h-113c-13.1 0-23.6 10.6-23.6 23.6s10.6 23.6 23.6 23.6h111.2v76.3H102.9c-13.1 0-23.6 10.6-23.6 23.6s10.6 23.6 23.6 23.6h111.2V540H102.9c-13.1 0-23.6 10.6-23.6 23.6s10.6 23.6 23.6 23.6h111.2v76.3H102.9c-13.1 0-23.6 10.6-23.6 23.6 0 13 10.6 23.6 23.6 23.6h112.7c6.3 39.1 36.5 70.2 75.2 77.6v107.8c0 13 10.6 23.6 23.6 23.6s23.6-10.6 23.6-23.6v-106h73.2v106c0 13 10.6 23.6 23.6 23.6s23.6-10.6 23.6-23.6v-106h73.2v106c0 13 10.6 23.6 23.6 23.6 13.1 0 23.6-10.6 23.6-23.6v-106H652v106c0 13 10.6 23.6 23.6 23.6s23.6-10.6 23.6-23.6V788.4c38.8-7.4 68.9-38.4 75.3-77.6H893c13.1 0 23.6-10.6 23.6-23.6 0-13-10.6-23.6-23.6-23.6H776.3v-76.3H893c13.1 0 23.6-10.6 23.6-23.6S906 540.1 893 540.1H776.3v-76.3H893zM729.1 695.7c0 26.1-21.2 47.2-47.2 47.2H308.6c-26 0-47.2-21.2-47.2-47.2V308.1c0-26.1 21.2-47.2 47.2-47.2h373.2c26 0 47.2 21.2 47.2 47.2v387.6z" fill="" p-id="8117"></path><path d="M518.1 437.3h33.1v14.5h-33.1z" fill="#FFD939" p-id="8118"></path><path d="M574.8 413.6h-80.3v61.8h80.3v-61.8z" fill="" p-id="8119"></path></svg>
|
|
372
|
+
<strong>GPU</strong>
|
|
373
|
+
</label>
|
|
374
|
+
{% if platform == 'Android' %}
|
|
375
|
+
<label class="dropdown-item cursor-pointer"><input class="form-check-input m-0 me-2 cursor-pointer" id="mem_detail_checkbox" type="checkbox" name="mem_detail">
|
|
376
|
+
<svg t="1702629683077" class="icon me-2" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="13054" width="320" height="320"><path d="M798.11 959.56H225.89c-49.11 0-89.07-39.96-89.07-89.07V153.51c0-49.11 39.96-89.07 89.07-89.07h355.8c23.85 0 46.94 9.93 63.35 27.24l218.19 230.21c15.44 16.28 23.94 37.61 23.94 60.05v488.55c0 49.12-39.96 89.07-89.07 89.07zM225.89 135.7c-9.82 0-17.81 7.99-17.81 17.81v716.98c0 9.82 7.99 17.81 17.81 17.81h572.22c9.82 0 17.81-7.99 17.81-17.81V381.94c0-4.12-1.56-8.04-4.4-11.03L593.33 140.7c-3.01-3.18-7.25-5-11.64-5h-355.8z" fill="#474747" p-id="13055"></path><path d="M681.21 814.4H342.99c-21.51 0-39.01-17.5-39.01-39.01V493.42c0-21.51 17.5-39.01 39.01-39.01h338.22c21.51 0 39.01 17.5 39.01 39.01V775.4c0 21.51-17.5 39.01-39.01 39.01z m-323.78-53.44h309.35V507.85H357.43v253.11z" fill="#4F95FC" p-id="13056"></path><path d="M452.76 797.26c-14.76 0-26.72-11.96-26.72-26.72V615.36c0-14.76 11.96-26.72 26.72-26.72 14.76 0 26.72 11.96 26.72 26.72v155.18c0 14.76-11.96 26.72-26.72 26.72zM585.81 797.26c-14.76 0-26.72-11.96-26.72-26.72V615.36c0-14.76 11.96-26.72 26.72-26.72 14.76 0 26.72 11.96 26.72 26.72v155.18c0 14.76-11.96 26.72-26.72 26.72z" fill="#4F95FC" p-id="13057"></path></svg>
|
|
377
|
+
{% if lan == 'cn' %} <strong>内存细化指标</strong> {% else %}<strong>Memory Detail</strong>{% endif %}
|
|
378
|
+
</label>
|
|
379
|
+
<label class="dropdown-item cursor-pointer"><input class="form-check-input m-0 me-2 cursor-pointer" id="thermal_checkbox" type="checkbox" name="thermal_sensor">
|
|
380
|
+
<svg t="1717146743461" class="icon me-2" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="10995" width="256" height="256"><path d="M512 0c282.7776 0 512 229.2224 512 512s-229.2224 512-512 512S0 794.7776 0 512 229.2224 0 512 0z m-3.9936 204.8c-30.9248 0-60.2624 9.3184-82.5856 26.2144-23.936 18.1248-37.632 43.8272-37.632 70.528v236.16A174.6688 174.6688 0 0 0 332.8 665.1392a174.08 174.08 0 0 0 51.3024 123.904 174.0544 174.0544 0 0 0 123.904 51.3024 174.0544 174.0544 0 0 0 123.904-51.3024 174.08 174.08 0 0 0 51.3024-123.904 174.6688 174.6688 0 0 0-54.9888-127.4368V301.568c0-26.7008-13.7216-52.4032-37.632-70.528C568.2176 214.1184 538.9056 204.8 507.9808 204.8z m0 47.104c39.6288 0 73.1136 22.7328 73.1136 49.6384v257.8432l8.5248 7.0656a127.7952 127.7952 0 0 1 46.464 98.688 128.256 128.256 0 0 1-128.1024 128.1024 128.256 128.256 0 0 1-128.1024-128.1024c0-38.272 16.9216-74.24 46.4384-98.688l8.5248-7.0656V301.5424c0-26.9056 33.4848-49.6384 73.1392-49.6384z m0 87.1168c-19.968 0-36.1472 12.2624-36.1472 27.3664v216.9856a89.3952 89.3952 0 1 0 72.2688 0v-216.9856c0-15.104-16.1792-27.3664-36.1216-27.3664z m171.5968 142.5152h-28.2624a11.5968 11.5968 0 0 0 0 23.2192h28.2624a11.5968 11.5968 0 1 0 0-23.2192z m0-35.6096h-28.2624a11.5968 11.5968 0 0 0 0 23.1936h28.2624a11.5968 11.5968 0 1 0 0-23.1936z m0-35.6352h-28.2624a11.5968 11.5968 0 0 0 0 23.2192h28.2624a11.5968 11.5968 0 1 0 0-23.2192z m0-35.6352h-28.2624a11.5968 11.5968 0 0 0 0 23.2192h28.2624a11.5968 11.5968 0 1 0 0-23.2192z m0-35.6352h-28.2624a11.5968 11.5968 0 0 0 0 23.2192h28.2624a11.5968 11.5968 0 1 0 0-23.2192z m0-35.6352h-28.2624a11.5968 11.5968 0 0 0 0 23.2192h28.2624a11.5968 11.5968 0 1 0 0-23.2192z" fill="#d4237a" p-id="10996" data-spm-anchor-id="a313x.search_index.0.i0.3b713a81JBMZXg" class="selected"></path></svg>
|
|
381
|
+
{% if lan == 'cn' %} <strong>温度传感器</strong> {% else %} <strong>Thermal Sensor</strong> {% endif %}
|
|
382
|
+
</label>
|
|
383
|
+
<label class="dropdown-item cursor-pointer"><input class="form-check-input m-0 me-2 cursor-pointer" id="cpu_core_checkbox" type="checkbox" name="cpu_core">
|
|
384
|
+
<svg t="1702629502002" class="icon me-2" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="7953" width="320" height="320"><path d="M426.666667 85.333333v85.333334h170.666666V85.333333h85.333334v85.333334h42.666666a128 128 0 0 1 128 128v42.666666h85.333334v85.333334h-85.333334v170.666666h85.333334v85.333334h-85.333334v42.666666a128 128 0 0 1-128 128h-42.666666v85.333334h-85.333334v-85.333334h-170.666666v85.333334h-85.333334v-85.333334h-42.666666a128 128 0 0 1-128-128v-42.666666H85.333333v-85.333334h85.333334v-170.666666H85.333333v-85.333334h85.333334v-42.666666a128 128 0 0 1 128-128h42.666666V85.333333h85.333334z m-128 170.666667a42.666667 42.666667 0 0 0-42.666667 42.666667v426.666666a42.666667 42.666667 0 0 0 42.666667 42.666667h426.666666a42.666667 42.666667 0 0 0 42.666667-42.666667V298.666667a42.666667 42.666667 0 0 0-42.666667-42.666667H298.666667z" fill="#000000" p-id="7954"></path><path d="M362.666667 405.333333a42.666667 42.666667 0 0 1 42.666666-42.666666h213.333334a42.666667 42.666667 0 0 1 42.666666 42.666666v213.333334a42.666667 42.666667 0 0 1-42.666666 42.666666H405.333333a42.666667 42.666667 0 0 1-42.666666-42.666666V405.333333z m85.333333 42.666667v128h128v-128h-128z" fill="#0078FF" p-id="7955"></path></svg>
|
|
385
|
+
{% if lan == 'cn' %} <strong>CPU核心使用率</strong> {% else %}<strong>CPU Cores</strong> {% endif %}
|
|
386
|
+
</label>
|
|
387
|
+
{% endif %}
|
|
388
|
+
<label class="dropdown-item cursor-pointer"><input class="form-check-input m-0 me-2 cursor-pointer" id="disk_checkbox" type="checkbox" name="disk">
|
|
389
|
+
<svg t="1711433630085" class="icon me-2" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="84744" width="200" height="200"><path d="M172.261392 465.745702l-0.539234 376.625021 326.285617 180.627064v-375.786213L172.261392 465.745702z" fill="#4762AF" p-id="84745"></path><path d="M743.081477 435.363404l50.121532 15.817532-41.815149 39.734468-8.306383-55.552zM235.558754 438.021447l-25.469277 23.895149 21.776341 20.153191 3.692936-44.04834z" fill="#6982C8" p-id="84746"></path><path d="M521.750414 667.549957c-13.105021-7.271489-32.768-8.170213-43.890383-1.998978L178.966414 831.400851c-11.122383 6.171234-9.510128 17.081191 3.594893 24.352681l291.70383 161.857362c13.105021 7.271489 32.768 8.164766 43.890383 1.998978l298.893617-165.849872c11.122383-6.171234 9.510128-17.081191-3.594894-24.352681L521.750414 667.549957z" fill="#4762AF" p-id="84747"></path><path d="M532.720286 13.148596c0-11.035234-6.737702-16.122553-15.044085-11.362043L246.909903 157.107745c-8.300936 4.760511-15.044085 17.582298-15.044085 28.617532v596.098723c0 11.029787 6.743149 16.122553 15.044085 11.362043l270.766298-155.321192c8.306383-4.760511 15.044085-17.587745 15.044085-28.617532V13.148596z" fill="#C4CADD" p-id="84748"></path><path d="M526.717903 0.604596l14.542979 8.279149-15.937362 7.473021-6.955574-7.974128L526.717903 0.604596z" fill="#C4CADD" p-id="84749"></path><path d="M546.560626 21.090043c0-11.035234-6.743149-16.128-15.044085-11.36749L260.750243 165.043745c-8.300936 4.760511-15.044085 17.587745-15.044085 28.622978v596.093277c0 11.035234 6.743149 16.128 15.044085 11.362043l270.766298-155.315745c8.300936-4.765957 15.044085-17.587745 15.044085-28.622979V21.090043z" fill="#848BA6" p-id="84750"></path><path d="M602.842499 75.389277c0-11.035234-6.743149-16.128-15.044085-11.362043L317.032116 219.342979c-8.300936 4.765957-15.044085 17.587745-15.044085 28.622978v596.093277c0 11.035234 6.743149 16.128 15.044085 11.367489l270.766298-155.321191c8.300936-4.760511 15.044085-17.587745 15.044085-28.622979V75.389277z" fill="#C4CADD" p-id="84751"></path><path d="M596.840116 62.845277l14.542978 8.279149-15.937361 7.467574-6.955575-7.968681 8.349958-7.778042z" fill="#C4CADD" p-id="84752"></path><path d="M616.682839 83.325277c0-11.029787-6.743149-16.122553-15.044085-11.362043L330.872456 227.284426c-8.306383 4.760511-15.044085 17.587745-15.044085 28.617531v596.098724c0 11.035234 6.737702 16.128 15.044085 11.362042l270.766298-155.315744c8.300936-4.765957 15.044085-17.587745 15.044085-28.622979V83.325277z" fill="#848BA6" p-id="84753"></path><path d="M672.964711 137.629957c0-11.035234-6.743149-16.128-15.044085-11.362042L387.154329 281.58366c-8.306383 4.765957-15.044085 17.587745-15.044086 28.622978v596.093277c0 11.035234 6.737702 16.128 15.044086 11.367489l270.766297-155.321191c8.300936-4.760511 15.044085-17.587745 15.044085-28.622979V137.629957z" fill="#C4CADD" p-id="84754"></path><path d="M666.956882 125.080511l14.542978 8.284595-15.937361 7.467575-6.950128-7.974128 8.344511-7.778042z" fill="#C4CADD" p-id="84755"></path><path d="M686.799605 145.565957c0-11.029787-6.737702-16.122553-15.038638-11.362042L400.989222 289.525106c-8.300936 4.760511-15.038638 17.587745-15.038638 28.617532v596.098724c0 11.035234 6.737702 16.122553 15.038638 11.362042l270.771745-155.321191c8.300936-4.760511 15.038638-17.582298 15.038638-28.617532V145.565957z" fill="#848BA6" p-id="84756"></path><path d="M743.081477 199.870638c0-11.035234-6.737702-16.128-15.038638-11.367489L457.271094 343.82434c-8.300936 4.760511-15.038638 17.587745-15.038638 28.622979v596.093277c0 11.035234 6.737702 16.128 15.038638 11.362042l270.771745-155.315744c8.300936-4.765957 15.038638-17.587745 15.038638-28.622979V199.870638z" fill="#C4CADD" p-id="84757"></path><path d="M737.079094 187.321191l14.542979 8.284596-15.937362 7.467575-6.955574-7.974128 8.349957-7.778043z" fill="#C4CADD" p-id="84758"></path><path d="M756.921818 207.806638c0-11.035234-6.737702-16.122553-15.044085-11.362042L471.111435 351.765787c-8.300936 4.760511-15.044085 17.582298-15.044085 28.617532v596.098724c0 11.029787 6.743149 16.122553 15.044085 11.362042l270.766298-155.321191c8.306383-4.760511 15.044085-17.587745 15.044085-28.617532V207.806638z" fill="#848BA6" p-id="84759"></path><path d="M496.215775 642.592681l327.511149-178.088851 0.566468 379.40834-328.077617-69.011064v-132.308425z" fill="#4762AF" p-id="84760"></path><path d="M465.670073 636.43234l69.893447-2.897702v376.412596s-8.900085 7.690894-22.168511 11.645277c-4.33566 1.290894-9.150638 1.824681-14.254298 2.037106-9.984 0.408511-20.790468-4.057872-32.223319-10.092936l-1.247319-377.104341z" fill="#6982C8" p-id="84761"></path><path d="M466.732201 641.056681L225.286073 501.656511v80.498383l241.446128 139.40017v-80.498383zM466.732201 926.093617L225.286073 786.693447v83.412425l241.446128 139.400171v-83.412426z" fill="#4762AF" p-id="84762"></path><path d="M466.732201 705.16017l-19.477787-11.247659v269.361021l19.477787 11.247659v-269.361021z" fill="#4762AF" p-id="84763"></path><path d="M231.865818 422.432681v24.989957l-6.634213 3.829107c-9.733447 5.621106-8.513362 15.458043 2.728851 21.945191l250.264511 144.48749c11.242213 6.492596 28.274383 7.200681 38.00783 1.579574l255.722212-147.641191c9.733447-5.621106 8.513362-15.452596-2.728851-21.945192l-12.30434-7.102638v-26.662128l56.59234 34.347575c13.083234 7.554723 14.510298 18.998468 3.17549 25.540085l-297.570043 171.797787c-11.329362 6.541617-31.144851 5.719149-44.228085-1.830128L183.672456 477.630638c-13.083234-7.554723-14.504851-18.993021-3.175489-25.534638l51.368851-29.663319z" fill="#6982C8" p-id="84764"></path><path d="M535.361988 775.701787v182.805787l250.694809-127.656851-250.694809-55.148936zM302.124201 827.833191v-24.227404l-20.708766 12.27166 20.708766 11.955744z" fill="#4762AF" p-id="84765"></path><path d="M316.503775 795.620766l123.332085-73.166979 0.838809 56.16749-111.812085 64.561021-12.358809-7.04817v-40.513362zM387.007265 828.328851l53.623829-30.95966v110.902469l-53.623829-30.954213v-48.988596z" fill="#848BA6" p-id="84766"></path><path d="M245.967605 597.416851l-14.101787-7.03183v199.293277l13.84034 11.590808 0.261447-203.852255z" fill="#C4CADD" p-id="84767"></path><path d="M245.967605 597.416851l76.625702 43.835915-76.625702 44.244425v-88.08034zM245.967605 705.525106v29.254809l118.544341-69.021958-24.832-14.336-93.712341 54.103149z" fill="#848BA6" p-id="84768"></path><path d="M302.086073 629.716426v197.817191l14.417702 8.32817v-197.926127l-14.417702-8.219234zM372.23552 670.218894v198.17668l14.771745 8.529703v-198.443575l-14.771745-8.262808z" fill="#C4CBDC" p-id="84769"></path><path d="M220.471094 697.943149l12.233532 7.059064v62.551149c0 10.937191 6.612426 23.628255 14.760851 28.334298l178.453788 103.031829c8.142979 4.700596 14.755404-0.359489 14.755404-11.291234v-62.551149l12.233532 7.059064v71.876085c0 12.217191-7.391319 17.870979-16.492936 12.614809l-199.451234-115.150979c-9.101617-5.25617-16.492936-19.43966-16.492937-31.662298v-71.870638z" fill="#6982C8" p-id="84770"></path><path d="M452.908201 832.63183l-12.233532-7.064511v-95.923745c0-10.931745-6.612426-23.628255-14.755404-28.328851l-178.453788-103.031829c-8.148426-4.706043-14.760851 0.354043-14.760851 11.285787v95.929191l-12.233532-7.06451v-105.243234c0-12.222638 7.391319-17.876426 16.492937-12.620256l199.451234 115.150979c9.101617 5.25617 16.492936 19.445106 16.492936 31.662298v105.248681z" fill="#6982C8" p-id="84771"></path><path d="M549.360286 891.827745v-141.932936s-6.601532-30.08817 43.699745-50.301277l196.433702-113.408s10.446979-9.624511 23.306893-0.849702c12.859915 8.769362 28.601191 16.514723 28.601192 16.514723s-227.878128 133.61566-229.653787 132.59166c-1.781106-1.029447-19.684766 5.670128-19.684766 34.124255v166.067745l-32.250554-18.617192s-10.452426-9.23234-10.452425-24.189276z" fill="#273F73" p-id="84772"></path><path d="M847.671094 614.89566c0-10.893617-6.634213-15.904681-14.798978-11.193192l-229.681022 132.608c-8.170213 4.716936-14.798979 17.386213-14.798978 28.27983v157.864851c0 10.88817 6.628766 15.904681 14.798978 11.187745l229.681022-132.608c8.164766-4.711489 14.798979-17.386213 14.798978-28.274383v-157.864851z" fill="#677FC4" p-id="84773"></path><path d="M806.711094 667.609872c0-7.424-4.520851-10.839149-10.087489-7.625532l-146.965787 84.850383c-5.566638 3.213617-10.087489 11.846809-10.087489 19.270809s4.520851 10.844596 10.087489 7.625532l146.965787-84.850383c5.566638-3.213617 10.087489-11.846809 10.087489-19.270809zM806.711094 719.659574c0-7.424-4.520851-10.839149-10.087489-7.625531l-146.965787 84.850383c-5.566638 3.213617-10.087489 11.846809-10.087489 19.270808s4.520851 10.844596 10.087489 7.625532l146.965787-84.850383c5.566638-3.213617 10.087489-11.846809 10.087489-19.270809zM806.711094 769.955404c0-7.424-4.520851-10.839149-10.087489-7.625532l-146.965787 84.850383c-5.566638 3.213617-10.087489 11.852255-10.087489 19.276256s4.520851 10.839149 10.087489 7.625532l146.965787-84.850383c5.566638-3.213617 10.087489-11.852255 10.087489-19.276256z" fill="#71E0FF" p-id="84774"></path><path d="M535.814073 448.969532v54.762213l-19.788255 11.427404V438.337362l25.785191-14.886128c11.307574-6.530723 20.164085-8.676766 26.564085-6.449021 7.603745 2.701617 11.405617 10.131064 11.405617 22.28834 0 11.634383-3.251745 23.001872-9.749787 34.107915-6.498043 11.106043-14.86434 19.613957-25.098893 25.523745-1.203745 0.691745-3.170043 1.753872-5.898894 3.180936v-22.571575l3.164596-1.830127c11.53634-6.656 17.304511-15.561532 17.30451-26.705702 0-10.463319-5.670128-12.42417-17.010383-5.877107l-6.677787 3.850894zM608.877563 384.724426v76.827234l-19.788256 11.421957V396.15183l19.788256-11.427404zM653.427009 358.666894v21.89617a10.675745 10.675745 0 0 0-3.311659 1.067574c-1.497872 0.866043-2.777872 2.244085-3.850894 4.139575-1.073021 1.895489-1.612255 3.741957-1.612255 5.539404 0 1.541447 0.588255 3.153702 1.753872 4.842213l1.514213 2.16783c2.728851 3.899915 4.096 8.404426 4.096 13.508085 0 7.467574-2.304 15.114894-6.901106 22.947404-4.597106 7.832511-10.207319 13.660596-16.836086 17.489702-3.186383 1.841021-6.340085 2.816-9.455659 2.924936v-22.228425c1.884596 0.299574 3.556766 0.027234 5.016511-0.817022 1.721191-0.996766 3.159149-2.396596 4.313872-4.204936 1.154723-1.813787 1.732085-3.578553 1.732085-5.305191 0-1.127489-0.925957-3.050213-2.777872-5.76817-2.957617-4.297532-4.433702-9.450213-4.433702-15.452596 0-7.238809 2.233191-14.766298 6.699574-22.582468 4.466383-7.810723 9.804255-13.513532 16.013617-17.097532a24.870128 24.870128 0 0 1 8.039489-3.066553zM721.228882 319.86383l-17.549617 44.968851 17.451574 31.912851-22.228425 12.827234-15.060426-33.737532 17.059404-44.238979 20.32749-11.732425z m-37.969702 21.917957v76.827234l-19.793703 11.421958V353.209191l19.793703-11.427404z" fill="#17284A" p-id="84775"></path></svg>
|
|
390
|
+
{% if lan == 'cn' %}<strong> 磁盘 </strong> {% else %}<strong>Disk</strong> {% endif %}
|
|
391
|
+
</label>
|
|
392
|
+
{% if platform == 'iOS' %}
|
|
393
|
+
<label class="dropdown-item cursor-pointer"><input class="form-check-input m-0 me-2 cursor-pointer" id="energy_checkbox" type="checkbox" name="energy">
|
|
394
|
+
<svg t="1718160175906" class="icon me-2" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="8233" width="256" height="256"><path d="M672 672m-240 0a240 240 0 1 0 480 0 240 240 0 1 0-480 0Z" fill="#FFEBEB" p-id="8234"></path><path d="M681.9 418.2l-121.9-0.8 17-148.5c1.7-14.8-5.9-29-18.7-34.6s-27.3-1-35.4 10.9L318 545.2c-6.7 10-7.8 23.4-2.7 34.5 5.1 11.1 15.6 18.1 27 18.1h113l-40.2 152c-3.9 14.9 2.2 30.9 14.8 38.2 4.5 2.6 9.5 4 14.3 4 8.7 0 17.2-4.1 23-12l237.7-307.6c7.5-9.8 9.3-23.4 4.3-35-5-11.7-15.6-19.2-27.3-19.2zM512.4 619.6l12-45.5c2.6-10 0.7-20.6-4.9-28.9-5.7-8.3-14.6-13.2-24.2-13.2h-93l100.6-147.5-6.9 61.6c-1 9.3 1.6 18.8 7.2 25.8 5.7 7.1 14 11.1 22.5 11.2l91.5 0.7-104.8 135.8z" fill="#F23B3B" p-id="8235"></path><path d="M951.3 496.4l-166.1-368c-5.7-10.1-16.4-16.4-28-16.4H266.8c-11.6 0-22.3 6.3-27.9 16.4l-166.1 368c-5.4 9.7-5.4 21.6 0 31.3l166.1 368c5.7 10.1 16.3 16.4 27.9 16.4h490.5c11.6 0 22.3-6.3 27.9-16.4l166.1-368c5.4-9.7 5.4-21.6 0-31.3z m-101 31.2l-116.8 280c-5.6 10.1-16.3 16.4-27.8 16.4H318.3c-11.6 0-22.3-6.3-27.9-16.4l-116.8-280c-5.4-9.7-5.4-21.6 0-31.3l116.8-280c5.7-10.1 16.3-16.4 27.9-16.4h387.3c11.6 0 22.3 6.3 27.9 16.4l116.8 280c5.4 9.7 5.4 21.6 0 31.3z" fill="#FF4C4C" p-id="8236"></path></svg>
|
|
395
|
+
{% if lan == 'cn' %}<strong> 功耗 </strong> {% else %}<strong>Energy</strong> {% endif %}
|
|
396
|
+
</label>
|
|
397
|
+
{% endif %}
|
|
398
|
+
</div>
|
|
399
|
+
</div>
|
|
400
|
+
</div>
|
|
401
|
+
</div>
|
|
402
|
+
{% endblock %}
|
|
403
|
+
|
|
404
|
+
{% block js %}
|
|
405
|
+
<script>
|
|
406
|
+
|
|
407
|
+
var stop = false; // 任务状态
|
|
408
|
+
|
|
409
|
+
var cores_num = cpucoreNum();
|
|
410
|
+
|
|
411
|
+
function ruteCheck(){
|
|
412
|
+
if(['Android','iOS'].indexOf(platform) === -1 || platform && ['cn','en'].indexOf(lan) === -1 && lan){
|
|
413
|
+
this.location.href = '/?platform=Android&lan=en';
|
|
414
|
+
}
|
|
415
|
+
}
|
|
416
|
+
|
|
417
|
+
function cpucoreNum(){
|
|
418
|
+
var num ;
|
|
419
|
+
$.ajax({
|
|
420
|
+
url: Host + "/device/cpucore",
|
|
421
|
+
type: "GET",
|
|
422
|
+
async: false,
|
|
423
|
+
cache: false,
|
|
424
|
+
success: function (data) {
|
|
425
|
+
num = data['num']
|
|
426
|
+
}
|
|
427
|
+
});
|
|
428
|
+
return num
|
|
429
|
+
}
|
|
430
|
+
|
|
431
|
+
$(document).ready(function() {
|
|
432
|
+
|
|
433
|
+
ruteCheck();
|
|
434
|
+
|
|
435
|
+
$('#debug-connect').click();
|
|
436
|
+
|
|
437
|
+
$(".form-check-input").each(function(){
|
|
438
|
+
$(this).change(function() {
|
|
439
|
+
let flag1 = $(this).is(':checked');
|
|
440
|
+
if(flag1){
|
|
441
|
+
$("."+$(this).prop('name')).show()
|
|
442
|
+
}else{
|
|
443
|
+
$("."+$(this).prop('name')).hide()
|
|
444
|
+
}
|
|
445
|
+
});
|
|
446
|
+
});
|
|
447
|
+
versionCheck()
|
|
448
|
+
});
|
|
449
|
+
|
|
450
|
+
$('#debug-connect').click(function () {
|
|
451
|
+
initializeEnv();
|
|
452
|
+
});
|
|
453
|
+
|
|
454
|
+
$('.select-device').change(function() {
|
|
455
|
+
$.ajax({
|
|
456
|
+
url: Host + "/device/package",
|
|
457
|
+
type: "GET",
|
|
458
|
+
async: true,
|
|
459
|
+
cache: false,
|
|
460
|
+
data:{
|
|
461
|
+
platform:platform,
|
|
462
|
+
device:this.value
|
|
463
|
+
},
|
|
464
|
+
beforeSend: function () {
|
|
465
|
+
$('.select-app').empty();
|
|
466
|
+
$('.select-app').append('<option></option>');
|
|
467
|
+
if(platform == 'Android'){
|
|
468
|
+
$('.select-pid').empty();
|
|
469
|
+
}
|
|
470
|
+
if(lan == 'cn' ){
|
|
471
|
+
SwalLoading('初始化','正在获取该设备上的所有APP, 请您稍等!');
|
|
472
|
+
}else{
|
|
473
|
+
SwalLoading('Package initialization!','Initializing Packages, please wait a mmoment.');
|
|
474
|
+
}
|
|
475
|
+
|
|
476
|
+
},
|
|
477
|
+
success: function (data) {
|
|
478
|
+
if(data['status'] != 1 ) {
|
|
479
|
+
if(lan == 'cn' ){
|
|
480
|
+
SwalFire('error', '连接失败','请检查当前移动设备是否连接了PC端', 2000);
|
|
481
|
+
}else{
|
|
482
|
+
SwalFire('error', 'Connect failed !', 'No devices found', 2000);
|
|
483
|
+
}
|
|
484
|
+
}else{
|
|
485
|
+
for(var i=0;i<data['pkgnames'].length;i++){
|
|
486
|
+
$('.select-app').append('<option>'+data['pkgnames'][i].trim()+'</option>')
|
|
487
|
+
}
|
|
488
|
+
swal.close();
|
|
489
|
+
}
|
|
490
|
+
}
|
|
491
|
+
});
|
|
492
|
+
});
|
|
493
|
+
|
|
494
|
+
$('.select-app').change(function() {
|
|
495
|
+
if(platform == 'Android'){
|
|
496
|
+
$.ajax({
|
|
497
|
+
url: Host + "/package/pids",
|
|
498
|
+
type: "GET",
|
|
499
|
+
async: true,
|
|
500
|
+
cache: false,
|
|
501
|
+
data:{
|
|
502
|
+
platform:platform,
|
|
503
|
+
device:$('.select-device').val(),
|
|
504
|
+
pkgname:this.value
|
|
505
|
+
},
|
|
506
|
+
beforeSend: function () {
|
|
507
|
+
if(platform == 'Android'){
|
|
508
|
+
$('.select-pid').empty();
|
|
509
|
+
}
|
|
510
|
+
if(lan == 'cn' ){
|
|
511
|
+
SwalLoading('初始化','正在获取该APP上的所有进程, 请您稍等!');
|
|
512
|
+
}else{
|
|
513
|
+
SwalLoading('Process initialization!','Initializing Process, please wait a mmoment.');
|
|
514
|
+
}
|
|
515
|
+
},
|
|
516
|
+
success: function (data) {
|
|
517
|
+
if(data['status'] != 1 ) {
|
|
518
|
+
if(lan == 'cn' ){
|
|
519
|
+
SwalFire('warning', '警告','没有发现该app的进程,请检查app是否已经启动', 5000);
|
|
520
|
+
}else{
|
|
521
|
+
SwalFire('warning', 'Warning', data['msg'], 5000);
|
|
522
|
+
}
|
|
523
|
+
}else{
|
|
524
|
+
for(var i=0;i<data['pids'].length;i++){
|
|
525
|
+
$('.select-pid').append('<option>'+data['pids'][i]+'</option>')
|
|
526
|
+
}
|
|
527
|
+
swal.close();
|
|
528
|
+
}
|
|
529
|
+
}
|
|
530
|
+
});
|
|
531
|
+
}
|
|
532
|
+
});
|
|
533
|
+
|
|
534
|
+
function initializeAPM(){
|
|
535
|
+
$.ajax({
|
|
536
|
+
url: Host + "/apm/initialize",
|
|
537
|
+
type: "POST",
|
|
538
|
+
async: true,
|
|
539
|
+
cache: false,
|
|
540
|
+
success: function (data) {
|
|
541
|
+
console.log(data)
|
|
542
|
+
}
|
|
543
|
+
});
|
|
544
|
+
}
|
|
545
|
+
|
|
546
|
+
function versionCheck(){
|
|
547
|
+
$.ajax({
|
|
548
|
+
url: Host + "/magnax/version",
|
|
549
|
+
type: "GET",
|
|
550
|
+
async: true,
|
|
551
|
+
cache: false,
|
|
552
|
+
success: function (data) {
|
|
553
|
+
console.log(data)
|
|
554
|
+
if(data['lastest_version'] != data['current_version']){
|
|
555
|
+
SwalFire('info', 'New Version Found', 'Lastest Version: '+data['lastest_version']+' . Please execute [pip install -U magnax].', 60000);
|
|
556
|
+
}
|
|
557
|
+
},
|
|
558
|
+
error: function(error){
|
|
559
|
+
console.log(error)
|
|
560
|
+
}
|
|
561
|
+
});
|
|
562
|
+
}
|
|
563
|
+
|
|
564
|
+
function initializeEnv(){
|
|
565
|
+
$.ajax({
|
|
566
|
+
url: Host + "/device/info?platform="+platform,
|
|
567
|
+
type: "GET",
|
|
568
|
+
async: true,
|
|
569
|
+
cache: false,
|
|
570
|
+
timeout:10000,
|
|
571
|
+
beforeSend: function () {
|
|
572
|
+
$('.select-device').empty();
|
|
573
|
+
$('.select-app').empty();
|
|
574
|
+
$('.select-app').append('<option></option>');
|
|
575
|
+
if(platform == 'Android'){
|
|
576
|
+
$('.select-pid').empty();
|
|
577
|
+
}
|
|
578
|
+
if(lan == 'cn' ){
|
|
579
|
+
SwalLoading('初始化','正在初始化设备环境,请您稍等!');
|
|
580
|
+
}else{
|
|
581
|
+
SwalLoading('Device initialization!','Initializing device environment, please wait a moment.');
|
|
582
|
+
}
|
|
583
|
+
},
|
|
584
|
+
success: function (data) {
|
|
585
|
+
console.log(data);
|
|
586
|
+
if(data['status'] != 1 ) {
|
|
587
|
+
if(lan == 'cn' ){
|
|
588
|
+
SwalFire('error', '连接失败','请检查当前移动设备是否连接了PC端', 5000);
|
|
589
|
+
}else{
|
|
590
|
+
SwalFire('error', 'Connect failed !', 'No devices found', 5000);
|
|
591
|
+
}
|
|
592
|
+
}else{
|
|
593
|
+
for(var i=0;i<data['devices'].length;i++){
|
|
594
|
+
$('.select-device').append('<option>'+data['devices'][i].trim()+'</option>');
|
|
595
|
+
}
|
|
596
|
+
for(var i=0;i<data['pkgnames'].length;i++){
|
|
597
|
+
$('.select-app').append('<option>'+data['pkgnames'][i].trim()+'</option>');
|
|
598
|
+
}
|
|
599
|
+
$('#brand').text(data['device_detail']['brand']);
|
|
600
|
+
$('#device_name').text(data['device_detail']['name']);
|
|
601
|
+
$('#os_version').text(data['device_detail']['version']);
|
|
602
|
+
$('#serialno').text(data['device_detail']['serialno']);
|
|
603
|
+
$('#wifiadr').text(data['device_detail']['wifiadr']);
|
|
604
|
+
$('#cpu_cores').text(data['device_detail']['cpu_cores']);
|
|
605
|
+
$('#physical_size').text(data['device_detail']['physical_size']);
|
|
606
|
+
swal.close();
|
|
607
|
+
}
|
|
608
|
+
},
|
|
609
|
+
error: function(error){
|
|
610
|
+
SwalFire('error','Server Error','Please press [ctrl+shift+i] and provide the browser\'s error message',5000);
|
|
611
|
+
console.log(error)
|
|
612
|
+
}
|
|
613
|
+
});
|
|
614
|
+
}
|
|
615
|
+
|
|
616
|
+
var timerQ = null;
|
|
617
|
+
|
|
618
|
+
function getCpuRate(pkgname,device){
|
|
619
|
+
var process = '';
|
|
620
|
+
if(platform == 'Android'){
|
|
621
|
+
process = $('.select-pid').val()
|
|
622
|
+
}
|
|
623
|
+
$.ajax({
|
|
624
|
+
url: Host + "/apm/cpu",
|
|
625
|
+
type: "GET",
|
|
626
|
+
async: true,
|
|
627
|
+
cache: false,
|
|
628
|
+
data:{
|
|
629
|
+
model:'normal',
|
|
630
|
+
platform:platform,
|
|
631
|
+
pkgname:pkgname,
|
|
632
|
+
device:device,
|
|
633
|
+
process:process
|
|
634
|
+
},
|
|
635
|
+
beforeSend: function () {
|
|
636
|
+
window.clearTimeout(timerQ);
|
|
637
|
+
},
|
|
638
|
+
success: function (data) {
|
|
639
|
+
console.log(data)
|
|
640
|
+
if(stop == false){
|
|
641
|
+
if(data['status'] == 1){
|
|
642
|
+
try {
|
|
643
|
+
var app_series = cpu_chart.series[0];
|
|
644
|
+
var sys_series = cpu_chart.series[1];
|
|
645
|
+
var x = (new Date()).getTime(),
|
|
646
|
+
y_app = data['appCpuRate'];
|
|
647
|
+
y_sys = data['systemCpuRate'];
|
|
648
|
+
app_series.addPoint([x, y_app], true, true);
|
|
649
|
+
sys_series.addPoint([x, y_sys], true, true);
|
|
650
|
+
if(data['appCpuRate'] == 0 && data['systemCpuRate'] == 0 && platform == 'Android'){
|
|
651
|
+
$('.select-pid').empty();
|
|
652
|
+
}
|
|
653
|
+
timerQ = setTimeout(getCpuRate(pkgname,device), 1000);
|
|
654
|
+
}catch (e) {}
|
|
655
|
+
}else{
|
|
656
|
+
SwalFire('error','Something error',data['msg'],2000);
|
|
657
|
+
}
|
|
658
|
+
}
|
|
659
|
+
},
|
|
660
|
+
error: function(error){
|
|
661
|
+
SwalFire('error','Server Error','Please press [ctrl+shift+i] and provide the browser\'s error message',5000);
|
|
662
|
+
console.log(error);
|
|
663
|
+
}
|
|
664
|
+
});
|
|
665
|
+
}
|
|
666
|
+
|
|
667
|
+
function getCoreCpuRate(pkgname,device){
|
|
668
|
+
var process = '';
|
|
669
|
+
if(platform == 'Android'){
|
|
670
|
+
process = $('.select-pid').val()
|
|
671
|
+
}
|
|
672
|
+
$.ajax({
|
|
673
|
+
url: Host + "/apm/corecpu",
|
|
674
|
+
type: "GET",
|
|
675
|
+
async: true,
|
|
676
|
+
cache: false,
|
|
677
|
+
data:{
|
|
678
|
+
platform:platform,
|
|
679
|
+
pkgname:pkgname,
|
|
680
|
+
device:device,
|
|
681
|
+
process:process,
|
|
682
|
+
cores:parseInt($('#cpu_cores').text())
|
|
683
|
+
},
|
|
684
|
+
beforeSend: function () {
|
|
685
|
+
window.clearTimeout(timerQ);
|
|
686
|
+
},
|
|
687
|
+
success: function (data) {
|
|
688
|
+
console.log(data)
|
|
689
|
+
if(stop == false){
|
|
690
|
+
if(data['status'] == 1){
|
|
691
|
+
try {
|
|
692
|
+
var x = (new Date()).getTime()
|
|
693
|
+
data['coreCpuRate'].forEach(function(element, index) {
|
|
694
|
+
console.log(element);
|
|
695
|
+
cpucore_chart.series[index].addPoint([x, element], true, true)
|
|
696
|
+
})
|
|
697
|
+
timerQ = setTimeout(getCoreCpuRate(pkgname,device), 1000);
|
|
698
|
+
}catch (e) {}
|
|
699
|
+
}else{
|
|
700
|
+
SwalFire('error','Something error',data['msg'],2000);
|
|
701
|
+
}
|
|
702
|
+
}
|
|
703
|
+
},
|
|
704
|
+
error: function(error){
|
|
705
|
+
SwalFire('error','Server Error','Please press [ctrl+shift+i] and provide the browser\'s error message',5000);
|
|
706
|
+
console.log(error);
|
|
707
|
+
}
|
|
708
|
+
});
|
|
709
|
+
}
|
|
710
|
+
|
|
711
|
+
function getGpu(pkgname,device){
|
|
712
|
+
$.ajax({
|
|
713
|
+
url: Host + "/apm/gpu",
|
|
714
|
+
type: "GET",
|
|
715
|
+
async: true,
|
|
716
|
+
cache: false,
|
|
717
|
+
data:{
|
|
718
|
+
platform:platform,
|
|
719
|
+
pkgname:pkgname,
|
|
720
|
+
device:device
|
|
721
|
+
},
|
|
722
|
+
beforeSend: function () {
|
|
723
|
+
window.clearTimeout(timerQ);
|
|
724
|
+
},
|
|
725
|
+
success: function (data) {
|
|
726
|
+
if(stop == false){
|
|
727
|
+
console.log(data)
|
|
728
|
+
if(data['status'] == 1){
|
|
729
|
+
try {
|
|
730
|
+
var series= gpu_chart.series[0];
|
|
731
|
+
var x = (new Date()).getTime(),
|
|
732
|
+
y = data['gpu'];
|
|
733
|
+
series.addPoint([x, y], true, true);
|
|
734
|
+
timerQ = setTimeout(getGpu(pkgname, device), 1000);
|
|
735
|
+
}catch (e) {}
|
|
736
|
+
}else{
|
|
737
|
+
SwalFire('error','Something error',data['msg'],2000);
|
|
738
|
+
}
|
|
739
|
+
}
|
|
740
|
+
},
|
|
741
|
+
error: function(error){
|
|
742
|
+
SwalFire('error','Server Error','Please press [ctrl+shift+i] and provide the browser\'s error message',5000);
|
|
743
|
+
console.log(error);
|
|
744
|
+
}
|
|
745
|
+
});
|
|
746
|
+
}
|
|
747
|
+
|
|
748
|
+
function getBattery(device){
|
|
749
|
+
$.ajax({
|
|
750
|
+
url: Host + "/apm/battery",
|
|
751
|
+
type: "GET",
|
|
752
|
+
async: true,
|
|
753
|
+
cache: false,
|
|
754
|
+
data:{
|
|
755
|
+
platform:platform,
|
|
756
|
+
device:device
|
|
757
|
+
},
|
|
758
|
+
beforeSend: function () {
|
|
759
|
+
window.clearTimeout(timerQ);
|
|
760
|
+
},
|
|
761
|
+
success: function (data) {
|
|
762
|
+
if(stop == false){
|
|
763
|
+
console.log(data)
|
|
764
|
+
if(data['status'] == 1){
|
|
765
|
+
try {
|
|
766
|
+
if(platform == 'Android'){
|
|
767
|
+
var seriesLevel = battery_chart.series[0];
|
|
768
|
+
var seriesTemperature = battery_chart.series[1];
|
|
769
|
+
var x = (new Date()).getTime(),
|
|
770
|
+
y_level = data['level'],
|
|
771
|
+
y_temperature = data['temperature'];
|
|
772
|
+
seriesLevel.addPoint([x, y_level], true, true);
|
|
773
|
+
seriesTemperature.addPoint([x, y_temperature], true, true);
|
|
774
|
+
|
|
775
|
+
}else{
|
|
776
|
+
var seriesTemperature = battery_chart.series[0];
|
|
777
|
+
var seriesCurrent = battery_chart.series[1];
|
|
778
|
+
var seriesVoltage = battery_chart.series[2];
|
|
779
|
+
var seriesPower = battery_chart.series[3];
|
|
780
|
+
var x = (new Date()).getTime(),
|
|
781
|
+
y_temperature = data['temperature'];
|
|
782
|
+
y_current = data['current'];
|
|
783
|
+
y_voltage = data['voltage'];
|
|
784
|
+
y_power = data['power'];
|
|
785
|
+
seriesTemperature.addPoint([x, y_temperature], true, true);
|
|
786
|
+
seriesCurrent.addPoint([x, y_current], true, true);
|
|
787
|
+
seriesVoltage.addPoint([x, y_voltage], true, true);
|
|
788
|
+
seriesPower.addPoint([x, y_power], true, true);
|
|
789
|
+
}
|
|
790
|
+
timerQ = setTimeout(getBattery(device), 1000);
|
|
791
|
+
}catch (e) {}
|
|
792
|
+
}else{
|
|
793
|
+
SwalFire('error','Something error',data['msg'],2000);
|
|
794
|
+
}
|
|
795
|
+
}
|
|
796
|
+
},
|
|
797
|
+
error: function(error){
|
|
798
|
+
SwalFire('error','Server Error','Please press [ctrl+shift+i] and provide the browser\'s error message',5000);
|
|
799
|
+
console.log(error);
|
|
800
|
+
}
|
|
801
|
+
});
|
|
802
|
+
}
|
|
803
|
+
|
|
804
|
+
function getMemPss(pkgname,device) {
|
|
805
|
+
var process = '';
|
|
806
|
+
if(platform == 'Android'){
|
|
807
|
+
process = $('.select-pid').val()
|
|
808
|
+
}
|
|
809
|
+
$.ajax({
|
|
810
|
+
url: Host + "/apm/mem",
|
|
811
|
+
type: "GET",
|
|
812
|
+
async: true,
|
|
813
|
+
cache: false,
|
|
814
|
+
data:{
|
|
815
|
+
model:'normal',
|
|
816
|
+
platform:platform,
|
|
817
|
+
pkgname:pkgname,
|
|
818
|
+
device:device,
|
|
819
|
+
process:process
|
|
820
|
+
},
|
|
821
|
+
beforeSend: function () {
|
|
822
|
+
window.clearTimeout(timerQ);
|
|
823
|
+
},
|
|
824
|
+
success: function (data) {
|
|
825
|
+
console.log(data)
|
|
826
|
+
if(stop == false){
|
|
827
|
+
if(data['status'] == 1){
|
|
828
|
+
try {
|
|
829
|
+
if(platform == 'Android'){
|
|
830
|
+
var seriesTotal = mem_chart.series[0];
|
|
831
|
+
var seriesSwap = mem_chart.series[1];
|
|
832
|
+
var x = (new Date()).getTime(),
|
|
833
|
+
y_total = data['totalPass'],
|
|
834
|
+
y_swap = data['swapPass'];
|
|
835
|
+
seriesTotal.addPoint([x, y_total], true, true);
|
|
836
|
+
seriesSwap.addPoint([x, y_swap], true, true);
|
|
837
|
+
}else{
|
|
838
|
+
var series = mem_chart.series[0];
|
|
839
|
+
var x = (new Date()).getTime(),
|
|
840
|
+
y = data['totalPass'];
|
|
841
|
+
series.addPoint([x, y], true, true);
|
|
842
|
+
}
|
|
843
|
+
timerQ = setTimeout(getMemPss(pkgname,device), 1000);
|
|
844
|
+
|
|
845
|
+
}catch (e) {}
|
|
846
|
+
}else{
|
|
847
|
+
SwalFire('error','Something error',data['msg'],2000);
|
|
848
|
+
}
|
|
849
|
+
}
|
|
850
|
+
},
|
|
851
|
+
error: function(error){
|
|
852
|
+
SwalFire('error','Server Error','Please press [ctrl+shift+i] and provide the browser\'s error message',5000);
|
|
853
|
+
console.log(error);
|
|
854
|
+
}
|
|
855
|
+
});
|
|
856
|
+
}
|
|
857
|
+
|
|
858
|
+
function getMemDetailPss(pkgname,device) {
|
|
859
|
+
var process = $('.select-pid').val();
|
|
860
|
+
$.ajax({
|
|
861
|
+
url: Host + "/apm/mem/detail",
|
|
862
|
+
type: "GET",
|
|
863
|
+
async: true,
|
|
864
|
+
cache: false,
|
|
865
|
+
data:{
|
|
866
|
+
platform:platform,
|
|
867
|
+
pkgname:pkgname,
|
|
868
|
+
device:device,
|
|
869
|
+
process:process
|
|
870
|
+
},
|
|
871
|
+
beforeSend: function () {
|
|
872
|
+
window.clearTimeout(timerQ);
|
|
873
|
+
},
|
|
874
|
+
success: function (data) {
|
|
875
|
+
console.log(data)
|
|
876
|
+
if(stop == false){
|
|
877
|
+
if(data['status'] == 1){
|
|
878
|
+
try {
|
|
879
|
+
var seriesJava = mem_detail_chart.series[0];
|
|
880
|
+
var seriesNative = mem_detail_chart.series[1];
|
|
881
|
+
var seriesCode = mem_detail_chart.series[2];
|
|
882
|
+
var seriesStack = mem_detail_chart.series[3];
|
|
883
|
+
var seriesGraphics = mem_detail_chart.series[4];
|
|
884
|
+
var seriesPrivate = mem_detail_chart.series[5];
|
|
885
|
+
var seriesSystem = mem_detail_chart.series[6];
|
|
886
|
+
|
|
887
|
+
var x = (new Date()).getTime(),
|
|
888
|
+
y_java = data['memory_detail']['java_heap'],
|
|
889
|
+
y_native = data['memory_detail']['native_heap'];
|
|
890
|
+
y_code = data['memory_detail']['code_pss'];
|
|
891
|
+
y_stack = data['memory_detail']['stack_pss'];
|
|
892
|
+
y_graphics = data['memory_detail']['graphics_pss'];
|
|
893
|
+
y_private = data['memory_detail']['private_pss'];
|
|
894
|
+
y_system = data['memory_detail']['system_pss'];
|
|
895
|
+
|
|
896
|
+
seriesJava.addPoint([x, y_java], true, true);
|
|
897
|
+
seriesNative.addPoint([x, y_native], true, true);
|
|
898
|
+
seriesCode.addPoint([x, y_code], true, true);
|
|
899
|
+
seriesStack.addPoint([x, y_stack], true, true);
|
|
900
|
+
seriesGraphics.addPoint([x, y_graphics], true, true);
|
|
901
|
+
seriesPrivate.addPoint([x, y_private], true, true);
|
|
902
|
+
seriesSystem.addPoint([x, y_system], true, true);
|
|
903
|
+
|
|
904
|
+
timerQ = setTimeout(getMemDetailPss(pkgname,device), 1000);
|
|
905
|
+
|
|
906
|
+
}catch (e) {}
|
|
907
|
+
}else{
|
|
908
|
+
SwalFire('error','Something error',data['msg'],2000);
|
|
909
|
+
}
|
|
910
|
+
}
|
|
911
|
+
},
|
|
912
|
+
error: function(error){
|
|
913
|
+
SwalFire('error','Server Error','Please press [ctrl+shift+i] and provide the browser\'s error message',5000);
|
|
914
|
+
console.log(error);
|
|
915
|
+
}
|
|
916
|
+
});
|
|
917
|
+
}
|
|
918
|
+
|
|
919
|
+
function setDisk(device){
|
|
920
|
+
$.ajax({
|
|
921
|
+
url: Host + "/apm/set/disk",
|
|
922
|
+
type: "GET",
|
|
923
|
+
async: true,
|
|
924
|
+
cache: false,
|
|
925
|
+
data:{
|
|
926
|
+
platform:platform,
|
|
927
|
+
device:device
|
|
928
|
+
},
|
|
929
|
+
success: function (data) {
|
|
930
|
+
if(data['status'] != 1){
|
|
931
|
+
SwalFire('error','Something error',data['msg'],2000);
|
|
932
|
+
}
|
|
933
|
+
},
|
|
934
|
+
error: function(error){
|
|
935
|
+
SwalFire('error','Server Error','Please press [ctrl+shift+i] and provide the browser\'s error message',5000);
|
|
936
|
+
console.log(error);
|
|
937
|
+
}
|
|
938
|
+
});
|
|
939
|
+
}
|
|
940
|
+
|
|
941
|
+
function setThermal(device){
|
|
942
|
+
$.ajax({
|
|
943
|
+
url: Host + "/apm/set/thermal",
|
|
944
|
+
type: "GET",
|
|
945
|
+
async: true,
|
|
946
|
+
cache: false,
|
|
947
|
+
data:{
|
|
948
|
+
platform:platform,
|
|
949
|
+
device:device
|
|
950
|
+
},
|
|
951
|
+
beforeSend: function () {
|
|
952
|
+
if(lan == 'cn' ){
|
|
953
|
+
SwalLoading('初始化温度传感器','正在保存温度传感器的初始值,请您稍等!');
|
|
954
|
+
}else{
|
|
955
|
+
SwalLoading('Thermal initialization!','Initializing thermal environment, please wait a moment.');
|
|
956
|
+
}
|
|
957
|
+
},
|
|
958
|
+
success: function (data) {
|
|
959
|
+
if(data['status'] != 1){
|
|
960
|
+
SwalFire('error','Something error',data['msg'],2000);
|
|
961
|
+
}
|
|
962
|
+
swal.close();
|
|
963
|
+
},
|
|
964
|
+
error: function(error){
|
|
965
|
+
SwalFire('error','Server Error','Please press [ctrl+shift+i] and provide the browser\'s error message',5000);
|
|
966
|
+
console.log(error);
|
|
967
|
+
}
|
|
968
|
+
});
|
|
969
|
+
}
|
|
970
|
+
|
|
971
|
+
function setNetWork(type,device,pkgname,net_switch){
|
|
972
|
+
var process = '';
|
|
973
|
+
if(platform == 'Android'){
|
|
974
|
+
process = $('.select-pid').val()
|
|
975
|
+
}
|
|
976
|
+
$.ajax({
|
|
977
|
+
url: Host + "/apm/set/network",
|
|
978
|
+
type: "GET",
|
|
979
|
+
async: true,
|
|
980
|
+
cache: false,
|
|
981
|
+
data:{
|
|
982
|
+
platform:platform,
|
|
983
|
+
pkgname:pkgname,
|
|
984
|
+
device:device,
|
|
985
|
+
wifi_switch: net_switch,
|
|
986
|
+
type: type,
|
|
987
|
+
process:process
|
|
988
|
+
},
|
|
989
|
+
success: function (data) {
|
|
990
|
+
if(data['status'] != 1){
|
|
991
|
+
SwalFire('error','Something error',data['msg'],2000);
|
|
992
|
+
}
|
|
993
|
+
},
|
|
994
|
+
error: function(error){
|
|
995
|
+
SwalFire('error','Server Error','Please press [ctrl+shift+i] and provide the browser\'s error message',5000);
|
|
996
|
+
console.log(error);
|
|
997
|
+
}
|
|
998
|
+
});
|
|
999
|
+
}
|
|
1000
|
+
|
|
1001
|
+
function getNetWork(pkgname,device,net_switch) {
|
|
1002
|
+
var process = '';
|
|
1003
|
+
if(platform == 'Android'){
|
|
1004
|
+
process = $('.select-pid').val()
|
|
1005
|
+
}
|
|
1006
|
+
$.ajax({
|
|
1007
|
+
url: Host + "/apm/network",
|
|
1008
|
+
type: "GET",
|
|
1009
|
+
async: true,
|
|
1010
|
+
cache: false,
|
|
1011
|
+
data:{
|
|
1012
|
+
model:'normal',
|
|
1013
|
+
platform:platform,
|
|
1014
|
+
pkgname:pkgname,
|
|
1015
|
+
device:device,
|
|
1016
|
+
wifi_switch: net_switch,
|
|
1017
|
+
process:process
|
|
1018
|
+
},
|
|
1019
|
+
beforeSend: function () {
|
|
1020
|
+
window.clearTimeout(timerQ);
|
|
1021
|
+
},
|
|
1022
|
+
success: function (data) {
|
|
1023
|
+
if(stop == false){
|
|
1024
|
+
if(data['status'] == 1){
|
|
1025
|
+
try {
|
|
1026
|
+
var seriesUpFlow = network_chart.series[0];
|
|
1027
|
+
var seriesDownFlow = network_chart.series[1];
|
|
1028
|
+
var x_up = (new Date()).getTime(),
|
|
1029
|
+
y_up = data['upflow'];
|
|
1030
|
+
var x_down = (new Date()).getTime(),
|
|
1031
|
+
y_down = data['downflow'];
|
|
1032
|
+
seriesUpFlow.addPoint([x_up, y_up], true, true);
|
|
1033
|
+
seriesDownFlow.addPoint([x_down, y_down], true, true);
|
|
1034
|
+
timerQ = setTimeout(getNetWork(pkgname,device,net_switch), 1000);
|
|
1035
|
+
}catch (e) {
|
|
1036
|
+
console.log(e)
|
|
1037
|
+
}
|
|
1038
|
+
}else{
|
|
1039
|
+
SwalFire('error','Something error',data['msg'],2000);
|
|
1040
|
+
}
|
|
1041
|
+
}
|
|
1042
|
+
},
|
|
1043
|
+
error: function(error){
|
|
1044
|
+
SwalFire('error','Server Error','Please press [ctrl+shift+i] and provide the browser\'s error message',5000);
|
|
1045
|
+
console.log(error);
|
|
1046
|
+
}
|
|
1047
|
+
});
|
|
1048
|
+
}
|
|
1049
|
+
|
|
1050
|
+
function getFps(pkgname,device,fps_switch) {
|
|
1051
|
+
$.ajax({
|
|
1052
|
+
url: Host + "/apm/fps",
|
|
1053
|
+
type: "GET",
|
|
1054
|
+
async: true,
|
|
1055
|
+
cache: false,
|
|
1056
|
+
data:{
|
|
1057
|
+
model:'normal',
|
|
1058
|
+
platform:platform,
|
|
1059
|
+
pkgname:pkgname,
|
|
1060
|
+
device:device,
|
|
1061
|
+
surv:fps_switch
|
|
1062
|
+
},
|
|
1063
|
+
beforeSend: function () {
|
|
1064
|
+
window.clearTimeout(timerQ);
|
|
1065
|
+
},
|
|
1066
|
+
success: function (data) {
|
|
1067
|
+
console.log(data)
|
|
1068
|
+
if(stop == false){
|
|
1069
|
+
if(data['status'] == 1){
|
|
1070
|
+
try {
|
|
1071
|
+
let seriesFps = fps_chart.series[0];
|
|
1072
|
+
let x_fps = (new Date()).getTime(),
|
|
1073
|
+
y_fps = data['fps'];
|
|
1074
|
+
seriesFps.addPoint([x_fps, y_fps], true, true);
|
|
1075
|
+
if(platform == 'Android'){
|
|
1076
|
+
let seriesJank = fps_chart.series[1];
|
|
1077
|
+
let x_jsnk = (new Date()).getTime(),
|
|
1078
|
+
y_jank = data['jank'];
|
|
1079
|
+
seriesJank.addPoint([x_jsnk, y_jank], true, true);
|
|
1080
|
+
}
|
|
1081
|
+
timerQ = setTimeout(getFps(pkgname,device,fps_switch), 1000);
|
|
1082
|
+
}catch (e) {}
|
|
1083
|
+
}else{
|
|
1084
|
+
SwalFire('error','Something error',data['msg'],2000);
|
|
1085
|
+
}
|
|
1086
|
+
}
|
|
1087
|
+
},
|
|
1088
|
+
error: function(error){
|
|
1089
|
+
SwalFire('error','Server Error','Please press [ctrl+shift+i] and provide the browser\'s error message',5000);
|
|
1090
|
+
console.log(error);
|
|
1091
|
+
}
|
|
1092
|
+
});
|
|
1093
|
+
}
|
|
1094
|
+
|
|
1095
|
+
function getDisk(device) {
|
|
1096
|
+
$.ajax({
|
|
1097
|
+
url: Host + "/apm/disk",
|
|
1098
|
+
type: "GET",
|
|
1099
|
+
async: true,
|
|
1100
|
+
cache: false,
|
|
1101
|
+
data:{
|
|
1102
|
+
platform:platform,
|
|
1103
|
+
device:device
|
|
1104
|
+
},
|
|
1105
|
+
beforeSend: function () {
|
|
1106
|
+
window.clearTimeout(timerQ);
|
|
1107
|
+
},
|
|
1108
|
+
success: function (data) {
|
|
1109
|
+
if(stop == false){
|
|
1110
|
+
if(data['status'] == 1){
|
|
1111
|
+
try {
|
|
1112
|
+
let seriesUsedDisk = disk_chart.series[0];
|
|
1113
|
+
let seriesFreeDisk = disk_chart.series[1];
|
|
1114
|
+
let x_used = (new Date()).getTime(),
|
|
1115
|
+
y_used = data['used'];
|
|
1116
|
+
let x_free = (new Date()).getTime(),
|
|
1117
|
+
y_free = data['free'];
|
|
1118
|
+
seriesUsedDisk.addPoint([x_used, y_used], true, true);
|
|
1119
|
+
seriesFreeDisk.addPoint([x_free, y_free], true, true);
|
|
1120
|
+
timerQ = setTimeout(getDisk(device), 3000);
|
|
1121
|
+
}catch (e) {
|
|
1122
|
+
console.log(e)
|
|
1123
|
+
}
|
|
1124
|
+
}else{
|
|
1125
|
+
SwalFire('error','Something error',data['msg'],2000);
|
|
1126
|
+
}
|
|
1127
|
+
}
|
|
1128
|
+
},
|
|
1129
|
+
error: function(error){
|
|
1130
|
+
SwalFire('error','Server Error','Please press [ctrl+shift+i] and provide the browser\'s error message',5000);
|
|
1131
|
+
console.log(error);
|
|
1132
|
+
}
|
|
1133
|
+
});
|
|
1134
|
+
}
|
|
1135
|
+
|
|
1136
|
+
function getEnergy(pkgname,device) {
|
|
1137
|
+
$.ajax({
|
|
1138
|
+
url: Host + "/apm/energy",
|
|
1139
|
+
type: "GET",
|
|
1140
|
+
async: true,
|
|
1141
|
+
cache: false,
|
|
1142
|
+
data:{
|
|
1143
|
+
platform:platform,
|
|
1144
|
+
device:device,
|
|
1145
|
+
pkgname:pkgname
|
|
1146
|
+
},
|
|
1147
|
+
beforeSend: function () {
|
|
1148
|
+
window.clearTimeout(timerQ);
|
|
1149
|
+
},
|
|
1150
|
+
success: function (data) {
|
|
1151
|
+
if(stop == false){
|
|
1152
|
+
if(data['status'] == 1){
|
|
1153
|
+
try {
|
|
1154
|
+
let seriesGpuCost = energy_chart.series[0];
|
|
1155
|
+
let seriesCpuCost = energy_chart.series[1];
|
|
1156
|
+
let seriesDisplayCost = energy_chart.series[2];
|
|
1157
|
+
let seriesLocationCost = energy_chart.series[3];
|
|
1158
|
+
let seriesNetworkCost = energy_chart.series[4];
|
|
1159
|
+
let seriesTotalCost = energy_chart.series[5];
|
|
1160
|
+
let seriesTotalOverhead = energy_chart.series[6];
|
|
1161
|
+
let x = (new Date()).getTime(),
|
|
1162
|
+
y_GpuCost = data['value']['energy.gpu.cost'];
|
|
1163
|
+
y_CpuCost = data['value']['energy.cpu.cost'];
|
|
1164
|
+
y_DisplayCost = data['value']['energy.display.cost'];
|
|
1165
|
+
y_LocationCost = data['value']['energy.location.cost'];
|
|
1166
|
+
y_NetworkCost = data['value']['energy.networking.cost'];
|
|
1167
|
+
y_TotalCost = data['value']['energy.cost'];
|
|
1168
|
+
y_TotalOverhead = data['value']['energy.overhead'];
|
|
1169
|
+
seriesGpuCost.addPoint([x, y_GpuCost], true, true);
|
|
1170
|
+
seriesCpuCost.addPoint([x, y_CpuCost], true, true);
|
|
1171
|
+
seriesDisplayCost.addPoint([x, y_DisplayCost], true, true);
|
|
1172
|
+
seriesLocationCost.addPoint([x, y_LocationCost], true, true);
|
|
1173
|
+
seriesNetworkCost.addPoint([x, y_NetworkCost], true, true);
|
|
1174
|
+
seriesTotalCost.addPoint([x, y_TotalCost], true, true);
|
|
1175
|
+
seriesTotalOverhead.addPoint([x, y_TotalOverhead], true, true);
|
|
1176
|
+
timerQ = setTimeout(getEnergy(pkgname,device), 2000);
|
|
1177
|
+
}catch (e) {
|
|
1178
|
+
console.log(e)
|
|
1179
|
+
}
|
|
1180
|
+
}else{
|
|
1181
|
+
SwalFire('error','Something error',data['msg'],2000);
|
|
1182
|
+
}
|
|
1183
|
+
}
|
|
1184
|
+
},
|
|
1185
|
+
error: function(error){
|
|
1186
|
+
SwalFire('error','Server Error','Please press [ctrl+shift+i] and provide the browser\'s error message',5000);
|
|
1187
|
+
console.log(error);
|
|
1188
|
+
}
|
|
1189
|
+
});
|
|
1190
|
+
}
|
|
1191
|
+
|
|
1192
|
+
function initCpuCoresSeries(){
|
|
1193
|
+
var cores_array = new Array()
|
|
1194
|
+
try{
|
|
1195
|
+
console.log(cores_num)
|
|
1196
|
+
if(cores_num > 0){
|
|
1197
|
+
var array = Array.from({ length: cores_num }, (_, i) => i)
|
|
1198
|
+
array.forEach(element => {
|
|
1199
|
+
cores_array.push('cpu'+element.toString())
|
|
1200
|
+
})
|
|
1201
|
+
}else{
|
|
1202
|
+
cores_array = ['cpu0','cpu1','cpu2','cpu3','cpu4','cpu5','cpu6','cpu7']
|
|
1203
|
+
}
|
|
1204
|
+
}
|
|
1205
|
+
catch{
|
|
1206
|
+
cores_array = ['cpu0','cpu1','cpu2','cpu3','cpu4','cpu5','cpu6','cpu7']
|
|
1207
|
+
}
|
|
1208
|
+
console.log(cores_array)
|
|
1209
|
+
return cores_array
|
|
1210
|
+
}
|
|
1211
|
+
|
|
1212
|
+
var rangeSelector = {
|
|
1213
|
+
buttons: [{
|
|
1214
|
+
count: 1,
|
|
1215
|
+
type: 'minute',
|
|
1216
|
+
text: '1min'
|
|
1217
|
+
}, {
|
|
1218
|
+
count: 5,
|
|
1219
|
+
type: 'minute',
|
|
1220
|
+
text: '5min'
|
|
1221
|
+
}, {
|
|
1222
|
+
type: 'all',
|
|
1223
|
+
text: 'All'
|
|
1224
|
+
}],
|
|
1225
|
+
inputEnabled: false,
|
|
1226
|
+
selected: 0
|
|
1227
|
+
};
|
|
1228
|
+
|
|
1229
|
+
|
|
1230
|
+
var series = [{
|
|
1231
|
+
name : 'value',
|
|
1232
|
+
pointInterval: 120 * 1000,
|
|
1233
|
+
data : (function () {
|
|
1234
|
+
var data = [], time = (new Date()).getTime(), i;
|
|
1235
|
+
for (i = -999; i <= 0; i += 1) {
|
|
1236
|
+
data.push([
|
|
1237
|
+
time + i * 1000,
|
|
1238
|
+
Math.round(0)
|
|
1239
|
+
]);
|
|
1240
|
+
}
|
|
1241
|
+
return data;
|
|
1242
|
+
}())
|
|
1243
|
+
}];
|
|
1244
|
+
|
|
1245
|
+
var seriesCpuCore = new Array()
|
|
1246
|
+
|
|
1247
|
+
initCpuCoresSeries().forEach(element => {
|
|
1248
|
+
seriesCpuCore.push({
|
|
1249
|
+
name : element,
|
|
1250
|
+
pointInterval: 120 * 1000,
|
|
1251
|
+
data : (function () {
|
|
1252
|
+
var data = [], time = (new Date()).getTime(), i;
|
|
1253
|
+
for (i = -999; i <= 0; i += 1) {
|
|
1254
|
+
data.push([
|
|
1255
|
+
time + i * 1000,
|
|
1256
|
+
Math.round(0)
|
|
1257
|
+
]);
|
|
1258
|
+
}
|
|
1259
|
+
return data;
|
|
1260
|
+
}())
|
|
1261
|
+
})
|
|
1262
|
+
})
|
|
1263
|
+
|
|
1264
|
+
console.log(seriesCpuCore)
|
|
1265
|
+
|
|
1266
|
+
var seriesNet = [{
|
|
1267
|
+
name : 'send',
|
|
1268
|
+
pointInterval: 120 * 1000,
|
|
1269
|
+
data : (function () {
|
|
1270
|
+
var data = [], time = (new Date()).getTime(), i;
|
|
1271
|
+
for (i = -999; i <= 0; i += 1) {
|
|
1272
|
+
data.push([
|
|
1273
|
+
time + i * 1000,
|
|
1274
|
+
Math.round(0)
|
|
1275
|
+
]);
|
|
1276
|
+
}
|
|
1277
|
+
return data;
|
|
1278
|
+
}())
|
|
1279
|
+
},{
|
|
1280
|
+
name : 'recieve',
|
|
1281
|
+
pointInterval: 120 * 1000,
|
|
1282
|
+
data : (function () {
|
|
1283
|
+
var data = [], time = (new Date()).getTime(), i;
|
|
1284
|
+
for (i = -999; i <= 0; i += 1) {
|
|
1285
|
+
data.push([
|
|
1286
|
+
time + i * 1000,
|
|
1287
|
+
Math.round(0)
|
|
1288
|
+
]);
|
|
1289
|
+
}
|
|
1290
|
+
return data;
|
|
1291
|
+
}())
|
|
1292
|
+
}];
|
|
1293
|
+
|
|
1294
|
+
var seriesDisk = [{
|
|
1295
|
+
name : 'used',
|
|
1296
|
+
pointInterval: 120 * 1000,
|
|
1297
|
+
data : (function () {
|
|
1298
|
+
var data = [], time = (new Date()).getTime(), i;
|
|
1299
|
+
for (i = -999; i <= 0; i += 1) {
|
|
1300
|
+
data.push([
|
|
1301
|
+
time + i * 1000,
|
|
1302
|
+
Math.round(0)
|
|
1303
|
+
]);
|
|
1304
|
+
}
|
|
1305
|
+
return data;
|
|
1306
|
+
}())
|
|
1307
|
+
},{
|
|
1308
|
+
name : 'free',
|
|
1309
|
+
pointInterval: 120 * 1000,
|
|
1310
|
+
data : (function () {
|
|
1311
|
+
var data = [], time = (new Date()).getTime(), i;
|
|
1312
|
+
for (i = -999; i <= 0; i += 1) {
|
|
1313
|
+
data.push([
|
|
1314
|
+
time + i * 1000,
|
|
1315
|
+
Math.round(0)
|
|
1316
|
+
]);
|
|
1317
|
+
}
|
|
1318
|
+
return data;
|
|
1319
|
+
}())
|
|
1320
|
+
}];
|
|
1321
|
+
|
|
1322
|
+
var seriesCpu = [{
|
|
1323
|
+
name : 'app',
|
|
1324
|
+
pointInterval: 120 * 1000,
|
|
1325
|
+
data : (function () {
|
|
1326
|
+
var data = [], time = (new Date()).getTime(), i;
|
|
1327
|
+
for (i = -999; i <= 0; i += 1) {
|
|
1328
|
+
data.push([
|
|
1329
|
+
time + i * 1000,
|
|
1330
|
+
Math.round(0)
|
|
1331
|
+
]);
|
|
1332
|
+
}
|
|
1333
|
+
return data;
|
|
1334
|
+
}())
|
|
1335
|
+
},{
|
|
1336
|
+
name : 'total',
|
|
1337
|
+
pointInterval: 120 * 1000,
|
|
1338
|
+
data : (function () {
|
|
1339
|
+
var data = [], time = (new Date()).getTime(), i;
|
|
1340
|
+
for (i = -999; i <= 0; i += 1) {
|
|
1341
|
+
data.push([
|
|
1342
|
+
time + i * 1000,
|
|
1343
|
+
Math.round(0)
|
|
1344
|
+
]);
|
|
1345
|
+
}
|
|
1346
|
+
return data;
|
|
1347
|
+
}())
|
|
1348
|
+
}];
|
|
1349
|
+
|
|
1350
|
+
var seriesMem = [{
|
|
1351
|
+
name : 'total',
|
|
1352
|
+
pointInterval: 120 * 1000,
|
|
1353
|
+
data : (function () {
|
|
1354
|
+
var data = [], time = (new Date()).getTime(), i;
|
|
1355
|
+
for (i = -999; i <= 0; i += 1) {
|
|
1356
|
+
data.push([
|
|
1357
|
+
time + i * 1000,
|
|
1358
|
+
Math.round(0)
|
|
1359
|
+
]);
|
|
1360
|
+
}
|
|
1361
|
+
return data;
|
|
1362
|
+
}())
|
|
1363
|
+
},{
|
|
1364
|
+
name : 'swap',
|
|
1365
|
+
pointInterval: 120 * 1000,
|
|
1366
|
+
data : (function () {
|
|
1367
|
+
var data = [], time = (new Date()).getTime(), i;
|
|
1368
|
+
for (i = -999; i <= 0; i += 1) {
|
|
1369
|
+
data.push([
|
|
1370
|
+
time + i * 1000,
|
|
1371
|
+
Math.round(0)
|
|
1372
|
+
]);
|
|
1373
|
+
}
|
|
1374
|
+
return data;
|
|
1375
|
+
}())
|
|
1376
|
+
}];
|
|
1377
|
+
|
|
1378
|
+
var seriesMemDetail = [{
|
|
1379
|
+
name : 'java',
|
|
1380
|
+
pointInterval: 120 * 1000,
|
|
1381
|
+
data : (function () {
|
|
1382
|
+
var data = [], time = (new Date()).getTime(), i;
|
|
1383
|
+
for (i = -999; i <= 0; i += 1) {
|
|
1384
|
+
data.push([
|
|
1385
|
+
time + i * 1000,
|
|
1386
|
+
Math.round(0)
|
|
1387
|
+
]);
|
|
1388
|
+
}
|
|
1389
|
+
return data;
|
|
1390
|
+
}())
|
|
1391
|
+
},{
|
|
1392
|
+
name : 'native',
|
|
1393
|
+
pointInterval: 120 * 1000,
|
|
1394
|
+
data : (function () {
|
|
1395
|
+
var data = [], time = (new Date()).getTime(), i;
|
|
1396
|
+
for (i = -999; i <= 0; i += 1) {
|
|
1397
|
+
data.push([
|
|
1398
|
+
time + i * 1000,
|
|
1399
|
+
Math.round(0)
|
|
1400
|
+
]);
|
|
1401
|
+
}
|
|
1402
|
+
return data;
|
|
1403
|
+
}())
|
|
1404
|
+
},{
|
|
1405
|
+
name : 'code',
|
|
1406
|
+
pointInterval: 120 * 1000,
|
|
1407
|
+
data : (function () {
|
|
1408
|
+
var data = [], time = (new Date()).getTime(), i;
|
|
1409
|
+
for (i = -999; i <= 0; i += 1) {
|
|
1410
|
+
data.push([
|
|
1411
|
+
time + i * 1000,
|
|
1412
|
+
Math.round(0)
|
|
1413
|
+
]);
|
|
1414
|
+
}
|
|
1415
|
+
return data;
|
|
1416
|
+
}())
|
|
1417
|
+
},{
|
|
1418
|
+
name : 'stack',
|
|
1419
|
+
pointInterval: 120 * 1000,
|
|
1420
|
+
data : (function () {
|
|
1421
|
+
var data = [], time = (new Date()).getTime(), i;
|
|
1422
|
+
for (i = -999; i <= 0; i += 1) {
|
|
1423
|
+
data.push([
|
|
1424
|
+
time + i * 1000,
|
|
1425
|
+
Math.round(0)
|
|
1426
|
+
]);
|
|
1427
|
+
}
|
|
1428
|
+
return data;
|
|
1429
|
+
}())
|
|
1430
|
+
},{
|
|
1431
|
+
name : 'graphics',
|
|
1432
|
+
pointInterval: 120 * 1000,
|
|
1433
|
+
data : (function () {
|
|
1434
|
+
var data = [], time = (new Date()).getTime(), i;
|
|
1435
|
+
for (i = -999; i <= 0; i += 1) {
|
|
1436
|
+
data.push([
|
|
1437
|
+
time + i * 1000,
|
|
1438
|
+
Math.round(0)
|
|
1439
|
+
]);
|
|
1440
|
+
}
|
|
1441
|
+
return data;
|
|
1442
|
+
}())
|
|
1443
|
+
},{
|
|
1444
|
+
name : 'private',
|
|
1445
|
+
pointInterval: 120 * 1000,
|
|
1446
|
+
data : (function () {
|
|
1447
|
+
var data = [], time = (new Date()).getTime(), i;
|
|
1448
|
+
for (i = -999; i <= 0; i += 1) {
|
|
1449
|
+
data.push([
|
|
1450
|
+
time + i * 1000,
|
|
1451
|
+
Math.round(0)
|
|
1452
|
+
]);
|
|
1453
|
+
}
|
|
1454
|
+
return data;
|
|
1455
|
+
}())
|
|
1456
|
+
},{
|
|
1457
|
+
name : 'system',
|
|
1458
|
+
pointInterval: 120 * 1000,
|
|
1459
|
+
data : (function () {
|
|
1460
|
+
var data = [], time = (new Date()).getTime(), i;
|
|
1461
|
+
for (i = -999; i <= 0; i += 1) {
|
|
1462
|
+
data.push([
|
|
1463
|
+
time + i * 1000,
|
|
1464
|
+
Math.round(0)
|
|
1465
|
+
]);
|
|
1466
|
+
}
|
|
1467
|
+
return data;
|
|
1468
|
+
}())
|
|
1469
|
+
}];
|
|
1470
|
+
|
|
1471
|
+
var seriesBettery = [{
|
|
1472
|
+
name : 'level',
|
|
1473
|
+
pointInterval: 120 * 1000,
|
|
1474
|
+
data : (function () {
|
|
1475
|
+
var data = [], time = (new Date()).getTime(), i;
|
|
1476
|
+
for (i = -999; i <= 0; i += 1) {
|
|
1477
|
+
data.push([
|
|
1478
|
+
time + i * 1000,
|
|
1479
|
+
Math.round(0)
|
|
1480
|
+
]);
|
|
1481
|
+
}
|
|
1482
|
+
return data;
|
|
1483
|
+
}())
|
|
1484
|
+
},{
|
|
1485
|
+
name : 'temperature',
|
|
1486
|
+
pointInterval: 120 * 1000,
|
|
1487
|
+
data : (function () {
|
|
1488
|
+
var data = [], time = (new Date()).getTime(), i;
|
|
1489
|
+
for (i = -999; i <= 0; i += 1) {
|
|
1490
|
+
data.push([
|
|
1491
|
+
time + i * 1000,
|
|
1492
|
+
Math.round(0)
|
|
1493
|
+
]);
|
|
1494
|
+
}
|
|
1495
|
+
return data;
|
|
1496
|
+
}())
|
|
1497
|
+
}];
|
|
1498
|
+
|
|
1499
|
+
var seriesiOSBettery = [{
|
|
1500
|
+
name : 'temperature',
|
|
1501
|
+
pointInterval: 120 * 1000,
|
|
1502
|
+
data : (function () {
|
|
1503
|
+
var data = [], time = (new Date()).getTime(), i;
|
|
1504
|
+
for (i = -999; i <= 0; i += 1) {
|
|
1505
|
+
data.push([
|
|
1506
|
+
time + i * 1000,
|
|
1507
|
+
Math.round(0)
|
|
1508
|
+
]);
|
|
1509
|
+
}
|
|
1510
|
+
return data;
|
|
1511
|
+
}())
|
|
1512
|
+
},{
|
|
1513
|
+
name : 'current',
|
|
1514
|
+
pointInterval: 120 * 1000,
|
|
1515
|
+
data : (function () {
|
|
1516
|
+
var data = [], time = (new Date()).getTime(), i;
|
|
1517
|
+
for (i = -999; i <= 0; i += 1) {
|
|
1518
|
+
data.push([
|
|
1519
|
+
time + i * 1000,
|
|
1520
|
+
Math.round(0)
|
|
1521
|
+
]);
|
|
1522
|
+
}
|
|
1523
|
+
return data;
|
|
1524
|
+
}())
|
|
1525
|
+
},{
|
|
1526
|
+
name : 'voltage',
|
|
1527
|
+
pointInterval: 120 * 1000,
|
|
1528
|
+
data : (function () {
|
|
1529
|
+
var data = [], time = (new Date()).getTime(), i;
|
|
1530
|
+
for (i = -999; i <= 0; i += 1) {
|
|
1531
|
+
data.push([
|
|
1532
|
+
time + i * 1000,
|
|
1533
|
+
Math.round(0)
|
|
1534
|
+
]);
|
|
1535
|
+
}
|
|
1536
|
+
return data;
|
|
1537
|
+
}())
|
|
1538
|
+
},{
|
|
1539
|
+
name : 'power',
|
|
1540
|
+
pointInterval: 120 * 1000,
|
|
1541
|
+
data : (function () {
|
|
1542
|
+
var data = [], time = (new Date()).getTime(), i;
|
|
1543
|
+
for (i = -999; i <= 0; i += 1) {
|
|
1544
|
+
data.push([
|
|
1545
|
+
time + i * 1000,
|
|
1546
|
+
Math.round(0)
|
|
1547
|
+
]);
|
|
1548
|
+
}
|
|
1549
|
+
return data;
|
|
1550
|
+
}())
|
|
1551
|
+
}];
|
|
1552
|
+
|
|
1553
|
+
var seriesFps = [{
|
|
1554
|
+
name : 'fps',
|
|
1555
|
+
pointInterval: 120 * 1000,
|
|
1556
|
+
data : (function () {
|
|
1557
|
+
var data = [], time = (new Date()).getTime(), i;
|
|
1558
|
+
for (i = -999; i <= 0; i += 1) {
|
|
1559
|
+
data.push([
|
|
1560
|
+
time + i * 1000,
|
|
1561
|
+
Math.round(0)
|
|
1562
|
+
]);
|
|
1563
|
+
}
|
|
1564
|
+
return data;
|
|
1565
|
+
}())
|
|
1566
|
+
},{
|
|
1567
|
+
name : 'jank',
|
|
1568
|
+
pointInterval: 120 * 1000,
|
|
1569
|
+
data : (function () {
|
|
1570
|
+
var data = [], time = (new Date()).getTime(), i;
|
|
1571
|
+
for (i = -999; i <= 0; i += 1) {
|
|
1572
|
+
data.push([
|
|
1573
|
+
time + i * 1000,
|
|
1574
|
+
Math.round(0)
|
|
1575
|
+
]);
|
|
1576
|
+
}
|
|
1577
|
+
return data;
|
|
1578
|
+
}())
|
|
1579
|
+
}];
|
|
1580
|
+
|
|
1581
|
+
var seriesFpsbyiOS = [{
|
|
1582
|
+
name : 'fps',
|
|
1583
|
+
pointInterval: 120 * 1000,
|
|
1584
|
+
data : (function () {
|
|
1585
|
+
var data = [], time = (new Date()).getTime(), i;
|
|
1586
|
+
for (i = -999; i <= 0; i += 1) {
|
|
1587
|
+
data.push([
|
|
1588
|
+
time + i * 1000,
|
|
1589
|
+
Math.round(0)
|
|
1590
|
+
]);
|
|
1591
|
+
}
|
|
1592
|
+
return data;
|
|
1593
|
+
}())
|
|
1594
|
+
}];
|
|
1595
|
+
|
|
1596
|
+
var seriesEnergy = [{
|
|
1597
|
+
name : 'gpu',
|
|
1598
|
+
pointInterval: 120 * 1000,
|
|
1599
|
+
data : (function () {
|
|
1600
|
+
var data = [], time = (new Date()).getTime(), i;
|
|
1601
|
+
for (i = -999; i <= 0; i += 1) {
|
|
1602
|
+
data.push([
|
|
1603
|
+
time + i * 1000,
|
|
1604
|
+
Math.round(0)
|
|
1605
|
+
]);
|
|
1606
|
+
}
|
|
1607
|
+
return data;
|
|
1608
|
+
}())
|
|
1609
|
+
},{
|
|
1610
|
+
name : 'cpu',
|
|
1611
|
+
pointInterval: 120 * 1000,
|
|
1612
|
+
data : (function () {
|
|
1613
|
+
var data = [], time = (new Date()).getTime(), i;
|
|
1614
|
+
for (i = -999; i <= 0; i += 1) {
|
|
1615
|
+
data.push([
|
|
1616
|
+
time + i * 1000,
|
|
1617
|
+
Math.round(0)
|
|
1618
|
+
]);
|
|
1619
|
+
}
|
|
1620
|
+
return data;
|
|
1621
|
+
}())
|
|
1622
|
+
},{
|
|
1623
|
+
name : 'display',
|
|
1624
|
+
pointInterval: 120 * 1000,
|
|
1625
|
+
data : (function () {
|
|
1626
|
+
var data = [], time = (new Date()).getTime(), i;
|
|
1627
|
+
for (i = -999; i <= 0; i += 1) {
|
|
1628
|
+
data.push([
|
|
1629
|
+
time + i * 1000,
|
|
1630
|
+
Math.round(0)
|
|
1631
|
+
]);
|
|
1632
|
+
}
|
|
1633
|
+
return data;
|
|
1634
|
+
}())
|
|
1635
|
+
},{
|
|
1636
|
+
name : 'location',
|
|
1637
|
+
pointInterval: 120 * 1000,
|
|
1638
|
+
data : (function () {
|
|
1639
|
+
var data = [], time = (new Date()).getTime(), i;
|
|
1640
|
+
for (i = -999; i <= 0; i += 1) {
|
|
1641
|
+
data.push([
|
|
1642
|
+
time + i * 1000,
|
|
1643
|
+
Math.round(0)
|
|
1644
|
+
]);
|
|
1645
|
+
}
|
|
1646
|
+
return data;
|
|
1647
|
+
}())
|
|
1648
|
+
},{
|
|
1649
|
+
name : 'networking',
|
|
1650
|
+
pointInterval: 120 * 1000,
|
|
1651
|
+
data : (function () {
|
|
1652
|
+
var data = [], time = (new Date()).getTime(), i;
|
|
1653
|
+
for (i = -999; i <= 0; i += 1) {
|
|
1654
|
+
data.push([
|
|
1655
|
+
time + i * 1000,
|
|
1656
|
+
Math.round(0)
|
|
1657
|
+
]);
|
|
1658
|
+
}
|
|
1659
|
+
return data;
|
|
1660
|
+
}())
|
|
1661
|
+
},{
|
|
1662
|
+
name : 'total cost',
|
|
1663
|
+
pointInterval: 120 * 1000,
|
|
1664
|
+
data : (function () {
|
|
1665
|
+
var data = [], time = (new Date()).getTime(), i;
|
|
1666
|
+
for (i = -999; i <= 0; i += 1) {
|
|
1667
|
+
data.push([
|
|
1668
|
+
time + i * 1000,
|
|
1669
|
+
Math.round(0)
|
|
1670
|
+
]);
|
|
1671
|
+
}
|
|
1672
|
+
return data;
|
|
1673
|
+
}())
|
|
1674
|
+
},{
|
|
1675
|
+
name : 'total overhead',
|
|
1676
|
+
pointInterval: 120 * 1000,
|
|
1677
|
+
data : (function () {
|
|
1678
|
+
var data = [], time = (new Date()).getTime(), i;
|
|
1679
|
+
for (i = -999; i <= 0; i += 1) {
|
|
1680
|
+
data.push([
|
|
1681
|
+
time + i * 1000,
|
|
1682
|
+
Math.round(0)
|
|
1683
|
+
]);
|
|
1684
|
+
}
|
|
1685
|
+
return data;
|
|
1686
|
+
}())
|
|
1687
|
+
}];
|
|
1688
|
+
|
|
1689
|
+
function setPlotLine(target) {
|
|
1690
|
+
var value = 0;
|
|
1691
|
+
switch (target) {
|
|
1692
|
+
case 'cpu':
|
|
1693
|
+
value = parseInt($('#cpu_warning_value').val());
|
|
1694
|
+
break;
|
|
1695
|
+
case 'mem':
|
|
1696
|
+
value = parseInt($('#mem_warning_value').val());
|
|
1697
|
+
break;
|
|
1698
|
+
case 'fps':
|
|
1699
|
+
value = parseInt($('#fps_warning_value').val());
|
|
1700
|
+
break;
|
|
1701
|
+
case 'battery':
|
|
1702
|
+
value = parseInt($('#battery_warning_value').val());
|
|
1703
|
+
break;
|
|
1704
|
+
case 'upflow':
|
|
1705
|
+
value = parseInt($('#upflow_warning_value').val());
|
|
1706
|
+
break;
|
|
1707
|
+
case 'downflow':
|
|
1708
|
+
value = parseInt($('#down_warning_value').val());
|
|
1709
|
+
break;
|
|
1710
|
+
case 'gpu':
|
|
1711
|
+
value = parseInt($('#gpu_warning_value').val());
|
|
1712
|
+
break;
|
|
1713
|
+
}
|
|
1714
|
+
var plotLines = [];
|
|
1715
|
+
|
|
1716
|
+
if(value != 0){
|
|
1717
|
+
plotLines = [{
|
|
1718
|
+
value: value,
|
|
1719
|
+
color: 'red',
|
|
1720
|
+
dashStyle: 'shortdash',
|
|
1721
|
+
width: 2,
|
|
1722
|
+
label: {
|
|
1723
|
+
text: 'warning value : '+value,
|
|
1724
|
+
style: {
|
|
1725
|
+
'color': 'white',
|
|
1726
|
+
}
|
|
1727
|
+
}
|
|
1728
|
+
}];
|
|
1729
|
+
}
|
|
1730
|
+
return plotLines;
|
|
1731
|
+
}
|
|
1732
|
+
|
|
1733
|
+
function chartsInitialize(apmType,title){
|
|
1734
|
+
let seriesFinal = series;
|
|
1735
|
+
let legend = false;
|
|
1736
|
+
let yAxis = {
|
|
1737
|
+
opposite:false,
|
|
1738
|
+
plotLines:setPlotLine(apmType)
|
|
1739
|
+
};
|
|
1740
|
+
let yAxis_plot = {
|
|
1741
|
+
opposite:false,
|
|
1742
|
+
plotLines:setPlotLine(apmType)
|
|
1743
|
+
};
|
|
1744
|
+
switch (apmType) {
|
|
1745
|
+
case 'fps':
|
|
1746
|
+
seriesFinal = seriesFps;
|
|
1747
|
+
legend = true;
|
|
1748
|
+
yAxis = yAxis_plot;
|
|
1749
|
+
break;
|
|
1750
|
+
case 'fps_ios':
|
|
1751
|
+
seriesFinal = seriesFpsbyiOS;
|
|
1752
|
+
yAxis = yAxis_plot;
|
|
1753
|
+
break;
|
|
1754
|
+
case 'network':
|
|
1755
|
+
seriesFinal = seriesNet;
|
|
1756
|
+
legend = true;
|
|
1757
|
+
break;
|
|
1758
|
+
case 'cpu':
|
|
1759
|
+
seriesFinal = seriesCpu;
|
|
1760
|
+
legend = true;
|
|
1761
|
+
yAxis = yAxis_plot;
|
|
1762
|
+
break;
|
|
1763
|
+
case 'cpu_core':
|
|
1764
|
+
seriesFinal = seriesCpuCore;
|
|
1765
|
+
legend = true;
|
|
1766
|
+
yAxis = yAxis_plot;
|
|
1767
|
+
break;
|
|
1768
|
+
case 'disk':
|
|
1769
|
+
seriesFinal = seriesDisk;
|
|
1770
|
+
legend = true;
|
|
1771
|
+
yAxis = yAxis_plot;
|
|
1772
|
+
break;
|
|
1773
|
+
case 'gpu':
|
|
1774
|
+
seriesFinal = series;
|
|
1775
|
+
legend = true;
|
|
1776
|
+
yAxis = yAxis_plot;
|
|
1777
|
+
break;
|
|
1778
|
+
case 'mem_android':
|
|
1779
|
+
seriesFinal = seriesMem;
|
|
1780
|
+
legend = true;
|
|
1781
|
+
break;
|
|
1782
|
+
case 'mem_detail':
|
|
1783
|
+
seriesFinal = seriesMemDetail;
|
|
1784
|
+
legend = true;
|
|
1785
|
+
break;
|
|
1786
|
+
case 'battery_android':
|
|
1787
|
+
seriesFinal = seriesBettery;
|
|
1788
|
+
legend = true;
|
|
1789
|
+
yAxis = yAxis_plot;
|
|
1790
|
+
break;
|
|
1791
|
+
case 'battery_ios':
|
|
1792
|
+
seriesFinal = seriesiOSBettery;
|
|
1793
|
+
legend = true;
|
|
1794
|
+
yAxis = yAxis_plot;
|
|
1795
|
+
break;
|
|
1796
|
+
case 'energy':
|
|
1797
|
+
seriesFinal = seriesEnergy;
|
|
1798
|
+
legend = true;
|
|
1799
|
+
yAxis = yAxis_plot;
|
|
1800
|
+
break;
|
|
1801
|
+
}
|
|
1802
|
+
|
|
1803
|
+
let apm_chart = Highcharts.stockChart(apmType, {
|
|
1804
|
+
rangeSelector: rangeSelector,
|
|
1805
|
+
title : {
|
|
1806
|
+
text : title
|
|
1807
|
+
},
|
|
1808
|
+
tooltip: {
|
|
1809
|
+
split: false
|
|
1810
|
+
},
|
|
1811
|
+
legend: {
|
|
1812
|
+
enabled:legend
|
|
1813
|
+
},
|
|
1814
|
+
credits:{
|
|
1815
|
+
enabled: false
|
|
1816
|
+
},
|
|
1817
|
+
scrollbar : {
|
|
1818
|
+
enabled : true
|
|
1819
|
+
},
|
|
1820
|
+
navigator : {
|
|
1821
|
+
enabled : false
|
|
1822
|
+
},
|
|
1823
|
+
exporting: {
|
|
1824
|
+
enabled: false
|
|
1825
|
+
},
|
|
1826
|
+
yAxis: yAxis,
|
|
1827
|
+
series : seriesFinal
|
|
1828
|
+
});
|
|
1829
|
+
|
|
1830
|
+
return apm_chart
|
|
1831
|
+
};
|
|
1832
|
+
|
|
1833
|
+
function cpuInitialize(){
|
|
1834
|
+
let type = 'cpu';
|
|
1835
|
+
let cpu_chart = chartsInitialize(type,'CPU Usage (%)');
|
|
1836
|
+
return cpu_chart
|
|
1837
|
+
}
|
|
1838
|
+
|
|
1839
|
+
function cpucoreInitialize(){
|
|
1840
|
+
if(platform == 'Android'){
|
|
1841
|
+
let cpucore_chart = chartsInitialize('cpu_core','CPU Core Usage (%)');
|
|
1842
|
+
return cpucore_chart
|
|
1843
|
+
}
|
|
1844
|
+
}
|
|
1845
|
+
|
|
1846
|
+
function batteryInitialize(){
|
|
1847
|
+
let type = platform == 'Android' ? 'battery_android' : 'battery_ios';
|
|
1848
|
+
let battery_chart = chartsInitialize(type,'Battery');
|
|
1849
|
+
return battery_chart
|
|
1850
|
+
}
|
|
1851
|
+
|
|
1852
|
+
function memInitialize(){
|
|
1853
|
+
let type = platform == 'Android' ? 'mem_android' : 'mem_ios';
|
|
1854
|
+
let mem_chart = chartsInitialize(type,'Memory Usage (MB)');
|
|
1855
|
+
return mem_chart
|
|
1856
|
+
}
|
|
1857
|
+
|
|
1858
|
+
function memDetailInitialize(){
|
|
1859
|
+
if(platform == 'Android'){
|
|
1860
|
+
let mem_detail_chart = chartsInitialize('mem_detail','Memory Detail (MB)');
|
|
1861
|
+
return mem_detail_chart
|
|
1862
|
+
}
|
|
1863
|
+
}
|
|
1864
|
+
|
|
1865
|
+
function networkInitialize(){
|
|
1866
|
+
let network_chart = chartsInitialize('network','Network Usage (KB)');
|
|
1867
|
+
return network_chart
|
|
1868
|
+
}
|
|
1869
|
+
|
|
1870
|
+
function diskInitialize(){
|
|
1871
|
+
let disk_chart = chartsInitialize('disk','Disk Usage (KB)');
|
|
1872
|
+
return disk_chart
|
|
1873
|
+
}
|
|
1874
|
+
|
|
1875
|
+
function gpuInitialize(){
|
|
1876
|
+
let gpu_chart = chartsInitialize('gpu','GPU Usage (%)');
|
|
1877
|
+
return gpu_chart
|
|
1878
|
+
}
|
|
1879
|
+
|
|
1880
|
+
function fpsInitialize(){
|
|
1881
|
+
if(platform === 'Android'){
|
|
1882
|
+
let title = 'FPS(HZ) & Jank(Times)';
|
|
1883
|
+
let fps_chart = chartsInitialize('fps',title);
|
|
1884
|
+
return fps_chart
|
|
1885
|
+
}else{
|
|
1886
|
+
let title = 'FPS (HZ/s)';
|
|
1887
|
+
let fps_chart = chartsInitialize('fps_ios',title);
|
|
1888
|
+
return fps_chart
|
|
1889
|
+
}
|
|
1890
|
+
}
|
|
1891
|
+
|
|
1892
|
+
function energyInitialize(){
|
|
1893
|
+
if(platform == 'iOS'){
|
|
1894
|
+
let energy_chart = chartsInitialize('energy','Energy Usage');
|
|
1895
|
+
return energy_chart
|
|
1896
|
+
}
|
|
1897
|
+
}
|
|
1898
|
+
|
|
1899
|
+
var cpu_chart = cpuInitialize();
|
|
1900
|
+
var cpucore_chart = cpucoreInitialize()
|
|
1901
|
+
var mem_chart = memInitialize();
|
|
1902
|
+
var mem_detail_chart = memDetailInitialize();
|
|
1903
|
+
var network_chart = networkInitialize();
|
|
1904
|
+
var fps_chart = fpsInitialize();
|
|
1905
|
+
var battery_chart = batteryInitialize();
|
|
1906
|
+
var gpu_chart = gpuInitialize()
|
|
1907
|
+
var disk_chart = diskInitialize()
|
|
1908
|
+
var energy_chart = energyInitialize()
|
|
1909
|
+
|
|
1910
|
+
|
|
1911
|
+
function collectPers(device,pkgname=null,type,title,func){
|
|
1912
|
+
let seriesFinal = series;
|
|
1913
|
+
let legend = false;
|
|
1914
|
+
let yAxis = {
|
|
1915
|
+
opposite:false,
|
|
1916
|
+
plotLines:setPlotLine(type)
|
|
1917
|
+
};
|
|
1918
|
+
let yAxis_plot = {
|
|
1919
|
+
opposite:false,
|
|
1920
|
+
plotLines:setPlotLine(type)
|
|
1921
|
+
};
|
|
1922
|
+
switch (type) {
|
|
1923
|
+
case 'fps':
|
|
1924
|
+
seriesFinal = seriesFps;
|
|
1925
|
+
legend = true;
|
|
1926
|
+
yAxis = yAxis_plot;
|
|
1927
|
+
break;
|
|
1928
|
+
case 'fps_ios':
|
|
1929
|
+
seriesFinal = seriesFpsbyiOS;
|
|
1930
|
+
legend = true;
|
|
1931
|
+
yAxis = yAxis_plot;
|
|
1932
|
+
break;
|
|
1933
|
+
case 'network':
|
|
1934
|
+
seriesFinal = seriesNet;
|
|
1935
|
+
legend = true;
|
|
1936
|
+
break;
|
|
1937
|
+
case 'cpu':
|
|
1938
|
+
seriesFinal = seriesCpu;
|
|
1939
|
+
yAxis = yAxis_plot;
|
|
1940
|
+
legend = true;
|
|
1941
|
+
break;
|
|
1942
|
+
case 'cpu_core':
|
|
1943
|
+
seriesFinal = seriesCpuCore;
|
|
1944
|
+
yAxis = yAxis_plot;
|
|
1945
|
+
legend = true;
|
|
1946
|
+
break;
|
|
1947
|
+
case 'disk':
|
|
1948
|
+
seriesFinal = seriesDisk;
|
|
1949
|
+
yAxis = yAxis_plot;
|
|
1950
|
+
legend = true;
|
|
1951
|
+
break;
|
|
1952
|
+
case 'mem_android':
|
|
1953
|
+
seriesFinal = seriesMem;
|
|
1954
|
+
legend = true;
|
|
1955
|
+
break;
|
|
1956
|
+
case 'mem_detail':
|
|
1957
|
+
seriesFinal = seriesMemDetail;
|
|
1958
|
+
legend = true;
|
|
1959
|
+
break;
|
|
1960
|
+
case 'battery_android':
|
|
1961
|
+
seriesFinal = seriesBettery;
|
|
1962
|
+
legend = true;
|
|
1963
|
+
yAxis = yAxis_plot;
|
|
1964
|
+
break;
|
|
1965
|
+
case 'battery_ios':
|
|
1966
|
+
seriesFinal = seriesiOSBettery;
|
|
1967
|
+
legend = true;
|
|
1968
|
+
yAxis = yAxis_plot;
|
|
1969
|
+
break;
|
|
1970
|
+
case 'energy':
|
|
1971
|
+
seriesFinal = seriesEnergy;
|
|
1972
|
+
legend = true;
|
|
1973
|
+
yAxis = yAxis_plot;
|
|
1974
|
+
break;
|
|
1975
|
+
default:
|
|
1976
|
+
seriesFinal = series;
|
|
1977
|
+
break;
|
|
1978
|
+
}
|
|
1979
|
+
|
|
1980
|
+
let chartPers = Highcharts.stockChart(type, {
|
|
1981
|
+
chart : {
|
|
1982
|
+
events : {
|
|
1983
|
+
load : func
|
|
1984
|
+
}
|
|
1985
|
+
},
|
|
1986
|
+
rangeSelector: rangeSelector,
|
|
1987
|
+
title : {
|
|
1988
|
+
text : title
|
|
1989
|
+
},
|
|
1990
|
+
tooltip: {
|
|
1991
|
+
split: false
|
|
1992
|
+
},
|
|
1993
|
+
legend: {
|
|
1994
|
+
enabled:legend
|
|
1995
|
+
},
|
|
1996
|
+
credits:{
|
|
1997
|
+
enabled: false
|
|
1998
|
+
},
|
|
1999
|
+
scrollbar : {
|
|
2000
|
+
enabled : true
|
|
2001
|
+
},
|
|
2002
|
+
navigator : {
|
|
2003
|
+
enabled : false
|
|
2004
|
+
},
|
|
2005
|
+
exporting: {
|
|
2006
|
+
enabled: false
|
|
2007
|
+
},
|
|
2008
|
+
yAxis: yAxis,
|
|
2009
|
+
series : seriesFinal
|
|
2010
|
+
});
|
|
2011
|
+
|
|
2012
|
+
return chartPers;
|
|
2013
|
+
|
|
2014
|
+
}
|
|
2015
|
+
|
|
2016
|
+
function collectCpu(device,pkgname){
|
|
2017
|
+
var cpu_checkbox = $('#cpu_checkbox').is(':checked');
|
|
2018
|
+
if(cpu_checkbox){
|
|
2019
|
+
cpuInitialize();
|
|
2020
|
+
let type = 'cpu';
|
|
2021
|
+
cpu_chart = collectPers(device,pkgname,type,'CPU Usage (%)',getCpuRate(pkgname,device));
|
|
2022
|
+
}
|
|
2023
|
+
}
|
|
2024
|
+
|
|
2025
|
+
function collectCoreCpu(device,pkgname){
|
|
2026
|
+
var cpu_core_checkbox = $('#cpu_core_checkbox').is(':checked');
|
|
2027
|
+
if(cpu_core_checkbox){
|
|
2028
|
+
cpucoreInitialize();
|
|
2029
|
+
let type = 'cpu_core';
|
|
2030
|
+
cpucore_chart = collectPers(device,pkgname,type,'CPU Core Usage (%)',getCoreCpuRate(pkgname,device));
|
|
2031
|
+
}
|
|
2032
|
+
}
|
|
2033
|
+
|
|
2034
|
+
function collectGpu(device,pkgname){
|
|
2035
|
+
var gpu_checkbox = $('#gpu_checkbox').is(':checked');
|
|
2036
|
+
if(gpu_checkbox){
|
|
2037
|
+
gpuInitialize();
|
|
2038
|
+
gpu_chart = collectPers(device,pkgname,'gpu','GPU Usage (%)',getGpu(pkgname,device));
|
|
2039
|
+
}
|
|
2040
|
+
}
|
|
2041
|
+
|
|
2042
|
+
function collectBattery(device){
|
|
2043
|
+
var battery_checkbox = $('#battery_checkbox').is(':checked');
|
|
2044
|
+
if(battery_checkbox){
|
|
2045
|
+
batteryInitialize();
|
|
2046
|
+
let type = platform == 'Android' ? 'battery_android' : 'battery_ios';
|
|
2047
|
+
battery_chart = collectPers(device,null,type,'Battery',getBattery(device));
|
|
2048
|
+
}
|
|
2049
|
+
}
|
|
2050
|
+
|
|
2051
|
+
function collectMem(device,pkgname){
|
|
2052
|
+
var mem_checkbox = $('#mem_checkbox').is(':checked');
|
|
2053
|
+
if(mem_checkbox){
|
|
2054
|
+
memInitialize();
|
|
2055
|
+
let type = platform == 'Android' ? 'mem_android' : 'mem_ios';
|
|
2056
|
+
mem_chart = collectPers(device,pkgname,type,'Memory Usage (MB)',getMemPss(pkgname,device));
|
|
2057
|
+
}
|
|
2058
|
+
}
|
|
2059
|
+
|
|
2060
|
+
function collectMemDetail(device,pkgname){
|
|
2061
|
+
var mem_detail_checkbox = $('#mem_detail_checkbox').is(':checked');
|
|
2062
|
+
if(mem_detail_checkbox){
|
|
2063
|
+
memDetailInitialize();
|
|
2064
|
+
mem_detail_chart = collectPers(device,pkgname,'mem_detail','Memory Detail (MB)',getMemDetailPss(pkgname,device));
|
|
2065
|
+
}
|
|
2066
|
+
}
|
|
2067
|
+
|
|
2068
|
+
function collectNetwork(device,pkgname){
|
|
2069
|
+
var flow_checkbox = $('#flow_checkbox').is(':checked');
|
|
2070
|
+
var net_switch = $('#net-switch').is(':checked');
|
|
2071
|
+
if(flow_checkbox){
|
|
2072
|
+
networkInitialize();
|
|
2073
|
+
network_chart = collectPers(device,pkgname,'network','Network Usage (KB)',getNetWork(pkgname,device,net_switch));
|
|
2074
|
+
}
|
|
2075
|
+
}
|
|
2076
|
+
|
|
2077
|
+
function collectFps(device,pkgname){
|
|
2078
|
+
var fps_checkbox = $('#fps_checkbox').is(':checked');
|
|
2079
|
+
var fps_switch = $('#fps-switch').is(':checked');
|
|
2080
|
+
console.log(fps_switch)
|
|
2081
|
+
|
|
2082
|
+
if(fps_checkbox){
|
|
2083
|
+
fpsInitialize();
|
|
2084
|
+
if(platform == 'Android'){
|
|
2085
|
+
let title = 'FPS(HZ) & Jank(Times)';
|
|
2086
|
+
fps_chart = collectPers(device,pkgname,'fps',title,getFps(pkgname,device,fps_switch));
|
|
2087
|
+
}else{
|
|
2088
|
+
let title = 'FPS(HZ)';
|
|
2089
|
+
fps_chart = collectPers(device,pkgname,'fps_ios',title,getFps(pkgname,device,fps_switch));
|
|
2090
|
+
}
|
|
2091
|
+
}
|
|
2092
|
+
}
|
|
2093
|
+
|
|
2094
|
+
function collectDisk(device){
|
|
2095
|
+
var disk_checkbox = $('#disk_checkbox').is(':checked');
|
|
2096
|
+
if(disk_checkbox){
|
|
2097
|
+
diskInitialize();
|
|
2098
|
+
disk_chart = collectPers(device,null,'disk','Disk Usage (KB)',getDisk(device));
|
|
2099
|
+
}
|
|
2100
|
+
}
|
|
2101
|
+
|
|
2102
|
+
function collectEnergy(device,pkgname){
|
|
2103
|
+
var energy_checkbox = $('#energy_checkbox').is(':checked');
|
|
2104
|
+
if(energy_checkbox){
|
|
2105
|
+
energyInitialize();
|
|
2106
|
+
energy_chart = collectPers(device,pkgname,'energy','Energy Usage',getEnergy(pkgname,device));
|
|
2107
|
+
}
|
|
2108
|
+
}
|
|
2109
|
+
|
|
2110
|
+
function cast(){
|
|
2111
|
+
var device = $('.select-device').val();
|
|
2112
|
+
if(device){
|
|
2113
|
+
$.ajax({
|
|
2114
|
+
url: "/apm/record/cast",
|
|
2115
|
+
type: "GET",
|
|
2116
|
+
async: true,
|
|
2117
|
+
cache: false,
|
|
2118
|
+
data:{
|
|
2119
|
+
platform:platform,
|
|
2120
|
+
device:$('.select-device').val(),
|
|
2121
|
+
},
|
|
2122
|
+
beforeSend: function () {
|
|
2123
|
+
SwalLoading('Casting','')
|
|
2124
|
+
},
|
|
2125
|
+
success: function (data) {
|
|
2126
|
+
if(data['status']==0){
|
|
2127
|
+
SwalFire('error','Cast Failed',data['msg'],2000)
|
|
2128
|
+
}
|
|
2129
|
+
},
|
|
2130
|
+
complete: function(){
|
|
2131
|
+
swal.close();
|
|
2132
|
+
},
|
|
2133
|
+
error: function(error){
|
|
2134
|
+
SwalFire('error','Scrcpy Error',error ,5000);
|
|
2135
|
+
console.log(error);
|
|
2136
|
+
}
|
|
2137
|
+
});
|
|
2138
|
+
}else{
|
|
2139
|
+
SwalFire('error', 'Cast failed !', 'No devices found', 5000);
|
|
2140
|
+
}
|
|
2141
|
+
}
|
|
2142
|
+
|
|
2143
|
+
function record(){
|
|
2144
|
+
$.ajax({
|
|
2145
|
+
url: "/apm/record/start",
|
|
2146
|
+
type: "GET",
|
|
2147
|
+
async: true,
|
|
2148
|
+
cache: false,
|
|
2149
|
+
data:{
|
|
2150
|
+
platform:platform,
|
|
2151
|
+
device:$('.select-device').val(),
|
|
2152
|
+
},
|
|
2153
|
+
success: function (data) {
|
|
2154
|
+
if(data['status']==0){
|
|
2155
|
+
SwalFire('error','Record Failed',data['msg'],2000)
|
|
2156
|
+
}
|
|
2157
|
+
},
|
|
2158
|
+
error: function(error){
|
|
2159
|
+
SwalFire('error','Scrcpy Error',error ,5000);
|
|
2160
|
+
console.log(error);
|
|
2161
|
+
}
|
|
2162
|
+
});
|
|
2163
|
+
}
|
|
2164
|
+
|
|
2165
|
+
function stopTask(){
|
|
2166
|
+
// 防重复提交检查
|
|
2167
|
+
if(window.isStoppingTask) {
|
|
2168
|
+
console.log('正在停止中,忽略重复操作');
|
|
2169
|
+
return;
|
|
2170
|
+
}
|
|
2171
|
+
window.isStoppingTask = true;
|
|
2172
|
+
|
|
2173
|
+
stop = true;
|
|
2174
|
+
var wifi_switch = $('#net-switch').is(':checked');
|
|
2175
|
+
var record_switch = $('#record-switch').is(':checked');
|
|
2176
|
+
var thermal_switch = $('#thermal_checkbox').is(':checked')
|
|
2177
|
+
$('#run-apm').show();
|
|
2178
|
+
$('#stop-apm').hide();
|
|
2179
|
+
window.clearTimeout(timerQ);
|
|
2180
|
+
var process = '';
|
|
2181
|
+
if(platform == 'Android'){
|
|
2182
|
+
process = $('.select-pid').val()
|
|
2183
|
+
}
|
|
2184
|
+
$.ajax({
|
|
2185
|
+
url: "/apm/create/report",
|
|
2186
|
+
type: "GET",
|
|
2187
|
+
async: true,
|
|
2188
|
+
cache: false,
|
|
2189
|
+
data:{
|
|
2190
|
+
platform:platform,
|
|
2191
|
+
model:'normal',
|
|
2192
|
+
app:$('.select-app').val(),
|
|
2193
|
+
devices:$('.select-device').val(),
|
|
2194
|
+
wifi_switch:wifi_switch,
|
|
2195
|
+
process:process,
|
|
2196
|
+
record_switch:record_switch,
|
|
2197
|
+
thermal_switch:thermal_switch,
|
|
2198
|
+
cores: parseInt($('#cpu_cores').text())
|
|
2199
|
+
},
|
|
2200
|
+
beforeSend: function () {
|
|
2201
|
+
|
|
2202
|
+
if(lan == 'cn'){
|
|
2203
|
+
SwalLoading('保存数据','正在保存数据生成报告, 请不要离开页面.')
|
|
2204
|
+
}else{
|
|
2205
|
+
SwalLoading('Saving Data','Saving data to generate report, please do not leave.')
|
|
2206
|
+
}
|
|
2207
|
+
},
|
|
2208
|
+
success: function (data) {
|
|
2209
|
+
if(data['status']==1){
|
|
2210
|
+
window.location.href = '/report?lan='+lan
|
|
2211
|
+
}else{
|
|
2212
|
+
SwalFire('error','Execution Error',data['msg'],2000)
|
|
2213
|
+
}
|
|
2214
|
+
},
|
|
2215
|
+
error: function(xhr, status, error) {
|
|
2216
|
+
console.error('Stop task error:', error);
|
|
2217
|
+
SwalFire('error','Network Error','请求失败,请重试',3000)
|
|
2218
|
+
},
|
|
2219
|
+
complete: function() {
|
|
2220
|
+
// 无论成功失败都要重置标志位
|
|
2221
|
+
window.isStoppingTask = false;
|
|
2222
|
+
}
|
|
2223
|
+
});
|
|
2224
|
+
}
|
|
2225
|
+
|
|
2226
|
+
$('#run-apm').click(function () {
|
|
2227
|
+
stop = false;
|
|
2228
|
+
$('#stop-apm').show();
|
|
2229
|
+
$('#run-apm').hide();
|
|
2230
|
+
initializeAPM();
|
|
2231
|
+
let device = $('.select-device').val();
|
|
2232
|
+
let pkgname = $('.select-app').val();
|
|
2233
|
+
if(device && pkgname){
|
|
2234
|
+
var net_switch = $('#net-switch').is(':checked');
|
|
2235
|
+
if(platform == 'Android'){
|
|
2236
|
+
setDisk(device)
|
|
2237
|
+
let thermal_checked = $('#thermal_checkbox').is(':checked')
|
|
2238
|
+
if(thermal_checked){
|
|
2239
|
+
setThermal(device)
|
|
2240
|
+
}
|
|
2241
|
+
setNetWork('pre',device,pkgname,net_switch)
|
|
2242
|
+
var record_switch = $('#record-switch').is(':checked');
|
|
2243
|
+
if(record_switch){
|
|
2244
|
+
record()
|
|
2245
|
+
}
|
|
2246
|
+
}
|
|
2247
|
+
collectCpu(device,pkgname);
|
|
2248
|
+
collectMem(device,pkgname);
|
|
2249
|
+
|
|
2250
|
+
if(platform == 'Android'){
|
|
2251
|
+
collectMemDetail(device,pkgname)
|
|
2252
|
+
collectCoreCpu(device,pkgname)
|
|
2253
|
+
}
|
|
2254
|
+
if(platform == 'iOS'){
|
|
2255
|
+
collectEnergy(device,pkgname)
|
|
2256
|
+
}
|
|
2257
|
+
collectNetwork(device,pkgname);
|
|
2258
|
+
collectFps(device,pkgname);
|
|
2259
|
+
collectBattery(device);
|
|
2260
|
+
collectGpu(device,pkgname);
|
|
2261
|
+
collectDisk(device)
|
|
2262
|
+
if(parseInt($('#duration').val()) > 0){
|
|
2263
|
+
var times = parseInt($('#duration').val()) * 60 * 1000
|
|
2264
|
+
setTimeout("stopTask()", times)
|
|
2265
|
+
}
|
|
2266
|
+
}else{
|
|
2267
|
+
if(lan == 'cn'){
|
|
2268
|
+
SwalFire('error','执行错误','没有选择APP或者设备',2000);
|
|
2269
|
+
}else{
|
|
2270
|
+
SwalFire('error','Execution Error','No device or package selected',2000);
|
|
2271
|
+
}
|
|
2272
|
+
$('#run-apm').show();
|
|
2273
|
+
$('#stop-apm').hide();
|
|
2274
|
+
}});
|
|
2275
|
+
|
|
2276
|
+
function startLogcat() {
|
|
2277
|
+
SwalFire('info','Not Available','Logcat is not available in this version',2000)
|
|
2278
|
+
};
|
|
2279
|
+
|
|
2280
|
+
function stopLogcat() {
|
|
2281
|
+
};
|
|
2282
|
+
|
|
2283
|
+
function cppyLogcat() {
|
|
2284
|
+
const textValue = document.createElement('textarea');
|
|
2285
|
+
document.body.appendChild(textValue);
|
|
2286
|
+
textValue.value = $("#logcat-content").text();
|
|
2287
|
+
textValue.select();
|
|
2288
|
+
var result = document.execCommand('copy');
|
|
2289
|
+
console.log(result)
|
|
2290
|
+
document.body.removeChild(textValue);
|
|
2291
|
+
SwalFire('success','Copy Success','',1000);
|
|
2292
|
+
};
|
|
2293
|
+
|
|
2294
|
+
function clearLogcat() {
|
|
2295
|
+
$('#logcat-content').empty();
|
|
2296
|
+
};
|
|
2297
|
+
|
|
2298
|
+
function getCurActivity(){
|
|
2299
|
+
let device = $('.select-device').val();
|
|
2300
|
+
if(device){
|
|
2301
|
+
$.ajax({
|
|
2302
|
+
url: "/package/activity",
|
|
2303
|
+
type: "GET",
|
|
2304
|
+
async: true,
|
|
2305
|
+
cache: false,
|
|
2306
|
+
data:{
|
|
2307
|
+
platform:platform,
|
|
2308
|
+
device:$('.select-device').val(),
|
|
2309
|
+
},
|
|
2310
|
+
beforeSend: function () {
|
|
2311
|
+
SwalLoading('Loading','')
|
|
2312
|
+
},
|
|
2313
|
+
success: function (data) {
|
|
2314
|
+
if(data['status']==1){
|
|
2315
|
+
$('#activity').val(data['activity']);
|
|
2316
|
+
}else{
|
|
2317
|
+
SwalFire('error','Execution Error',data['msg'],2000)
|
|
2318
|
+
}
|
|
2319
|
+
},
|
|
2320
|
+
complete: function(){
|
|
2321
|
+
swal.close();
|
|
2322
|
+
}
|
|
2323
|
+
});
|
|
2324
|
+
}else{
|
|
2325
|
+
SwalFire('error','Execution Error','No devices found',2000)
|
|
2326
|
+
}
|
|
2327
|
+
}
|
|
2328
|
+
|
|
2329
|
+
function getStartupTimeByAndroid(){
|
|
2330
|
+
let device = $('.select-device').val();
|
|
2331
|
+
let activity = $('#activity').val().trim();
|
|
2332
|
+
if(device && activity){
|
|
2333
|
+
$.ajax({
|
|
2334
|
+
url: "/package/start/time/android",
|
|
2335
|
+
type: "GET",
|
|
2336
|
+
async: true,
|
|
2337
|
+
cache: false,
|
|
2338
|
+
data:{
|
|
2339
|
+
platform:platform,
|
|
2340
|
+
device:$('.select-device').val(),
|
|
2341
|
+
activity: activity
|
|
2342
|
+
},
|
|
2343
|
+
beforeSend: function () {
|
|
2344
|
+
SwalLoading('Loading','')
|
|
2345
|
+
},
|
|
2346
|
+
success: function (data) {
|
|
2347
|
+
if(data['status']==1){
|
|
2348
|
+
console.log(data['time'])
|
|
2349
|
+
$('#startup-time-content').text(data['time']);
|
|
2350
|
+
}else{
|
|
2351
|
+
SwalFire('error','Execution Error',data['msg'],2000)
|
|
2352
|
+
}
|
|
2353
|
+
},
|
|
2354
|
+
complete: function(){
|
|
2355
|
+
swal.close();
|
|
2356
|
+
}
|
|
2357
|
+
});
|
|
2358
|
+
}else{
|
|
2359
|
+
SwalFire('error','Execution Error','No devices or activity found',2000)
|
|
2360
|
+
}
|
|
2361
|
+
}
|
|
2362
|
+
|
|
2363
|
+
function getStartupTimeByiOS(){
|
|
2364
|
+
let pkgname = $('.select-app').val();
|
|
2365
|
+
if(pkgname){
|
|
2366
|
+
$.ajax({
|
|
2367
|
+
url: "/package/start/time/ios",
|
|
2368
|
+
type: "GET",
|
|
2369
|
+
async: true,
|
|
2370
|
+
cache: false,
|
|
2371
|
+
data:{
|
|
2372
|
+
pkgname:pkgname
|
|
2373
|
+
},
|
|
2374
|
+
beforeSend: function () {
|
|
2375
|
+
SwalLoading('Loading','')
|
|
2376
|
+
},
|
|
2377
|
+
success: function (data) {
|
|
2378
|
+
if(data['status']==1){
|
|
2379
|
+
console.log(data['time'])
|
|
2380
|
+
$('#startup-time-content').text(data['time']);
|
|
2381
|
+
}else{
|
|
2382
|
+
SwalFire('error','Execution Error',data['msg'],2000)
|
|
2383
|
+
}
|
|
2384
|
+
},
|
|
2385
|
+
complete: function(){
|
|
2386
|
+
swal.close();
|
|
2387
|
+
}
|
|
2388
|
+
});
|
|
2389
|
+
}else{
|
|
2390
|
+
SwalFire('error','Execution Error','No package found',2000)
|
|
2391
|
+
}
|
|
2392
|
+
}
|
|
2393
|
+
|
|
2394
|
+
function install(){
|
|
2395
|
+
var fileObj = document.getElementById("app-file").files[0];
|
|
2396
|
+
var type = (fileObj) ? 'file' : 'link'
|
|
2397
|
+
if(type == 'file'){
|
|
2398
|
+
installFile()
|
|
2399
|
+
}else{
|
|
2400
|
+
installLink()
|
|
2401
|
+
}
|
|
2402
|
+
|
|
2403
|
+
}
|
|
2404
|
+
|
|
2405
|
+
function installLink(){
|
|
2406
|
+
var formData = new FormData();
|
|
2407
|
+
var link = $('.app-link').val().trim()
|
|
2408
|
+
formData.append('platform','{{ platform }}');
|
|
2409
|
+
formData.append('link',link);
|
|
2410
|
+
if(link){
|
|
2411
|
+
$.ajax({
|
|
2412
|
+
url: "/apm/install/link",
|
|
2413
|
+
type: "POST",
|
|
2414
|
+
async: true,
|
|
2415
|
+
cache: false,
|
|
2416
|
+
processData: false,
|
|
2417
|
+
contentType: false,
|
|
2418
|
+
data:formData,
|
|
2419
|
+
beforeSend: function () {
|
|
2420
|
+
SwalLoading('Install App!','Installing file to device, please wait a moment.');
|
|
2421
|
+
},
|
|
2422
|
+
success: function (data) {
|
|
2423
|
+
console.log(data);
|
|
2424
|
+
if(data['status'] != 1 ) {
|
|
2425
|
+
SwalFire('error', 'Install failed !', data['msg'], 2000);
|
|
2426
|
+
}else{
|
|
2427
|
+
SwalFire('success', 'Install success !', '', 2000);
|
|
2428
|
+
}
|
|
2429
|
+
},
|
|
2430
|
+
error:function (data) {
|
|
2431
|
+
SwalFire('error', 'Install failed !', '', 2000);
|
|
2432
|
+
}
|
|
2433
|
+
});
|
|
2434
|
+
}else{
|
|
2435
|
+
SwalFire('error', 'Install failed !', 'No link found', 2000);
|
|
2436
|
+
}
|
|
2437
|
+
|
|
2438
|
+
|
|
2439
|
+
}
|
|
2440
|
+
|
|
2441
|
+
function installFile(){
|
|
2442
|
+
var formData = new FormData();
|
|
2443
|
+
var fileObj = document.getElementById("app-file").files[0];
|
|
2444
|
+
formData.append('platform','{{ platform }}');
|
|
2445
|
+
formData.append('file',fileObj);
|
|
2446
|
+
$.ajax({
|
|
2447
|
+
url: "/apm/install/file",
|
|
2448
|
+
type: "POST",
|
|
2449
|
+
async: true,
|
|
2450
|
+
cache: false,
|
|
2451
|
+
processData: false,
|
|
2452
|
+
contentType: false,
|
|
2453
|
+
data:formData,
|
|
2454
|
+
beforeSend: function () {
|
|
2455
|
+
SwalLoading('Install App!','Installing file to device, please wait。');
|
|
2456
|
+
},
|
|
2457
|
+
success: function (data) {
|
|
2458
|
+
console.log(data);
|
|
2459
|
+
if(data['status'] != 1 ) {
|
|
2460
|
+
SwalFire('error', 'Install failed !', data['msg'], 2000);
|
|
2461
|
+
}else{
|
|
2462
|
+
SwalFire('success', 'Install success !', '', 2000);
|
|
2463
|
+
}
|
|
2464
|
+
},
|
|
2465
|
+
error:function (data) {
|
|
2466
|
+
SwalFire('error', 'Install failed !', '', 2000);
|
|
2467
|
+
}
|
|
2468
|
+
});
|
|
2469
|
+
}
|
|
2470
|
+
</script>
|
|
2471
|
+
{% endblock %}
|