Jak zacząć programować pod androida - krótki poradnik.
Do pisania aplikacji działających w systemie Android potrzeba następujących elementów:
1. Narzędzi
2. Wiedzy
Z narzędziami jest dość prosto - trzeba zainstalować Eclipse z jedną z dostępnych wtyczek.
Eclipse jest do pobrania tutaj: Eclipse Downloads jak nie wiesz którą wersję wybrać wybierz Classic.
Należy również pobrać wtyczkę ADT. Opis jak zainstalować narzędzia jest dostępny tutaj: Building Your First App | Android Developers
Możliwe jest też użycie dowolnego innego IDE pozwalającego na pisanie programów w Java, należy jednak pamiętać, że wiąże się to z trudniejszą konfiguracją, słabszym dostosowaniem do Androida oraz znacznie słabszym wsparciem ze strony społeczności. Jeżeli zaczynasz dopiero pracę z Androidem polecamy wybór Eclipse.
Z wiedzą jest trochę trudniej - instalacja postępuje wolno, musisz jednak zgromadzić następujące elementy:
Znajomość angielskiego - przynajmniej podstawy. Uprzedzając pytania - tak jest to niezbędne. Podczas pisania programów nieraz pokłócisz się z kompilatorem, debugerem itd. - dobrze, żeby były to dyskusje na tematy merytoryczne a nie językowe. Całość dokumentacji z której będziesz korzystał, również jest w tym języku.
Przyzwoita znajomość programowania Java - nie chodzi o wiedzę bardzo wybujałą, jednak na blachę trzeba znać takie zagadnienia jak składnia języka i model obiektowości w Java. Warto też dorzucić do tego znajomość podstawowych klas z JSE. Całość potrzebnej wiedzy jest zawarta w książce "Java2 - Podstawy"
Znajomość specyfiki tworzenia aplikacji dla systemu Android, w szczególności przynajmniej przeczytanie sobie o tym jakie elementy występują w aplikacjach (wszystkie 4) - to nie jest jakoś strasznie rozległa wiedza, chociaż oczywiście wraz z tworzeniem kolejnych programów, będziesz ją w sobie rozwijał
Częste pytania:
Czy mogę pisać dla Androida w języku C++?
Tak - Możliwość pisania aplikacji w C++ pierwotnie była dodatkiem mającym na celu portowanie już istniejących aplikacji i wymagało "owijania" kodu C++ w Java. Obecnie możliwe jest wykonanie całej aplikacji z użyciem C++. Jeżeli interesuje cię ta możliwość poszukaj w Google hasła "Android NDK"
Czy mogę pisać dla androida w języku PHP, Action Script, HTML, C#, Delphi, Brainfuck, Lua, Perl (...)?
Dla niektórych z tych języków istnieją różnego rodzaju narzędzia, pozwalające na ten proceder. Pojawiły się również różnego rodzaju specjalizowane narzędzia (np. do tworzenia gier). Niektóre z nich są wspomniane dalej w tym wątku
Czy w Android Market można sprzedawać aplikacje?
Tak, Polacy mogą sprzedawać aplikacje przez Google Play.
Czy mogę publikować aplikacje w Android Market?
Tak, możesz - utworzenie konta developera w AM to kilka minut i $25 uciekające z karty. Trzeba mieć kartę płatniczą obsługującą płatności w internecie.
Czy mogę umieścić reklamę w aplikacji?
Tak możesz, są 2 sieci reklamowe pozwalające na to - adMob i MobClix. Pierwsza z nich wygląda na bardziej popularną. Rejestracja w obu jest darmowa, wynagrodzenie w obu przypadkach zależy od liczby kliknięć w reklamy wyświetlone przez ciebie. Wartość kliknięcia to od $0.01 do $0.20 i nie masz na to żadnego wpływu. Wypłata w obu przypadkach następuje za pośrednictwem PayPal. Uwaga - pojawiło się znacznie więcej sieci reklamowych, częśc z nich oferuje reklamy inne niż banery.
Czy polecacie jakieś książki / źródła dotyczące programowania?
Nauka Java - "Java 2 Podstawy", "Thinking in Java", "Head First: Java"
Dokumentacja android SDK + wskazówki dla developerów - Android Developers
Przykładowe projekty instalowane z SDK. ~\android-sdk-windows\samples\...
Książki dostępne tutaj: CommonsWare (roczna subskrypcja uaktualnień to $40)
Po polsku ukazała się jedna książka Android 2 Tworzenie aplikacji Książka "Android 2. Tworzenie aplikacji" - Sayed Hashimi, Satya Komatineni, Dave MacLean - 9788324627547 -- Wydawnictwo Helion, księgarnia helion.pl jakoś bardzo jej nie polecamy, ale nic innego w ojczystym języku nie znajdziesz.
Odpowiedzi na sporo pytań znajdziesz tutaj: Stack Overflow
Dlaczego nikt nie odpowiada na moje pytanie?
Prawdopodobnie zadałeś je w sposób tak mało zrozumiały, że nikt go nie kuma - jak chcesz dostać precyzyjną odpowiedź, to precyzyjnie pytaj. Napisz co chcesz zrobić, co i jak zrobiłeś, i co ci się nie podoba w efekcie który uzyskałeś. Pamiętaj też, że na tym forum pisuje zaledwie kilka wróżek i są na ogół zajęte w innych działach, w związku z tym dla własnego dobra umieść od razu wszystko co jest potrzebne - kod, definicję layoutu, logi DDMS.
Zdarza się też, że problem z którym się zwracasz jest na tyle trywialny, że zdradza twoją kompletną nieznajomość podstaw - posłuchaj rad, które padają i doczytaj / poćwicz to co niezbędne.
Jak połączyć się z zewnętrzną (zdalną) bazą danych
W tym wątku jest opisany problem: https://forum.android.com.pl/topic/51840-zdalny-sqlite/
Jak szybko zainstalować narzędzia?
Najprościej będzie zainstalować MotoDev Studio - jeden krok mniej.
1. Pobieramy i instalujemy JDK (nie SDK) ze stron Oracle Java SE Downloads - wybieramy najnowszą wersję
2. Pobieramy i instalujemy Eclipse - Eclipse - The Eclipse Foundation open source community website.
2a Pobieramy i instalujemy ADT Installing the Eclipse Plugin | Android Developers
3. Po instalacji uruchamiamy Eclipse, szukamy w górnym pasku ikony z androidem (górny, lewy róg), za pomocą formularza pobieramy wszystkie dostępne pakiety - to potrwa kilkanaście minut.
4. Szukamy swojego telefonu z Androidem, kabla USB do niego i sterowników ADB - w części przypadków mogą być te z Google.
5. W telefonie ustawiamy ustawienia > aplikacje > dla programistów > debugowanie USB i podłączamy do komputera. Od wersji Androida 4.2 opcje programistyczne są ukryte - zanim włączysz wejdź w opcje, informacje o systemie i kliknij kilkanaście razy w numer kompilacji
6. Instalujemy nowe urządzenie w systemie, używając pobranych wcześniej sterowników.
Inne narzędzia
https://forum.android.com.pl/topic/58019-narzae-dzia-wspomagajae-ce-pisanie-aplikacji/
7ymek podał następujące informacje dla programujących we Flex:
Adobe Flash Builder Burrito: środowisko oparte na eclipse umożliwiające budowanie aplikacji we Flex'ie/Flashu dla androida. Jeszcze wersja beta ale już bardzo stabilna.
Adobe Flash Builder "Burrito" | cross platform development - Adobe Labs
Necessitas: programowanie aplikacji na androida w Qt:) kompletne środowisko programistyczne oparte na QtCreatorze. wersja alfa także bardziej jako ciekawostka
Bringing Qt applications to Android – a quickstart video
===========
Jeżeli macie jakieś uwagi, przesyłajcie je niżej postaram się uaktualniać ten post możliwie na bieżąco. Może dorobimy się FAQ, pozwalającego na uniknięcie odpowiadania 10 razy na te same pytania.