Zakładam że mamy już zainstalowaną wtyczkę w Eclipse. By stworzyć nowy projekt wystarczy:
Tworzymy nowy projekt wybierając w menu: File > New > Project. Z listy dostępnych typów projektów wybieramy "Android Project".
Następnie podajemy dane projektu, przykładowo:
Gdzie:
Project Name to nazwa katalogu, który zawierać będzie cały kod projektu.
Package Name to nazwa (przestrzeń nazw) dla projektu stosująca reguły nazewnictwa pakietów w Javie (odwrotna notacja domenowa). Ważne jest by nazwa była unikalna.
Activity Name to nazwa klasy Aktywności (Activity) jaka zostanie stworzona wraz z projektem.
Application Name to wyświetlana w Androidzie nazwa aplikacji.
Po podaniu danych stworzony zostanie projekt zawierający wymaganą strukturę katalogów oraz podstawowe pliki.
W naszym przykładzie znajdziemy klasę HelloAndroid (HelloAndroid.java) w HelloAndroid > src > com.android.hello o kodzie:
publicclassHelloAndroidextendsActivity{/** Called when the activity is first created. */@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);}}
W tej chwili można już uruchomić emulatora, lecz zmodyfikujmy najpierw kod aplikacji tak by wyświetlała "witaj świecie". Edytuj HelloAndroid.java i zmień kod na:
packagecom.android.hello;importandroid.app.Activity;importandroid.os.Bundle;importandroid.widget.TextView;publicclassHelloAndroidextendsActivity{/** Called when the activity is first created. */@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);TextViewtv=newTextView(this);tv.setText("Witaj świecie!");setContentView(tv);}}
W Androidzie interfejs użytkownika składa się z hierarchii klas zwanych widokami (Views). Widok to obiekt, który można narysować jak przycisk, animacja, czy jak w powyższym przykładzie - etykieta tekstowa. W przykładzie wykorzystaliśmy klasę TextView dziedzicząc ją:
TextView tv = new TextView(this);
Argument przekazywany do konstruktora TextView to instancja Context. Jest to uchwyt do systemu dostarczający usługi takie jak rozwiązywanie zapotrzebowania na zasoby, uzyskiwanie dostępu do baz danych, ustawień itd. Klasa aktywności dziedziczy klasę Context więc spełnia wymagania. Gdy mamy już etykietę tekstową musimy podać tekst jaki ma zostać wyświetlony:
tv.setText("Witaj świecie!");
Gdy to zrobimy musimy połączyć nasz TextView z ekranem za pomocą
setContentView(tv);
Metoda aktywności setContentView() wskazuje systemowi który widok powinien być przypisany interfejsowi aktywności. Jeżeli aktywność nie wywoła tej metody to system wyświetli pusty ekran.
Wraz z SDK otrzymujemy emulator telefonu z Androidem oparty o Qemu. By odpalić emulator wystarczy skorzystać w Eclipse z opcji "Run". By uzyskać dostęp do ustawień emulatora i uruchamianej aplikacji wystarczy skorzystać z Run > Run Configurations, gdzie możemy określić projekt i aktywność do uruchomienia (szczególnie gdy mamy ich kilka), czy też wybrać rozmiar i układ wyświetlacza z jakim ma wystartować emulator. Po wprowadzeniu danych wystarczy kliknąć "Run".
Jeżeli korzystamy z Linuksa to warto zainstalować moduł Kernela kqemu i załadować go przed uruchomieniem emulatora:
modprobe kqemu
Moduł powinien być w pakietach dystrybucji, a jego obecność znacząco przyśpiesza działanie emulatora Qemu. Uruchamiając emulator na początku zobaczymy szary napis "Android" na środku wyświetlacza, później napis z logiem i po załadowaniu się systemu naszą aplikację.
Możemy też przjeść na stronę główną i zapoznać się z dostępnymi aplikacjami, np. przeglądarką internetową:
Definiowanie interfejsu w kodzie aplikacji na dużą skalę jest złym rozwiązaniem, gdyż utrudnia jego zmianę w rozbudowanych aplikacjach wymuszając np. spore zmiany w kodzie dla prostych zmian interfejsu. W tym celu Android udostępnia format definiowania interfejsu w XML. Oto przykład odpowiadający "witaj świecie" z powyższego kodu:
Format jest dość prosty i składa się z drzewa tagów, gdzie każdy tag to nazwa klasy Widoku. W tym przypadku mamy tylko jeden element, TextView. Podany kod zapisujemy w /res/layout/main.xml. Kod HelloWorld.java edytujemy do postaci:
packagecom.android.hello;importandroid.app.Activity;importandroid.os.Bundle;publicclassHelloAndroidextendsActivity{/** Called when the activity is first created. */@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);}}
Uruchomienie aplikacji da taki sam efekt. Wykorzystaliśmy tutaj plik R.java zawierający indeks wszystkich zasobów aplikacji (R.layout.main). Po wstawieniu kodu XML interfejsu plik ten został przebudowany i dodana została informacja o dodanym interfejsie. R.java ułatwia dostęp w kodzie do elementów aplikacji w prosty i zwarty sposób. Zainteresowani tworzeniem aplikacji powinni zapoznać się z dokumentacją androida (dołączaną także do SDK).
Comment article