Facebook Twitter Google RSS
Posts mit dem Label Programmierung werden angezeigt. Alle Posts anzeigen
Posts mit dem Label Programmierung werden angezeigt. Alle Posts anzeigen

12. November 2014

Programmieren von Android Anwendungen

In den letzten Artikeln habe ich vorrangig über das Programmieren und deren dazugehörigen Komponenten berichtet.


Foto: Tirol Tech

Heute möchte ich nocheinmal kurz einen Ausflug mit Ihnen machen und zwar in die Welt wie eigentlich Smartphone-Applikationen erstellt werden. In einem der letzten Artikeln habe ich kurz erwähnt, dass Android vorrangig in Java programmiert wird, das Betriebssystem gemeint. Auch bei den Applikationen ist es nicht anders, diese sind ebenfalls in Java programmiert.

Was wird aber jetzt alles benötigt um eine Anwendung zu Programmieren? Erstens benötigen Sie auf ihrem Computer die aktuelle Version von JRE (Java Runtime Environment). Dies ist jene Software die benötigt wird, damit Javaprogramme am Computer überhaupt ausgeführt werden können. In diesem Artikel habe ich diesen Prozess etwas ausführlicher beschrieben.

Und Zweitens brauchen Sie ein Programm wie Android-SDK oder Android Studio. Dabei möchte ich Sie kurz aufmerksam machen, dass Android Studio erst in der Beta-Phase ist, bedeutet das es nicht die endgültige fertige Version ist, sondern unter anderem der ein oder andere Fehler sowie Bug noch auftreten kann. Die Entscheidung liegt aber bei Ihnen, welches Programm Sie auswählen werden.

Falls Sie sich entschieden haben, mit Android Studio zu programmieren, benötigen Sie noch das Java Entwicklungstool JDK (Java Development Kit).

Haben Sie diese Schritte erfolgreich erledigt stellt dem Entwickeln von Android Anwendungen nichts mehr im Wege.

Spätestens ab hier beginnt es sehr kompliziert zu werden, speziell für Anfänger , da zwar jetzt die Programme alle am Computer ordnungsgemäß installiert sind, dennoch aber entweder leider das Verständnis zur Programmiersprache fehlt oder mit dem angezeigten Quellcode nichts angefangen werden kann. 

Natürlich gibt es im Internet sehr gute Plattformen wo Ihnen das Programmieren in Java Schritt für Schritt gezeigt wird, dennoch bis eine gute Anwendung programmiert ist, vergeht sehr viel Zeit und Geduld. Im Endeffekt ist das sehr frustrierend und Sie verlieren eventuell die Freude am Programmieren.

Dies soll aber schon bald der Vergangenheit angehören, da der Browser-Entwickler Mozilla eine Applikation entwickeln möchte, wo Sie im Handumdrehen ihre Eigene entwickeln können. Das wird spätestens nächstes Jahr dann möglich sein für die Betriebssysteme Android, Mozilla OS sowie IOS. Diese Applikation ist eine noch vereinfachte Form des Mozilla Appmakers, der bereits am Markt zu Verfügung steht. Somit sollten lange umständliche Wege bis zur fertig programmierten Anwendung endgültig der Vergangenheit angehören. Jetzt heißt es nur mehr Abwarten bis Mozilla diese Applikation fertig gestellt hat und Ihnen zur Verfügung stellt.

Wann allerdings der offizielle Start im nächsten Jahr ist bleibt abzuwarten. Sobald nähere Medienberichte darüber aufliegen, werden diese Neuigkeiten Ihnen hier auf Tirol Tech zur Verfügung gestellt.

Ihr Martin


Quelle:

9. November 2014

Android und die Funktionsweise


In den letzten Artikeln was ich geschrieben habe ist es speziell um den Bereich Programmierung sowie Informationstechnik gegangen. Dazu muss ich aber sagen das dieser Themenbereich ein wenig von dem Smartphonebereich abwich und eigentlich eher die Computerbranche betraf. Das macht aber nichts da die heutigen Mobiltelefone teilweise schon kleine Computer sind und vom Aufbau her sehr ähnlich wenn nicht gleich funktionieren.

Foto: Tirol Tech

Unsere Thematik in diesem Artikel wird das Betriebssystem Android betreffen und dabei möchte ich etwas tiefer gehen und zwar in die Funktionsweise von Android. Es ist zwar ein noch komplexeres Thema als die vorigen Beiträge, aber dadurch das Android mittlerweile der Marktführer ist auch ein sehr aufregendes und spannendes Themengebiet.

