Android - нужен совет
От: TimurSPB Интернет  
Дата: 04.07.10 17:15
Оценка:
Мне надо оценить трудоемкость переноса значительного объема кода на платформу Android.
На текущий момент есть кроссплатформенный код на C++. Это ядро прикладной системы. Собирается и работает под Windows/x86, Linux/x86,SPARC,PowerPC. Использует STL, boost.
С чего начать оценки?
Интересует: полезные ссылки или литература по теме, опыт портирования, необходимое оборудование.
Если у кого есть success stories делитесь!
Make flame.politics Great Again!
Re: Android - нужен совет
От: Cyberax Марс  
Дата: 04.07.10 17:24
Оценка: 4 (1) +1
Здравствуйте, TimurSPB, Вы писали:

TSP>Мне надо оценить трудоемкость переноса значительного объема кода на платформу Android.

TSP>На текущий момент есть кроссплатформенный код на C++. Это ядро прикладной системы. Собирается и работает под Windows/x86, Linux/x86,SPARC,PowerPC. Использует STL, boost.
TSP>С чего начать оценки?
Собственно, само вычислительное ядро может перенестись простой перекомпиляцией, если оно правильно написано. Т.е. сложности в рамках обычного портирования на другую платформу.

Пользовательский интерфейс придётся, скорее всего, писать заново. Но это обычно не так уж сложно.
Sapienti sat!
Re[2]: Android - нужен совет
От: TimurSPB Интернет  
Дата: 04.07.10 17:39
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Здравствуйте, TimurSPB, Вы писали:


TSP>>Мне надо оценить трудоемкость переноса значительного объема кода на платформу Android.

TSP>>На текущий момент есть кроссплатформенный код на C++. Это ядро прикладной системы. Собирается и работает под Windows/x86, Linux/x86,SPARC,PowerPC. Использует STL, boost.
TSP>>С чего начать оценки?
C>Собственно, само вычислительное ядро может перенестись простой перекомпиляцией, если оно правильно написано. Т.е. сложности в рамках обычного портирования на другую платформу.
Написано достаточно грамотно. Минимум использования #ifdef, reinterpret_cast и вообще с указателями все аккуратно, работа с функционалом через компактные интерфейсы классов. Вот правда с покрытием юнит-тестами полный ноль.
Если есть опыт сборки boost под платформу, то было бы интересно почитать.

C>Пользовательский интерфейс придётся, скорее всего, писать заново. Но это обычно не так уж сложно.

GUI вообще пишет заказчик. Но есть багаж демонстрационных тулов написанный с WxWidgets. WxWidgets там вообще живет?
Make flame.politics Great Again!
Re[3]: Android - нужен совет
От: Cyberax Марс  
Дата: 04.07.10 17:43
Оценка: 4 (1)
Здравствуйте, TimurSPB, Вы писали:

C>>Собственно, само вычислительное ядро может перенестись простой перекомпиляцией, если оно правильно написано. Т.е. сложности в рамках обычного портирования на другую платформу.

TSP>Написано достаточно грамотно. Минимум использования #ifdef, reinterpret_cast и вообще с указателями все аккуратно, работа с функционалом через компактные интерфейсы классов. Вот правда с покрытием юнит-тестами полный ноль.
Без кода ничего сказать нельзя, но если всё грамотно — то переносится без проблем.

TSP>Если есть опыт сборки boost под платформу, то было бы интересно почитать.

Ну как бы ничего особого — простая сборка под кросс-компилятором.

http://www.crystax.net/android/ndk-r3.php

C>>Пользовательский интерфейс придётся, скорее всего, писать заново. Но это обычно не так уж сложно.

TSP>GUI вообще пишет заказчик. Но есть багаж демонстрационных тулов написанный с WxWidgets. WxWidgets там вообще живет?
Нет. Там вообще ничего не живёт кроме родного фреймворка. В теории, можно использовать wxWidgets с автономным бэкэндом, но лучше этого делать не надо.
Sapienti sat!
Re[4]: Android - нужен совет
От: TimurSPB Интернет  
Дата: 04.07.10 17:58
Оценка:
C>Без кода ничего сказать нельзя, но если всё грамотно — то переносится без проблем.
Да эти риски я оцениваю как средние. Там люди серьезные писали — видно сразу

TSP>>Если есть опыт сборки boost под платформу, то было бы интересно почитать.

C>Ну как бы ничего особого — простая сборка под кросс-компилятором.

C>http://www.crystax.net/android/ndk-r3.php

ОК

C>>>Пользовательский интерфейс придётся, скорее всего, писать заново. Но это обычно не так уж сложно.

TSP>>GUI вообще пишет заказчик. Но есть багаж демонстрационных тулов написанный с WxWidgets. WxWidgets там вообще живет?
C>Нет. Там вообще ничего не живёт кроме родного фреймворка. В теории, можно использовать wxWidgets с автономным бэкэндом, но лучше этого делать не надо.
Ну тогда ограничимся консольными утилитами.

Есть еще один момент — система сборки Scons. Можно конечно собрать прототип вручную, но вопрос билд-системы актуален. И если scons, то еще возникает требование — а как c Python на Android?
Make flame.politics Great Again!
Re[5]: Android - нужен совет
От: Cyberax Марс  
Дата: 04.07.10 19:03
Оценка: 4 (1)
Здравствуйте, TimurSPB, Вы писали:

C>>Нет. Там вообще ничего не живёт кроме родного фреймворка. В теории, можно использовать wxWidgets с автономным бэкэндом, но лучше этого делать не надо.

TSP>Ну тогда ограничимся консольными утилитами.
TSP>Есть еще один момент — система сборки Scons. Можно конечно собрать прототип вручную, но вопрос билд-системы актуален. И если scons, то еще возникает требование — а как c Python на Android?
Надо собирать кросс-компилятором на хосте, а на Андроид заливать уже готовые исполняемые файлы. На самом Андроиде собирать что-то может и получится, но это упражнение в мазохизме будет.
Sapienti sat!
Re: Android - нужен совет
От: cencio Украина http://ua-coder.blogspot.com
Дата: 05.07.10 07:54
Оценка: 4 (1)
Здравствуйте, TimurSPB, Вы писали:

TSP>Мне надо оценить трудоемкость переноса значительного объема кода на платформу Android.

TSP>На текущий момент есть кроссплатформенный код на C++. Это ядро прикладной системы. Собирается и работает под Windows/x86, Linux/x86,SPARC,PowerPC. Использует STL, boost.
TSP>С чего начать оценки?

Есть два подхода:
-быстро чтото написать про естимейт — примерно смотриш обьем кода на порторование и оцениваеш время очень грубо, потом умножаеш то что получилось на 3.

— взять 1-2 дня на естимаци, попробовать спомпилить имеющией код и по количеству ощибок(и тому получилось ли вообще запустить компиляцию) оценить время.

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

TSP>Интересует: полезные ссылки или литература по теме, опыт портирования, необходимое оборудование.

линк один: http://developer.android.com/sdk/ndk/index.html
оборудывание — выясни у заказчика на каких моделях и версиях андроида ему нужно приложение и будеш знать что из железа нужно.
из затыков — я точно не помно, в старых андроида подобное не делал, но кажется возможность ставить native library из apk появилась в достаточно свежих версиях.
Re[4]: Android - нужен совет
От: CrystaX Россия https://www.crystax.net/
Дата: 05.07.10 20:36
Оценка:
Здравствуйте, Cyberax, Вы писали:

TSP>>Если есть опыт сборки boost под платформу, то было бы интересно почитать.

C>Ну как бы ничего особого — простая сборка под кросс-компилятором.

C>http://www.crystax.net/android/ndk-r3.php


1. Уже есть и NDK r4
2. На данный момент я занят портированием boost на андроид: http://crystax.net/trac/ticket/6. Занятие довольно непростое. Т.е. собрать не так уж сложно, но юнит-тесты валятся (например, сейчас около 9000 fails). Следите за событиями. А можете поощрить материально
Android NDK C++
Re: Android - нужен совет
От: Dair Россия http://dair.spb.ru
Дата: 06.07.10 18:10
Оценка: 3 (2)
Здравствуйте, TimurSPB, Вы писали:

TSP>Мне надо оценить трудоемкость переноса значительного объема кода на платформу Android.

TSP>На текущий момент есть кроссплатформенный код на C++. Это ядро прикладной системы. Собирается и работает под Windows/x86, Linux/x86,SPARC,PowerPC. Использует STL, boost.

STL уже где-то тут пробегало, про Boost сказали выше.
У нас набор C/C++ библиотек (ядро) собрался без проблем. Некоторое количество проблем (memory mamagement, в основном) вылезло на JNI, но это из-за нашей плохой ознакомленности с Java вообще и JNI в частности.
Декодирование звука с небольшой обработкой, в частности.

TSP>С чего начать оценки?

У нас много времени ушло на интерфейс и борьбу с андроидом в этом плане. На портирование, с учетом всех багфиксов и JNI, ушло где-то процентов 10 ресурсов, если не меньше.

TSP>Интересует: полезные ссылки или литература по теме, опыт портирования, необходимое оборудование.

Ссылки — только developer.android.com и google. Опыт есть, если что, прям тут и задавай вопросы, что ))
Оборудование — у нас есть персоналки под линуксом и маки. Под Win не пробовали.
Для отладки рекомендую добить памяти до 4Гб, потому как эмулятор есть виртуальная машина, работает не супер быстро. Я лично остался под маком, разницы с линуксом у меня в этом нет.
Да, под android я написал систему сборки под cmake для нативных сорцов, потому как ndk — это компилятор и... и, вроде, всё.
Eclipse у нас прижился наполовину, но это специфика нашего проекта, его эклипсом так просто не собрать (т.е., мы ещё не поняли, как это сделать хорошо).

TSP>Если у кого есть success stories делитесь!

Приложение, вроде, уже в Store, хотя мы тут не следим, и дальше работаем
С уважением,
Владимир Лебедев-Шмидтгоф
Санкт-Петербург, РФ.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.