- Смартфоны с 4-мя ядрами процессора
- Cubot J10
- Doogee S35T
- BQ Mobile BQ-5565L Fest
- UMIDIGI Power 5s
- UMIDIGI A11s
- Oukitel C25
- Infinix Smart 5A
- Nokia C30
- Ulefone Note 6
- Doogee S35
- Alcatel 1L (2021)
- Alcatel 1 (2021)
- ZTE Blade A3 Joy
- Wiko Y62
- Wiko Y51
- Oukitel K15 Plus
- Doogee X95 Pro
- Nokia C20
- Nokia C10
- Oukitel WP12
- Nokia 1.4
- Samsung Galaxy M02
- Samsung Galaxy A02
- 5 бюджетных смартфонов с самыми мощными процессорами
- LeEco Cool1
- Xiaomi Redmi Note 5 / Redmi Note 6
- Обзор особенностей ядра Андроида
Смартфоны с 4-мя ядрами процессора
В каталоге выложены все модели смартфонов с 4-ядерными процессорами. Здесь вы можете выбрать модель, узнать лучшие цены и выгодно купить 4-ядерный смартфон.
Cubot J10
процессор SoC: Spreadtrum SC7731E (ядер-4)
камера: 5МП (одиночная)
Doogee S35T
процессор SoC: Unisoc Tiger T310 (ядер-4)
камера: 12МП (двойная)
быстрая зарядка: есть
BQ Mobile BQ-5565L Fest
процессор SoC: Spreadtrum SC9832E (ядер-4)
камера: 2МП (одиночная)
UMIDIGI Power 5s
процессор SoC: Unisoc Tiger T310 (ядер-4)
камера: 16МП (тройная)
быстрая зарядка: есть
UMIDIGI A11s
процессор SoC: Unisoc Tiger T310 (ядер-4)
камера: 16МП (тройная)
быстрая зарядка: есть
Oukitel C25
процессор SoC: Unisoc Tiger T310 (ядер-4)
камера: 13МП (тройная)
быстрая зарядка: есть
Infinix Smart 5A
процессор SoC: Helio A20 (MT6761D) (ядер-4)
камера: 8МП (двойная)
быстрая зарядка: есть
Nokia C30
процессор SoC: Unisoc SC79863a (ядер-4)
память: 32 / 64 ГБ
камера: 13МП (двойная)
быстрая зарядка: есть
Ulefone Note 6
процессор SoC: Spreadtrum SC7731E (ядер-4)
камера: 5МП (двойная)
Doogee S35
процессор SoC: MediaTek MT6737V/W (ядер-4)
камера: 13МП (тройная)
быстрая зарядка: есть
Alcatel 1L (2021)
процессор SoC: Helio A20 (MT6761D) (ядер-4)
камера: 12МП (двойная)
Alcatel 1 (2021)
процессор SoC: MediaTek MT6739 (ядер-4)
память: 8 / 16 ГБ
камера: 5МП (одиночная)
ZTE Blade A3 Joy
процессор SoC: Helio A20 (MT6761D) (ядер-4)
камера: 8МП (одиночная)
Wiko Y62
процессор SoC: Helio A20 (MT6761WE) (ядер-4)
камера: 5МП (одиночная)
Wiko Y51
процессор SoC: Spreadtrum SC7731E (ядер-4)
камера: 5МП (одиночная)
Oukitel K15 Plus
поддержка NFC: есть
процессор SoC: Helio A20 (MT6761D) (ядер-4)
камера: 13МП (тройная)
быстрая зарядка: есть
Doogee X95 Pro
процессор SoC: Helio A20 (MT6761D) (ядер-4)
камера: 13МП (тройная)
быстрая зарядка: есть
Nokia C20
процессор SoC: Unisoc SC79863a (ядер-4)
память: 16 / 32 ГБ
камера: 5МП (одиночная)
Nokia C10
процессор SoC: Unisoc SC7331e (ядер-4)
память: 16 / 32 ГБ
камера: 5МП (одиночная)
Oukitel WP12
поддержка NFC: есть
процессор SoC: Helio A22 (MT6761) (ядер-4)
камера: 13МП (двойная)
быстрая зарядка: есть
Nokia 1.4
процессор SoC: Snapdragon 215 (ядер-4)
память: 16 / 32 / 64 ГБ
камера: 8МП (двойная)
Samsung Galaxy M02
процессор SoC: MediaTek MT6739WW (ядер-4)
экран: 6.5″ / PLS IPS
камера: 13МП (двойная)
быстрая зарядка: есть
Samsung Galaxy A02
процессор SoC: MediaTek MT6739V/WW (ядер-4)
Источник
5 бюджетных смартфонов с самыми мощными процессорами
LeEco Cool1
Что за процессор | Snapdragon 652 — «старый конь борозды не испортит». Кушает заряд аккумулятора с аппетитом, но отрабатывает это отличной мощностью. |
Цена | 6.5-7.5 тысяч рублей (китайские интернет-магазины) В России официально не продаётся |
Хорош ли смартфон в целом | Прекрасен. Прожорливость процессора компенсировали 4000 мАч в аккумуляторе, горячий нрав — 5.5-дюймовым корпусом. Экран качественный, камеры неплохие. Но запчастей мало и всех придётся заказывать из Китая, и Андроид старый (6.0), хотя и с русским языком/Google Play в комплекте. |
Подробности | Обзор LeEco Cool1 |
Альтернатива | Meizu M6s – современный китайский бюджетник с мощным шестиядерным процессором Samsung |
Сытый голодному не товарищ, поэтому вряд ли я смогу обрадовать тех, кто ищет «мощнейший» смартфон за 10 тысяч рублей, или считает таковым любой мобильник лучше, чем iPhone 4. А на самом деле смартфоны с мощными процессорами начинаются с 10-12 тысяч рублей в российской официальной рознице, и 7-8 тысяч рублей на этом вашем Aliexpress.
Выбор при этом тоже не очень сладкий – древние и бестолковые восьмиядерники Kirin 650-659 в смартфонах Huawei/Honor, срамота доисторическая от MediaTek MT6735 до MT6753, уже более-менее быстрые, но склонные к перегреву, прожорливые и маломощные в играх MediaTek Helio P10/P18/P20/P23/P25. И, наконец, бюджетные процессоры «здорового человека» в лице Qualcomm Snapdragon разной степени выдержки.
Ещё не устали? Тогда слушайте дальше: Snapdragon в современных бюджетных смартфонах делятся на четырёхъядерных «доходяг» (Snapdragon 410, 425), восьмиядерных процессоров класса «чёрт с ним, лишь бы как-нибудь ворочалось» (Snapdragon 430, 435, 615, 616, 617) и «восьмиядерники бодрые среднестатистические» (Snapdragon 625, 626, 630, а также их кастрированная версия в лице Snapdragon 450). Если вы не хотите приключений и максимализма при покупке недорогого смартфона, покупайте что-нибудь с процессорами из последней категории – скорость работы будет вас радовать.
А если вы старый техносамурай и готовы пройти путь воина, чтобы получить самый мощный смартфон на потраченный рубль, открывайте Aliexpress и хватайте в нём последние экземпляры LeeCo (он же Coolpad) Cool1 с немолодым и прожорливым, но всесторонне крутым восьмиядерным процессором Qualcomm Snapdragon 652.
Понятное дело, что в текст этой статьи может занести не только ребят, которые знают все китайские мобильники наизусть, но и менее увлечённую аудиторию. Поэтому на закономерный вопрос «какой, к чёртовой бабушке, LeEco?» я не стану отвечать в сотый раз. Но предложу прочитать подробно, почему это не «ведро китайское полуподвальное», а очень качественный смартфон производителя, который хотел стать новым Xiaomi, но хотелка оказалась недостаточной длины.
В двух словах – выносливый смартфон с хорошим сканером отпечатков пальцев и неплохими камерами за менее 8 тысяч рублей. Одинаково быстрый в приложениях и играх – в этом плане процессоры Snapdragon 650-й и 660-й выглядят как тройка немолодых, но породистых скакунов, а Snapdragon 625/626/630 – упряжка из восьми пони, которых очень больно хлыщет по пятой точки наездник, чтобы они мчались «через не могу» наравне со старыми более дорогими упряжками. На ровной дороге (в приложениях) и пони по инерции справляются неплохо, но под горку (игры, всяческие редакторы морды лица и прочих фотофильтров, украшательства видеозаписей, скорость работы в процессе, когда вы отправляете что-то огромное по 4G и т.д.) мускулатура старых коней оказывается полезнее.
По скорости работы этот дешёвый китайский смартфон будет круче, чем Apple iPhone SE или 6s, и примерно равен Самсунгу Galaxy A8+ (2018), за который нынче просят 25 тысяч рублей. Да, от 10 тысяч найдётся китайщина, которая будет быстрее и круче, а любители «кабы чего не вышло» будут призывать вас отречься от ереси и выбрать Xiaomi с процессорами Snapdragon 450/625. Но вы ведь здесь ради того, чтобы получить максимум мощности не в ущерб качеству смартфона по минимальной цене? Тогда Cool1, или хотя бы Meizu M6s, если игры для вас вообще не важны.
Xiaomi Redmi Note 5 / Redmi Note 6
Что за процессор | Snapdragon 636 – самый мощный процессор из всех, которые бывают в смартфонах оф.розницы РФ до 20 тысяч рублей. Самый мощный процессор в смартфонах до 12 тысяч рублей в китайских интернет-магазинах. |
Цена | 9-13 тысяч рублей (китайские интернет-магазины) 15-18 тысяч рублей (российская оф.розница) |
Хороши ли смартфоны в целом | Страшноватые с виду и очень крупные, но выносливые и быстрые смартфоны с хорошими камерами. |
Подробности | Обзор Xiaomi Redmi Note 5 |
Характеристики Xiaomi Redmi Note 6 | |
Альтернатива | Xiaomi Mi 6x/Mi A2 с 4/32 Гбайт – чуть более дорогой, чуть более быстрый, лучше камеры. Но хуже автономность. |
Трудно спорить с тем, что Xiaomi, у которых весь смысл существования состоит в «мы тут запихнули всё как можно более крутое, но с минимальной наценкой», будут часто мелькать в рейтингах мощных смартфонов. Но в большинстве случаев их лепят в текст по пути наименьшего сопротивления – потому что Meizu вышли из моды, ASUS найти сложнее, а Huawei безобразно дорогие. И всё это не означает, что халтура под названием «мы впариваем вам Snapdragon 625 с конца 2016 года» похвалы уже не заслуживает. Это как восхищаться песней «Гангнам стайл» – либо вы отстали от жизни, либо очень впечатлительный.
Источник
Обзор особенностей ядра Андроида
“А я… карбюратор промываю!”
Анекдот
В детском садике мы с единомышленниками препарировали кузнечиков в надежде разобраться в их строении. В школе распаивали радиоприёмник “Россия”. В институте дошла очередь до автомобилей, гайки которых были многократно переставлены. Интересы поменялись, но желание “разбирать” иногда просыпается, и сегодня оно направлено на Андроид.
Сколько раз вас выручало наличие исходников Андроида? Меня — уже не счесть. Андроид — открытый проект, но, к сожалению, у нас есть возможность только читать; править код Андроида, не будучи сотрудником Google, практически невозможно. Погрустим над этим моментом и загрузим репозиторий. Как это сделать, отлично описано на официальном сайте.
Общая архитектура
Архитектуру Андроида можно схематично изобразить так:
Оригинальная схема не содержит информации об особенностях ядра и не акцентирует внимание на Binder-е и системных сервисах. А ведь Binder является “клеем”, связывающим все компоненты системы.
Как правило, в книгах описывается верхний левый синий прямоугольник, то есть API, которое доступно разработчику прикладных приложений. Нас же интересует всё, что ниже. Сегодня мы рассмотрим только ядро.
Ядро — центральная часть любого дистрибутива, называемого “Линукс”. Несмотря на доступность “чистого” ядра, многие разработчики (Ubuntu, Fedora, SuSe и т.д.) добавляют к нему свои патчи перед включением в дистрибутив. Андроид идёт той же дорогой, только ценой потери прямой совместимости: на “чистом” ядре он не заведётся. В настоящее время есть намерения включить “андроидизмы” в основную версию ядра, в 2011 году Линус Торвальдс давал на этот процесс 4-5 лет. Успех уже достигнут в рамках включения механизма wakelocks в версии ядра 3.5.
Рассмотрим “андроидизмы” более подробно.
История данного механизма эпична, потянет на сборник статей “Путь wakelock-ов в Линукс”: их обсуждение заняло порядка 2000 писем в рассылке LKML.
Настольные компьютеры и ноутбуки имеют устоявшуюся систему энергорежимов (у x86 процессоров таковых несколько): компьютер работает “на полных оборотах”, когда что-то делается, и уходит в энергоэффективный режим, когда система простаивает. Уход в “спящий” режим происходит либо после довольно длительного бездействия, либо вручную, например, при закрытии крышки ноутбука.
На телефонах требовался другой механизм: основное состояние системы — “спячка”, выход из него осуществляется только в случаях необходимости. Таким образом, система может уснуть, даже если какое-то приложение проявляет активность. В Андроиде был реализован механизм wakelock-ов: если приложение (или драйвер) выполняет что-то важное, что должно дойти до логического завершения, оно “захватывает” wakelock, предотвращая засыпание устройства.
Попытки портирования механизма wakelock-ов в ядро вызвали сопротивление многих разработчиков. Программисты Андроида решали конкретную проблему, решением которой стал определённый механизм. Условия задачи были весьма узки. Целевая платформа — ARM, поэтому использовались её особенности: ARM-процессоры изначально предполагают частую смену режимов работы “сна” и “бодрствования”, в отличие от x86. В Андроиде приложения общаются с системой управления питанием через PowerManager, а что делать клиентским Линукс-приложениям?
Разработчики Андроида даже не пытались найти общее решение “на будущее”, которое потом без проблем бы вливалось в основное ядро, не консультировались по этой проблеме с сообществом ядра Линукс. Можно ли их за это винить? Несмотря на все проблемы и обсуждения, как упоминалось выше, в ядре появилось API с идентичной функциональностью autosleep.
Программистам приложений под Андроид довольно редко приходится сталкиваться с wakelock-ами, так как платформа и драйверы обрабатывают возложенные на них обязательства с учётом “спящего” режима. Тем не менее, вмешаться в этот процесс поможет знакомый PowerManager. Кстати, автору приходит в голову только один сценарий: не дать телефону уснуть при запуске сервиса из BroadcastReceiver-а, что решается вспомогательным классом из Android Support Library WakefulBroadcastReceiver.
Low Memory Killer
В стандартном ядре Линукса есть Out of Memory Killer, который на основании параметра badness определяет убиваемый процесс:
badness_for_task = total_vm_for_task / (sqrt(cpu_time_in_seconds) *
sqrt(sqrt(cpu_time_in_minutes)))
Таким образом, чем больше процесс потребляет памяти и чем меньше живёт, тем меньше ему повезёт.
Все программисты, читавшие документацию или проходившие собеседования, знают, что, во-первых, процесс может быть “убит” и при наличии свободных ресурсов, во-вторых, кандидат на вытеснение выбирается по другим критериям: наличие “живых” Андроид-компонент, видимость пользователю и так далее.
Механизм довольно простой: каждому процессу присваивается приоритет от -17 до 16, при этом чем выше приоритет, тем выше вероятность убивания процесса, и, в зависимости от количества свободной памяти, выбирается приоритет, начиная с которого процессы будут завершены. Приоритеты описаны в ProcessList.java. Занимательно, что приоритет приложения домашнего экрана HOME_APP_ADJ довольно высок, а я-то думал: почему он постоянно перезапускается?
Массивы mOomAdj и mOomMinFreeLow/mOomMinFreeHigh как раз задают правила “когда что очистить”:
Таким образом, приложение домашнего экрана вытесняется при остатке свободной памяти в 73728 КБ на телефоне с экраном 1280×800 и ОЗУ в 700 МБ.
ProcessList передаёт соответствующие значения в ядро, что можно видеть в его методе updateOomLevels.
Приоритеты процессам выставляет Activity Manager Service, один из многих системных сервисов, общаться с которым можно через Activity Manager.
Binder, наряду с другими решениями (Files, Sigmals, Sockets, Pipes, Semaphores, Shared Memory и т.д.), решает задачу межпроцессного взаимодействия. Ноги у данного решения растут из проекта OpenBinder, разработчики которого в своё время перешли в команду Андроида.
Bionic (реализация libc) не использует System V IPC, так как в андроидовском окружении стандартные средства приведут к утечкам ресурсов.
Особенности:
- Управление потоками (мы все помним, что сервис, поддерживающий AIDL, должен работать в многопоточном окружении). Максимальное число потоков — 15 (ProcessState.c, метод open_driver), поэтому не стоит блокировать Binder-потоки в большом количестве без лишней необходимости.
- Механизм информирования о смерти процесса, держащего объект Binder “Link to Death”. Например, через него Window Manager узнаёт о смерти приложения и удаляет связанные с ним окна. Также LocationManager при смерти всех своих слушателей перестаёт опрашивать GPS-приёмник. Lowmemorykiller доволен. 🙂
- 2 режима вызова: блокирующий и неблокирующий (oneway). В первом случае вызывающий поток блокируется и ждёт отработки метода в потоке процесса-обработчика. Программисты просто вызывают методы через точку, взаимодействие потоков берёт на себя платформа.
- Передача UID и PID для безопасности. Через них системные сервисы определяют, есть ли у вызывающего процесса права совершать запрашиваемые действия.
- Для Java-программистов — средства создания Proxy и Stub-ов для конвертирования вызовов Java-методов в транзакции Binder-а.
Рассмотрим как это работает на примере LocationManager-а.
Когда мы хотим получить информацию о GPS, происходит следующее:
- Наше приложение вызывает соответствующий метод у LocationManager-а.
- LocationManager делегирует вызов прокси-объекту, преобразующему Java-методы и объекты в Binder-транзакцию (прокси-объектом у LocationManager-а является mService).
- Транзакция посылается драйверу ядра, который перенаправляет её LocationManagerService-у, отнаследованному от .LocationManager.Stub.
- .LocationManager.Stub делает обратные действия: разворачивает транзакцию в вызов Java-метода.
- .LocationManagerService обрабатывает запрос (используя, например, GPS-драйвер).
- Stub-объект пакует ответ в транзакцию, и процесс идёт в обратном направлении.
- Драйвер пересылает ответ обратно.
- Прокси-объект распаковывает результат вызова метода в Java-объекты.
Как видим, за вызовом методов системных сервисов скрывается довольно большая логика.
Anonymous Shared Memory (ashmem) — механизм разделяемой памяти. В Линуксе, как правило, данный механизм реализован через POSIX SHM. Разработчики Андроида сочли его недостаточно защищённым, что могло сыграть на руку вредоносному ПО. Особенностями ashmem-а являются счётчик ссылок, при обнулении которого разделяемая память может быть освобождена (например, память освобождается при завершении всех процессов, использующих её), и сокращение разделяемого региона при нехватке памяти в системе.
Ярким примером использования ashmem-а является процесс zygote, в котором загружается стартовая версия Dalvik VM с загруженными базовыми классами и ресурсами, а остальные приложения просто ссылаются на эту память.
Binder имеет ограничение на размер транзакции в 1МБ (иначе будет выброшено исключение TransactionTooLargeException). Если нам надо передать из одного процесса в другой большой объём данных, можно как раз воспользоваться Ashmem-ом: создать MemoryFile и передать дескриптор файла в другой процесс.
Обычные дистрибутивы, как правило, используют две системы логирования: лог ядра, доступный через команду dmesg, и системные логи, располагающиеся обычно в директории /var/log.
Система Андроида включает несколько циклических буферов для хранения сообщений пользовательских программ (что продлевает время жизни карт памяти, так как циклы чтения-записи не расходуются впустую) и не имеет дополнительных задержек от работы с сокетами, которые применяются в стандартном syslog-е.
На диаграмме представлена общая система логирования Андроида. Драйвер логирования предоставляет доступ к каждому буферу через /dev/log/*. Приложения имеют доступ к ним не напрямую, а через библиотеку liblog. С библиотекой liblog общаются классы Log, Slog и EventLog. Команда adb logcat показывает содержимое буфера “main”.
В данной заметке мы кратко рассмотрели некоторые особенности Андроида как Линукс-системы. За скобками остались некоторые другие части (pmem, RAM console и т.д.), а также такие важные аспекты платформы в целом, как System Service, процесс запуска системы и другие. Если данная тема будет интересна, в следующих статьях мы рассмотрим и их.
Источник