Beginnen möchte ich mit einem kleinen geschichtlichen Rundgang. 2005 kaufte Google das 2003 von Andrew Rubin gegründete Unternehmen namens Android. Damals war Android eigentlich nur für Digitalkameras gedacht bis dann 2007 bekannt wurde das Google Mithilfe der Open Handset Alliance ein Betriebssystem speziell für Smartphones entwickeln möchte. Seit 2008 ist Android offizielles Betriebssystem für Smartphones auf dem Softwaremarkt und mittlerweile der Weltmarktführer in diesem Bereich. Noch vor IOS dem Betriebssystem von Apple. Als erstes mit lauffähigen Betriebssystem "Android" zählende Mobiltelefon gilt das HTC Dream unter den Namen T-Mobile G1, welches im Oktober 2008 in den USA herauskam.

Doch sehen wir uns nun Android etwas spezifischer an. Jeder von Ihnen hat schon ein Smartphone mit diesem Betriebssystem in der Hand gehalten sei es vom Herstellers HTC, Samsung oder Sony. Doch nur wenige von Ihnen werden sich die Frage stellen, was steckt eigentlich hinter dem System bzw. wie ist Android aufgebaut oder gar programmiert? Das wollen wir uns jetzt näher ansehen.

Die Architektur von Android baute am Anfang auf den Linux-Kernel 2.6 auf, seit Android 4.x werden Kernel der Reihe 3.x verwendet. Dieser Kernel ist zuständig für die Speicher- und Prozessorverwaltung und stellt auch die Gerätetreiber des Systems zur Verfügung. In Android wird hauptsächlich in Java programmiert wobei auch andere Sprachen zum Einsatz kommen. Der Linux-Kernel selbst ist in C programmiert.

Anwendungen unter Android mit der Endung .apk (android package) werden ebenfalls in Java programmiert greifen aber des öfteren auf Bibliotheken zu die in C oder C++ geschrieben sind, die am Kernel liegen. Ein wenig später mehr darüber. Wie Anwendungen aber programmiert sind möchte ich Ihnen hier nicht erklären dazu werde ich noch einen eigenen Artikel erstellen.

Der wichtigste Bestandteil von Android ist der Kernel. Hier findet die ganze Prozess- und Datenorganisation statt. Dies ist notwendig weil alle weiteren Softwarebestandteile des Systems darauf aufbauen. Auch ist der Kernel die unterste Softwareschicht mit direkten Zugriff auf alle Hardwarekomponenten.

Ein Kernel ist in Schichten aufgebaut wobei zu beachten ist, dass die unteren Schichten die Basis für die darüber liegenden Schichten sind. Bedeutet weiter dass die oberen Schichten auf die Funktion der Unteren zugreifen können aber umgekehrt ist dies nicht möglich.

Hier ein kleiner Ausschnitt der Schichten eines Kernels:

  • Schnittstelle zur Hardware
  • Speicherverwaltung
  • Prozessverwaltung

Neben dem Kernel laufen noch Anwendungen (die in Java programmiert sind) die sich an den jeweiligen Funktionen des Kernels (programmiert in C) bedienen, je nachdem welche Funktionen unterstützt werden. Dies ist für die Kommunikation zwischen Anwendung und Kernel notwendig.

Und welche Aufgaben gibt es neben den Schichten? Richtig, eine ganze Menge an Aufgaben die zu bewerkstelligen sind.

Vorhin habe ich es schon kurz angesprochen, die Schnittstelle für Anwendungsprogramme, genau. Im weiteren Sinne das die Anwendung sich öffnet, schließt, die Eingabe und Ausgabe der Daten,.... Damit verbunden ist die Kontrolle des Zugriffs auf Prozesse, Speicher, Geräte damit alles ordnungsgemäß abgewickelt wird. Auch die Verteilung der Ressourcen als auch die Strukturierung von den Ressourcen wird durch den Kernel geregelt. Dieser Artikel stellt einen kurzen und groben Überblick der Funktionsweise von Android dar. Natürlich gäbe es noch viel mehr darüber zu berichten, was aber den Rahmen dieses Artikels sprengen täte. Ich bitte Sie dies zu Entschuldigen.

