y83 code / справочник

О системе

Раздел «О системе» показывает, что происходит с телефоном прямо сейчас: чем занят процессор, сколько осталось памяти и места, что с батареей, какая сеть и сколько трафика уходит. Это приборная панель для вопроса «а почему всё тормозит» — когда непонятно, виноват ли агент, сборка, туннель или сама система.

раздел
Подсистемы приложения
пунктов возможностей
40
источник
docs/about/system.md

Экран ничего не хранит. Он читает систему напрямую и показывает то, что видит прямо сейчас. Истории нет: закрыли экран — данных не осталось.

Возможности

  • Карточка устройства вверху: производитель, модель, внутреннее имя и железная начинка.
  • Четыре крупные метрики сразу под ней: CPU, RAM, Storage и Battery — каждая числом и цветной шкалой.
  • Раздел // performance: карточка CPU и карточка Disk I/O.
  • Поядерная загрузка. Если система отдаёт данные по каждому ядру, они показываются отдельной строкой на ядро: номер, процент и текущая частота.
  • Общая загрузка процессора одной строкой — если поядерных данных нет.
  • Температура процессора — если система её отдаёт.
  • Карточка Disk I/O — текущая скорость чтения и записи.
  • Раздел // memory & storage: карточка RAM и карточка Storage.
  • Память системы полосой: занято из всего и процент. Плюс сколько свободно.
  • Память приложения одной строкой в килобайтах — честная доля, а не всё подряд.
  • Встроенное хранилище полосой: занято из всего и сколько свободно.
  • Раздел // power — карточка батареи: заряд, состояние, питание, здоровье, технология, температура и напряжение.
  • Раздел // connectivity — карточка сети: тип подключения, имя сети, локальный адрес, шлюз, адреса DNS, текущие скорости вниз и вверх и общий трафик с момента включения.
  • Раздел // runtime — состояние опроса, сколько работает система, сколько работает приложение, установленная версия и время последнего замера.
  • Кнопка паузы в шапке — останавливает и возобновляет живые показания.
  • Кнопка копирования отчёта — кладёт в буфер весь слепок телеметрии текстом.
  • Автообновление раз в секунду, пока опрос не на паузе.
  • Заглушка при первом чтении с подсказкой, откуда берутся данные.

Технические данные

ПараметрЗначение
Период обновления1 секунда
Разделов на экране5, перечислены ниже
Крупных метрик вверху4: CPU, RAM, Storage, Battery
Строк в отчётеоколо 25, плюс строка на каждое ядро
Границы цвета заполнениясвыше 70% — жёлтый, свыше 90% — красный
Границы цвета батареидо 30% — жёлтый, до 15% — красный
Единицы памятиКБ, МБ, ГБ, три знака после точки для гигабайтов
Единицы скоростивсегда КБ в секунду, одна цифра после точки
Время работыдни, часы, минуты и секунды, без месяцев
Состояний батареи5, перечислены ниже
Состояний питания4: AC, USB, Wireless, Unplugged
Состояний здоровья батареи6, перечислены ниже
Типов сети6: WiFi, Mobile, Ethernet, Other, No network, Unknown
На этом устройстве сейчас8 ядер, Android 16, хранилище 479 ГБ, память 11 гб
Температура процессора46 °C, система её отдаёт
Загрузка CPU и скорость дискасистема их закрывает, тут всегда нули

Как читать крупные метрики

Четыре плитки вверху — это быстрый ответ на «в порядке ли телефон». У каждой большое число, под ним мелкая подпись и цветная полоса заполнения:

  • CPU — загрузка в процентах, а под ней либо температура и число ядер, либо просто число ядер, если температуры нет.
  • RAM — занято из всего, например 7.3 / 11.0 GB.
  • Storage — сколько свободно на встроенном хранилище.
  • Battery — заряд в процентах, а под ним чем питается: от розетки, по USB-кабелю, по беспроводной зарядке или ничего.

Полоса меняет цвет по наполнению: до 70% — бирюза, от 70% — жёлтый, от 90% — красный. У батареи шкала своя и обратная: чем больше заряд, тем спокойнее цвет; до 30% жёлтый, до 15% красный.

Про скорости и почему сначала нули

Скорость сети, чтения и записи — это не «что система сообщила», а разница между двумя замерами: прошлым и текущим. Сами по себе эти числа никто не хранит.

Поэтому первые показания почти всегда нулевые: не хватает предыдущего замера, с чем сравнить. На паузе отсчёт не идёт, а при возврате с паузы первые секунды снова показывают нули, пока не наберётся новая пара замеров.

Ноль в первый момент — это не «интернет не работает». Это «не с чем сравнить».

Почему загрузка процессора может быть нулём постоянно

