LINUX.ORG.RU

История изменений

Исправление waker, (текущая версия) :

Этого остро не хватает как моему любимому Qt, так и вообще для «наативного программирования» под андроид.

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

я избрал другой подход — оборачиваю только то что нужно. получаю компактный рантайм. то, что проще делать на жабе — делаю на жабе. оверхед от передачи сишных строк в жабу, конечно, никуда не девается, но с помощью ряда костылей можно забороть.

если использовать только gles (без канваса) — можно многое сделать оптимальнее, но тогда придется тащить с собой огромный рантайм для рисования текста, и т.п.

Исходная версия waker, :

Этого остро не хватает как моему любимому Qt, так и вообще для «наативного программирования» под андроид.

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

я избрал другой подход — оборачиваю только то что нужно. получаю компактный рантайм. то, что проще делать на жабе — делаю на жабе. оверхед от передачи сишных строк в жабу, конечно, никуда не девается, но с помощью ряда костылей можно забороть.

если использовать только gles (без канваса) — можно многое сделать оптимальнее, но тогда придется тащить с собой огромный рантайм для рисования текста, и т.п.