sobota, 29 listopada 2014

[Własna Aplikacja na Androida #3] Budowa aplikacji i "Siema Swiat!"

Pewnie czasowy odstęp pomiędzy przygotowaniem stanowiska a tym postem zmusił was do przeczytania innych artykułów na temat pisania aplikacji, aczkolwiek nie poddaję się i staram się pisać w ramach możliwości. :)

Zmiana środowiska - wywal Eclipse - witaj IDEO!
To jest drobna uwaga, kod aplikacji nie będzie się różnił, natomiast z doświadczenia wiem, że każdy dąży do tego, aby sobie ułatwić życie.



IntelliJIDEA to IDE autorstwa naszych czeskich sąsiadów. Wymaga tego samego co Eclipse, jednak w porównaniu do niego jest o niebo szybszy, przejrzysty i nie trzeba bawić się z jego konfiguracją jak w Eclipse, wtyczkę android ma już wbudowaną. 
IDEA'e można pobrać ze strony : https://www.jetbrains.com/idea/download/
Jest dostępna w dwóch wersjach. Darmowej (Community, na jej bazie został zrobiony Android Studio) oraz płatnej Ultimate (Dodatkowo trybiliard frameworków, support JEE). Obie wersje mają support aplikacji Android. 

Nowy projekt aplikacji
Po intsalacji i włączeniu programu IDEA przywita nas takim okienkiem. 
Zamazane rzeczy to moje prywatne projekty.

Klikamy na Create New Project i wybieramy Android -> Application Module
Wybieramy Next i w następnym oknie wypisujemy potrzebne dane:
Application Name: Nazwa aplikacji 
Package name: Nazwa Pakietu aplikacji. Chodzi o to , że każda aplikacja ma swój "identyfikator" jako nazwę pakietu (podobnie jak w Javie). Przyjmuje się, że nazywa się aplikacje nazwa.domeny.autora.aplikacja.
Activity Name: Jesli zaznaczyliśmy "Create Hello World Activity" to wpisujemy nazwę Aktywności. Przy Tworzeniu pierwszej aplikacji, opiszę, czym dana aktywność jest. 

Następne okno to informacje o projekcie.
Project Name: Nazwa projektu
Project location: Lokalizacja na dysku projektu
Project SDK: Czyli na jaką platofmę będziemy budować.
Target device : Wybieramy na czym testujemy aplikację. Czy na wirtualnej maszynie, na rzeczywistym urządzeniu. Możemy wybrać opcję, w której sami wybierzemy po budowaniu testowej wersji aplikacji.

FINISH!



OTO I NASZ PROJEKT! Tzn - główne okno projektu w IDEA'i.\

Główne foldery i pliki aplikacji Android
folder res - mogę smiało powiedzieć że jest to folder, w którym trzymamy "stałe" projektu (zasoby?). Jak widać na obrazku, sa foldery layout i values. Pierwszy z nich przechowuje pliki wyglądu aplikacji, drugi zaś , "wartości". 
Oczywiście 2 foldery to nie wszystko. layout możemy zrobić dla konkretnej rozdzielczości, a "wartości" dla konkretnego języka. 
folder src - Działanie aplikacji. poniżej src jest nazwa pakietu, a w niej kod "javowy" naszej aplikacji. Aktywności, Serwisy, Klasy i inne "rzeczy backendowe"
folder assets - tam trzymamy pliki "z zewnątrz" , obrazki, dźwięki, modele, bazy danych itp.

AndroidManifest.xml - Najważniejszy plik aplikacji androida. W nim deklarujemy nazwę aplikacji, wymagane sdk i sdk "zalecane", oraz wszystkie uprawnienia, aktywności i serwisy. Jednym słowem - aplikacja jest opisana właśnie tu. 

Uruchamianie aplikacji. 
Podobnie jak Eclipse, IDEA tez ma guzik PLAY (ten obok zaznaczonego). Wystarczy go kliknąć i wybrać czy mamy zainstalować aplikację na urządzeniu fizycznym czy na Emulatorze,  żeby przetestować aplikacje "w praktyce".


Aplikacje te zostaną podpisane specjalnym testowym kluczem, które Sklep Play nie przepuści. Podpisaniem aplikacji zajmiemy się (myślę że) w odpowienim czasie. Teraz czas przygotować się na "Widoki" i Aktywności :)


A taka reklama. :P
Jeśli podoba Ci się moja praca, i chciałbyś "więcej" - kliknij "Lubię to" na moim oficjalnym profilu na FB.
https://www.facebook.com/pl.cheqoladowy

Może wyda sie to dziwne, ale cały czas mam głupie wrażenie, że piszę dla ściany, ale lubię pisać (pomimo braku czasu)

W takim razie - do nastepnego! :)

niedziela, 23 marca 2014

[Własna Aplikacja na Androida #2] - Stanowisko pracy Eclipse, ADB i "Uszanowanko dla świata".

Gdy w końcu zebrałem się żeby zacząć kurs "po mojemu" o pisaniu Aplikacji na Androida trzeba go kontynuować. A Dodatkową motywacją jest fakt , że wczoraj liczba wyświetleń bloga przekroczyła 10k. Dziękuje!:)
 Dziś główną część Artykułu przeznaczam użytkownikom środowiska Eclipse, z NetBeans'a nie korzystałem nigdy a Android Studio jest chyba sam w sobie skonfigurowany.

Na wstępnie potrzebne na będzie Android SDK Tools , które możemy ściągnąć z :
https://developer.android.com/sdk/index.html?hl=sk

Ściągamy to co jest nam potrzeba (zależy od systemu). ADT Bundle to "Gotowa paczka deweloperska" ,  w której (jak możemy wyżej przeczytać) wchodzi przygotowany Eclipse z wtyczką ADT oraz Pakiet SDK ze gotową wirtualną maszyną androida. Ściagamy , instalujemy/wypakujemy i kodzimy - czyż nie proste?

Jeśli mamy już ściągniętego Eclipse wystarczy ściągnąć Samo SDK,zainstalować.je i skonfigurować.Etapy konfiguracji nie są zbyt trudne i każdy powinien się połapać.
Po instalacji Android SDK uruchamiamy SDK Manager i naszym oczom ukaże się takie oto cudo
SDK Manager to mały programik głównie to ściągania narzędzi (Sterowniki USB do ADB, Update a nawet wirtualne maszyny Androida). Na dzień dobry już musimy ściągnąć kilka rzeczy.
Z Zakładki Tools Ściągamy Android SDK Platform-tools, z Zakładki Extras Google USB Driver no i dodatkowo ściągniemy sobie Androidka. 2.3.3 (API 10). Klikamy Install x Packages (zamiast x jest liczba) w nowym oknie zaznaczamy Accept Licence i Install.
Po instalacji zaczyna się najlepsze!

Konfiguracja ADB
Kiedy chcemy przetestować aplikację na fizycznym urządzeniu musi on obsługiwać ADB. O ile każdy telefon ma w opcjach programistycznych "Debugowanie USB" (Zaznaczone koniecznie być musi!) tak nie każdy komputer to ogarnia. 
Na Windowsie trzeba instalować urządzenie, którego sterowniki ściągnęliśmy przez SDK (Google USB Driver). Wchodzimy zatem 
Wchodzimy w Menadżer urządzeń (Prawym na mój komputer, i po lewo będzie). Następnie klikamy w Akcja i Dodaj Starszy sprzęt. Naszym Oczom ukaże się takie okno 
Dalej, Zainstaluj sprzęt z listy, Dalej do takiego stanu :
Jak widać ja zrobiłem tu co trzeba było. Trzeba kliknąć na guzik "z dysku" i wybrać plik android_winusb.inf z Usb Driver. (Standardowo będzie chciał z Dyskietki zczytać , wystarczy kliknąć przeglądaj i wybrać) który znajduje się w Folderze z Android SDK/extras/google/usb_driver . Potem Dalej, Dalej , gdy zapyta o zaufane certyfikaty to kliknąć tak (TAK GOOGLE JESTEŚ NAJLEPSZY I MAM DO CIEBIE PEŁNE ZAUFANIE - do czasu...) po instalacji u mnie "działa" i mam w menedżerze urządzeń coś takiego. :
Sprawdźmy czy działa. Wejdźmy w folder z Android SDK/platform-tools . tam mamy plik adb
podłączmy telefon z włączonym trybem debugowania do komputera. Przytrzymaj SHIFT i "gdziekolwiek" w tym folderze kliknij prawym przyciskiem myszki i wybierz "Otwórz Okno Polecenia Tutaj". Po wpisaniu adb devices naszym oczom ukarze się napis informujący o starcie serwera Adb a potem Numerki naszego telefonu. DZIAŁA!
Wtyczka ADT w Eclipse 
Ciężko mi będzie pokazać jak ją zainstalować na Eclipse , który już ją ma , ale spróbuje. 
Jeśli odpalamy Eclipse po raz pierwszy poprosi o wybranie miejsca zapisu projektów. Wybierzmy go nie "ot tak" (np na drugim dysku jeśli mamy, dobrze nazwać folder żeby potem nie było 31276312 lat szukania projektu).
Eclipse jak wygląda każdy wie.
Zaznaczone rzeczy to te, których jeszcze nie macie. Po lewo - Otwiera SDK , po prawo - Otwiera AVD. 
INSTALUJEMY!
Wchodzimy w Help -> Install new Software 
Klikamy Add i w nazwie wpisujemy Android a w linku https://dl-ssl.google.com/android/eclipse
Z Listy rozwijanej na górze po dodaniu wybieramy Android i z pojawiających się rzeczy zaznaczamy Developer Tools

"gwałcimy Next" i czekamy aż się zainstaluje. Po wszystkim Restartujemy Eclipse (zapyta się nas czy chcesz żeby się zrestartował) i mamy już te 2 ikonki. :)
Pierwszy Projekt? "USZANOWANKO ŚWIECIE!"
Klikamy File->New-> Java Project
Ja swój projekt nazwałem Uszanowanko. Nazwa Może być dowolna, byleby programista wiedział o co chodzi. Po Utworzeniu nasz projekt wygląda tak :
Aby Miało ręce i nogi klikamy na src i wybieramy Create package.

Nazwa Pakietu Musi być unikalna. ja zawsze nazywam Aplikacje swoją "domeną" pl.cheqoladowy.<nazwa_aplikacji> . "pl" z początku oznacza kraj a dalej mój nick (choć tak mogę być przez chwilę patriotą...) Klikamy na Utworzony Pakiet i wybieramy Create Class. 
Nastanie taki czas że wytłumaczę wam co i jak. Uzupełnijmy to okno tak jak podałem (nazwa dowolna , najważniejsze żeby zaznaczyć public static void main(String[] args) ). Utworzy nam się nowa klasa i pokaże w oknie Eclipse. 
Dodajmy pomiędzy { } po public static void main(String[] args) Następującą linijkę:
System.out.println("Uszanowanko dla Świata");

Wygląda to tak :
I kliknijmy "PLAY" - zielony guzik na górze w rzędzie gdzie są guziki do Android SDK i ADT
a na dole w oknie Console Powinniśmy zobaczyć
Co to oznacza? Że wygląda na to że wszystko działa! Eclipse jest "Skonfigurowany" (w następnej części na wstępnie sprawdzimy czy dobrze odwołuje się do Androidowego SDK i jak nie to naprawimy to), więc spokojnie będziemy mogli napisać pierwsze "uszanowanko dla Świata" na Telefony.

Dziękuję za przeczytanie. Co dalej? Myślę nad szybkim (na prawdę szybkim) kursem Javy , składnią i samym kodzeniem. No to - Do następnego! :)

środa, 19 marca 2014

"Wgrywanie" Androida - słów kilka.

Ostatnio coraz częściej piszą do mnie osoby , które "widzą że ogarniam telefony to im pomogę". O ile na początku było to dosyć przyjemne (bo żyłem z myślą "jedyny taki magik w okolicy") tak z czasem nastawienie ludzi do "wgrywania Androida" zaczęło mnie irytować.