Счётчик загрузки процессора живёт в системном файле, который современные версии Android закрывают для обычных приложений. Если файл не читается, экран честно показывает 0.0% и не рисует поядерную сетку — вместо неё появляется одна строка общей загрузки.

Проверено на этом устройстве прямо из процесса приложения: файл со счётчиком закрыт, поэтому загрузка процессора здесь всегда нулевая, а поядерных строк нет. Это не замер «в ноль», а отсутствие доступа к данным. Частоты и температура при этом читаются — они лежат в других файлах, которые открыты.

По той же причине может не работать скорость диска: её источник закрыт тоже, и она будет показывать ноль.

Память, хранилище, батарея, сеть и время работы снимаются через штатные средства телефона, поэтому доступны всегда. А частота и температура — отдельная история: их файлы закрывают реже, и тогда строк с ними просто не будет.

Про ядра, частоты и температуру

Частота показывается только если система её отдаёт. Нулевые значения отбрасываются: ядро без частоты просто покажет процент без мегагерц, а не ноль мегагерц — чтобы не путать с «ядро встало».

Температура берётся из двух заранее заданных зон датчиков, из которых берётся первая непустая. Если обе закрыты или отдают ноль, строка температуры просто не появляется.

Как читать батарею

В карточке батареи семь строк:

  • Level — заряд в процентах.
  • Status — что батарея делает: заряжается, разряжается, полная, не заряжается или неизвестно. Всего пять состояний.
  • Power — откуда питание: розетка, USB, беспроводная зарядка или ничего.
  • Health — состояние батареи: хорошая, перегрев, мёртвая, перенапряжение, холодная или неизвестно. Всего шесть состояний.
  • Technology — тип батареи, какой её сообщает система.
  • Temperature — температура.
  • Voltage — напряжение.

Всё это приходит одним системным сообщением, поэтому заряд виден всегда, даже когда телефон лежит с выключенным экраном.

Про имя сети и про суммы трафика

Имя сети на современных версиях Android обычно недоступно: система требует для этого доступ к местоположению, а приложение его не запрашивает. Вместо имени может показываться служебная заглушка. Это нормально, не поломка.

Адрес, шлюз и DNS берутся из данных подключения, поэтому они настоящие.

Суммы трафика считаются с момента включения телефона — это счётчик системы, а не приложения. Текущие скорости, наоборот, живут секунду и показывают, что происходит прямо сейчас.

Про время работы

Два разных времени:

  • Время работы системы — с момента последней загрузки телефона. Оно большое и честное.
  • Время работы приложения — с момента, когда экран был создан заново. Это не время жизни процесса: ушли с экрана и вернулись — счётчик начинается с нуля.

Поэтому сравнивать их между собой бессмысленно.

Про копирование отчёта

Кнопка в шапке собирает текстовый слепок: время обновления, модель, внутреннее имя устройства, версия Android, разрядность, железо, загрузка процессора и отдельная строка на каждое ядро с частотой, температура, память, память приложения, хранилище, батарея целиком, сеть, адреса, скорости и суммы трафика, скорость диска, время работы системы и приложения и версия установленного приложения.

Дальше отчёт скармливается агент командой — по нему сразу видно, что с устройством, без лишних вопросов.

Что агент умеет

Агент может открыть этот экран через мост командой открытия экрана system и прочитать его содержимое командой чтения интерфейса, если приложение сейчас на экране.

Отдельного инструмента для телеметрии телефона у агента нет, и это не проблема: половину цифр он снимает сам из системы — ядра, память, хранилище, температуру, адреса сети. Батарею он так не увидит, зато состояние телефона целиком есть в его собственном инструменте диагностики.

Если нужно разобраться, тормозит ли телефон, агент собирает такой же отчёт сам — из своих замеров и из того, что показывает экран.

Ограничения

  • Истории нет: экран держит только текущий снимок. Графиков за последние часы не будет — их надо вести отдельно.
  • Замеры идут раз в секунду и останавливаются только кнопкой паузы. Сворачивание приложения чтение не останавливает — оно идёт, пока живёт процесс.
  • Время работы приложения считается от открытия экрана, а не от запуска.
  • Версия приложения показывается та, что реально стоит на телефоне. Она может отличаться от той, что в исходниках.
  • Загрузка процессора, поядерная сетка и скорость диска зависят от того, откроет ли система нужные файлы. На многих современных телефонах они закрыты.
  • Частота и температура процессора тоже могут быть недоступны.
  • Имя сети обычно недоступно: система не отдаёт его без специального разрешения.
  • Отчёт копируется, а не отправляется: куда его передать, решаете вы.
  • Все строки на экране английские.

Источник: docs/about/system.md. Страница собрана из документации проекта при сборке сайта — без пересказа.