Pierwszy artykuł dotyczący programowania w Androidzie jaki zamieszczam na tym blogu. Dowiedz się co sądzę o Androidzie, czy jest opłacalny oraz dlaczego sam zacząłem się nim interesować. W pierwszym artykule opiszę jak przygotować środowisko i kompilator, oraz jak uruchamiać aplikacje napisane w Androidzie. Dlaczego Android? Telefony komórkowe, smartfony i wszelkie inne mobilne urządzenia przenośne opanowują rynek. Wszystkie urządzania wymagają dostępu do internetu, łączenie z telewizorami, lodówkami itp. Rozwijanie swoich umiejętności w stronę programowania systemów mobilnych wydaje się dobrą inwestycją w przyszłość. W 2012 roku ilość urządzeń z Androidem wynosiła 450 milionów, w 2013 roku było ich już 820 milionów a na początku roku 2014 ponad miliard! Dla porównania, w 2012 roku ilość urządzeń z systemem Windows to 280 milionów, a na początku roku 2014 zaledwie 400 milionów. Różnica wydaje się oszałamiająca! Na łamach tego artykułu nie chcę udowadniać jaki system mobilny jest lepszy: Android, Windows Phone czy może ios. Osobiście wybrałem Androida ponieważ wydaje się bardziej dostępny i otwarty. Pozostali producenci prowadzą bardziej restrykcyjną politykę prywatności i ograniczają możliwość dystrybucji aplikacji. Uczę się Javy więc piszę.. w Androidzie Chcąc nie chcąc, zostałem pchnięty w stronę Javy, języka którego niezbyt lubię (tak samo jak C#). Stwierdziłem, że dobrą nauką Javy będzie nauka platformy Android. Zamiast spędzania wielu godzin na klepaniu kodu w Javie, mam możliwość poznawania Androida i tajemnic mojego telefonu. Dla niepoinformowanych trzeba nadmienić, że platforma Android została oczywiście napisana w Javie, więc zdobywając doświadczenia w tym pierwszym teoretycznie zdobywasz doświadczenie w drugim. Oczywiście istnieją różnice w samym projektowaniu aplikacji, w bibliotekach jednak język jest ten sam. Nie mam telefonu z Androidem! Posiadanie telefonu z systemem Android bardzo ułatwia naukę tej technologii. Możemy wtedy podłączyć telefon do komputera i uruchamiać na nim aplikacje, które piszemy. Na szczęście twórcy Androida napisali emulator, dzięki któremu możliwe jest uruchomienie Karol Trybulec p-programowanie.pl 1
wirtualnego telefonu bezpośrednio na komputerze na systemie Windows. Emulator pozostawia wiele do życzenia pod względem wydajnościowym, ale nie ma się co dziwić, w końcu w całości napisany jest w Javie. Konfiguracja Eclipse do pracy z Androidem Android tak samo jak Java jest całkowicie darmowy. Oznacza to, że pobierasz środowisko, piszesz aplikacje i możesz je legalnie sprzedawać bez żadnych dodatkowych opłat i licencji. Osobiście bardzo polecam środowisko Eclipse, jest bardzo proste w konfiguracji, szybkie i wygodne. Wejdź na stronę http://developer.android.com/sdk/index.html i pobierz Android SDK (Download the SDK, ADT bundle for Windows). Paczka zawiera w sobie wszystkie niezbędne komponenty. Nie trzeba nic instalować. Rozpakuj paczkę i niezmienioną strukturę katalogów zapisz gdzieś na dysku. Uruchom program SDK Manager znajdujący się w głównym katalogu. Niezbędne jest zainstalowanie narzędzi oraz wybranej wersji Androida. Uwaga! Weź pod uwagę, pod jaką wersją platformy chcesz tworzyć oprogramowanie. Jeżeli chcesz je testować na swoim telefonie wersja musi się zgadzać. Ja polecam zainstalować Ci wersję najnowszą (ewentualnie dodatkowo wersję 2.2, bo w środowisku można zaznaczyć opcję do jakiej najstarszej wersji Andka projekt ma być kompatybilny, polecaną jest właśnie wersja 2.2). Z gałęzi Tools należy zainstalować Android SDK Tool oraz Android SDK Platformtools. Zaznacz te dwie pozycje. Z gałęzi Android 4.4.2 (Api 19) należy zainstalować SDK Platform oraz ARM System Image (można też inne wedle uznania). Karol Trybulec p-programowanie.pl 2
Oczywiście możesz zaznaczyć całe dwie gałęzie ze wszystkimi pozycjami, wtedy instalacja będzie trwać dłużej ale będziesz miał super kompletną paczkę. Ja wymieniłem tylko niezbędne pozycje. Podczas instalacji trzeba kolejno akceptować licencję co jest wnerwiające dla wielu instalacji. Kolejnym krokiem jest zainstalowanie wtyczki ADT dla Eclipse. Ponieważ pobrałeś gotową paczkę ze strony Androida wszystko masz już ustawione. Przejdź do podkatalogu /eclipse/eclipse.exe i uruchom plik wykonywalny. Będziesz poproszony o wpisanie nazwy Workspace. Wybierz jakąś i przejdź dalej. Z menu wybierasz: File > New > Android Application Project. Karol Trybulec p-programowanie.pl 3
Tak jak wspomniałem wcześniej. Tworząc nowy projekt ustalasz na jakie SDK Androida jest kierowana aplikacja. Oprócz tego należy ustalić minimalne wymagane SDK. Kliknij Next aby przejść do kolejnego kroku. Teraz nie zapomnij zaznaczyć opcji Create Activity. Przejdź do kolejnego kroku. Kiedy zostaniesz zapytany o stworzenie aktywności koniecznie wybierz: Blank Activity. Kolejne okienko jest dość nieszczęsne, ponieważ w ostatniej aktualizacji Androida pojawiła się nowa funkcjonalność o nazwie Fragmenty. Z tego też powodu, większość kursów i tutoriali dostępnych w internecie Ci nie zadziała. Jeżeli nie chcesz usuwać fragmentów, nie musisz tego robić. Jak pozbyć się fragmentów Aby pozbyć się fragmentów, w momencie tworzenia aktywności wpisujemy taką samą nazwę dla szablonu oraz fragmentu. Może to wyglądać następująco: Karol Trybulec p-programowanie.pl 4
Po utworzeniu projektu, konieczna jest także drobna modyfikacja kodu. Otwieramy główną aktywność dostępną w katalogu po lewej stronie, w gałęzi /res/nazwa_pakietu/mainactivity i modyfikujemy jej kod: Karol Trybulec p-programowanie.pl 5
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 public class MainActivity extends ActionBarActivity { @Override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); // USUWAMY ############################# /*if (savedinstancestate == null) { getsupportfragmentmanager().begintransaction().add(r.id.container, new PlaceholderFragment()).commit(); */ @Override public boolean oncreateoptionsmenu(menu menu) { getmenuinflater().inflate(r.menu.main, menu); return true; @Override public boolean onoptionsitemselected(menuitem item) { int id = item.getitemid(); if (id == R.id.action_settings) { return true; return super.onoptionsitemselected(item); // USUWAMY ############################# /* public static class PlaceholderFragment extends Fragment { public PlaceholderFragment() { @Override public View oncreateview(layoutinflater inflater, ViewGroup container, Bundle savedinstancestate) { View rootview = inflater.inflate(r.layout.activity_main, container, false); return rootview; */ Karol Trybulec p-programowanie.pl 6
Dwa fragmenty przeznaczone do usunięcia, zostały przeze mnie zakomentowane. Od teraz możesz uruchamiać projekt, nie korzystając z fragmentów. Pamiętaj, że tworząc nową aktywność, operację należy dla niej powtórzyć. Uruchomienie aplikacji w emulatorze Androida Prawdopodobnie, nie masz ustawionego żadnego emulatora dla Androida i będziesz musiał go dodać. Zamknij Eclipse i uruchom ponownie aplikację SDK Manager. W menu na górze wybierz Tools > Manage AVDs. Na liście wyświetlone są dostępne emulatory. Kliknij przycisk New... Pokaże się następujące okno: AVD Name jest tylko dla nas i możemy wpisać tam co chcemy. Kolejnym krokiem jest ustalenie urządzenia jakie będziemy naśladować. Polecam nie wybierać najstarszych gratów, ale także nie najnowszych jeżeli nie pozwalają nam na to parametry naszego komputera. Ja zawsze wybieram emulator Nexus5 i wszystko działa bezproblemowo. Karol Trybulec p-programowanie.pl 7
Należy oczywiście ustalić na jaką wersję Android SDK kierowana jest nasza aplikacja. Pole CPU/ABI jest to obraz systemu zainstalowany wcześniej za pomocą SDK Manager. Na końcu dodajemy klawiaturę oraz wybieramy jej układ. Jest to najważniejsza grupa opcji podczas tworzenia emulatora Androida. Jeżeli dysponujemy słabym komputerem można zmniejszyć ilość przydzielonej pamięci Ram z 2048MB na np. 1024MB. Polecam nie włączać emulatora kamery, ponieważ to tylko dodatkowe obciążenie dla naszego komputera. Warto zastanowić się nad włączeniem opcji Use Host GPU, dzięki niej emulator będzie używał silnika OpenGL z naszego komputera. Dzięki temu wszystkie elementy graficzne będą renderować się o wiele szybciej. Włączenie tej opcji może znacząco przyśpieszyć działanie emulatora zwłaszcza na lepszych komputerach. Emulator został utworzony! Włącz Eclipsa i uruchom aplikację jako Android Application. Weź pod uwagę, że emulator może startować nawet 5-10 minut. Jeżeli pojawią się błędy, mówiące o braku emulatora wykonaj instrukcję zawartą w ostatnim akapicie: W razie błędów będziesz musiał przypisać emulator do projektu. W tym celu kliknij w menu na Project > Properies a następne wybierz zakładkę Run/Debug Setiings. Kliknij przycisk New, pokaże się okno. Wpisujesz odpowiednie dane dla projektu, takie jak jego nazwa oraz nazwa dla konfiguracji. Ostatnim krokiem jest przejście do zakładki Target i zaznaczenie utworzonego przez nas emulatora na liście. Niezwykle ważne jest kliknięcie przycisku Apply do zatwierdzenia zmian. Uruchomienie aplikacji na własnym telefonie Jeżeli jesteś szczęśliwym posiadaczem telefonu z systemem Android, możesz uruchamiać programy bezpośrednie na swoim telefonie. Wystarczy wykonać kilka prostych operacji. Po pierwsze zamknij Eclipse. Drugim krokiem jest odblokowanie opcji dla programistów. Wejdź w ustawienia telefonu Ustawienia > Ogólne > Informacje o telefonie > Informacje o oprogramowaniu. Naciśnij palcem od 6-8 razy na pozycję Numer kompilacji. Karol Trybulec p-programowanie.pl 8
Dzięki temu zabiegowi w Ustawieniach ogólnych pokaże się nowa pozycja Opcje dla programistów. Musisz w nich włączyć opcję debugowania USB. Teraz wystarczy podłączyć telefon do komputera za pomocą zwykłego kabla USB. Z menu możesz wybrać np. ładowanie baterii nie ma to znaczenia. Automatycznie powinien włączyć się Tryb Debugowania. Włącz Eclipse i skompiluj projekt. Zostanie uruchomiony na Twoim telefonie w ciągu kilku sekund. Karol Trybulec p-programowanie.pl 9