Uniwersalna metoda wgrywania nowego softu? Zapomnij.
Każdy producent telefonu z Androidem dba o to żeby system był szybki, dobry, rozbudowany i przyjazny użytkownikowi. Jednak w momencie kiedy Pan A wgra 14123 aplikacji, 1237897 widzetów, 12389078123978 mpTrójek oraz skusi się na oglądanie filmów korzystając z telefonu/Tabletu telefon (bo nie system) najzwyczajniej w świecie odmówi posłuszeństwa i zacznie "mulić" gdyż zacznie mu brakować miejsca na pamięci użytkowej , ram'u oraz miejsca w cache'u Dalvika. Wracając do producentów , każdy z nich stara się żeby system był zabezpieczony w taki sposób aby zwykły zjadacz chleba nie zrobił tzw "a co się stanę jak kliknę tu? Ojej nie działa...." . Uniwersalna blokada tego była ,owszem , do Androida 2.3. W "Tych pięknych czasach" "programów i metod" (słowa exploitów nie używam celowo - dla zainteresowanych co to znaczy odsyłam do google) do rootowania można było policzyć na palcu jednej ręki. Obecnie każdy producent stara się zabezpieczyć telefon przez hakowaniem jak tylko może. Jak się im to udaje wie każdy kto "siedzi w branży".
Ale jak to "hakowanie telefonu"?  Czy będe hakerem?
Nie. Po prostu posiadam bardzo "fajną" książkę "Hakowanie Androida" (polecam - bardzo fajnie wyjaśnione działanie systemu) i dlatego używam tego terminu. Większość z was pewnie słysząc "haker"
 widzi zakapturzonego człowieka bez twarzy w ciemnym pokoju gdzie jedynym źródłem światła jest ekran komputera i jego widok odbijający się od puszek napojów energetycznych. Warunkiem wgrania nowego Androida jest jego zrootowanie i odblokowanie bootloadera co wiąże się z obejściem zabezpieczeń więc w pewnym stopniu (z podkreśleniem "pewnym") jesteś hakerem. Ale nie bój się. Jedyne co Ci grozi to uceglenie telefonu. 
Etapy wgrywania nowego systemu.
W czasie złości jak ktoś pyta mnie się "JAK?!" odpowiadam "poszukaj w googlach albo na xda. jak tam nie ma to nie da się tego zrobić". Tak , czasem mówię to co myślę ale nie o to chodzi. Mogę przegadać o Tym godziny jak to działa, dlatego właśnie jest ten wpis aby "przybliżyć" jak to wszystko wygląda.
ROOT: Poprawnie wykonany dodaje nam bibliotekę su oraz (co jest mało istotne) aplikację SuperUsera. Root jest wymagany , ponieważ dzięki niemu możemy zapisywać w systemie informacje. Brzmi nie logicznie prawda? Z jednej strony - tak , to wcale nie ma sensu. Bo przecież "Gdzieś się te aplikacje zapisywać muszą!". Z drugiej , tej poprawnej strony (można by śmiało powiedzieć ze strona developerska) , partycja systemowa jest tylko do odczytu  (więc gdzie się zapisują wasze Angry Birdsty i 1231239 innych widzetów? na partycji data - polecam archiwum bloga - już pisałem trochę o tym w "Rozbieramy Androida na czynniki pierwsze"). To jedno z zabezpieczeń przed nieumyślnym "OJEJ POPSUŁO SIĘ". Root dodaje nam uprawnienia supermegahiperextra administratora urządzenia , dzięki czemu możemy wykonać magiczne zaklęcie, co pozwoli nam na zapisie w systemie. Skoro chcemy wgrać nowy system , musimy się pozbyć starego. A zeby się pozbyć starego trzeba go po prostu usunąć - dla testów polecam stworzyć plik "Tylko do odczytu" w windowsie i spróbować go usunąć. Tak samo jest i tu.
Odblokowanie bootloadera: W momencie włączania urządzenia "COŚ" (serio - w tym systemie ciężko powiedzieć co...) sprawdza poprawność podpisania systemu (certyfikatami). Standardowy (stockowy) system jest podpisany oficjalnymi pierdółkami od producenta z góry, nowe (Customowe) systemy nie posiadają takiego podpisu, więc po instalacji systemu który nie jest podpisany "COŚ" stwierdzi że to nie system i nam podziękuje uniemożliwiając uruchomienie telefonu. Odblokowanie bootloadera polega na usunięciu etapu sprawdzenia certyfikatów systemu, recovery a nawet samego bootowania. Wykonujemy wtedy tzw. S-OFF (Security OFF, wiadomo - zablokowanie bootloadera to S-ON). Przez co możemy instalować niestandardowe i często nie podpisane certyfikatami modyfikacje na telefonie. 
Ej to teraz jak wgrać....?
Root - znajdź skrypt na swój telefon i postępuj zgodnie z instrukcjami. Odblokowanie bootloadera najczęściej polega na podmiany pliku w systemie (do czego wymagany jest root) więc znajdź plik i postępuj zgodnie z instrukcjami. Potem znajdź nowy system i postępuj zgodnie z instrukcjami.
Dlaczego nie powiem jak? Bo jak już wcześniej wspomniałem nie ma uniwersalnej metody. Rootowanie L5 zajęło mi 1 dzień bo nie chciałem wgrywać zrootowanego softu i udało się , wystarczyło kliknąć ROOT. Natomiast Rootując ARC S musiałem Restartować go co chwilę , nie mówiąc o tym że trzeba było ustawić czas uśpienia na 15 minut. Każdy producent ma inne metody - bardziej i mniej skomplikowane.
Ej bo mi nie działa....
Zrobiłeś coś nie tak? Ominąłeś lub zignorowałeś jakiś punkt? Nie zrobiłeś kopi zapasowej? Sam Sobie jestes winien. Nikt Ci nie każe wgrywać nowego Androida ,  wszystko robisz na własną odpowiedzialność. Nie działa Ci telefon po wykonaniu skryptu? Tak samo jesteś sobie winien. Czy jeśli ktoś zatrzymał Cię na ulicy i powiedział "Daj mi swój telefon" dał byś mu go (nie mówię o dresach) ? Myślę że nie. Tak samo zaufałeś człowiekowi któremu Podobno "działa!", którego nigdy na oczy nie widziałeś i ani słowa nie wymieniłeś. Ryzyko jest duże - pamiętam jak sam patrzyłem w konsole rootując swojego OT-908, kiedy ciśnienie mi latało jak szalone, a o wgrywaniu softa nie wspomnę. A byłbym zapomniał - gwarancji już nie masz - proces rootowania ją "zabiera"...

