Войти
AndroidФорумОбщее

Полностью нативное приложение

Страницы: 1 2 Следующая »
#0
20:11, 30 июня 2013

Всем привет.
  Недавно начал изучать разработку под Android. Купил книжку "Android NDK. Разработка приложений под Android на С/С++". 
В ней автор описывает как можно создать полностью нативное приложение. И мной овладели сомнения.
Действительно ли возможно создать полноценную игру(например) используя только С++? Нет ли каких-то ограничений на устройства и т.д.


#1
20:45, 30 июня 2013

rustamx
> Действительно ли возможно создать полноценную игру(например) используя только
> С++?
Ну в некотором смысле да. То есть жабья часть в игре полюбому будет, но тебе её писать не придётся.

rustamx
> Нет ли каких-то ограничений на устройства и т.д.
Андроид 2.3.3 или выше.

#2
20:58, 30 июня 2013

TarasB
> rustamx
> > Нет ли каких-то ограничений на устройства и т.д.
> Андроид 2.3.3 или выше.
  Судя по посту на хабре

+ Показать
это не критично.

  А нет ограничений на какой-то функционал, который может быть использован на java, но не на С/C++?
#3
21:57, 30 июня 2013

rustamx
>   А нет ограничений на какой-то функционал, который может быть использован на
> java, но не на С/C++?
Есть, из главного: in-app покупки только на яве; реклама только на яве.
Остальное (блютуз, GPS и т.д.) - не знаю. Но всё основное для игры (графика, звук, тачскрин и акселерометр) спокойно пишется на Си без явы.

P.S. Вернее, почти без явы. Вот такими java-вызовами в некоторых случаях придётся пользоваться. Но это редко, 1 раз написать и всё.

#4
22:36, 30 июня 2013

Роман Шувалов
Роман Шувалов
> rustamx
> >   А нет ограничений на какой-то функционал, который может быть использован на
> > java, но не на С/C++?
> Есть, из главного: in-app покупки только на яве; реклама только на яве.
> Остальное (блютуз, GPS и т.д.) - не знаю. Но всё основное для игры (графика,
> звук, тачскрин и акселерометр) спокойно пишется на Си без явы.
> P.S. Вернее, почти без явы. Вот такими java-вызовами в некоторых случаях
> придётся пользоваться. Но это редко, 1 раз написать и всё.
>
>
Как я понял, для показа рекламы нужно будет написать что-то на яве? Ну да, приложение не будет полностью нативным, но это тоже не критично.

#5
0:03, 1 июля 2013

rustamx
> Как я понял, для показа рекламы нужно будет написать что-то на яве?
Прикрутить готовый SDK, не более того.

#6
0:22, 1 июля 2013

Понял. Всем спасибо за ответы).

#7
12:51, 1 июля 2013

rustamx

Писать на андроиде полностью нативное приложение есть практически распространённая ошибка среди начинающих.
Именно ошибка.
Гораздо более "нативный" (и по андроидному - здравый) подход - это своё активити на Java выполняющее дирижирование нативными участками кода.

#8
15:44, 1 июля 2013

=A=L=X=
> Именно ошибка.
Ошибка скорее в терминологии, т.к. под словом "нативный" все нормальные люди понимают выполняемый машинный код безо всяких андроидо-яв. Но если говорить про андроид как про ОС со своими заморочками и особенностями - слово "нативный для андроида" переосмысливается в "родной, привычный для андроида" способ (то есть ява с нативными вставками).

#9
21:33, 1 июля 2013

=A=L=X=
> rustamx
> Писать на андроиде полностью нативное приложение есть практически
> распространённая ошибка среди начинающих.
> Именно ошибка.
> Гораздо более "нативный" (и по андроидному - здравый) подход - это своё
> активити на Java выполняющее дирижирование нативными участками кода.
С трудом представляю как можно написать движок игры с помощью двух языков. Где код на с++ будет использоваться через вызов функций. Не понимаю где хранить данные об игровом мире. В статических переменных?

#10
22:34, 1 июля 2013

rustamx
> С трудом представляю как можно написать движок игры с помощью двух языков. Где
> код на с++ будет использоваться через вызов функций.

На яву складывается GUI, реакция на события ОС (ввод, закрытие и т.п). По идее даже инициализации контекстов и т.п. А C-код дергается так же как в native_activity - по той же схеме.

#11
22:43, 1 июля 2013

=A=L=X=
> rustamx
> > С трудом представляю как можно написать движок игры с помощью двух языков.
> > Где
> > код на с++ будет использоваться через вызов функций.
> На яву складывается GUI, реакция на события ОС (ввод, закрытие и т.п). По идее
> даже инициализации контекстов и т.п. А C-код дергается так же как в
> native_activity - по той же схеме.
Я понял, что нужно рассмотреть все варианты. Благо в книге они все описаны.

#12
23:13, 1 июля 2013

=A=L=X=
> C-код дергается так же как в native_activity

> так же как в native_activity

> как в native_activity

Спрашивается, зачем руками писать "как в native_activity"? :) Чтоб андроид 2.2 держало?

#13
10:48, 9 июля 2013

https://dl.dropboxusercontent.com/u/54394631/Asteroid.zip вот я писал тестовое задание как-то. Может быть код на с++ не стройный, но в целом получилось вполне. От джавы там только обвязки и все.

#14
13:50, 9 июля 2013

Роман Шувалов
> Спрашивается, зачем руками писать "как в native_activity"? :) Чтоб андроид 2.2
> держало?

Нет, не потому, а просто из-за того что native_activity не умеет много гитик. То у него понимаешь ли повороты экрана не обрабатываются (тупо нет строк кода перекидывающих сообщение из активити на яве в С++ код), то нет средств получить результат интента на другое активити, и т.д. и т.п. Это не косяк дизайна - просто все возможные варианты использования заимплементить нереально и раздует код сишечки, вынужденной это всё поддерживать. Но на деле нейтив активити это просто явовский класс поставляемый по умолчанию, можно полностью повторить его в своём проекте и дополнить всем чем хочется.

Страницы: 1 2 Следующая »
AndroidФорумОбщее

Тема в архиве.