Autor Wątek: C++ SDK dla Androida  (Przeczytany 6079 razy)

Offline ison

  • Użytkownik

# Sierpień 09, 2012, 16:32:36
Witam,
jest jakakolwiek szansa na to aby dało się pisać w C++ na androida? Przejrzałem już mnóstwo tutoriali i wszędzie babrania się w ustawianie miliona parametrów jest na conajmniej kilka dni. Jest jakiś tutorial krok po kroku jak ustawić takie SDK aby móc pisać w C++? Cocos2d-x jest dosyć fajnym rozwiązaniem ale jego instalacja i konfiguracja na Windowsie to droga przez mękę. Ma ktoś coś sprawdzonego?
Pozdrawiam

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline flexi

  • Użytkownik

# Sierpień 09, 2012, 16:37:04
Co do cocos-2dx to jest sporo tutkow na necie, i nie jest az tak to trudne.

http://www.cocos2d-x.org/projects/cocos2d-x/wiki/Chapter_1_-_How_to_Create_a_New_cocos2d-x_project_on_multi-platforms

Mozesz takze pisac uzywajac OpenGL ES 1/2 (Wiecej roboty troche ale nie jest az tak trudno).

Offline ison

  • Użytkownik

# Sierpień 09, 2012, 16:43:33
Cocos2d-x umożliwia jakieś wysoko poziomowe wyświetlanie tekstur i tego typu rzeczy? Czym się różni cocos2d-x od SDK + NDK?

Offline FoToN

  • Użytkownik

  • +1
# Sierpień 09, 2012, 16:59:06
Ja sobie zrobiłem szablon projektu w Javie, który przesyła wszystko co ciekawe do C++. Cały kod C++ edytuje w Visual Studio (dopisałem sobie parę skryptów w Pythonie i podpiąłem je do External Tools w VS dzięki czemu mam kompilacje na androida, budowanie *.apk, instalowanie na urządzeniu, clean projektu androida pod paroma przyciskami w menu).

Oprócz tego wykorzystałem GLES SDK od ATI (ale z paroma zmianami poszło by na zwykłym OGL) dzięki czemu odpalam kod normalnie na komputerze (napisałem sobie mały symulator w WinAPI). Gratis mam debugger z Visual Studio :)

Offline ison

  • Użytkownik

# Sierpień 09, 2012, 17:21:06
A ile musiałeś poinstalować wszystkich zależności? Dużo to pracy?

Offline MrKaktus

  • Użytkownik

# Sierpień 09, 2012, 17:46:46
vs-android troche tweakowania i jechana :)

Offline MaxGarden

  • Użytkownik
    • Profil na warsztacie

  • +1
# Sierpień 09, 2012, 17:47:26
Ja używam cocos2dx i się nie skarżę, konfiguracja całości (bez ściągania) zajęła mi jakąś godzinę i nie musiałem pisać choćby jednej linijki w javie (gotowy szablon), cała gra w c++.

Offline flexi

  • Użytkownik

# Sierpień 09, 2012, 17:49:04
MaxGarden a co z intelisense, bo kiedys zainstlowalem se cocos-2dx ale mialem wlasnie z tym problem?

Offline FoToN

  • Użytkownik

# Sierpień 09, 2012, 17:53:59
Ogółem to da rade takie coś w 1 dzień zmajstrować.

Zależności:
  • Android SDK
  • Android NDK
  • Java SDK
  • Apache ANT
I w sumie tyle wystarczy (chyba że o czymś zapomniałem). Oprócz tego wykorzystałem jeszcze to (opcjonalne):
  • GLES SDK od ATI (ale jak mówiłem można spokojnie użyć normalnego OGL'a)
  • libpng - do ładowania obrazków na Androidzie
  • DevIL - do ładowania obrazków na Windowsie. Na Androidzie korzystam z libpng (nie jest to wygodne ale mam już kawałek kodu który działa więc jest ok).
  • libzip - do ładowania zasobów z APK na Androidzie
  • pthreads for win32 - mam tylko dodane ale jeszcze nie miałem potrzeby użyć. Zwykłe wątki.
  • glm - do macierzy i wektorów

Kod Javy napisałem sobie w eclipse i już potem (prawie) nie ruszałem. Nawiasem mówiąc jest jeszcze możliwość by w projekcie eclipse trzymać zarówno kod native jak i Jave, ale nie było to dla mnie wygodne.

Jeśli sam chcesz sobie coś takiego napisać to polecam poczytać to:
http://developer.android.com/tools/projects/projects-cmdline.html
http://developer.android.com/tools/building/building-cmdline.html
I resztę rzeczy, które są tam do wyboru ;)

