Войти
ФлеймФорумПрограммирование

На чём писать под Андроид? (33 стр)

Страницы: 132 33 34 3538 Следующая »
#480
10:38, 26 сен. 2012

[Deadly]
> А если писать на visual c++ то там компилируется в код x86, после код x86 в
> компилируется в VM.

Нет.
Не знаю, как писать под Андроид на МСВЦ (говорят, есть платный мармелад для этого), но плагин для эклипса компилирует машинный АРМ-код, который исполняется непосредственно, не как байткод.

[Deadly]
> и знаешь все фичи такие как обработка больших массивов данных с помощью SSE

В смысле "знаешь, как писать высокоуровневый код, чтобы компилятор понял, что можно применить ССЕ" или "умею писать на асме"? Я бы не стал на ассемблере писать тут.

#481
10:51, 26 сен. 2012

TarasB
> компилирует машинный АРМ-код
какой скажешь такой и скомпилирует, у меня сразу в одном apk версии для всех поддерживаемых андроидом платформ в том числе и для x86, конкретней указываешь ключ:
APP_ABI := armeabi armeabi-v7a x86

#482
10:58, 26 сен. 2012

Aroch
А путь к x86 библиотекам надо указывать?

#483
12:26, 26 сен. 2012

нет, у тебя должно после компиляции получится как-то так:
project_name\libs\
armeabi\libname.so
armeabi-v7a\libname.so
x86\libname.so

#484
12:39, 26 сен. 2012

TarasB
> А путь к x86 библиотекам надо указывать?
Все равно под виндой работать не будет, только в эмуляторе.

#485
12:42, 26 сен. 2012

kipar
> Все равно под виндой работать не будет, только в эмуляторе.
Кээп.

Под винду я компилирую код студией, с другими флагами и с использованием ВинАПИ. Для отладки удобно.

#486
13:27, 26 сен. 2012

kipar
> Все равно под виндой работать не будет, только в эмуляторе.
есть десктопный вариант андроида, ставь хоть на свой пк хоть на ноут хоть на нетбук, у меня под виртуалкой стоит, работает шустрее эмуля да и более стабильная.

#487
14:22, 26 сен. 2012

Aroch
> APP_ABI := armeabi armeabi-v7a x86
Не проканало

C:/eclipse/plugins/android-ndk-r7c/toolchains/x86-4.4.3/prebuilt/windows/bin/../lib/gcc/i686-android-linux/4.4.3/../../../../i686-android-linux/bin/ld.exe: ./obj/local/x86/objs/ChaosMinesweeper/..\..\..\Documents\Visual~1\ChaosMinesweeper\ChaosMinesweeper.o: Relocations in generic ELF (EM: 40)

#488
14:29, 26 сен. 2012
Хлопает себя по лбу

Так вот почему он всё время два раза даёт команду gcc при V=1. Один раз компилит для armeabi, а второй раз тут же для armeabi-v7a! Так это же прикольно... Мне тут есть где порыться...
#489
14:38, 26 сен. 2012

Таки да. В arm-v7 происходит самый настоящий FPU:

float func( float a, float b )
{
        return a * b;
}
  @ args = 0, pretend = 0, frame = 0
  @ frame_needed = 0, uses_anonymous_args = 0
  @ link register save eliminated.
  fmsr  s14, r0
  fmsr  s15, r1
  fmuls  s15, s14, s15
  fmrs  r0, s15
  bx  lr
Хм... Интересненько...
#490
14:44, 26 сен. 2012

Выходит таки да, обо всём они уже подумали. Загрузчик нативных dll-ек грузит из подпапки в apk/libs/ so-шку из наиболее подходящего для системы каталога.
Выходит таки да, мало того что кросс-платформа, но и разных код для бюджетов без FPU и для Cortex-A с FPU можно и даже нужно делать. Прикольно.

#491
14:46, 26 сен. 2012

TarasB

Без внешних зависимостей всё компилируется и в x86. Видимо у тебя внешние зависимости какие то или что?

#492
15:08, 26 сен. 2012

Kollect3D
> Без внешних зависимостей всё компилируется и в x86. Видимо у тебя внешние
> зависимости какие то или что?

Ну у меня есть зависимость от трёх цпп-файлов, ещё у меня есть зависимость от СТЛ. Ещё я, возможно, не докачал в менеджере плагинов х86-версию каких-то библиотек.

#493
15:12, 26 сен. 2012

TarasB
> Ну у меня есть зависимость от трёх цпп-файлов, ещё у меня есть зависимость от
> СТЛ. Ещё я, возможно, не докачал в менеджере плагинов х86-версию каких-то
> библиотек.

Тогда последнее. STL он компилирует налету, если еще нет статичных либ. Только сейчас в голову пришло - что если бы ты статические либы и делал, то их то всё равно надо делать в виде тех же правил для NDK и тогда он опять таки выдаст 3 статичных либы для каждого из возможных на данный момент случая, надо только в Application.mk сделать соответствующую запись и у статической либы. Значит остаётся только недокаченность платформы для x86. У меня сразу скомпилилось.

Кстати, там всё еще круче - установщик apk копирует в девайс только ту либку которая наиболее для его архитектуры подходит. Так что даже если apk несколько раздут за счёт наличия в нём до 3-х на данный момент либок под разные платформы - на девайс попадут только необходимые.

#494
15:17, 26 сен. 2012

Kollect3D
У меня такой application.mk сейчас:

APP_ABI := armeabi armeabi-v7a x86
APP_STL := stlport_static
Страницы: 132 33 34 3538 Следующая »
ФлеймФорумПрограммирование

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