Ответ 1
В вашем посте есть ряд заблуждений. Я начну с перечисления ваших вопросов и ответов:
- После того, как части GUI собраны вместе, Linux все еще значительно уменьшает объем памяти, чем Android, предполагая, что JVM и компоненты приложения в Android не полезны для проекта (прямо сейчас наша сборка Linux без использования Linux составляет около 24 МБ)?
Все зависит от того, какой менеджер окон вы выберете. Мой инстинкт здесь - это что-то с близкой к зрелой поддержке касания на этом этапе, будет тяжелее или тяжелее, чем андроид.
- Можно ли запускать Android без компонентов JVM для уменьшения объема памяти, если вам не нужны какие-либо пользовательские приложения, работающие на Java?
Android не использует JVM. Android использует язык java, но использует виртуальную машину dalvik, предназначенную для встроенных устройств. Общность заканчивается тем фактом, что они виртуальные машины.
- Можете ли вы написать приложения первого класса на С++ в Android?
Вы можете писать большие части своего приложения на C или С++ с помощью NDK, однако любой написанный таким образом модуль должен быть вызван через android, написанный с использованием SDK java/dalvik. Таким образом, любой критически важный для производительности модуль, такой как выполнение обширных вычислений, может быть родным, но уровень gui не будет (хотя, как правило, с уровнем уровня графического интерфейса пользователя, скорее всего, будет проблемой). Собственные андроидные окна и библиотеки UI написаны на Java, вам придется переделать большую часть работы, чтобы получить полезные элементы пользовательского интерфейса в NDK, поскольку Google не намеревался NDK для этого.
Мой совет: прототип приложения, использующего обычный SDK, оставляйте заглушки для чего-то, что может выиграть от аппаратного ускорения (держите его модульным, чтобы он не был слишком взаимозависимым)
- У linux есть зрелый мультитач-интерфейс с общесистемной сенсорной клавиатурой, сенсорный графический интерфейс, сенсорные жесты браузера (прокрутка, масштабирование и т.д.). Или требуется много пользовательского кодирования пользовательского интерфейса?
Зависит от используемого диспетчера окон. Независимо от того, что вы выберете, вам, вероятно, придется обманывать, пока вы не найдете жизнеспособных комбинаций всего. Нет ни одного большого интегрированного дистрибутивного решения, о котором я знаю (хотя другие могут). Мое впечатление от земли лежит в том, что на этом фронте не много сделано.
Последняя вещь, которую я хочу добавить, - это хорошо написанный Java-код, исполняемый в Dalvik (или даже JVM), может работать близко к скорости собственного кода. Если вы знаете, что делаете и понимаете, когда что-то является ссылкой, какие типы коллекций использовать для какой-либо цели (подсказка: не все - это массив) и не реплицируют объекты повсюду, Java довольно хорош.