Noch kurz zum Anschluss möchte ich kurz erwähnen das die Namen von Android nach einer Süßspeise benannt sind. Bisher gibt es folgende Android Versionen:


1.0 „Base“
1.1 „Base_1.1“
1.5 „Cupcake“
1.6 „Donut“
2.0.x / 2.1 „Éclair“
2.2.x „Froyo“
2.3.x „Gingerbread“
3.x.x „Honeycomb“
4.0.x „Ice Cream Sandwich“
4.1.x / 4.2.x / 4.3.x „Jelly Bean“
4.4.x „KitKat"
5.0 „Lollipop"


Wir sehen also reichlich verschiedene Varianten die alle vom Funktionsaufbau gleich sind oder sich ganz gering unterscheiden. Natürlich ist die älteste Version nicht auf dem technischen Stand wie die Letzte. Das ist unmöglich weil wie bei allem, alles auf der Vergangenheit aufgebaut ist und dadurch ein stetiger technischer Fortschritt stattfindet.


Ihr Martin


Quelle:


4. November 2014

Compiler und Programmierung


Im letzten Artikel ist es vorrangig um die Programmierung sowie die Informationstechnik, kurz IT genannt, gegangen. Ich habe Ihnen kurz gegenübergestellt wie sich beide Technologien zueinander verhalten und warum sie sich gegenseitig im weiterem Sinne unterstützen. Auch wenn es teilweise große Differenzen dazwischen gibt.


Foto: Tirol Tech

Im heutigen Artikel möchte ich Ihnen noch kurz die drei Schritte eines Compilers erklären, quasi wie dieser arbeitet und was unter den Fachausdrücken darunter zu verstehen ist. Sowie die Qualitätskriterien der Programmierung und ebenfalls die Bedeutung der Begriffe.

Danach wird das Zusammenspiel, Wie, Was, Wo und Warum ein wenig klarer sein. Natürlich muss gesagt werden dass die Artikeln von Tirol Tech nur ein winziger Ausschnitt von dem Allem ist, was es darüber zu wissen gibt. Immerhin sind dies Fächer, die auf einer Universität studiert werden können.

Wir haben schon im vorigen Artikel die Begriffe Syntaxüberprüfung, Analyse und Optimierung und Codeerzeugung gehört, die ja zum Compiler gehören. Was aber versteckt sich hinter diesen Begriffen? Sehen wir uns dies nun näher an.

Beginnen wir mit der Syntaxüberprüfung. Syntax kommt vom altgriechischen Begriff "syntaksis" was soviel bedeutet wie Reihenfolge. Im weiteren Sinne ist es auch die Satzlehre.

Bei diesem Prozess wird überprüft ob der geschriebene Quelltext ein gültiges Programm auswirft, also eine Zwischendarstellung. Sprich ob alle Bauteile des Codes richtig in einer Reihenfolge stehen. Bei etwaigen Fehlern werden diese protokolliert.

Bei der Analyse und Optimierung wird die Zwischendarstellung des geschriebenen Quellcodes genau unter die Lupe genommen. Variiert natürlich je nach Funktionsumfang des Compilers. Einige habe ich im vorigen Artikel genannt. Hier kurz zum nachlesen.

Anschließend wird der Code generiert. Das bedeutet, dass der Code der Zielsprache aus der Zwischendarstellung oder auch Zwischencode genannt, erzeugt wird. Das Ergebnis ist entweder ein ausführendes Programm oder eine Objektdatei.

Damit möchte ich das Thema Compiler und dessen Funktionen abschließen. Ich hoffe dass damit die zerlegten Begriffe verständlicher sind da es doch ein sehr komplexes Themengebiet ist.

Sehen wir uns jetzt abschließend kurz die Qualitätkriterien der Programmierung an. Auch dieser Bereich ist sehr komplex. Aber keine Sorge, es klingt komplizierter als es ist.

Damit ein ausführendes Programm richtig dargestellt werden kann muss der Programmierer es richtig erstellt haben wobei die meisten Fehlerquellen in der Syntax (Satzlehre oder Reihenfolge des Quellcodes) entstehen können.

Bei der Robustheit verstehen wir nicht die Stabilität des Programms, also wie stabil es auf dem jeweiligen Computers läuft, sondern das der Programmtext (Quellcode) in ungewöhnlichen Umgebungen oder unvorhersehbaren Situationen richtig reagiert.