Wyklikane rozmyślenia w pracy. Mam nadzieję że tutaj choć trochę przybliżyłem jak to działa i dostanę "spokój" od głupich pytań :3

Pozdrawiam ! :)

czwartek, 13 marca 2014

[Własna Aplikacja na Androida #1] Moje rozmyślania + Szybkie przygotowanie stanowiska.

Bardzo dawno temu stwierdziłem -  "Kurczę! Przydałoby się dodać to tu, a może jakąś unikalną aplikacje do romu dodać?", a że na półce z książkami leżało "Hello Android" stwierdziłem że wrócę i ponownie spróbuję coś "przykodzić" pod ten system. Obecnie "odkładam pieniądze" na konto Developerskie Sklepu Play - ale nie o Tym dzisiejszy post.

Stwierdziłem że mógłbym spróbować napisać co nieco o samym Tworzeniu aplikacji na Platformę Google'a. Czasami Modyfikacja Grafiki i pliku XML nie wystarcza , Developer chcąc zedytować aplikację musi zajrzeć do jej "kodu" który dla osoby która siedzi w tym "trochę" nie jest w pełni zrozumiały (BA! prawie wcale). Znalazłem "Pewną metodę" na to , aby mniej więcej zrozumieć "sam kod Dalvika" (Dalvik, jak już wiecie bądź nie , jest wirtualną maszyną siedzącą w Systemie Android. Rozwiązanie jest o tyle "dziwne" że biorąc pod uwagę co się dzieje w systemie - w skrócie to wygląda tak, odpala się telefon , boot systemu bazującego na linuxie , odpalenie wirtualnej maszyny do obsługi Aplikacji i Frameworków i dopiero możemy korzystać z telefonu. Patrząc trzeźwym okiem Android to System , który ma w sobie maszynę do obsługi Androida - rozwiązanie to można uznać za... dziwne?). Metoda ta polega na Tym, że przeglądam kod aplikacji w javie , szukam funkcji która odpowiada za rzecz którą chcę modyfikować , po linijkach szukam miejsca mnie interesującego, a na końcu patrzę w kod pliku *.smali i modyfikuje. Logiczne?

No nie dla wszystkich. Wymagana jest podstawowa znajomość działania aplikacji systemu. Dzisiaj numer jeden , JAVA , czyli język który osobiście uwielbiam pomimo tego że nie znam go jakoś super hiper mega dobrze. ;)

