LINUX.ORG.RU

Android-x86? Что за ноут? (Просто интересно)

Эмулятор терминала типа этого? Автор пишет, что это форк AOSP Term. Скачать и сравнить можно здесь.

Если это он, то, имхо, вещь практически бесполезная - доступны максимум огрызок базибокса (если есть) и ведроспецифичные команды типа am. А разгадка одна - апкшник весит примерно нисколько и даёт доступ только к тому, что есть в прошивке (либо скачал вручную, но это в нём не проверял).

Скрипты и всё остальное гонял в Termux, где есть пакетный менеджер. Если его не хватит, то в нём через PRoot Distro можно накатить дистрибутив по вкусу. Ещё можно через Termux:X11 запускать настольные графические приложения, но для ноутбука на Android это уже слишком костыльно - проще уж ведроприложения гонять из-под полноценной системы.

GenSekY
()
Ответ на: комментарий от GenSekY

Спасибо. Я практически ничего не понял из того что вы написали.

Что я хочу? Я хочу чтоб написанная мной, на этом Android-x86 Шелл программа - запускалась на моём телефоне, например.

На ноуте написано: HP покупали в 2015 году. 4ГБ. Селерон. 2х1,6. 64Бит

sokolov
() автор топика
Ответ на: комментарий от sokolov

Даже и не знаю, с чего начать. Есть опыт взаимодействия с какими-либо дистрибутивами GNU/Linux или *BSD?

Что имеется в виду под «шелл программой»? Именно shell script или программа с интерфейсом командной строки?

В «родной» «командной строке» интерпретатором, скорее всего (если это всё же AOSP Term), будет mksh, а набор доступных «из коробки» программ будет ограничен toybox (в прошлом ответе я помянул BusyBox, но оказалось, что это было давно и неправда) и некоторыми андроид-специфичными, например, теми, которые можно вызвать через adb. Да, дополнительные программы можно скомпилировать/скачать и закинуть в телефон, но Google активно борется с этим и уже запретил запуск даже и из домашней директории APK-приложения. В Termux же, как я уже сказал, есть пакетный менеджер (из-за которого он не может быть обновлён в Play Маркете).

Для shell script может и хватить «командной строки», если не пытаться дёргать отсутствующие программы/возможности. Если же целью является написание сложных/иных скриптов/программ на Android и под Android (идея так себе, если честно), то наименее геморно это можно делать в Termux.

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

GenSekY
()
Ответ на: комментарий от treasure

Писать можно - если есть хорошее железо. У меня компиляция Хеллоу Ворд идёт около 5 мин. Эмулятор не открывается вообще.

Плюс, мне хочется чтоб Андроид стал нормальной ОС - в которой есть Шелл, компиляторы для разных языков и пр. для создания приложений для Андроида, прям на Андроиде.

sokolov
() автор топика
Ответ на: комментарий от sokolov

мне хочется чтоб Андроид стал нормальной ОС

Пиши большое количество туториалов для нормальных людей. Они подтянутся, и напишут всё остальное.

Но мне кажется, что настоящая цель у тебя другая, например «провести время с пользой», «получить навыки для мирной гражданской жизни после выхода из зоны (каких-либо ограничений)».

Shushundr ★★★
()
Ответ на: комментарий от GenSekY

Посмотрел внимательней этот терминал:

TermOne Plus
About
Access your Android's built-in command line shell
...
...
You may want to install additional utilities in order to add commands beyond the commands that come built into your Android device.
<external>

Он использует только ВСТРОЕННЫЕ команды Андроида. Я верно перевёл?

sokolov
() автор топика
Ответ на: комментарий от Shushundr

Но мне кажется, что настоящая цель у тебя другая, например «провести время с пользой», «получить навыки для мирной гражданской жизни после выхода из зоны (каких-либо ограничений)».

Нет. Я писал выше. У меня слабое железо которое не тянет Андроид-Студио.

Плюс. Шелл для меня - это родная среда.

sokolov
() автор топика
Ответ на: комментарий от sokolov

И в документации на TermOne Plus постоянно пишут, что он открывает доступ к «Оболочке командной строки Андроид устройства» - А просто так не войти в эту «Оболочку»?

sokolov
() автор топика
Ответ на: комментарий от sokolov

Поставил себе на ноутбук Андроид.

Начни с того, что напиши статью как ты это делал, чтобы другие люди тоже смогли повторить. Если кто-то повторит, то у вас с ним будет о чём поговорить.

Shushundr ★★★
()
Ответ на: комментарий от Shushundr

Статью… Так ведь установка прошла полностью стандартно:

  1. Выделил место на диске;
  2. Скачал образ;
  3. dd его на флешку;
  4. Поигрался в Life-android;
  5. Поставил на выделенное место.

Что тут писать в статье?

sokolov
() автор топика
Ответ на: комментарий от sokolov