Damit die Software auch dauerhaft richtig funktioniert, muss sie von Zeit zu Zeit gewartet werden. Sei es mittels Bugfixes, Anpassungen oder neue Funktionen die in den Programmcode eingepflegt werden. Dabei ist zu beachten das dies rasch und ohne großen Zeitaufwand geschieht. Sinnvoll ist eine klare Struktur des Quelltextes oder an einigen wichtigen Stellen ein Kommentar anzufügen.
Und zu Letzt die Effizienz. Je besser die Software programmiert ist, desto weniger Ressourcen werden beansprucht. (Arbeitsspeicher, CPU,....)

Damit wären wir am Ende des Artikels angelangt und damit die Begriffe fachmännisch zerlegt um ein besseres Verständnis gewährleisten zu können. Wie bereits erwähnt ist dies nur ein kleiner Überblick über die Welt der IT und Programmierung. Aber damit kann jetzt definitiv was angefangen werden und vor allem ist es jetzt einfacher zu verstehen. Auch sieht man jetzt die Abläufe die ein Programm zu erledigen hat.


Die Programmierung


Heute möchte ich wieder ein sehr interessantes Kapitel mit Ihnen werte Leser und Leserinnen aufschlagen was an die IT angrenzt, nämlich das Programmieren.

Wie Sie im vorigen Artikel gelesen haben, den Artikel über die IT, sind wir schon auf die Begriffe wie Informatik, Elektronik sowie Informantions- und Datenverarbeitung gestoßen und da möchte ich weiter anknüpfen mit dem Thema Programmieren.

Foto: Tirol Tech

Was hat aber IT und Programmieren gemeinsam? Eigentlich sind das zwei ganz unterschiedliche Themen. Doch wir haben erfahren das Maschinen organisiert sind, nach dem Prinzip wenn die erste Instanz ausgeführt wird geht es an die zweite Instanz weiter (unser Beispiel war die Platine).

Aber wie sieht es bei einem Programm, kurz auch Software genannt, das auf einer Maschine ausgeführt wird, aus? Ich verrate es Ihnen. Es verhält sich komplett gleich. Spricht wenn die Software die erste Anweisung erledigt kann sie anschließend die Zweite erledigen.

Das bedeutet jemand gibt dem Programm "Befehle" die ausgeführt werden. Und da kommt dann das Programmieren ins Spiel.

Programmieren ist nichts anderes als Quellcodes zu erstellen, stark abhängig von der Programmiersprache die verwendet wird. Die wichtigsten kurz genannt: C++, C#, PhP und Java.

Da aber eine Maschine keinen Quellcode versteht sondern nur "Maschinencode" muss dieser Quellcode übersetzt werden. Dies geschieht mithilfe eines Compilers. Und da haben wir jetzt auch soeben die Definition erfahren, was Programmieren überhaupt ist.

Ich möchte noch einmal kurz zum Begriff Compiler zurückkehren. Was genau ein Compiler macht und wozu dieser benötigt wird.

Ich habe es schon kurz angesprochen das jede Software mit einem Quelltext erstellt wird, auch bekannt unter dem Begriff höhere Programmiersprache. Da aber eine Maschine keinen Quelltext versteht sondern einen Zielecode benötigt damit dies ordnungsgemäß verarbeitet werden kann benötigen die Maschine einen Übersetzer dafür, auch Compiler genannt. Erst jetzt kann damit gearbeitet werden. Bekannte Kompilatoren sind: Lex, Yacc, JavaCC und AtoCC.

Der erste Compiler wurde 1949 unter den Namen A-0 veröffentlicht von der Mathematikerin Grace Hooper. Bereits 1955 entwickelte sie den nächsten Prototypen einen Compilers namens B-0 nach französischen, englischen und deutschen Vorbildern. Die ganzen heutigen Kompilatoren, wie sie arbeiten und funktionieren führen aber auf die 60ziger Jahre des 20. Jahrhunderts zurück.

Ein Compiler arbeitet in drei Schritten:

  • Syntaxüberprüfung
  • Analyse und Optimierung
  • Codeerzeugung

Nach dieser kurzen Übersicht verstehen Sie jetzt den Zusammenhang von IT und Programmieren ein wenig verständlicher. Wie Sie sehen ist das gar nicht so einfach. Aber um den Compiler verwenden zu können muss dazu mindestens eine Programmiersprache verstanden werden ohne Kenntnisse darüber wird es schwierig bist fast unmöglich Softwarelösungen zu entwickeln.