Java jest obiektowym jeżykiem firmy ORACLE który wymaga do działania samej javy - logiczne. Tyle wam wystarczy teorii.

Przygotowanie stanowiska pracy czyli co żem mieć muszem ażeby pokodzić!
Samą Javę.
https://www.java.com/pl/download/
Java JDK.
http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
No i przydałby się jakiś edytor . Osobiście wielbię Eclipse więc go wam polecam z Całego serca.
https://www.eclipse.org/downloads/packages/eclipse-ide-java-developers/keplersr2
Ważne! Eclipse jest kombajnem developerskim. Wybór nowszej wersji na starszym sprzęcie może nam przysporzyć kłopotów z użyciem procesora. Przeżyłem to ostatnio na moim laptopie - przy mocnym sprzęcie nie powinno być problemu z nowszą wersją jednak pragnę zwrócić uwagę , że chcąc pisać aplikację na androida wersja ta powinna (a nawet musi) być wyższa niż Galileo bo android-sdk nie będzie chciał się zainstalować.

O Ile pierwsze 2 rzeczy instalujemy - trzecią wystarczy jedynie wypakować i uruchomić Eclipse. Cyż nie proste?
W "Następnej części" ściągniemy sobie Android SDK Tools do Eclipse , skonfigurujemy go i co najlepsze - postaramy się napisać prosty programik w Javie. Postaram się wytłumaczyć składnie i "zasady panujące w javie"

Do Następnego! :)


sobota, 1 lutego 2014

Hill Climb Racing 1.13 Unlimited Money

Zmodyfikowana najnowsza Wersja Jednej z najpopularniejszych gier na telefony z systemem Android. Zasada działania jest taka sama jak Ostatnio - wchodzimy w Monety (Add Coins) i wybieramy Facebook. Gra doda nam aż 16 777 215 pieniążków. Czynność tą możemy powtarzać w nieskończoność.

Przypominam - dodanie pieniążków psuje grę gdyż nie ma zadowolenia z odblokowywania po miesiącach kolejnych rzeczy. Dodatkowo jeśli gra Ci się spodobała - dofinansuj jej twórców. ;)

UWAGA: Przy pierwszym uruchomieniu gra zostanie "nieoczekiwanie zamknięta". U mnie (Android 4.4.2 AOSP) drugie włączenie było dobre. W razie problemu - pisz!

Download : https://www.dropbox.com/s/jn8gryvjn8jzz0f/hcr_dasq_1-13-0.apk


Rozpowszechnianie zezwolone z podaniem linku do bloga. 

niedziela, 19 stycznia 2014

Rozbieramy Androida na czynniki pierwsze.

Może nie do końca będą to czynniki pierwsze ale na pewno przybliży to wam działanie Systemu. Osobiście uważam że jest to "niezbędne" kiedy chcemy się zabierać za modowanie czegokolwiek (z doświadczenia - zanim zacząłem bawić się w Androidzie modyfikowałem CS 1.6 i zrozumienie zasad gry  jak i działanie serwera w stopniu "mniej więcej" było konieczne aby zacząć go skryptować)

Przechodząc do sedna chciałem tylko podkreślić że to moje 'luźne obserwacje' - mało czytałem na ten temat. Chcę opisać te foldery które 'developer' mniej więcej musi kojarzyć. Najważniejsze to jak powiedziałem wcześniej - zrozumieć. ;)

Podobnie (podkreślam , nigdy nie stawiajmy znaku równości) jak w Linuxie , "centrum" telefonu to folder "/" . w nim mamy kilkanaście folderów które są potrzebne , mniej potrzebne , nie potrzebne oraz "nie rozumiem ich toku myślenia gdy na to wpadali".