Что тут писать в статье?

Сразу видно, что ты не копирайтер. Можно описать характер главного героя, сеттинг, откуда качать образ, чем это обернётся в будущем (как качать обновления), скрины как игрался и т.д.

Shushundr ★★★
()
Ответ на: комментарий от sokolov

Наконец-то получено название «командной строки».

Беглый поиск показал, что TermOne Plus заявлен «клоном» Terminal Emulator for Android, ссылку на GitHub которого я давал ещё в начале своего первого сообщения.

Отвечаю оптом на все сообщения:

Он использует только ВСТРОЕННЫЕ команды Андроида. Я верно перевёл?

Ваш перевод частичен. Если перевести полностью, то будет то, что я писал в двух сообщениях до этого.

И в документации на TermOne Plus постоянно пишут, что он открывает доступ к «Оболочке командной строки Андроид устройства» - А просто так не войти в эту «Оболочку»?

Я не зря спрашивал про опыт взаимодействия - слово эмулятор не должно вас смущать. И я рекомендую попробовать разобраться в устройстве самого Android - он сильно отличается от «классических» дистрибутивов GNU/Linux (если это тоже вызывает вопросы, то советую начать с разницы между ядром Linux и дистрибутивом GNU/Linux).

Плюс, мне хочется чтоб Андроид стал нормальной ОС - в которой есть Шелл, компиляторы для разных языков и пр. для создания приложений для Андроида, прям на Андроиде.

Это всё есть в Termux. Последняя ссылка в моём втором сообщении.

Шелл скрипт.

Для Android уже существуют нативно примерно все типы программ, которые могут покрыть практически все типовые потребности людей. И любой эмулятор терминала является одной из них - инструментом предоставления возможности работы в интерфейсе командной строки. Да, можно написать различные скрипты для автоматизации/массовой обработки чего-либо, можно даже взаимодействовать с операционной системой. Как хобби - это прикольно, иногда даже полезно/нужно/удобно, но если вы решите поделиться с другим человеком вашим шелл-скриптом, то ему придется предварительно установить Termux эмулятор терминала. Неподготовленным людям этом может нанести травму.

У меня слабое железо которое не тянет Андроид-Студио.

Если проблема только в этом, а не

Шелл для меня - это родная среда.

, то можно обойтись и без Android Studio для создания полноценных нативных графических APK-приложений для Android.

Могу привести максимально простой пример - V Android Bootstrapper (vab) для программ на языке V. По ссылкам есть подробные инструкции по установке и настройке. Для vab даже есть команда для автоматической загрузки и установки Android SDK и NDK. В экспериментальном режиме поддерживается сборка в том-самом-Termux.

Если не нравится удобный, но пока не особо распространённый язык V - можно писать и на C. У библиотеки SDL есть исчерпывающая документация и отдельная статья с примерами. Возможно, что и в этом случае в опять-том-самом-Termux удастся собрать приложение, но я не проверял.

В том и другом случае на не самом быстром придушенном ноутбучном процессоре сборка APK занимает секунды.

Похоже, что эта Командная строка может быть запущена перед запуском Андроида - выскакивает что-то очень на неё похожее.

«Выскакивать» могут загрузчик, сообщения ядра либо системы инициализации (я не знаю, на каких именно костылях работает Android-x86).

Спрашивайте, если ещё будут вопросы, но предварительно рекомендую разобраться в теории/терминологии и почитать информацию по ссылкам из сообщений.

GenSekY
()
Ответ на: комментарий от GenSekY

программа с интерфейсом командной строки?

Возможно моя информация будет полезна: если взять одноплатный ARMv7 комп,поставить на него линукс, собрать из исходника на Си программу с интерфейсом командной строки используя ключ -static для линкера,потому положить получившийся бинарник в андроидный телефон/планшет - и запустить хоть из андроидного терминала хоть через adb shell - оно внезапно там запустится. Я запускал вот этот тест производительности: https://en.wikipedia.org/wiki/NBench Для сборки использовал Дебиан,установленный на плату от телеприставки MELE A2000G.

я помянул BusyBox

Он есть в виде APK для установки в андроид(под ARM). Скачать можно например с сайта APKpure(там вообще много полезного).

можно скомпилировать/скачать и закинуть в телефон, но Google активно борется с этим и уже запретил запуск даже и из домашней директории APK-

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

написание сложных/иных скриптов/программ на Android и под Android (идея так себе, если честно)

С этим согласен. Более интересно было бы написание программ на Си но с графическим интерфейсом(пусть простым и «некрасивым»). Нужно это естественно с целью выжимания максимальной производительности. Вот не знаю есть ли для Си готовые библиотеки для создания GUI под андроидом. Нужно это конечно не для «телефонного» применения,а для использования андроидных гаджетов (возможно - вышедших из моды) в разных узкоспецифичных применениях,например как управляющие компы для чего-нибудь. Благо usb host в них чаще всего есть и можно подключать внешние устройства. Там правда нередко возникает проблема отсутствующих в ядре модулях поддержки этих устройств,но это вопрос отдельный и более-менее поддающийся решению.

watchcat382
()
Ответ на: комментарий от MagicMirror

Я хочу возить цемент, но мешки не помещаются на велосипед. Как мне пересыпать цемент в пакетики, чтобы возить на велосипеде?

Ну я как-то раз возил чтобы на себе не таскать. В деревне народ и не такое придумывает чтобы облегчить себе жизнь.

watchcat382
()
Ответ на: комментарий от sokolov

Что тут писать в статье?

Описать что получилось, что теперь ноут может,какие есть программы,какие возможности/удобства добавились,какие пропали. У меня есть нетбук Asus eeePC,у него маленький экран поэтому классический линуксовый десктопный софт на него влезает плохо. Тоже задумывался о превращении его в «планшет с клавиатурой» именно по причине того что андроидный софт обычно адаптирован под маленькие экраны.

watchcat382
()
Ответ на: комментарий от watchcat382

Получилось - не очень, по причине того что USB модем не прикручивается. - Интернета нет. - Смысл теряется.

Программы которые предустановлены - работают. Шустро и хорошо.

Поставилась только одна Прога - остальные выдавали ошибки.

sokolov
() автор топика
Ответ на: комментарий от watchcat382

если взять одноплатный ARMv7 комп

Можно и без одноплатника - кросс-компиляция есть в gcc/clang/NDK (который тоже clang).

я помянул BusyBox

Он есть в виде APK для установки в андроид(под ARM). Скачать можно например с сайта APKpure(там вообще много полезного).

Я и скачивал его апкшником лет 12 назад. Ответ был в контексте, что может быть доступно без установки чего-либо ещё + это было уточнением/исправлением к прошлому ответу тк в Android доступен toybox.

Всегда можно использовать версию андроида в которой это не запрещено.

Всегда, когда удастся запустить её на устройстве.

Благо в андроиде с обратной совместимостью всё довольно хорошо и большинство софта работает в самых разных версиях андроида.

Если не использовать фичи новых версий Android, то да. В противном случае придётся использовать что-то типа Appcompat, который не соберётся под версии Android ниже 4.4. Некоторые другие библиотеки уже тоже поддерживают только относительно современные версии Android. Если коснуться компиляции нативного кода, то из NDK r26 убрали возможность сборки под версии Android ниже 5. Да, пока можно пользоваться старыми версиями библиотек/SDK/NDK, но будет накапливаться отставание, а рано или поздно я вангую и ограничение возможности запуска «просрочки».

Более интересно было бы написание программ на Си но с графическим интерфейсом(пусть простым и «некрасивым»).

Вот не знаю есть ли для Си готовые библиотеки для создания GUI под андроидом.

Я недавно экспериментировал с графическими приложениями под Android на V/Sokol, V/SDL и C/SDL2. Опыт сборки и запуска успешный, но остановился на варианте C/SDL2.

В Sokol можно посмотреть sokol_imgui.h либо cimgui-sokol-starterkit для работы с плюсовым Dear ImGui. Если не устроит Sokol, то можно попробовать cimgui.

Для SDL2 нашёл SDL_gui, где заявлена поддержка Android, но проект выглядит заброшенным с примечанием «This is work in progress».

Нужно это естественно с целью выжимания максимальной производительности.

Тут можно привести аналогию с использованием нативных либ в Python - ускорение есть, но от висящего в памяти интерпретатора не избавиться. Механизм доступно описан в документации SDL2. Рекомендую ознакомиться целиком - на примере SDL можно понять общую логику портирования под Android. Советы по Java Native Interface можно найти здесь.

GenSekY
()
Ответ на: комментарий от GenSekY

Можно и без одноплатника - кросс-компиляция есть в gcc/clang/NDK

Согласен. Просто я интересуюсь всякими одноплатниками и они у меня есть. Естественно на них обычно живет линукс (дебиан).

Android ниже 4.4.

На вторичном рынке обычно попадаются железки где можно и выше запустить. Обычно в реинкарнации Lineage OS. Но не самый-самый последний конечно.

Если не использовать фичи новых версий Android, то да.

Так не для игр же,а как управляющие компы для всякого разного.

остановился на варианте C/SDL2.

За рекомендацию спасибо. Буду знать что это возможно.

ускорение есть, но от висящего в памяти интерпретатора не избавиться.

Так и пусть висит если проц собой не нагружает. А также важно то,что на Си я и сам писать умею и готовых кусков кода много для коммуникации с всяким железом которое можно к гаджету подключить. Писать обмен с подключенным железом на Java - это я совсем не представляю как. Особенно если надо еще и достаточно быстро.

watchcat382
()