История изменений
Исправление waker, (текущая версия) :
Этого остро не хватает как моему любимому Qt, так и вообще для «наативного программирования» под андроид.
для полностью нативного — придется все классы жабы прокинуть через JNI в натив. это десятки (вероятнее даже сотни) тыщ методов, и вполне можно предсказать, сколько мегабайт будет весить только код самой обертки. придется разбивать на модули, чтобы не тащить обертки всех жабоклассов в любой helloworld. будет очень сложно сделать, чтобы все это не тормозило, например потому что сишные/крестовые строки передать в жабу невозможно — придется делать NewStringUTF, а потом Release. и так практически для любых сишных данных, кроме int/float/boolean. это приводит к GC и тормозам.
я избрал другой подход — оборачиваю только то что нужно. получаю компактный рантайм. то, что проще делать на жабе — делаю на жабе. оверхед от передачи сишных строк в жабу, конечно, никуда не девается, но с помощью ряда костылей можно забороть.
если использовать только gles (без канваса) — можно многое сделать оптимальнее, но тогда придется тащить с собой огромный рантайм для рисования текста, и т.п.
Исходная версия waker, :
Этого остро не хватает как моему любимому Qt, так и вообще для «наативного программирования» под андроид.
для полностью нативного — придется все классы жабы прокинуть через JNI в натив. это десятки (вероятнее даже сотни) методов, и вполне можно предсказать, сколько мегабайт будет весить только код самой обертки. придется разбивать на модули, чтобы не тащить обертки всех жабоклассов в любой helloworld. будет очень сложно сделать, чтобы все это не тормозило, например потому что сишные/крестовые строки передать в жабу невозможно — придется делать NewStringUTF, а потом Release. и так практически для любых сишных данных, кроме int/float/boolean. это приводит к GC и тормозам.
я избрал другой подход — оборачиваю только то что нужно. получаю компактный рантайм. то, что проще делать на жабе — делаю на жабе. оверхед от передачи сишных строк в жабу, конечно, никуда не девается, но с помощью ряда костылей можно забороть.
если использовать только gles (без канваса) — можно многое сделать оптимальнее, но тогда придется тащить с собой огромный рантайм для рисования текста, и т.п.