poniedziałek, 10 lutego 2014

Tworzenie podstawowej aplikacji


Kod źródłowy do tej lekcji znajduje się tutaj. Rozpakuj go i zaimportuj. W katalogu z kodem źródłowym znajdą się podkatalogi oznaczone numerami. Są to po prostu kolejne wersje kodu, tworzonego w ramach przykładów. Możesz analizować kolejne kroki tworzenia aplikacji, lub od razu zabrać się za kod z katalogu o najwyższym numerku.


Tworzenie aplikacji rozpoczynamy od kliknięcia prawym przyciskiem myszy na znajdującym się po lewej stronie polu „package explorer” i wybraniu New-->Android Application. Powinien nam się pojawić taki ekran:



W tym miejscu musimy nadać nazwy aplikacji, projektowi oraz pakietowi w którym będą znajdować się nasze klasy. Nazwa projektu najlepiej by była taka jak nazwa aplikacji (choć nie jest to konieczne). Jeśli posiadasz domenę internetową, to najlepiej będzie odwrócić frazę i na końcu dodać nazwę nowo tworzonej aplikacji. Przykładowo jeśli mam domenę jsystems.pl i tworzę aplikację „KebabFinder” to tworzę pakiet pl.jsystems.kebabfinder. Taka jest powszechna praktyka i zapewnia unikalność nazw. Nie dojdzie do sytuacji że będą dwie klasy KlasaGlowna znajdujące się w pakietach o takiej samej nazwie com.example, choć będą pochodzić od różnych dostawców i robić różne rzeczy.



Przechodzimy dalej, aż pojawi nam się ekran wyboru ikony aplikacji. Domyślnie ikoną aplikacji będzie logo Androida. Możemy je zmienić na jakiś własny obraz (wybieramy go wtedy z dysku), jakiś obrazek z Clip Arta, albo logo tekstowe. Ja nacisnąłem „Clipart”, następnie choose i wybrałem znak kciuka. Dalej zmieniłem domyślny błękitny kolor logo na czerwony klikając na „Foreground Color”.

 
Przechodzimy dalej. Na kolejnym ekranie mamy możliwość wyboru sposobu wyświetlania aplikacji. Czy będzie to zwykła aplikacja z widocznym menu systemowym (Domyślny wybór) czy wyświetlanie pełnoekranowe (np. kiedy piszemy jakąś grę), czy też formularz typu master/detail.



Po przejściu do kolejnego ekranu wybieramy nazwę klasy aktywności głównej, oraz nazwę pliku xml w którym określony będzie wygląd aktywności głównej. Aktywność – można to rozumieć w sporym uproszczeniu jako ekran – dane okno w aplikacji. Aktywności aplikacja może mieć wiele, użytkownik może poruszać się między aktywnościami ( między ekranami – uruchom np. swoją aplikację i przyjrzyj się procedurze ustawiania celu a zrozumiesz co mam na myśli). Każda aplikacja musi za to mieć jaką aktywność (ekran) która pojawi się jako pierwsza po uruchomieniu programu. Z taką aktywnością wiąże się klasa ją obsługująca, a nazwę tej klasy określamy w polu „Activity Name”. W tej klasie będziemy później określać jak dany ekran ma się zachowywać. Kolejne pole – layout Name określa nazwę pliku XML w którym będzie zapisany wygląd tego ekranu. W tym pliku będzie zapisane rozmieszczenie elementów oraz ich własności.



Po zakończeniu powinniśmy zobaczyć klasę naszej aktywności:



Na razie bez szczegółów – tak tylko informacyjnie: metoda onCreate jest uruchamiana kiedy dany ekran zostaje wyświetlony, metoda onCreateOptionsMenu kiedy użytkownik naciśnie przycisk menu.
Kiedy klikniemy na zakładkę z naszym plikiem layoutu ( na poprzedniej ilustracji u mnie to activity_ekran_glowny.xml ) zobaczymy projekt naszego głównego ekranu. Po lewej stronie mamy menu z elementami które możemy przyklejać na ekranie.

 

Na ten moment zostawiamy tradycyjne „Hello World” i uruchomimy aplikację na emulatorze i prawdziwym telefonie.

Aby uruchomić aplikację, klikamy prawym przyciskiem myszy na katalogu projektu w polu „Package Explorer”, dalej „Run As”-->”Android Application”. Powinno nam się pojawić takie okno:




  Możemy tutaj wybrać uruchomienie z użyciem wirtualnego lub realnego urządzenia. Na ten moment mam stworzone wirtualne urządzenia, ale żadne nie jest uruchomione. Odpalimy więc aplikację jednocześnie uruchamiając wirtualne urządzenie. Zaznaczam „Launch a new Android Virtual Device” , zaznaczam wybrane urządzenie i wciskam „Ok”.



Virtualne urządzenie może uruchamiać się nawet 2-3 minuty, wszystko zależy od sprzętu którym dysponujemy. Po uruchomieniu na urządzeniu wirtualnym:





Tym razem uruchomimy program na realnym urządzeniu. Podobnie jak i wcześniej klikamy PPM na projekcie, wybieramy Run –> Run as Anroid Application. Pojawi się okno jak wcześniej. W sekcji „Choose a running Android device” widzimy dwa urządzenia. Jedno to wcześniej uruchomione urządzenie wirtualne, drugie to realne urządzenie – Samsung ACE3. Aby móc stąd wrzucać aplikacje na takie urządzenie, musimy je wcześniej przygotować włączając na nim opcje programistyczne. Aby to zrobić, wchodzimy w „Ustawienia” , dalej szukamy na dole opcji „opcje programisty” w które wchodzimy i aktywujemy. Bez tego nie będzie możliwości debuggowania aplikacji, czyli nie wdrożymy jej z Eclipsa na dany telefon. Po włączeniu opcji, podłączamy telefon przewodem do komputera. Przy kolejnym uruchomieniu aplikacji nasz telefon powinien być już tutaj widoczny. Zauważyłem już że niektóre urządzenia w ogóle nie chcą rozmawiać z Eclipsem w ten sposób, choćby wszystko było powłączane i połączone jak należy. Miałem tak np. z telefonem Prestigio. Zanim więc zaczniesz grzebać w opcjach i się irytować, po prostu sprawdź z innym urządzeniem.




Zaznaczam swój telefon i wybieram „Ok”. Po odpaleniu:


40 komentarzy:

  1. w źródłach jest tylko jeden podkatalog "1" ;)

    OdpowiedzUsuń
    Odpowiedzi
    1. Tak, bo jest tylko jedna wersja kodu dla tego zagadnienia. W tym katalogu są źródła

      Usuń
  2. Symulator odpala się tak wolna za każdym razem, czy tylko na początku?

    OdpowiedzUsuń
    Odpowiedzi
    1. Zawsze niestety. Emulatory nie działają z resztą tak szybko jak realne urządzenia o podobnych parametrach

      Usuń
    2. Polecam instalację HAXM firmy intel przyspiesza obrazy Intel Atom nawet do 400%. Oczywiście tylko dla procesorów tej firmy.

      Usuń
  3. POMOCY! Za każdym razem gdy klikam Run as -> android application to wyskakuje mi błąd w konsoli "PANIC: Could not open: SamsungAce3". Co zrobić?

    OdpowiedzUsuń
  4. Nie pojawia mi się okno z wyborem urządzeń po Run as Android...... mam tam kilka device w manager

    OdpowiedzUsuń
    Odpowiedzi
    1. Witam.
      Jak odpalisz aplikacje w Eclipsie. W gornym pasku: RUN --> RUN CONFIGURATON --> TARGET i tam zaznacz: always prompt to pick device.

      Usuń
    2. Dziękuję!
      Miałem ten sam problem.

      Usuń
  5. Witam.
    Przy probie uruchomienia na wirtualnym urzadzeniu pojawia mi sie Error: xvidcore.dll not found. Potem urzadzenie wirtualne sie uruchamia ale program sie nie laduje. Czekalem 10min. W jakim folderze moze brakowac tego pliku?

    OdpowiedzUsuń
    Odpowiedzi
    1. Ok. Juz to ogarnalem sorry za wpis!

      Usuń
    2. Czy można liczyć, że podzielisz się - jak to rozwiązałeś?

      Usuń
  6. WItam
    Mam problem następujący: po utworzeniu projektu pokazują mi sie 2 warningi:
    1: The import android.os.Build is never used
    2: The import android.support.v7.app.ActionBar is never used

    Nie mam już pojęcia co z tym zrobić, pomóżcie...

    OdpowiedzUsuń
    Odpowiedzi
    1. Jeżeli są dodane jakiekolwiek importy (import kodu z innego pliku), to tak się będzie wyświetlać, lecz nie ma to żadnego wpływu na działanie aplikacji.

      Usuń
    2. W wolnym tłumaczeniu znaczy to:
      "1: Biblioteka android.os.Build nie została użyta
      2: Biblioteka android.support.v7.app.ActionBar nie została użyta",
      czyli spokojnie możesz mieć to gdzieś.

      Usuń
  7. Witam.
    Mam problem, zrobiłem wszystko jak w poradniku ale po uruchomieniu programu wyswietla sie tylko czarny ekran. Mam ktos pomysł co może byc nie tak?

    OdpowiedzUsuń
  8. Jak ktoś z Was chce szybszy emulator to polecam: http://www.genymotion.com

    OdpowiedzUsuń
  9. Witam
    Czy nazwę domeny, którą ustawia sie na początku nie można jej zmienić?

    OdpowiedzUsuń
  10. Witam.
    Mam mały problem. jak chce uruchomić aplikacje na domyślnym urządzeniu to wyświetla mi się jedynie czarny ekran z tym przyciskami po prawej stronie.
    Co źle robię?

    OdpowiedzUsuń
    Odpowiedzi
    1. Trzeba poczekać trochę czasu. nawet do 5 minut

      Usuń
  11. Mam dokładnie ten sam problem. Odpala się emulator i czarny ekran i finał zabawy.

    OdpowiedzUsuń
  12. Czy wam też nie działa część obrazków?

    OdpowiedzUsuń
  13. Mam duży problem, uniemożliwia programowanie:
    https://drive.google.com/file/d/0B7-drB0RUblOUkZFT0ZhWjEtTlE/edit?usp=sharing

    OdpowiedzUsuń
    Odpowiedzi
    1. http://developer.android.com/tools/support-library/setup.html

      Usuń
  14. Nie wiem czy jest to gdzieś dalej napisane, jeszcze tam nie dotarłem.
    Moje pytanie jest następujące.
    Czy jak napiszę program i go odpalę na emulatorze, to potem jak zrobię jakąś modyfikację programu i będę chciał na nowo skompilować i odpalić to muszę po raz kolejny włączać emulator czy można go włączyć raz i potem na bieżąco aktualizować zawartość emulatora?
    Jak tak to jak to można zrobić? ;>

    OdpowiedzUsuń
  15. Witam ;/ po wygenerowaniu projektu od razu mam 12 błędów ;/ zaznaczam ze robiłem wszystko jak tutaj ;/ Czy wie ktos o co moze chodzić ?

    OdpowiedzUsuń
    Odpowiedzi
    1. Napisz dokładnie, o jakie błędy chodzi, lub daj screena, to może Ci ktoś pomoże.

      Usuń
  16. Witam, gdy wlaczam aplikacje na wirtulanym urzadzeniu (realnego mi nie wykrywa LG-P500), wyswietla mi sie komunikat :

    unfortunately,przykladowa has stopped

    NIe wiem co robic... bez tego nie moge przejsc dalej...

    OdpowiedzUsuń
  17. Witam!
    Po podłączeniu swojego telefonu (Samsung Galaxy Ace 3) do komputera, Eclipse "nie widzi" go mimo iż włączyłem w opcjach programisty Debugowanie USB. Na wirtualnym androidzie Hello World działa. Wie ktoś jak rozwiązać ten problem?

    OdpowiedzUsuń
    Odpowiedzi
    1. Problem rozwiązałem dosyć szybko - nie miałem zainstalowanych na moim komputerze sterowników służących do debuggowania :)

      Usuń
  18. Mam problem z włączeniem mojego programu na komputerze, zrobiłem tylko nowy projekt nic nie ruszałem. Gdy go włączam to wyskakuje ładowanie Androida i nic po za tym :( co zrobić?

    OdpowiedzUsuń
  19. Nie mam w liście wybieranych "Android Application" , miał ktoś ten sam problem ?

    OdpowiedzUsuń
  20. Witam !
    Mam problem :
    tutaj jest mój kod, który został automatycznie stworzony przez Eclipsa. Wszystko robiłem tak, jak w tym dziale po kolei.
    http://wklej.org/id/1639074/
    W tym kodzie Eclipse pokazał mi 3 takie same błędy o treści :
    "R cannot be resolved a variable"
    (linijki 14,21,31);

    Kliknąłem na podpowiedzi i Eclipse podpowiedział mi żeby zaimportować "R.android" oraz inne :
    http://static.pokazywarka.pl/i/5647382/794438/eclipse.jpg

    Pozdrawiam i liczę na pomoc - Maciek

    OdpowiedzUsuń
    Odpowiedzi
    1. Zapomniałem jeszcze dodać, że w katalogu "gen" - Generated Java Files znajduje się tylko plik "BuildConfig.java" i nie ma tam "R.java". Nic nie usuwałem wszystko jest tak jak utworzył Eclipse. :(

      Pozdrawiam raz jeszcze Maciek

      Usuń
    2. Ściągnąłem kod źródłowy i skopiowałem R.java do mojego pakietu i skopiowałem kod EkranGlowny.java.
      Teraz mam inny problem...
      Jak klikam Run As>Android Application to wyskakuje mi komunikat : http://static.pokazywarka.pl/i/5647733/673878/capture.jpg a kod jest skopiowany z tego co jest w źródle

      Usuń
  21. Witam proszę o pomóc , mam taki błąd kiedy kończe tworzenie New Android Application
    [2015-04-21 20:06:31 - Przykład] ERROR: resource directory 'D:\АНДРОІД\Новая папка\Przyklad\res' does not exist

    OdpowiedzUsuń
  22. Ten Android SDK ma z czego widzę straszne dziury. Czy pan Andrzej Klusiewicz poprosi o aktualizację firmę Android? Czy może wybierze inne narzędzie?

    OdpowiedzUsuń
    Odpowiedzi
    1. Ten kurs jest z lutego 2014 roku, więc czego ty się spodziewasz.

      Usuń