Компания Google представила (http://google-opensource.blogspot.ru/2014/11/utilities-for-c...) пакет fplutil 1.0 (http://google.github.io/fplutil/), в состав которого входят утилиты и библиотеки, полезные при работке Android-программ на языке C/C++ с использованием NDK (https://developer.android.com/tools/sdk/ndk/index.html). Например, в fplutil входит библиотека для написания программ C/C++ для Android в традиционном стиле, с использованием "main()" и "printf()". Также доступны сборочные скрипты для настройки, сборки и установки программ для Android, а также оценки их производительности.URL: http://google-opensource.blogspot.ru/2014/11/utilities-for-c...
Новость: http://www.opennet.me/opennews/art.shtml?num=41032
NDK же обычный gcc c какой-то своей *make приблудой, там main() работает так же как и везде.
Вот только рантайм там - кастратский bionic + минимум либ. Все остальное - выкручивайтесь сами как умеете.
Вот ситуация с ведроидом и приходит к точке равновесия. Первая ласточка - ART, а теперь еще и пишем в метакод на сях (пока через жуткие костыли), который потом при первом запуске "докомпиливается" в платформо-зависимый бинарник.
Упростим выражение:
Можно так: Магазин(читаем репозиторий) с метапакетами (написанными или конвертированными в си) и компилятор, приводящий к платформо-зависимому бинарнику на целевой системе.
Это было очевидно (не всем, видимо) с самого начала. Нативные бинарники - скорость и малое энергопотребление. В соседней новости бывшие сотрудники из Ноклы сразу так и запилили.
Гугл все правильно сделал. Сначала популяризировал, всем явоводам показал как просто писать софт, маркет насытился обилием софта. А теперь и удобная возможность написания нативного софта, который в разы шустрее будет работать(разумеется, и раньше при чудовищном желании, можно было сделать бинарник с потным лбом и красными глазами).
Мде, а могли бы сразу расшарить платформу чтобы гики писали пока свой гикнутый код, глядишь чего-нить да выросло бы, а так дали шанс продованам попродовать бесплатный софт портированный с других платформ, чем начисто убили желание гиков заморачиваться с этой платформой, чем весьма основательно тормознули ее развитие, чем сократили разрыв с конкурентами, чем повыстли риски вылетить с рынка, что плохо для бизнеса, да и для репутации.
>гики писали пока свой гикнутый код, глядишь чего-нить да выросло бы
>убили желание гиков заморачиваться с этой платформой
>чем весьма основательно тормознули ее развитие
>чем сократили разрыв с конкурентами
>чем повыстли риски вылетить с рынкаКек. Слишком много взаимоисключающих параграфов
На самом деле потный лоб и какие-либо страдания особо не нужны были, Qt приложения без проблем компилируются и запускаются на андроидe(Нужно только собрать Qt для таргет архитектуры или установить уже собранную сборку)
Сколько весит хелловорд на Qt для андроида?
Hello world? Нисколько, если руки не кривые;)
Я спрашиваю сколько весит apk файл со всем необходимым для запуска Qt приложения, на андроиде.
Апк ~11Мб, это с шаред сборкой Qt`а(Core + qml + widgets) + само приложение с отладочными символами. Релизная статическая сборка без особых выпиливаний, будет без архивирования весить 10Мб(А как правильно готовить QtCore, как отключать зависимости в интернетах рецептов полно;)).
Hello world - 10мб?
А два приложения "Hello World!" и "Hello Vasia!" будут весить 10+10=20 мегабайт?
>> это с шаред сборкой Qt'а(Core + qml + widgets) + само приложение с отладочными символамиЧто здесь напоминает hello world?
Тебе нужен хелло ворлд? держи 5Kb
Выкладывайте свой apk файл с hello world на qt размером 5Kb.
Я проверю его работоспособность в эмуляторе.
>> Выкладывайте свой apk файл с hello world на qt размером 5Kb.Я проверю его работоспособность в эмуляторе.
Так тебе hello world нужен или приложение на qt, может ещё 7 красных линий нарисовать? А самому открыть qtcreator, создать plain c++ project и запустить не судьба?
Как и говорил Скотт Мейерс в интервью Яндекса. Сначала выпиливают возможность, делают всё на какой-нибудь Java, а потом говорят: "Вообще, можно вот таким костылём на Си писать". Потом выпускают более нормальный инструмент. Потому что без натива нет производительности.
Сначала ты ешь молочко, потом кашку/пюрешку, а только потом бюфштекс с кровью и мартини.
Те, кого кормят бюфштексом с кровью и мартини с пеленок - долго не живут.
Откуда столько раков повылезалр) давно уже можно писать на обычном си без всяких заморочек
С Android версии 2.2, что относительно недавно.
>без всяких заморочекПриведите пример программы на С под андроид, которая выводит на экран телефона "Hello World!" А уж читатели решат, есть там заморочки или нет.
https://play.google.com/store/apps/details?id=jackpal.androi...
Кстати, очердное подтверждение что программистам нельзя давать писать гуй. На мобильнике удобный терминал будет с кнопками таб, алт, шифт и т.д. на клавиатуре. Тогда в нем можно будет работать довольно эффективно.
А это поделие, как и множество остальных предлагает ломать пальцы магическими комбинациями из кнопок громкости и вкл.
Найдите другое, которое работает с клавиатурой.
Господин Повылезалр!
Не цепляйтесь к относительным "давно" и "недавно".
Вы меня прекрасно поняли. Изначально и сейчас, на сколько я помню платформа написана на Java. Это сейчас native.
Android.mK
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES:= test.c
LOCAL_MODULE:= test
LOCAL_MODULE_TAGS:= optional
include $(BUILD_EXECUTABLE)Собирается в исполняемый файл test. Что ещё нужно?
> для Android в традиционном стиле, с использованием "main()" и "printf()"Интересно. Некоторых в java раздражает, что
1. Один класс должен иметь метод main().
2. Объекты не возникают при запуске приложения: их нужно вручную создать.А других в Андроиде раздражает именно отсутствие main(), printf() & Co :)
> 2. Объекты не возникают при запуске приложения: их нужно вручную создать.А может их и нужда код писать раздражает? Он должен сам возникать после запуска программы. Вирусы-полиморфики эту концепцию одобряют.