Poza tym możesz zobaczyć vs-android. Nie korzystałem ale ponoć nie jest złe.

Offline ison

  • Użytkownik

# Sierpień 09, 2012, 18:34:17
apropo tego tutka http://www.cocos2d-x.org/projects/cocos2d-x/wiki/Chapter_1_-_How_to_Create_a_New_cocos2d-x_project_on_multi-platforms#4-Start-with-Android
punkt 4.1.3 Import project to eclipse
"Run your eclipse, click File -> New -> Project -> Android Project, and import the project like this" Ani wersja Eclipse dla mobile ani Classic nie ma Android Project

Offline MaxGarden

  • Użytkownik
    • Profil na warsztacie

# Sierpień 09, 2012, 18:39:29
MaxGarden a co z intelisense, bo kiedys zainstlowalem se cocos-2dx ale mialem wlasnie z tym problem?

Wystarczyło dodać ścieżki, w jakimś nagłówku napisać:
#define CC_DLL
i intelisense działa normalnie.

@ison
Musisz ściągnąć ADT.
« Ostatnia zmiana: Sierpień 09, 2012, 18:42:24 wysłana przez MaxGarden »

Offline ison

  • Użytkownik

# Sierpień 09, 2012, 18:47:19
Ok ADT ściągnąłem (szkoda że w tutorialu nie bylo o nim mowy :/) ale teraz się pojawił dziwny problem. File -> New -> Project -> Android project from existing code -> wybieram sciezke do katalogu gdzie w poprzednim kroku zrobilem costam z cygwinem, pojawia sie ten projekt w okienku i nawet po zaznaczeniu checkboxa obok niego przycisk next jest zablokowany... wtf?
https://dl.dropbox.com/u/12301540/eclipse.png
« Ostatnia zmiana: Sierpień 09, 2012, 18:49:34 wysłana przez ison »

Offline FoToN

  • Użytkownik

# Sierpień 09, 2012, 18:54:57
U góry masz napisane "Select at least one project". Może spróbuj zaznaczyć w pełni checkboxa przy projekcie? Albo jak to nie zadziała to restart eclipse (i ew. sprawdzenie czy aktualizacji nie ma).

Offline ison

  • Użytkownik

# Sierpień 09, 2012, 18:56:29
Nie da się w pełni zaznaczyć, albo nic albo kwadracik.
Zaznaczanie innych checkboxów nie pomaga, restart Eclipse też, dziwne to jakieś.
Eclipse najnowszy pobrałem, wersja dla mobile devs.
//edit
ok, problem rozwiązany, projekt pozostawał otwardy nawet po restarcie Eclipse, był po prostu przykryty przez stronę startową ;)

Rozwiązanie z Android SDK + NDK + cygwin + Eclipse + ADT jest totalnie bez sensu, nie warte świeczki. Dużo męczenia się z konfiguracją, kompilacja z kodu C++ trwa kilka minut, emulator Androida z Eclipse totalnie zlagowany, uruchamia się 5 minut a potem prawie się go nie da używać już pomiając fakt, że nie da się na nim uruchomić skompilowanej aplikacji bo wyświetla czarny ekran (po przerzuczeniu appki na komórkę aplikacja działa). Cały projekt to jeden wielki śmietnik.
Jest jakieś wygodniejsze rozwiązanie?
« Ostatnia zmiana: Sierpień 09, 2012, 19:38:58 wysłana przez ison »

Offline lukasyno

  • Użytkownik

# Sierpień 09, 2012, 20:58:20
@ison ja zrobilem tak...
Mam projekt w Javie w stylu
Projekt-Android
i mam
Projekt-NDK

w projekt NDK mam zwykly projekt c/c++ w eclipse podpinam mu headery z NDK i sobie kleepie jakiegos openGLELA, jesli chce skompilowac uruchamiam skrypt pythona ktory przenosi mi cala zawartosci folderu src z Projekt-NDK do folderu jni w Projekt-Android nastepnie uruchamia ndk-build z komenda -C i sciezka do pliku i po chwili mam juz liba .so  i sobie kompiluje Javowy projekt i odpalam na telefonie.. moglbym kompilowac w Projekt-NDK ale potrzebowal bym project.description (czy jakis podobnie) tego pliku inaczej NDK nie skompiluje.. a jako ze chce jak najmniejszy smietnik i zaleznosci to po prostu Projekt-NDK uzywam tylko do pisania w c/c++ dzieki czemu mam hinty itd.. Kazdy ma jakis inny sposob to moj ;)