Как я уже сказал выше, отладка по USB нужна разработчикам, которые пишут приложения и тестируют их на смартфоне. Так же это может быть полезно для передачи файлов на смартфон или для их скачивания на компьютер.
Иногда режим отладки по USB помогает сделать копию приложений или установить их не из Google Play. А еще только так можно прошить смартфон или восстановить его работоспособность после какого-то сбоя.
Многие вспомнят еще один пункт в этом списке. Режим отладки по USB может очень пригодиться тем, кто планирует выполнять операции с Root-правами. В любом случае, перед тем, как вы будете пользоваться тем, что я расскажу далее, имейте в виду, что все риски вы несете сами. Если вы не уверены в своих действиях, лучше не надо лезть в это дело. Как говорится, целее будет.
Как включить или отключить режим отладки по USB
Во включении этого режима нет ничего сложного. Достаточно просто перейти в настройки телефона, пролистать до пункта ”Система” и открыть ”Настройки разработчика”. Если вы не знаете, как получить права разработчика, я расскажу об этом чуть ниже.Если права у вас уже есть, надо просто пролистать до пункта ”Отладка по USB” и передвинуть переключатель в положение ”включено”.
Нашел причину повышенной разрядки батареи в своем телефоне. Процесс Logd, проверьте у себя.
Таким же образом вы можете не только включить этот режим, но отключить при необходимости. Например, для большей безопасности или если вам это просто не нужно.Отмечу, что названия некоторых пунктов меню могут немного отличаться в зависимости от производителя смартфона и того, какая на нем установлена версия операционной системы и оболочки. Несмотря на это, формулировки все равно будут примерно такими же, как я и написал. Думаю, вы без проблем разберетесь.
Если вы уже открыли себе права разработчика, но передумали и хотите закрыть их — это тоже возможно. Для этого есть два способа.
Как обычно, первый самый простой и логичный. Вот только работает он не всегда. Суть его заключается в том, чтобы открыть ”Для разработчика” и в верхней части списка функций передвинуть ползунок в положение выключено. Этот пункт называется так же, как и раздел — ”Для разработчика”. Будьте осторожны с правами разработчика. Это очень мощные инструмент.
После этого возможность зайти в настройки разработчика или пропадет вообще, или строка в разделе ”Система” останется, но она будет неактивна. Если она мозолит вам глаза и ее очень хочется убрать, то это тоже можно сделать.
Для этого из корневого меню настроек перейдите в пункт ”Приложения” и найдите там приложение, которое называется ”Настройки”. Далее перейдите в раздел ”Память” и нажмите ”Сброс”. В этом случает произойдет сброс памяти настроек и вы лишитесь режима разработчика. Если он снова понадобится, выше написано, как его включить.
Процедура будет такая же, как в первый раз.Стоит предупредить о двух вещах. Во-первых, вы можете потерять и другие сохраненные в настройках данные, например, аккаунты. Но ничего критического и безвозвратного произойти не должно. Во-вторых, на некоторых смартфонах, например, на Huawei P40 Pro, даже сброс памяти настроек не дает результата.
Что такое лог (log) программы
Надо сначала отключить ”для разработчика” первым способом. Потом уже надо сбрасывать память.
Опасно ли включать режим отладки по USB или режим разработчика
В целом, в этом нет ничего опасного, но хочу вас еще раз предупредить, что вы все делаете на свой страх и риск. Одно дело инструкция, а другое — опыт. Вы можете случайно нажать не туда и включить какой-нибудь режим, который просто не сможете отключить, не зная, как это делать.
По большому счету опасность только в этом. Если вы переживаете за то, что отладка по USB будет включена всегда, особо беспокоиться не стоит, но и включать ее без надобности тоже нет смысла. Как говорят в народе: ”Работает? Не трогай”. Отдельное спасибо за эту инструкцию Артема Сутягина и этому Источнику который нам это предоставил
-
— Поиск причины незасыпания устройства.
— Утилита для мониторинга разряда аккумулятора при бездействии телефона.
За ночь в режиме без действия, но с активным включенным wi-fi съедает только 2% заряда батареи, что как по мне вообще супер, так как старый смарт кушает 20%
Возможно с загруженностью приложений этот фактор может меняться.
Быстрая зарядка прям радует, от 5% до 100% около 50 мин.
А какие у вас результаты?
ночь в режиме без действия, но с активным включенным wi-fi съедает только 2% заряда батареи
Обычное энергопотребление смарта ночью, ничего удивительного
Расскажите лучше, что с нагревом в повседневных задач, и сколько времени экрана без игр?
лично мной замечано не было, телефон использовал активно. Без игр тянет на весь оптимальный день или даже на два.
8,5 часов в режиме 90гц, при этом около часа на ярком солнце.
Отличный результат)
oleg.amatory, экран хоть без дефектов остался?
oleg.amatory, нет в потреблении пункта прочее? У нас потребление прочее более 1000ма активный 10 часов ((( совсем что то печально с батареей. Экран 4 часа
На 12.0.5 прочее стало меньше жрать батарею и сейчас за ночь 1% раньше до -10 могло уйти на ПРОЧЕЕ . Хотя заряжаю до 90 для сброса статистики и до 15 выходит около 5.5 часов экрана .
возможно надо сделать сброс на заводские.
Добавлено 10.04.2021, 21:09:
да. маловато.
Вот у меня зарядил после магазина. 13% 2 часа экрана.
С коробки, был , естественно не на 100%, раза три подцеплял к компу, закинул свои файлы и дважды прошёлся чисткой хлама.Автояркость,белая тема, 2 сим, вай фай. По блютузу с Ютуба транслировал музыку на стерео усилитель.
Мне этот «миф» спас батарею при 3+ лет использования. Кто заряжает до 100 через полтора года батареей уже недовольны.
Мне этот «миф» спас батарею при 3+ лет использования. Кто заряжает до 100 через полтора года батареей уже недовольны.
та ладно. с 16 года заряжал каждую ночь RN3pro , батарея сдохла в октябре 2020. И то потому что заряжалась 2 недели от генератора.
батарея просаживается когда используют на зарядке. Или брак.
А это вообще бред. Сидеть над телефоном и ждать что бы не дай бог не зарядился больше 90% :rofl:
Ещё есть ми9se с мая 19. да батарея просела на 30% вместо 7 теперь 5 часов экрана, но 2 года как бы. да и 3000 махов там всего.
Alexander111as2, при крайних значениях, что разряда, что заряда идет повышенная деградация батареи. Поэтому лучше не доводить ни до 0 ни до 100. А заряжать примерно с 20 до 80. Цикл зарядки считается от 0 до 100 . Поэтому лучше для батареи зарядить 2 раза от 30 до 80, чем один раз от 0 до 100. При этом в обеих случаях, это будет считаться ОДНИМ циклом зарядки батареи!
Обычно циклов зарядки у хорошего производителя акб 500-800 циклов.
Сейчас очевидно подтянуться умудрённые жизненным опытом повелители 1амперных зарядок это ппц просто.что ни пост то лайфхак в граните 🙂
ruslan6060,
Я так и делаю.
Что и требовалось доказать. У меня 20% потери за более 3х лет. Батарея за ночь разряжается на 10%, при выключенном wi-fi, gps, bluetooth. В обычной читалке — 8% за 1.5 часа, при минимальной яркости экрана. У кого-нибудь есть решение проблемы? Может быть брак батареи?
Настроить все приложения правильно.Их Настройки разбросаны в разных местах.Автозапуск, Разрешения пересмотреть, работа в фоне, доступ в фоне к инету , ограничение по батарее , отключить ненужные программы и службы, и т.д.
Или установить стороннее приложение и смотреть, кто из прог ест батарею чрезмерно.
El_Traifedo, Хоть и очень меня подвел дисплей , но именно на автономность не грешил. За ночь на 2 процета. Максимум 3. И это при включенном блутуз, вай фай, гео ( так как подключены умные часы) и после установки, единственно что сделал, отключил всю рекламу, все рекомендации. Как сделать есть в сети. И Надо 1-2 дня, чтоб Андроид устаканился!
Что, что (сомнения дисплей, камера. ) , но по автономности я был очень доволен! По автономности даже не верилось, что тут Акб 4250!
Slavas1337, с экраном все точно также как и у всех. Что такое «без дефектов», я не понял. Есть косяк с полутонами, остальное работает нормально
Добавлено 11.04.2021, 18:31:
paxanip, есть такой пункт, я его не заскринил.
У каждого свое использование, можно посидеть в твиттере через 4ж и результаты будут куда хуже а можно в Ютубе по вайфай и автономность будет выше.
В процессе работы за компьютером могут возникать различные ситуации, проблемы и прочие не совсем понятные и объяснимые вещи. И одной из таких проблем может являться появление файла под именем debug.log, который может быть пустым, и, соответственно, файл имеет размер в 0 байт, а может содержать не сильно понятные строки с текстом.
Спонтанное появление файла debug.log в различных папках
Дабы понять, что происходит, для начала стоит рассказать о предназначении данного файла. В данный файл прописывается различная отладочная информация, события, которые могут возникать в процессе работы программы. Данный функционал необходим программистам при разработке софта, его отладки (доведения до полностью безошибочной работы в тех или иных сценариях).
Для обычных пользователей данная информация не несёт никакой пользы, она является избыточной. Так почему же тогда порой данные файлы всё равно можно наблюдать? Ответ прост – программисты порой забывают отключить данный функционал при релизе программы, или при выходе её очередного обновления.
Причём изредка данные файлы создаются не из-за действий самих разработчиков, а из-за действий третьих лиц, которые включают режим отладки при создании так называемых сборок. Под сборками подразумеваются неофициальные дистрибутивы программных продуктов, игр.
К примеру, не так давно данная проблема была замечена у весьма серьёзного и довольно популярного программного продукта – графического редактора Adobe Photoshop. При его использовании создаётся файл debug.log в тех папках, откуда берутся изображения и куда сохраняются.
В конце концов, можно и немного подождать, благо сам софт же функционирует корректно и в полном объёме. А появляющийся файл debug.log можно удалить, ни к какому сбою это не приведёт. Единственное, необходимо отметить, что пока работает программа, которая его создала, оный файл удалить не получится, необходимо предварительно закрыть оную.
Мы рады, что смогли помочь Вам в решении поставленной задачи или проблемы.
В свою очередь, Вы тоже можете нам очень помочь.
Просто поделитесь статьей в социальных сетях и мессенджерах с друзьями.
Поделившись результатами труда автора, вы окажете неоценимую помощь как ему самому, так и сайту в целом. Спасибо!
В сегодняшней статье я покажу вам ещё один простой способ увеличить автономность, а иногда и производительность вашего смартфона Xiaomi, путём верной настройки некоторых параметров системы.
Если говорить конкретнее, то речь пойдёт о трассировке системы. И для начала, я хочу коротко, простым языком пояснить что это такое:
Трассировка системы Android — это аналитический инструмент для разработчиков, который записывает в специальный файл, все процессы, которые запущены в вашем смартфоне в конкретный промежуток времени.
Нужно это для того, чтобы с помощью специальных графиков отследить аномалии в тестовых сборках программ. Даже по заверению самой компании Google, эта системная функция не несут абсолютно никой видимой пользы рядовым пользователям, однако как вы уже понимаете, по умолчанию работает в фоне.
И раз уж мы с вами потратили столько времени на отключение сбора информации о системе, думаю логичным будет отключить и этот инструмент. Тем более, что на смартфон это отключение окажет позитивный эффект, ведь ему не надо будет производить ещё одно лишнее фоновое действие.
Для начала активируете меню для разработчиков, зайдя в «Настройки» —> Моё устройство —> несколько раз нажимая на пункт «Версия MIUI» до появления надписи «Вы стали разработчиком!»
Теперь возвращаетесь в главное меню настроек и следуете в «Расширенные настройки» —> Для разработчиков —> и находите строку «Трассировка системы»
Заходите в это меню и видите, что в зависимости от прошивки у вас будет активен один (а иногда и сразу два) из переключателей:
- Записывать действия на телефоне
- Записывать действия приложений доступных для отладки
Смело отключайте эти бесполезные службы, тем самым помогая телефону работать дольше и быстрее.
После этого рекомендую вернуться в меню для разработчиков и проверить, не выключен ли у вас пункт под названием «Ограничение запросов Wi-FI», так как на некоторых моделях он оказывается неактивен. Если у вас так, то обязательно включите его.
И ещё, несмотря на то что я писал об этом ранее, проверьте пункт «Не отключать мобильный интернет», ведь у некоторых пользователей, после обновления на MIUI 12 он снова может быть активен, а если это так, то выключите его, ведь он негативно влияет на автономность смартфона.
Напоследок скажу, что в самое ближайшее время выйдет большой материал посвященный проблеме с уведомлениями, с которой столкнулось большое количество читателей. Ваши вопросы не остались без внимания, способы решения будут предоставлены.
- Xiaomi bebird m9 pro обзор
- Как разблокировать хуавей если забыл пин код
- Как снять батарею хонор 20 лайт
- Как вставить сим карту в самсунг 7
- Huawei freelance не включается
Источник: telefony-gid.ru
Как снимать логи с устройств на Android и iOS: разбираемся с инструментами
Краткая инструкция по чтению и разбору логов мобильных устройств на Android и iOS, а также необходимые инструменты для Windows и MacOS.
Статья подготовлена red_mad_robot и «Альфа-Банком» на основе доклада Senior QA red_mad_robot Ольги Никитиной «Инструменты для снятия логов с Android / iOS устройств. Чтение и разбор» на митапе «QАчественное общение» при поддержке red_mad_robot.
Уровни логирования и что они означают
Для начала разберёмся с логами. Это текстовые файлы, в которых записываются все действия пользователя. Например, какие кнопки он нажимает в приложении и как на это оно реагирует в ответ.
Записи в логах формируются в хронологическом порядке. Самая свежая — внизу.
Есть два вида логов:
- Crash logs — файл, в котором хранятся записи только об ошибках экстренного завершения программы — по-простому, когда приложение крашнулось.
- Logs — простые логи, или журнал событий. Это файл, в котором хранятся системные записи и ответы устройства на действие пользователя.
Логи на мобильных устройствах бывают нескольких уровней:
Они представлены по уровню важности — от самого высокого к самому низкому, — и каждый следующий уровень включает в себя предыдущий. Например, VERBOSE содержит в себе логи всех остальных.
Примечание: уровни более применимы к логам на Android, потому что именно там такое разделение встречается чаще.
Рассмотрим подробнее каждый уровень.
Error (ERROR)
На этом уровне информируются ошибки работы системы.
Записи этого уровня требуют быстрого вмешательства разработчика — на такие ошибки нужно реагировать максимально быстро.
Как пример, такая запись в логе:
“ SpannableStringBuilder: SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length ”
Это ошибка, в которой говорится, что строковый элемент span не может быть пустым.
“ [ZeroHung]zrhung_get_config: Get config failed for wp[0x0008] ] ”
Эта системная ошибка сообщает, что происходит утечка памяти при взаимодействии с каким-то элементом или приложением.
Warning (WARN)
На этом уровне отображаются записи, сообщающие о каком-то неожиданном поведении, требующем внимания, или о ситуации, которая незнакома системе.
Например, сообщение ниже — запись из тестового приложения:
“ [OMX.hisi.video.decoder.avc] setting nBufferCountActual to 16 failed: -2147483648 “
Мы пытаемся декодировать запись в какой-то формат, но его нет. Ошибка сообщает о неуспешной попытке настройки видеоплеера в нужном формате.
“ BroadcastQueue: Permission Denial: broadcasting Intent ”
Эта системная ошибка говорит о сбое в работе одного из виджетов на устройстве.
Info (INFO)
На этот уровень приходят записи информационного характера, например о работе системы.
Допустим, такое сообщение об уровне заряда батареи на устройстве:
“ APwBatteryMonitor: screen off start battery: 100 ”
А это сообщение говорит о том, что экран устройства был выключен:
Ещё в логи этого уровня входят запросы от клиента на сервер: хедеры, тело запросов, которые отправляет клиент, и ответы сервера.
okhttp.OkHttpClient: server: nginx/1.15.9
okhttp.OkHttpClient: date: Thu, 23 Sep 2021 19:41:17 GMT
okhttp.OkHttpClient: content-type: application/json
okhttp.OkHttpClient: vary: Accept-Encoding
okhttp.OkHttpClient: strict-transport-security: max-age=15724800; includeSubDomains
Такие записи могут помочь вам в понимании какого-то бага или в разборе задачи при условии, что вы не можете перехватить трафик или не знаете, какие запросы отправляются на бэкенд.
Debug (DEBUG)
Это уровень сообщений, в которых передаётся информация о процессах отладки или шагах работы крупных процессов.
Например, в записи ниже сказано, что пользователь нажимал на кнопку уменьшения или увеличения громкости:
Сначала мы видим запись о самом факте нажатия на кнопку, далее оно расшифровывается подробнее:
Ещё пример: если ваше приложение использует сокет-сессию, то на уровне DEBUG мы можем увидеть, когда сессия начинается и заканчивается:
“ b$b: WebSocket connected ”
Verbose (VERBOSE)
Сообщения такого уровня уточняют или раскрывают действия.
Например, у нас есть служба управления окнами на экране приложения. И на уровне Verbose мы можем увидеть подробности её работы.
WindowManager: Removing Window
На этом уровне мы можем посмотреть системные подробности наших действий. Например, при включении геолокации в записи отобразится текущая геолокация.
GnssLocationProvider: reportLocation Location [. ]
А меняя звук на устройстве, мы увидим, как растёт или падает значение:
AudioManager: getStreamVolume streamType: 3 volume: 10
Каждое нажатие, то есть изменение звука, будет отражаться новым сообщением.
Verbose — уровень самого низкого приоритета. Выбирая такой уровень отображения логов, мы будем видеть записи и со всех предыдущих уровней.
Примечание: разработчики приложения самостоятельно покрывают действия логами, определяют уровни, а также какие сообщения какому из них соответствуют.
Инструменты для снятия логов: Android
Расскажем о трёх способах.
Первый — Logcat в составе Android Studio, самый известный и широко используемый.
Для снятия логов нам необходимо перевести устройство в режим разработчика/отладки. Для этого нужно:
- найти в настройках номер нашего билда или ОС (в зависимости от устройства),
- около десяти раз нажать на эту информацию,
- при появлении сообщения о том, не хотим ли мы перевести устройство в режим разработчика, нажать «Ок».
Примечание: алгоритм может отличаться в зависимости от производителя устройства, потому что у многих из них свои надстройки на ОС Android.
Дальше подключаем устройство по USB к ПК и устанавливаем Android Studio.
Следующие шаги на скрине:
- Выбираем вкладку Logcat (переходим к сообщениям в реальном времени).
- В окошке выбираем телефон, с которого снимаем логи.
- На этой вкладке выбираем логи определённого приложения. Если нужно снять вообще все логи со всех приложений и системы, эту вкладку стоит не трогать. Рядом с ней можно выбрать уровень логирования (вкладка Verbose на скрине).
- В поле поиска, где мы можем фильтровать выдачу, разрешено писать что угодно — от названия пакета до частей вроде fatal.
На скрине видно логи с подключенного устройства.
Второй способ — выгрузка логов с самого устройства. Кроме режима разработчика нам нужно подключить устройство к ПК через USB и установить ADB — Android Debug Bridge.
Открываем терминал и пишем две команды.
Первая — adb devices — показывает подключённые устройства, которые видит ADB. В терминале выглядит так:
Вводим вторую команду — adb -s название устройства logcat, — которая запускает утилиту Logcat для конкретного устройства. В терминале в реальном времени будут поступать логи.
Как их читать?
- В первом столбце — дата и время поступления записи.
- Во втором — обозначения уровней логирования. Например, D — это Debug.
- В третьем показываются названия инструмента, утилиты, пакета, от которых поступает сообщение, а также расшифровка того, что вообще происходит.
Третий инструмент — SDK Platform Tools. Процесс его установки практически аналогичен предыдущим двум:
- переводим телефон в режим разработчика,
- подключаем к ПК по USB,
- скачиваем на ПК папку SDK PT (под свою ОС),
- открываем папку SDK PT в терминале.
Теперь пишем команду ./adb logcat –v threadtime > ./android-debug.log.
В терминале это выглядит так:
Прерываем выполнение команды (например, на Mac это Control+C). Лог добавляется в папку.
Очень похоже на предыдущий терминал, но файл обновляется, пока в терминале действует команда.
Инструменты снятия логов: iOS
В первую очередь нас интересует xCode — интегрированная среда разработки (IDE), в которую встроен нужный нам инструмент Simulator.
Как использовать инструмент:
- Устанавливаем xCode.
- В системной строке нажимаем xCode → Open Developer Tools → Simulator.
- Устанавливаем приложение.
- В самом симуляторе выбираем Debug → Open System Log.
Мы будем видеть логи в реальном времени:
Подобное оформление логов мы уже где-то видели, но построение информации в выдаче немного отличается. Есть дата и время (1) и данные (2) о том, с какого устройства снята информация: имя компьютера, элемент системы, с которого пришло сообщение, и его расшифровка.
Но первый способ работает только с симуляторами. Если необходимо снимать логи с реального устройства, в этом может помочь раздел Devices and Simulators.
Записи можно отфильтровать по конкретному процессу (вашему приложению):
- Устанавливаем xCode.
- Подключаем устройство к ПК по USB.
- Открываем xCode → Windows → Devices and Simulators.
Дальше нажимаем у устройства Open Console и видим панель с названием устройства, информацией о модели и ОС:
Логи поступают в реальном времени, но их удобно отслеживать:
У нас есть три столбца:
- «Время» — время поступления сообщения.
- «Процесс» — с какой части системы/приложения пришло сообщение.
- «Сообщение» — описание события, сервисная информация.
В инструменте есть поиск для фильтрации выдачи. Ещё есть полезная кнопка «Приостановить» — она останавливает поток логов.
А вот утилита iMazing поможет снимать iOS-логи для тех, у кого установлен Windows. Приложение платное, но часть функциональности доступна бесплатно. Например, за снятие логов устройства платить не нужно.
В меню выбираем «Показать консоль устройства». В открывшемся окне приходят записи логов в реальном времени со всего устройства.
Ещё одно важное достоинство iMazing — возможность сохранять логи (разумеется, по кнопке «Сохранить»).
Статья подготовлена red_mad_robot и «Альфа-Банком» на основе доклада Senior QA red_mad_robot Ольги Никитиной «Инструменты для снятия логов с Android / iOS устройств. Чтение и разбор» на митапе «QАчественное общение» при поддержке red_mad_robot.
Источник: habr.com
Файл debug.log в папках, на рабочем столе – что это такое, причины появления
В процессе работы за компьютером могут возникать различные ситуации, проблемы и прочие не совсем понятные и объяснимые вещи. И одной из таких проблем может являться появление файла под именем debug.log, который может быть пустым, и, соответственно, файл имеет размер в 0 байт, а может содержать не сильно понятные строки с текстом.
Давайте разберёмся, какова причина этого явления и как с ней справиться.
Спонтанное появление файла debug.log в различных папках
Дабы понять, что происходит, для начала стоит рассказать о предназначении данного файла. В данный файл прописывается различная отладочная информация, события, которые могут возникать в процессе работы программы. Данный функционал необходим программистам при разработке софта, его отладки (доведения до полностью безошибочной работы в тех или иных сценариях).
Для обычных пользователей данная информация не несёт никакой пользы, она является избыточной. Так почему же тогда порой данные файлы всё равно можно наблюдать? Ответ прост – программисты порой забывают отключить данный функционал при релизе программы, или при выходе её очередного обновления.
Причём изредка данные файлы создаются не из-за действий самих разработчиков, а из-за действий третьих лиц, которые включают режим отладки при создании так называемых сборок. Под сборками подразумеваются неофициальные дистрибутивы программных продуктов, игр.
К примеру, не так давно данная проблема была замечена у весьма серьёзного и довольно популярного программного продукта – графического редактора Adobe Photoshop. При его использовании создаётся файл debug.log в тех папках, откуда берутся изображения и куда сохраняются.
Так как же исправить проблему с появлением файла debug.log. Об этом далее.
Исправить данную проблему достаточно легко – просто установить обновление данного программного обеспечения, где оная проблема устранена. Если на текущий момент более новая версия программы отсутствует, то можно установить предыдущую версию программы.
В конце концов, можно и немного подождать, благо сам софт же функционирует корректно и в полном объёме. А появляющийся файл debug.log можно удалить, ни к какому сбою это не приведёт. Единственное, необходимо отметить, что пока работает программа, которая его создала, оный файл удалить не получится, необходимо предварительно закрыть оную.
Ну вот, теперь вы знаете, что за файл такой под именем debug.log, почему он появляется на компьютере и как можно исправить ситуацию.
Мы рады, что смогли помочь Вам в решении поставленной задачи или проблемы.
В свою очередь, Вы тоже можете нам очень помочь.
Просто поделитесь статьей в социальных сетях и мессенджерах с друзьями.
Поделившись результатами труда автора, вы окажете неоценимую помощь как ему самому, так и сайту в целом. Спасибо!
Источник: it-actual.ru