Zum Abschluss möchte ich noch kurz erwähnen das es nicht nur von den oben genannten Faktoren abhängig ist wie gut eine Software funktioniert, sondern auch die Qualitätkriterien eine wichtige Rolle spielen dazu zählen:

  • Korrektheit
  • Robustheit
  • Wartbarkeit
  • Effizienz

Im nächsten Artikel werde ich auf diese Kriterien näher eingehen und sie Ihnen ein wenig verständlicher erklären. Dazu möchte ich ebenfalls die drei Arbeitsschritte eines Compilers noch kurz erörtern damit ein besseres Verständnis mit den Fachausdrücken gegeben ist.


Ihr Martin


Quelle: Wikipedia (Programmierung)

Unser Fachbegriffelexikon:

Tirol Tech

A

APK

Das Android Programmformat (Android Package).



APP DRAWER

Die Übersicht aller installierten und vorinstallierten Apps. Meist Über den Menübutton unten in der Mitte erreichbar.



ART - Android Run Time

Das System auf Android Smartphones kompiliert gleich bei der Installation in Maschinensprache und damit den kompletten Dalvik Cache löscht, was zu deutlich höherer Performance führt.


F

FPS - FRAMES PER SECONDS

Wird in der Kameratechnik verwendet und beschreibt die Anzahl der Bilder, die in einer Sekunde gemacht oder angezeigt werden.


L

LAUNCHER

Ein Launcher besteht meist aus einer Programmliste und mehreren individuell einrichtbaren Startseiten. Diese Applikation ist sehr gestaltbar und bietet viele Vorteile/Features gegenüber den Stock (vorinstallierten) Launcher.


N

NAV-BAR - NAVIGATIONS BAR

Ist der Balken am unteren Rand des Smartphones mit den Navigationstasten (Einstellungen, Zurück-Button, Homebutton, ‚Task Manager). Meist sind damit die On-Screen-Tasten gemeint, die sich auf dem Bildschirm befinden und nicht am unteren Rand des Smartphones befinden.



NFC - Near Field Communication

Ist eine Technik, mit der man Daten schnell von Android-Gerät zu Android-Gerät über kurze Distanzen ohne Kabel übertragen kann.


O

OS - OPERATING SYSTEM

Ein Operating System ist ein Betriebssystem, das aus einer Zusammenstellung von Computerprogrammen besteht. Im Smartphone-Bereich wird ein OS von verschiedenen Herstellern unterstützt (z.B. Android/Google OS, IOS, etc.)



OTG - On The Go

In Verbindung mit USB. USB OTG ist ein Kabel, das die Verbindung zwischen Smartphone und USB Stick herstellt und zb. Filme vom Massenspeichergerät am Smartphone abspielen kann, ohne dies im Speicher oder Zwischenspeicher zu speichern.


S

SCREENCAST

Screencast ist ein digitaler Film, der die Abläufe bei der Verwendung von Software am Computer-Bildschirm wiedergibt und gegebenenfalls beschreibt. Es ist möglich von Android Gerät zu TV zu übertragen.



SOT - Screen On Time

Ist die Zeitspanne, in der die Akkulaufzeit des Displays gemessen wird.



SSL Verschlüsselung

TLS (Transport Layer Security, deutsch Transportschichtsicherheit), weitläufiger bekannt unter der Vorgängerbezeichnung Secure Sockets Layer (SSL), ist ein hybrides Verschlüsselungsprotokoll zur sicheren Datenübertragung im Internet.



Streaming

Streaming bezeichnet die gleichzeitige Übertragung und Wiedergabe von Video- und Audiodaten über ein Netzwerk. Den Vorgang der Datenübertragung selbst nennt man Streaming, und übertragene („gestreamte“) Programme werden als Livestream oder kurz Stream bezeichnet.


U

USB - Universal Serial Bus

Der Universal Serial Bus ist ein serielles Bussystem zur Verbindung eines Computers mit externen Geräten. Mit USB ausgestattete Geräte oder Speichermedien können im laufenden Betrieb miteinander verbunden und angeschlossene Geräte sowie deren Eigenschaften automatisch erkannt werden.



© 2014 Tirol Tech. WP Wildweblab converted by Bloggertheme9