"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

(S) android 101

Reakwon 26.06.2012 - 20:44 1068 3
Posts

Reakwon

Addicted
Avatar
Registered: Jan 2002
Location: tønsberg.no
Posts: 526
fuer ein jobbinterview am freitag brauechte ich quasi ein Android for dummies zum basics einlesen. Einfach um im vorhinein schonmal zu zeigen, dass ich mich wirklich fuer den job interessiere ;)

Kennt jemand eine Seite mit einer guten Uebersicht? Oder zumindest einen anhaltspunkt geben, worin die groessten unterschiede in den verschiedensten Handies und ihrer Androidversion liegen?
Hab jetzt ned wirklich vor die specs von jedem device zu lernen, eh klar, aber worin liegt eigentlich der unterschied zwischen einem HTC und einem Samsung - bzw Nexus vs S3 etc etc

Ich weiss, die fragen, die ich hier stelle, sind eigentlich ein grusel in einem overclockers forum, aber hab noch nie mit android vorher zu tun gehabt, und will ned ganz dumm dastehen beim mittlerweile 3. und letzten interview fuer die stelle.. von insgesamt 60 bewerbern, sind nurnoch ich und 1 konkurrent im wege ;)

Also, wer kan mir helfen, einen ordentlichen job zu bekommem? ;)

COLOSSUS

Administrator
GNUltra
Avatar
Registered: Dec 2000
Location: ~
Posts: 12070
Ich weisz nicht ob dir das hilft, aber ich schreib hier einfach ein paar Fakten zusammen, von denen ich mir denke, dass sie dir helfen koennen.

Android ist ein Betriebssystem auf Basis des Linux-Kernels. Mit einer "herkoemmlichen" GNU/Linux-Distribution enden die Parallelen hier meist schon wieder. Android wird von Google-Entwicklern "top-to-bottom", ohne grosze Einbindung der Community und hinter verschlossenen Tueren, entwickelt. In unregelmaeszigen Abstaenden erfolgen "Code Drops" - der Quellcode einer fertigen Android-Release wird der Oeffentlichkeit unter verschiedenen Lizenzen zur Verfuegung gestellt. Mit groszen Geraeteherstellern arbeitet Google auch vor einem solchen Code Drop zusammen, damit diese Hersteller schneller mit einem aktuellen Android-Handy/Tablet/wwi auf dem Markt sein koennen. Die oeffentlich einsehbare Codebase von Android heiszt "Android Open Source Project", kurz AOSP.

Das Android-Userland (also die Anwendungen, mit denen man als Benutzer interagiert) sind gewoehnlich in Java programmiert. Jedes Android-Geraet bringt eine speziell von Google fuer Android entworfene JVM (Dalvik) mit, und kann darauf Java-Bytecode ausfuehren. Moechte man Anwendungen fuer Android entwickeln, schreibt man also Java, allerdings nicht (nur) gegen die gaengigen Klassenbibliotheken/APIs, die man von Oracle Java/OpenJDK etc. gewohnt ist. Jedes Android-Release bringt eine neue Version der Android SDK mit - eine Sammlung von Software, Bibliotheken, Tools und Dokumentation, die das Programmieren von Anwendungen fuer Android ermoeglichen. Es gibt auch noch eine sogenannte "NDK" (Native Development Kit), mit dem man hardwarenaeher (in C statt Java) fuer Android programmieren kann, das braucht man idR aber nur dann, wenn man gewisse, nicht durch eine Java-API verfuegbar gemachte Hardware-Spezialitaeten ausreizen will oder muss.

Manche Hersteller implementieren auf ihren Geraeten Besonderheiten, z. b. einen eigenen Launchscreen, oder bringen spezielle Anwendungen mit dem Geraet mit, wie bspw. eine (zu Google Maps alternative) Navigationsanwendung, oder ein Cloud-Backup-Service, etc. Die Geraetehersteller kuemmern sich auch darum, dass die Hardware, die in ihren Geraeten schlummert, mit dem Rest des Android-Systems zusammenspielt (also dass Treiber dafuer fuer den Linux-Kernel ihrer Android-Distribution/Handy-Firmware zur Verfuegung stehen). Dieses von Herstellern angepasste System kannst du theoretisch jederzeit durch AOSP ersetzen (sofern du dich darum kuemmerst, dass alle Geraetetreiber zum Betrieb der Hardware im verwendeten Kernel mit drin sind). Manche Hersteller beschraenken diese Freiheit durch "gelockte" Bootloader, die nur durch den Hersteller kryptographisch signierten Code ausfuehren bzw. booten. Ansonsten unterscheiden sich Android-Geraete diverser Hersteller hauptsaechlich durch die zum Einsatz kommente Hardware.

Achja, Edith meint noch: Derzeit sind hauptsaechlich Android-Geraete mit den Android-SDK-Releases "Gingerbread" (2.3.x) und "Ice Cream Sandwich" (4.0.x) auf dem Markt - je nach Hersteller mehr oder weniger angepasst, verstuemmelt, verbessert, ... wie man es sehen will. Android 4.0 vereint die hauptsaechlich fuer Handsets gedachte 2.x-Branch mit dem mittlerweile quasi ausgestorbenen 3.x-Release (fuer Tablet Computer). Nebenbei gab es noch ein paar Anpassungen was die Mindestanforderungen an die Hardware angeht (z. B. brauchen Android 4.0-Geraete keine physischen Buttons mehr fuer "Back", afaik). Dazu gibt es neue APIs (zu alten bleibt man aber kompatibel: eine Android-Anwendung, die fuer AOSP 1.6 geschrieben und kompiliert wurde, laeuft also auch auf Android 4.0) und Funktionen, einen neuen Look und den fuer Upgrades ueblichen Ressourcen-Mehrverbrauch. :)

semteX

begehrt die rostschaufel
Avatar
Registered: Oct 2002
Location: Pre
Posts: 14594
what colo said plus:

Der 2.3er branch war sehr lange bei Android der "aktuelle". Dieser ist mittlerweile von der optik und der funktionalität gut angestaubt. Google hat in der zwischenzeit Android 3.0 veröffentlicht (Honeycomb), welches allerdings ein reines Tablet OS war. Erst mit der Version 4.0 wurden die Welten wieder zusammengeführt: Android 4.0 (Ice Cream Sandwich) läuft sowohl auf Tablets als auch Handies.

Welche Android version auf welchem Handy läuft entscheidet im Prinzip der Handyhersteller: Dieser muss seine Treiber eben für die gegebene Android distribution schreiben, damit die herstellerspezifische Hardware mit dem Handy zusammen spielt. I find leider den Artikel nimmer, der das beschreibt.

Diese Rolle übernehmen aber (sofern der "modifizierte Source" vom Hersteller veröffentlicht wird) zumeist auch Entwickler in ihrer Freizeit, die dann Android Versionen, welche vom Hersteller aus gar nicht auf dem "alten" handy laufen sollten, lauffähig bekommen.

Es gibt vor allem bei den "bekannteren" handies eine unmenge an Roms, also "verfeinerungen" und "neuzusammenstellungen" der Plattform.

that

Hoffnungsloser Optimist
Avatar
Registered: Mar 2000
Location: MeidLing
Posts: 11338
Vielleicht ist noch erwähnenswert, dass Dalvik keinen Java-Bytecode ausführt, sondern seinen eigenen, der im Buildprozess aus den Java-Klassen erstellt wird.

Außerdem ist "Handy" ein deutsches Wort und die Mehrzahl daher "Handys". :)
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz