Abo
  • Services:
Anzeige
Nicht schön, aber selbst programmiert: eine eigene App für die Steuerung eines Raspberry Pi
Nicht schön, aber selbst programmiert: eine eigene App für die Steuerung eines Raspberry Pi (Bild: Marc Sauter/Golem.de)

Es gibt genügend Code im Netz

Grundsätzlich bieten sich zwei Möglichkeiten an: Entweder man startet mit einem neuen Projekt und versucht, die erforderlichen Funktionen (Methoden) in neu angelegte Java-Klassen zu integrieren. Oder man modifiziert ein Open-Source-Projekt, das über ähnliche Funktionen verfügt. So gibt es beispielsweise die App Mercury SSH, die solche Kommandozeilenbefehle aus JSON-Dateien aufrufen und senden kann.

Anzeige

Wäre es nicht möglich, eine solche, auf dem Handy simpel aussehende App für seine eigenen Zwecke umzumodeln und mit anderen Funktionen zu ergänzen? Doch das ist für einen Anfänger alles andere als trivial. Denn schon kleine Anwendungen können aus vielen in sich zusammenhängenden Java-Klassen bestehen. Da ist es besser, klein anzufangen.

Andererseits ist es nicht so, dass es an Android-Code im Internet mangelt. In der Regel reicht es aus, die gesuchten Begriffe bei Google einzugeben. Mit sehr großer Wahrscheinlichkeit landet man dann bei einer entsprechenden Diskussion auf Stackoverflow, wo ein anderer Programmieranfänger das gleiche Problem hatte und dort um Hilfe gebeten hat. Das machen professionelle Programmierer im Grunde auch nicht anders.

Verstehen Sie Javanesisch?

Für unseren Zweck war es zunächst ausreichend, verschiedene Buttons auf der Startseite der App zu platzieren und diese mit einer Funktion zu verknüpfen. Das geht verhältnismäßig einfach und erfordert bei einer SMS nur wenige Zeilen Code. Dieser Code wird in die Java-Klasse MainActivity eingetragen, die Android Studio beim Anlegen eines neuen Projekts generiert (Tutorial) und die als Startseite der App fungiert. Das Layout für die Schalter wird in der XML-Datei activity_main festgelegt, die sich in dem Ressourcen-Ordner res befindet. Zu guter Letzt müssen in der XML-Datei AndroidManifest noch die Berechtigungen der App eingetragen werden, beispielsweise für das Senden einer SMS oder den Internetzugriff. Fertig ist die App.

Dazu muss man als Anfänger nicht einmal verstehen, wie folgender Code auf "Javanesisch" beschrieben würde:

  1. button.setOnClickListener(new OnClickListener() {
  2. public void onClick(View v) {
  3. werGoogelnKann (kann, java)
  4. }
  5. });

Dabei wird zunächst dem Objekt button über die Methode setOnClickListener ein neu instanziiertes Objekt einer anonymen inneren Klasse basierend auf dem Interface OnClickListener zugewiesen. Das klingt für einen Anfänger so verschwurbelt wie ein Text des Soziologen Niklas Luhmann. Doch auch ohne Kenntnis von Java-Sprech lässt sich in dem Code eine gewisse Logik erkennen, die man für seine Zwecke anpassen kann. Wird der Button geklickt, wird die Methode werGoogelnKann ausgeführt, der dabei die Parameter kann und java übergeben werden. Diese Methode könnte wiederum Methoden aus der Klasse SmsManager aufrufen und eine SMS verschicken.

Rooten nicht erforderlich

Um die App auf dem Smartphone zu installieren, muss zumindest der Entwicklermodus freigeschaltet werden. Ein Rooten des Gerätes ist nicht erforderlich. Nach der Aktivierung des USB-Debugging kann Android die App installieren und starten.

Zugegeben: Am ersten Abend gelang es nicht, mehrere Schalter mit unterschiedlichem Inhalt zu programmieren. Ohnehin kann es einige Zeit dauern, Android Studio und die Java-Entwicklungsumgebung JDK (Java Development Kit) zu installieren. Etwas aufwendiger wird es zudem, wenn die App SSH-Befehle verschicken soll. Hierzu muss noch eine externe Programmbibliothek wie JSch installiert werden, wofür es mehrere Möglichkeiten gibt. Android Studio legt für jede App im Verzeichnis AndroidStudioProjects einen Unterordner an, wo das gesamte "Package" gespeichert wird.

 Android-App für Raspberry programmieren: werGoogelnKann (kann auch Java)Wie lerne ich am besten Java? 

eye home zur Startseite
Qual 08. Sep 2017

Ja, solche Leute tummeln sich zu Hauf herum, die von Neid und Missgunst zerfressen, allen...

Themenstart

gadthrawn 28. Aug 2017

Der "Konsistenz" opfert man dann aber OOP-Prinzipien und bindet halt teilweise übermäßig...

Themenstart

monito 26. Aug 2017

Also, eine Datei einlesen und wiederspeichern sieht es vielleicht trivial aus aber wenn...

Themenstart

ernstl 25. Aug 2017

https://media.tenor.com/images/0c123db63e36c7a275df31013780e1b0/tenor.gif

Themenstart

xaru 25. Aug 2017

Ich möchte an dieser Stelle einfach nur kurz dem Autor für seine Mühe danken. Freut mich...

Themenstart

Kommentieren



Anzeige

Stellenmarkt
  1. Schaeffler Technologies AG & Co. KG, Nürnberg
  2. Landeshauptstadt München, München
  3. Rohde & Schwarz GmbH & Co. KG, München
  4. Ratbacher GmbH, München


Anzeige
Blu-ray-Angebote
  1. 49,99€ mit Vorbesteller-Preisgarantie

Folgen Sie uns
       


  1. E-Mail

    Adobe veröffentlicht versehentlich privaten PGP-Key im Blog

  2. Die Woche im Video

    Schwachstellen, wohin man schaut

  3. UAV

    Matternet startet Drohnenlieferdienst in der Schweiz

  4. Joint Venture

    Microsoft und Facebook verlegen Seekabel mit 160 Terabit/s

  5. Remote Forensics

    BKA kann eigenen Staatstrojaner nicht einsetzen

  6. Datenbank

    Börsengang von MongoDB soll 100 Millionen US-Dollar bringen

  7. NH-L9a-AM4 und NH-L12S

    Noctua bringt Mini-ITX-Kühler für Ryzen

  8. Wegen Lieferproblemen

    Spekulationen über Aus für Opels Elektroauto Ampera-E

  9. Minix

    Fehler in Intel ME ermöglicht Codeausführung

  10. Oracle

    Java SE 9 und Java EE 8 gehen live



Haben wir etwas übersehen?

E-Mail an news@golem.de


Anzeige
E-Paper-Tablet im Test: Mit Remarkable machen digitale Notizen Spaß
E-Paper-Tablet im Test
Mit Remarkable machen digitale Notizen Spaß
  1. Smartphone Yotaphone 3 kommt mit großem E-Paper-Display
  2. Display E-Ink-Hülle für das iPhone 7

Parkplatz-Erkennung: Bosch und Siemens scheitern mit Pilotprojekten
Parkplatz-Erkennung
Bosch und Siemens scheitern mit Pilotprojekten
  1. Community based Parking Mercedes S-Klasse liefert Daten für Boschs Parkplatzsuche

Optionsbleed: Apache-Webserver blutet
Optionsbleed
Apache-Webserver blutet
  1. Apache-Sicherheitslücke Optionsbleed bereits 2014 entdeckt und übersehen
  2. Open Source Projekt Oracle will Java EE abgeben

  1. Re: Dumme Käufer

    thinksimple | 11:18

  2. Re: Und bei DSL?

    bombinho | 11:04

  3. Re: War das im Video das Kabel oder der Zugdraht?

    Eheran | 11:03

  4. Re: Geringwertiger Gütertransport

    logged_in | 11:03

  5. Re: Frage

    logged_in | 11:00


  1. 11:03

  2. 09:03

  3. 17:43

  4. 17:25

  5. 16:55

  6. 16:39

  7. 16:12

  8. 15:30


  1. Themen
  2. A
  3. B
  4. C
  5. D
  6. E
  7. F
  8. G
  9. H
  10. I
  11. J
  12. K
  13. L
  14. M
  15. N
  16. O
  17. P
  18. Q
  19. R
  20. S
  21. T
  22. U
  23. V
  24. W
  25. X
  26. Y
  27. Z
  28. #
 
    •  / 
    Zum Artikel