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...

gadthrawn 28. Aug 2017

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

monito 26. Aug 2017

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

ernstl 25. Aug 2017

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

xaru 25. Aug 2017

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



Anzeige

Stellenmarkt
  1. Lufthansa Global Business Services GmbH, Frankfurt am Main
  2. AKDB Anstalt für kommunale Datenverarbeitung in Bayern, München
  3. operational services GmbH & Co. KG, Berlin, Frankfurt a. M., Zwickau, Nürnberg, Dresden
  4. Robert Bosch GmbH, Stuttgart-Feuerbach


Anzeige
Blu-ray-Angebote
  1. (u. a. Hobbit Trilogie Blu-ray 43,89€ und Batman Dark Knight Trilogy Blu-ray 17,99€)
  2. (u. a. Hacksaw Ridge, Deadpool, Blade Runner, Kingsman, Arrival)

Folgen Sie uns
       


  1. Raumfahrt

    Falsch abgebogen wegen Eingabefehler

  2. Cloud

    AWS bringt den Appstore für Serverless-Software

  3. Free-to-Play-Strategie

    Total War Arena beginnt den Betabetrieb

  4. Funkchip

    US-Grenzbeamte können Pass-Signaturen nicht prüfen

  5. Telekom-Chef

    "Sorry! Da ist mir der Gaul durchgegangen"

  6. WD20SPZX

    Auch Western Digital bringt flache 2-TByte-HDD

  7. Metal Gear Survive im Test

    Himmelfahrtskommando ohne Solid Snake

  8. Cloud IoT Core

    Googles Cloud verwaltet weltweit IoT-Anlagen

  9. Schweden

    Netzbetreiber bietet 10 GBit/s für 45 Euro

  10. Reverse Engineering

    Das Xiaomi-Ökosystem vom Hersteller befreien



Haben wir etwas übersehen?

E-Mail an news@golem.de


Anzeige
Sam's Journey im Test: Ein Kaufgrund für den C64
Sam's Journey im Test
Ein Kaufgrund für den C64
  1. THEC64 Mini C64-Emulator erscheint am 29. März in Deutschland
  2. Sam's Journey Neues Kaufspiel für C64 veröffentlicht

Age of Empires Definitive Edition Test: Trotz neuem Look zu rückständig
Age of Empires Definitive Edition Test
Trotz neuem Look zu rückständig
  1. Echtzeit-Strategie Definitive Edition von Age of Empires hat neuen Termin
  2. Matt Booty Mr. Minecraft wird neuer Spiele-Chef bei Microsoft
  3. Vorschau Spielejahr 2018 Zwischen Kuhstall und knallrümpfigen Krötern

Samsung C27HG70 im Test: Der 144-Hz-HDR-Quantum-Dot-Monitor
Samsung C27HG70 im Test
Der 144-Hz-HDR-Quantum-Dot-Monitor
  1. Volumendisplay US-Forscher lassen Projektion schweben wie in Star Wars
  2. Sieben Touchscreens Nissan Xmotion verwendet Koi als virtuellen Assistenten
  3. CJ791 Samsung stellt gekrümmten Thunderbolt-3-Monitor vor

  1. Re: Und in Deutschland haben wir die Telekom

    wire-less | 07:12

  2. Re: Und Uplink?

    wire-less | 06:57

  3. Re: Woher der Kultstatus?

    blaub4r | 06:25

  4. Re: Political correctness jetzt auch im Wettbewerb?

    TrudleR | 06:18

  5. Re: Autos brauchen keinen extra Ton

    murdock85 | 06:17


  1. 17:17

  2. 16:50

  3. 16:05

  4. 15:45

  5. 15:24

  6. 14:47

  7. 14:10

  8. 13:49


  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