/data
Przy instalacji nowego SOFT'a zalecany jest tzw 'full wipe'. w jego skład wchodzi format tego folderu więc na pewno musi być bardzo ważny. Folder ten kojarzmy z prywatnymi rzeczami użytkownika. Tam bowiem są zachowane informacje o ustawieniach aplikacji (/data/data/<nazwa_pakietu_aplikacji>/) czyli preferencje (folder /shared_pref) pliki potrzebne do działania (/files) biblioteki wymagane w aplikacji (jeśli takowe posiada - /lib) jak i bazy danych SQLite (folder /databases). Dodatkowo folder ten przetrzymuje same aplikacje które ściągamy ze Sklepu Play, instalujemy korzystając z polecenia ADB czy też przez zwykły instalator pakietów. Próżno szukać w tym folderze rozwiązania błędów spowodowanych w działaniu systemu aczkolwiek są i takie przykłady ;)

/sdcard 
No tego zbytnio tłumaczyć nie muszę. Folder który obsługuje nam kartę sd bądź pamięć wbudowaną. W Moim L5 folder ten to pamięć wewnętrzna , do zewnętrznej odwołamy się przez folder /external_sd bądź buszując w folderze /storage (jeśli takowy jest) gdzie są zapisane wszystkie informacje o Pamięci.

Co z pozostałymi folderami? Radziłbym nie tykać. Niektóe pliki odpowiadają za rozruch systemu i ich "edycja" może spowodować POWAŻNE problemy takie jak błąd przy bootowaniu systemu a nawet fastboot'a i recovery przez co możemy utracić "ostatnie możliwości naprawy systemu"

/system
Tak naprawdę podstawa modyfikowania Androida. Jak sama nazwa wskazuje to miejsce w którym cały system się znajduje  (nie bootloader , nie recovery , nie download i nie fastboot - one są "Gdzieś tam!") . Standardowo folder ten jest tylko do odczytu , wykonanie root'a powoduje odblokowanie możliwości zapisywania w tym folderze ( m.in dodanie nowych aplikacji systemowych , poleceń , zmiana bootanimacji, czcionek , dźwięków itp itd)

/system/app
Można się domyślić po samej nazwie że folder przechowuje aplikacje systemowe. Nie można ich usunąć za pomocą standardowego menedżera aplikacji , jedynie "odrobinie podrasowanego w zezwolenia SU" aczkolwiek nie zawsze jest to rozwiązanie "dobre" ponieważ czasem możemy usunąć "aplikację za dużo" przez co telefon złapie Bootloop'a bądź nie będzie działał jak należy. Warto też wspomnieć że aplikacje muszą mieć odpowiednie uprawnienia (rw-r--r-- na cyfry będzie to 644). W momencie kiedy o nich zapomnimy system potraktuje je tak jakby ich nie było.

/system/bin i /system/xbin
Dwa foldery w którym zapisane są polecenia Androida. Warto o nim wspomnieć bo w momencie instalacji BusyBox'a właśnie tam dodawane są nowe polecenia (tj md5 ,echo czy też najpotrzebniejsze "su" do obsługi root'a)

/system/framework
Folder wyglądu i jego "działanie". Brzmi to dziwnie ale już spieszę z wyjaśnieniem. W Tym folderze jest aplikacja framework-res.apk która zachowuje większość informacji o wyglądzie systemu , choć od wersji 2.3 dodatkowe informacje są w SystemUI.apk w folderze /system/app (te aplikacje są wymagane przy modyfikacji Aplikacji systemowych i themingu) pozostałe pliki w formacie jar to pliki obsługujące m.in takie rzeczy jak głosność telefonu (a konkretnie ilość stopni podgłaśniania - na xda-developers widziałem poradnik jak zmienić) więc jak ktoś ma chęci i czas na kombinowanie w tych plikach może baaaardzo oryginalnie zmodyfikować system ;)

/system/lib
Coś na wzór sterowników telefonu. Folder do którego trzeba podchodzić z wyjątkową uwagą. Osoby które mają zamiar portować romy często zakopują się w "libie" aby jak najwięcej rzeczy działało w nowych romie. Ani razu nie udało mi się przeportować rom na swoje telefony więc wiele nie wgłębiałem się w ten folder.

/system/media
Czcionki , melodyjki , bootanimacja , obrazeczki i inne pierdółki.

Miałem nadzieję że artykuł będzie "ciut dłuższy" ale na nadziejach skończyło się. :S Mam nadzieję ze teraz mniej więcej (tak jak ja) wiedzie Gdzie czego szukać przy zabawach z Androidem. ;)