App: Unterschied zwischen den Versionen
(Formatierung, Kategorie) |
(Umformulierungen, Erweiterungen, Ergänzungen) |
||
Zeile 1: | Zeile 1: | ||
Das Wort '''App ''' ist die Abkürzung für die englische Bezeichnung ''Application'' (deutsch: ''Anwendung'') und bezeichnet | Das Wort '''App ''' ist die Abkürzung für die englische Bezeichnung ''Application'' (deutsch: ''Anwendung'') und bezeichnet im Grunde genommen das gleiche wie das Wort ''Programm'', welches man in anderen Betriebssystemumgebunden findet. Eine App stellt dem Nutzer verschiedene (mehr oder weniger sinnvolle) Funktionen zur Verfügung. Das Wort App bezeichnet dabei nicht nur Anwendungen für mobile Endgeräte. | ||
== Was ist eine App == | == Was ist eine App == | ||
Eine App ist eine Anwendung, vergleichbar mit einem Programm (z. B. Microsoft Word) auf dem Computer. Durch die Installation werden neue Funktionen hinzugefügt oder vorhandene Funktionen verändert beziehungsweise erweitert. | Eine App ist eine Anwendung, vergleichbar mit einem Programm (z. B. Microsoft Word) auf dem Computer. Durch die Installation werden neue Funktionen hinzugefügt oder vorhandene Funktionen verändert beziehungsweise erweitert. | ||
Apps kann | Durch Apps mit verschiedenen Funktionsumfängen kann der Nutzer eines Gerätes dieses nach belieben personalisieren und auf seine Bedürfnisse und Anforderungen anpassen. | ||
Da Android modular aufgebaut ist, ist es möglich theoretisch jede Apps durch andere, mit einem größeren oder besser funktionierenden Funktionsumfang, auszutauschen, bzw. zu ersetzten. So ist es bspw. möglich, anstelle des standardmäßig installierten [[Launcher]]s einen anderen, bspw. den {{MarketLink|com.gau.go.launcherex|Go Launcher}}, zu verwenden. Dadurch ist Android in der Basisform in hohem Maße flexibel und individuell anpassbar. | |||
Apps kann man, nach ihrem Speicherort, in Systemapps und Userapps unterteilen. | |||
Systemapps haben prinzipiell keine anderen Rechte als Userapps, werden allerdings auf der [[Partition]] /system (/system/app) (vor-)installiert, auf welchem sich auch das Android-System befindet. Durch eine herstellerseitigen Softwaresperre kann das Schreiben auf der /system Partition verhindert, und somit das Deinstallieren von Systemapps, verhindert werden. | |||
Userapps hingegen werden auf der Partition /data (/data/app) gespeichert. Dies erlaubt es dem Nutzer, diese Apps nach belieben zu deinstallieren. | |||
Apps lassen sich | Vorinstallierte Apps sind in der Regel Systemapps und lassen sich nicht ohne weiteres deinstallieren. | ||
== Arten von Apps == | |||
Die Vielzahl an verfügbaren Anwendungen in verschiedenen Verteilungssystemen, bspw. dem [[Google Play Store]], lassen sich nicht eindeutig in eine einheitliche Struktur bringen. Viele Anbieter ordnen die Apps daher in verschiedene Kategorien ein, in welche die Funktionen der Apps am besten ''herein passen''. Beispiele für solche Kategorien können sein: | |||
* Entertainment | * Entertainment | ||
* Spiele | * Spiele | ||
Zeile 20: | Zeile 26: | ||
* Business | * Business | ||
* Performance | * Performance | ||
== Apps und Zugriffsrechte == | |||
Android Apps benötigen, wie jedes andere Programm auch, gewisse Zugriffsrechte auf Betriebssystemressourccen und Speicherkapazitäten. Android besitzt daher ein Rechtesystem, welches in den Android Kern (unter anderem bestehend aus dem Linux-[[Kernel]]) implementiert ist. | |||
Vor der Installation einer App wird der Nutzer gefragt, ob er dieser App eine Liste der angeforderten Berechtigungen gewähren möchte oder nicht. Die Liste der Berechtigungen wird vom Entwickler der App festgelegt. Nachträglich lässt sich diese Liste der Berechtigungen in den Einstellungen unter ''Apps'' einsehen, wenn man die entsprechende Detailseite der App durch einen Tipp auf diese öffnet. | |||
Benötigt ein Entwickler für eine App eine bestimmte Berechtigung, muss er diese in die Liste der Berechtigungen aufnehmen. Diese Rechte werden in der ''AndroidManifest.xml'' der App hinterlegt. Nachdem die App auf einem Gerät installiert wurde, kann diese auch nur die Ressourcen nutzen, die bei der Installation durch die Berechtigungen gewährt wurden. Somit wird sichergestellt, dass ein Entwickler nur die Ressourcen nutzen kann, die vom Nutzer bestätigt wurde, ein umgehen des Rechtesystems ist somit schwer möglich<ref>http://www.android-hilfe.de/android-news/356538-android-trojaner-doch-nicht-nur-ein-mythos-aus-china.html</ref>. | |||
Eine Liste der möglichen Zugriffsrechte ist hier zu finden: [http://developer.android.com/reference/android/Manifest.permission.html] | Eine Liste der möglichen Zugriffsrechte ist hier zu finden: [http://developer.android.com/reference/android/Manifest.permission.html] | ||
=== Gefahren === | === Gefahren === | ||
Trotz des Rechtesystems von Android kommt es immer wieder vor, dass Apps entwickelt werden, die das Ziel haben, dem Nutzer, dem Gerät oder den Daten zu schaden. Oft wird hierfür darauf spekuliert, dass der Nutzer die Liste der angeforderten Berechtigungen nicht aufmerksam durchliest und hinterfragt, ob diese App für ihre Funktion eine bestimmte Berechtigung überhaupt benötigt oder nicht. Daher sollte man als Nutzer bspw. gründlich darüber nachdenken, wozu eine Telefonie-App den Zugriff auf folgende Berechtigungen gebrauchen könnte: | |||
Trotz des Rechtesystems von Android | |||
* Zugriff auf SMS | * Zugriff auf SMS | ||
* Zugriff auf Google-Dienste | * Zugriff auf Google-Dienste | ||
Zeile 43: | Zeile 43: | ||
* Zugriff auf Telefonbuchdaten | * Zugriff auf Telefonbuchdaten | ||
* Zugriff auf Netzwerkdienste | * Zugriff auf Netzwerkdienste | ||
Kommen einen die verlangten Berechtigungen komisch vor, ist von der Installation der App abzuraten. Ggf. sollte man sich mit dem Entwickler in Verbindung setzen, um in Erfahrung zu bringen, wozu gewisse Berechtigungen benötigt werden. | |||
=== Eingeforderte Zugriffsrechte verwalten === | === Eingeforderte Zugriffsrechte verwalten === | ||
Leider bietet Android derzeit keine eingebaute Funktion um die von Apps eingeforderten Zugriffsrechte zu beschränken. Hierfür muss man bisher noch auf andere Methoden zurückgreifen, wie bspw. durch: | |||
* '''Modifikation des Systems''' | * '''Modifikation des Systems''' | ||
* '''Modifikation der App''' | * '''Modifikation der App''' | ||
Zeile 58: | Zeile 53: | ||
==== Modifikation des Systems ==== | ==== Modifikation des Systems ==== | ||
Mit [[PDroid]] wird nicht die Berechtigung einer App selbst verändert, sondern der Umgang des Systems bei der Anfrage von gewissen Daten modifiziert. So kann der Nutzer bestimmen, ob die App bei der Anfrage von bestimmten Daten Zugriff auf diese erhält oder nicht. | |||
==== Modifikation der App ==== | ==== Modifikation der App ==== | ||
'''<div style="color:red;">Das Modifizieren einer App kann möglicherweise die Lizenzbedingungen des jeweiligen Rechteinhabers verletzen und somit strafbar sein.</div>''' | '''<div style="color:red;">Das Modifizieren einer App kann möglicherweise die Lizenzbedingungen des jeweiligen Rechteinhabers verletzen und somit strafbar sein.</div>''' | ||
Das Modifizieren der Manifest-Datei ist eine einfache Methode die Zugriffsrechte einer App einzuschränken. | Das Modifizieren der Manifest-Datei ist eine einfache Methode, die Zugriffsrechte einer App einzuschränken. Zu beachten ist allerdings, dass die Ausführung der App nach der Veränderung nicht ordnungsgemäß sein kann, da die entfernte Berechtigung in der Programmierung der App erwartet wird. | ||
==== Verbieten der Zugriffsrechte mit Root ==== | ==== Verbieten der Zugriffsrechte mit Root ==== | ||
Das Verbieten der Zugriffsrechte ist ebenfalls eine einfache Methode die jedoch [[Root]]-Rechte benötigt. Bei dieser Methode wird mit einer App (z.B. {{MarketLink|com.lbe.security.lite|LBE Privacy Guard}}) der Zugriff auf die angeforderten Daten verboten. Bei dieser Methode kann es ebenfalls Probleme bei der Ausführung der entsprechenden App kommen. | |||
Das Verbieten der Zugriffsrechte ist ebenfalls eine einfache Methode die jedoch [[Root]] benötigt. Bei dieser Methode wird mit einer App (z.B. | |||
== Android App programmieren == | == Android App programmieren == | ||
Apps können sowohl von Privatpersonen, wie auch von Unternehmen entwickelt und veröffentlicht werden. Die Programmierung erfolgt mit Hilfe der Programmiersprache Java, die schon von den Handys mit älteren Betriebssystemen verwendet wurden. Durch Java wird eine Kompatiblität mit allen Androidversionen gewährleistet. | |||
Weitere Informationen zur Entwicklung einer App findet man bspw. in [http://de.wikibooks.org/wiki/Googles_Android_-_Lehrbuch_zur_Programmierung diesem WikiBook]. Ein schnelles und einfaches Tutorial für Programmierer mit Erfahrung hat ''Jan Kammerath'' mit [http://www.kammerath.net/android-app-programmieren.html Android App Programmieren] geschrieben. | |||
== Veröffentlichen von Apps == | == Veröffentlichen von Apps == | ||
Die beste Möglichkeit seine Apps zu vertreiben, ob nun kostenfrei oder kostenpflichtig, ist der [[Google Play Store]]. Dieser ist auf vielen Android-Geräten bereits vorinstalliert und erreicht somit eine große Menge von Nutzern. Um Apps im Play Store veröffentlichen zu können, muss man sich bei Google als Entwickler anmelden und eine Gebühr von einmalig 25 $ entrichten, die über eine Kreditkarte oder anderen, von [[Google Wallet]] unterstützten Zahlungsmöglichkeiten, zu zahlen sind. Mit der Gebühr soll ein Überfüllen des Play Store mit sinnlosen Apps eingegrenzt werden. Nachdem man sich als Entwickler registriert hat, kann man seine App hochladen. Hierfür benötigt man folgende Angaben: | |||
Die beste Möglichkeit seine Apps zu vertreiben, ob nun kostenfrei oder kostenpflichtig, ist der [[ | |||
* .apk-Datei | * .apk-Datei | ||
Zeile 91: | Zeile 79: | ||
* Werbetext | * Werbetext | ||
Nachdem man die App hinzugefügt hat, wird diese | Nachdem man die App hinzugefügt hat, wird diese nach einiger Zeit im Store gelistet und kann heruntergeladen werden. Eine Freischaltung durch einen Googlemitarbeiter ist nicht notwendig, allerdings erfolgt eine automatisierte, maschinelle Prüfung der App. Entspricht der Inhalt der Anwendung nicht den Richtlinien des Play Store, wird diese entfernt. | ||
Durch einen von Google eingeführten Algorithmus, der den Inhalt einer App prüft und, wie eine Art Virenscanner, schädliche Apps aus dem Play Store entfernt. Dieser Programmcode wird nach eigenen Angaben stätig weiterentickelt um so die Sicherheit im Play Store zu gewährleisten. | |||
== Einzelnachweise == | == Einzelnachweise == |
Version vom 3. April 2014, 17:59 Uhr
Das Wort App ist die Abkürzung für die englische Bezeichnung Application (deutsch: Anwendung) und bezeichnet im Grunde genommen das gleiche wie das Wort Programm, welches man in anderen Betriebssystemumgebunden findet. Eine App stellt dem Nutzer verschiedene (mehr oder weniger sinnvolle) Funktionen zur Verfügung. Das Wort App bezeichnet dabei nicht nur Anwendungen für mobile Endgeräte.
Was ist eine App
Eine App ist eine Anwendung, vergleichbar mit einem Programm (z. B. Microsoft Word) auf dem Computer. Durch die Installation werden neue Funktionen hinzugefügt oder vorhandene Funktionen verändert beziehungsweise erweitert.
Durch Apps mit verschiedenen Funktionsumfängen kann der Nutzer eines Gerätes dieses nach belieben personalisieren und auf seine Bedürfnisse und Anforderungen anpassen.
Da Android modular aufgebaut ist, ist es möglich theoretisch jede Apps durch andere, mit einem größeren oder besser funktionierenden Funktionsumfang, auszutauschen, bzw. zu ersetzten. So ist es bspw. möglich, anstelle des standardmäßig installierten Launchers einen anderen, bspw. den Go Launcher , zu verwenden. Dadurch ist Android in der Basisform in hohem Maße flexibel und individuell anpassbar.
Apps kann man, nach ihrem Speicherort, in Systemapps und Userapps unterteilen.
Systemapps haben prinzipiell keine anderen Rechte als Userapps, werden allerdings auf der Partition /system (/system/app) (vor-)installiert, auf welchem sich auch das Android-System befindet. Durch eine herstellerseitigen Softwaresperre kann das Schreiben auf der /system Partition verhindert, und somit das Deinstallieren von Systemapps, verhindert werden.
Userapps hingegen werden auf der Partition /data (/data/app) gespeichert. Dies erlaubt es dem Nutzer, diese Apps nach belieben zu deinstallieren.
Vorinstallierte Apps sind in der Regel Systemapps und lassen sich nicht ohne weiteres deinstallieren.
Arten von Apps
Die Vielzahl an verfügbaren Anwendungen in verschiedenen Verteilungssystemen, bspw. dem Google Play Store, lassen sich nicht eindeutig in eine einheitliche Struktur bringen. Viele Anbieter ordnen die Apps daher in verschiedene Kategorien ein, in welche die Funktionen der Apps am besten herein passen. Beispiele für solche Kategorien können sein:
- Entertainment
- Spiele
- Internet
- Messageing
- Business
- Performance
Apps und Zugriffsrechte
Android Apps benötigen, wie jedes andere Programm auch, gewisse Zugriffsrechte auf Betriebssystemressourccen und Speicherkapazitäten. Android besitzt daher ein Rechtesystem, welches in den Android Kern (unter anderem bestehend aus dem Linux-Kernel) implementiert ist.
Vor der Installation einer App wird der Nutzer gefragt, ob er dieser App eine Liste der angeforderten Berechtigungen gewähren möchte oder nicht. Die Liste der Berechtigungen wird vom Entwickler der App festgelegt. Nachträglich lässt sich diese Liste der Berechtigungen in den Einstellungen unter Apps einsehen, wenn man die entsprechende Detailseite der App durch einen Tipp auf diese öffnet.
Benötigt ein Entwickler für eine App eine bestimmte Berechtigung, muss er diese in die Liste der Berechtigungen aufnehmen. Diese Rechte werden in der AndroidManifest.xml der App hinterlegt. Nachdem die App auf einem Gerät installiert wurde, kann diese auch nur die Ressourcen nutzen, die bei der Installation durch die Berechtigungen gewährt wurden. Somit wird sichergestellt, dass ein Entwickler nur die Ressourcen nutzen kann, die vom Nutzer bestätigt wurde, ein umgehen des Rechtesystems ist somit schwer möglich[1].
Eine Liste der möglichen Zugriffsrechte ist hier zu finden: [1]
Gefahren
Trotz des Rechtesystems von Android kommt es immer wieder vor, dass Apps entwickelt werden, die das Ziel haben, dem Nutzer, dem Gerät oder den Daten zu schaden. Oft wird hierfür darauf spekuliert, dass der Nutzer die Liste der angeforderten Berechtigungen nicht aufmerksam durchliest und hinterfragt, ob diese App für ihre Funktion eine bestimmte Berechtigung überhaupt benötigt oder nicht. Daher sollte man als Nutzer bspw. gründlich darüber nachdenken, wozu eine Telefonie-App den Zugriff auf folgende Berechtigungen gebrauchen könnte:
- Zugriff auf SMS
- Zugriff auf Google-Dienste
- Zugriff auf kostenpflichtige Dienste
- Zugriff auf Telefonbuchdaten
- Zugriff auf Netzwerkdienste
Kommen einen die verlangten Berechtigungen komisch vor, ist von der Installation der App abzuraten. Ggf. sollte man sich mit dem Entwickler in Verbindung setzen, um in Erfahrung zu bringen, wozu gewisse Berechtigungen benötigt werden.
Eingeforderte Zugriffsrechte verwalten
Leider bietet Android derzeit keine eingebaute Funktion um die von Apps eingeforderten Zugriffsrechte zu beschränken. Hierfür muss man bisher noch auf andere Methoden zurückgreifen, wie bspw. durch:
- Modifikation des Systems
- Modifikation der App
- Verbieten der Zugriffsrechte mit Root
Modifikation des Systems
Mit PDroid wird nicht die Berechtigung einer App selbst verändert, sondern der Umgang des Systems bei der Anfrage von gewissen Daten modifiziert. So kann der Nutzer bestimmen, ob die App bei der Anfrage von bestimmten Daten Zugriff auf diese erhält oder nicht.
Modifikation der App
Das Modifizieren der Manifest-Datei ist eine einfache Methode, die Zugriffsrechte einer App einzuschränken. Zu beachten ist allerdings, dass die Ausführung der App nach der Veränderung nicht ordnungsgemäß sein kann, da die entfernte Berechtigung in der Programmierung der App erwartet wird.
Verbieten der Zugriffsrechte mit Root
Das Verbieten der Zugriffsrechte ist ebenfalls eine einfache Methode die jedoch Root-Rechte benötigt. Bei dieser Methode wird mit einer App (z.B. LBE Privacy Guard ) der Zugriff auf die angeforderten Daten verboten. Bei dieser Methode kann es ebenfalls Probleme bei der Ausführung der entsprechenden App kommen.
Android App programmieren
Apps können sowohl von Privatpersonen, wie auch von Unternehmen entwickelt und veröffentlicht werden. Die Programmierung erfolgt mit Hilfe der Programmiersprache Java, die schon von den Handys mit älteren Betriebssystemen verwendet wurden. Durch Java wird eine Kompatiblität mit allen Androidversionen gewährleistet.
Weitere Informationen zur Entwicklung einer App findet man bspw. in diesem WikiBook. Ein schnelles und einfaches Tutorial für Programmierer mit Erfahrung hat Jan Kammerath mit Android App Programmieren geschrieben.
Veröffentlichen von Apps
Die beste Möglichkeit seine Apps zu vertreiben, ob nun kostenfrei oder kostenpflichtig, ist der Google Play Store. Dieser ist auf vielen Android-Geräten bereits vorinstalliert und erreicht somit eine große Menge von Nutzern. Um Apps im Play Store veröffentlichen zu können, muss man sich bei Google als Entwickler anmelden und eine Gebühr von einmalig 25 $ entrichten, die über eine Kreditkarte oder anderen, von Google Wallet unterstützten Zahlungsmöglichkeiten, zu zahlen sind. Mit der Gebühr soll ein Überfüllen des Play Store mit sinnlosen Apps eingegrenzt werden. Nachdem man sich als Entwickler registriert hat, kann man seine App hochladen. Hierfür benötigt man folgende Angaben:
- .apk-Datei
- Screenshot
- Werbegrafik (optional)
- Sprache
- Titel
- Beschreibung
- Werbetext
Nachdem man die App hinzugefügt hat, wird diese nach einiger Zeit im Store gelistet und kann heruntergeladen werden. Eine Freischaltung durch einen Googlemitarbeiter ist nicht notwendig, allerdings erfolgt eine automatisierte, maschinelle Prüfung der App. Entspricht der Inhalt der Anwendung nicht den Richtlinien des Play Store, wird diese entfernt.
Durch einen von Google eingeführten Algorithmus, der den Inhalt einer App prüft und, wie eine Art Virenscanner, schädliche Apps aus dem Play Store entfernt. Dieser Programmcode wird nach eigenen Angaben stätig weiterentickelt um so die Sicherheit im Play Store zu gewährleisten.