Портирование кода приложения Blackberry на платформу Android
У меня есть библиотека Blackberry, написанная с использованием JAVA, а также API для Blackberry(RIM). Я хотел бы перенести ту же библиотеку на платформу Android без внесения каких-либо изменений в код и запустить ее.
Здесь я ищу лучший способ добиться этого
Любой кросс-компилятор / кросс-фреймворк доступен для запуска моего Blackberry на платформе Android. Думаю, это облегчит мою работу;)
Пожалуйста, поделитесь своим мнением по этому вопросу. Заранее спасибо.
4 ответа
Вы не можете сделать это. AFAIK, Blackberry использует технологии J2ME (здесь могут ошибаться). Система Android построена на совершенно других принципах. Вы должны изучить Android, чтобы понять, как создавать GUI, как обрабатывать фоновые задачи и где вы храните свои данные. Сожалею.
Начните с основ приложения.
Если бы портирование было таким простым, многие разработчики были бы без работы.
Вам не нужно будет переписывать все приложение, но, безусловно, должно быть сделано немало изменений. Если у вас чистый дизайн, вы можете использовать много кода, как есть. В противном случае это будет сложнее. Для API RIM было бы неплохо сначала написать интерфейсные классы ("RIMXyz реализует IntrfXyz"), которые имеют все вызовы функций, которые вы используете из RIM-API. Затем вы можете написать классы API Android, используя "AndrXyz реализует IntrfXyz". Поместите RIM-зависимый материал в отдельную внешнюю библиотеку и сделайте то же самое с android-зависимым материалом. Тогда у вас может быть RIM-prj и Android-prj, каждый из которых связан только с зависимыми классами и повторно используемыми классами. Таким образом, вы можете очень хорошо структурировать свой проект переноса. Кроме того, "верхний" конец приложения обязательно должен измениться, потому что вы должны использовать класс "активность" в Android, чтобы запустить что-либо. Это два аспекта, которые я вижу.
Надеюсь, это понятно, немного сложно выразить это несколькими словами... Я запустил кроссплатформенный проект для апплета Android/Java, и вот как я это сделал. Оно работает.;-)
Вы не можете сделать это без переписывания кода. Если вы можете рассказать нам больше о классах в API RIM, которые вы используете, вы можете получить некоторые конкретные ответы относительно того, какие классы из API Android использовать.
Вы должны найти похожие функции в Android API, чтобы заменить вызовы API RIM и реорганизовать ваш код, используя, например, шаблон проектирования Abstract Factory. (Http://sourcemaking.com/design_patterns/abstract_factory)