Empfohlene Projekt-Struktur und mehr ...

Hipp26

Mitglied
Ich bin seit ca. 2 Wochen im "Android Studio" (als apk) und damit in Java unterwegs...

Als eingefleischter .NET bzw C.Fan stoße ich bei Java so an einigen unerwarteten Ecken unerwartet häufig an. Hoffentlich gibt es sich noch ... ???:L

Dummerweise sind die meisten der bisher gefunden Java-Beispiele im Netz entweder unvollständig (zumindest für mich als Anfänger funktioniert das so wie beschrieben meist nicht) oder sie sind veraltet oder sind falsch oder was auch immer ... ;(


Folgendes Projekt ... (für Rufbereitschaft-Android-Handy mit API-16)
  • Ausgabe von Inhalten einer Internetdatei in einer Activity.
  • Diese Internetdatei enhält eine Zeile mit 20 aufeinanderfolgenden Ziffern.
  • Jede dieser 20 Ziffern steht festdefiniert für ein überwachtes System (1=DB1-Status, 2=DB2-Status, ..., 19=Server1-Status, 20=Server2-Status) und kann 4 Zustände enthalten (0="Alles ungleich 1,2,3", 1=Ok, 2=Warnung, 3=Aktion umgehend notwendig) enthalten
  • Diese 20 Systeme sollen als Liste in einer Activity ausgegeben werden (inkl. ihres jeweiligen Status)
  • Automatischer Reload des Status durch einlesen der Internetdatei alle 10min (wenn Internetzugriff).
  • Wenn ein Status != 0 (!=Ok) entdeckt wird, soll eine Statusbar-Info (Notification) automatisch mit dem jeweilgien Systemnamen und Status eingeblendet werden.

Bis auf den letzten Punkt habe ich mehr oder weniger alles zusammengefrickelt bekommen.
--> Dummerweise entfernt Android nach kurzer Zeit die App aus dem Application-Cache, wenn diese ausgeblendet wurde, so das mein 10min-Timer recht schnell nutzlos wird...

Im Web steht immer wieder irgendwas von (Boot-)Broadcast, Receiver, Services ... Entweder funktioniert der jeweilige Internet-Beispiel-Code nicht (unbekannte Klassen, veralteter Syntax, ...) oder die App verabschiedet sich direkt beim Start ... aber meist wird nur umständlich angedeutet, wie es funktionieren könnte im Java-API-Zoo ... 🙂 ...

Naja ... unabhängig vom letzten Punkt sieht das bisher "Geschaffene" recht unübersichtlich aus ... wahrscheinlich wegen dem vielen Copy&Paste und meinem ungesundem Java-Halbwissen...

Deswegen, hier ein paar Fragen...
  1. Wie würdet Ihr an dieses Projet herangehen bzw. die Projekt-Struktur aufbauen?
  2. Start mit Main-Activity und dann in dieser den Start des Service oder können Main-Activity und Service unabhängig von einander bei App-Start gestartet werden? Wenn ja, wie?
  3. Wird ein Service in der Main-Activity gestartet und diese Activity wird später durch Android aus dem Application-Cache entfernt, was passiert mit dem gestarteten Service? Wird er mit der Activity entfernt oder wird dieser weiterhin ausgeführt?
  4. Wenn ein User durch langes Drücken der Menütaste und anschließendem Wischen eine App aus dem Application-Cache entfernt, wird deren Notification weiterhin angezeigt. Gibt es ein Event, das hierbei "geschossen" wird? Was passiert mit einem gestarteten Service? Bleibt dieser aktiv oder wird dieser auch entfernt?
  5. Wie bekomme ich das Ausgabe-ListView der Main-Activity an den Service übergeben ... oder soll der Service nur den "Status auslesen und ggf. die Notification einblenden und keine Ausgabe in der Main-Activity triggern?
  6. Wie bekomme ich es hin, dass beim Klick auf die Notification die Main-Activity geöffnet wird und wenn die Main-Activity schon offen ist, diese nicht noch ein 2.Mal geöffnet wird?
  7. Muss der Services (wie auch immer er gestartet wird) irgendwie / irgendwann entladen werden? Vielleicht in einem Application.onDestroy oder so? Anlaog gilt diese Frage auch zu anderen Dingen wie Handler, ...
  8. Ist das "android.os.Handler" sinnvoll für die Nutzung als "10-Minuten-Timer" oder gibt's da was besseres ?
  9. Es gibt einige wenige Einstellungen (bspw.Größe des Ausgabetextes) in einer 2. Activity. Wie würdet Ihr diese Einstellungen "dauerhaft" speichern ?
  10. Ist es zulässig/möglich/sinnvoll eine Klasse mit den App-Einstellungen in einer "extends Application"-Klasse zu laden und sie per Variable "App-weit für jeder Klasse bereitzustellen, ohne diese damit in jeder Klasse jedesmal neu laden zu müssen?
  11. Sollte "try-catch-finally" möglichst überall oder nur sparsam genutzt werden (bspw. wegen Akku, ...) ?


Grüße,
Hipp
 
Zuletzt bearbeitet:
Ich unterbreche dich nur ungern. Scheinbar hast du ein gepflegtes Vorwissen und das hier scheint mir ein kommerzielles Projekt zusein.

Dafür sind die Fragen extrem umfangreich und viele davon in den Bereich "android Grundlagen".

Ich schlage daher vor die Grundlagen fragen mittels Literatur zu eleminieren. Und falls da was konkretes nicht passt hier nachzufragen.
 
Das gleiche Szenario in .NET (also für Win-PC) hat mich ca. 1,5d Freizeit gekostet, seit dem läuft es stabil auf meinen PC ... aber da Android anders als ein "normale PC-OS" tickt ... kommen eben o.g. Fragen auf ... eventuell ein wenig durch mein "Vorwissen" geschuldet ... aber mein "Vorwissen" hat (auch wenn ich seit Main 1991 programmiere) hier so gut wie nix zu tun ... weil wie bereits oben geschrieben ... Ich bin seit ca. 2 Wochen in Java unterwegs
--> Also JAVA-ANFÄNGER

Ob etwas kommerziell ist oder nicht, sollte in einem Forum vollkommen egal sein!
--> Es ist ja nicht so, dass Du für mich die App umsetzen sollst ... in keiner Frage steht etwas wie "Poste bitte Quellcode" ...
--> Aber für Dich zur Beruhigung, ich möchte damit nicht mein Lebensunterhalt bestreiten ... Mein Chef zahlt gut ...🙂
--> Ich seh aber als Ingenieur, welche "Probleme" es gibt (bzw. Andere haben) und versuche diese abzustellen ... auch unkonventionell oder über "neue Wege" ... Jave ist für mich so ein neuer Weg ... und unkonventionell = Freizeit ...
--> Das Projekt ist privat ... eventuell zukünftig für die Firma ... aber hab auch hier keine Angst, "meine" Firma hat bisher noch nie auch nur mit einem Quellcode-Bit auch nur 1 Euro Umsatz erwirtschaftet und wird es auch nicht...

In den 2 Wochen Java ist mir Eines extrem aufgefallen ... in Java-Foren wird mit Wissen viel mehr "gemauert" oder hinter der Hand gehalten, als in allen anderen mir bekannten und genutzten Programmiersprachen-Foren zusammen ... Keine Ahnung warum ... aber das ist nun mal mein persönliches Empfinden... und auch Deine Antwort macht hier keine Ausnahme ...

Und in einem Forum auf Literatur zu verweisen finde ich gut ... Hast Du Dir schon mal den Sinn eines Forum vor Augen gehalten? Weil wenn jeder so denkt, brauchts keine Foren mehr!

Der Sinn eines Forum ist es, einem Fragenden (=der Dumme) die Plattform/Möglichkeit zu bieten, eine Fachkraft (Wissenden) zu kontaktieren bzw. sich auszutauschen...

--> Aber bedenke: Fachkraft != Lehrer
--> Forum = "schnell und unbürokratisch" Hillfe geben/bekommen...


Aber vielleicht bin ich hier ja im falschen Forum ...
 
Ich bin seit ca. 2 Wochen in Java unterwegs
--> Also JAVA-ANFÄNGER

Das ist ja auch nicht schlimm und ich habe dies auch nicht bemängelt. 😉 - Imho ist Android kein guter Start, wenn man gerade erst mit Java angefangen hat. Aufgrund deines Vorwissens, aber nicht unbedingt schlimm.

Jedoch aufgrund der Tatsache,d ass du dich erst damit so kurz beschäftigt, stellst du viele Grundlagenfragen. Es gibt nun zwei Möglichkeiten. Ich oder jemand anders beantwortet diese in knappen Sätzen, die du mit hoher Wahrscheinlichkeit nicht verstehen wirst, einfach weil man da viel Überspringt und nicht in die Tiefe geht. Oder man liest sich solche Informationen aus einem entsprechenden Buch. Dort ist es didaktisch aufbereitet und niedergeschrieben. Das hier zu Wiederholen wäre auch von meiner Seite aus dämlich.

Ob etwas kommerziell ist oder nicht, sollte in einem Forum vollkommen egal sein!

Dem Forum ist es egal. Mir aber nicht. Wenn ich hier für ein kommerzielles Produkt ein so umfangreiches Consulting machen soll, stellt sich mir die Frage, wieso Firmen auf diese Art und Weise kosten sparen sollen? ;D

n den 2 Wochen Java ist mir Eines extrem aufgefallen ... in Java-Foren wird mit Wissen viel mehr "gemauert" oder hinter der Hand gehalten, als in allen anderen mir bekannten und genutzten Programmiersprachen-Foren zusammen ... Keine Ahnung warum ... aber das ist nun mal mein persönliches Empfinden... und auch Deine Antwort macht hier keine Ausnahme ...

Das kann ich nicht unbedingt beobachten. Was ich beobachten kann ist, dass in Java-Foren sehr oft extreme Grundlagenfragen gestellt werden, die hundert und tausendfach beantwortet wurden. Meist weise ich auf solche Quellen dann hin. Kann sein, dass das in anderen Sprachen einfach nicht ist, und die Leute konkrete Fragen stellen. Zumindest im dem VB Paradise Forum stelle ich fest, dass hier oft höher Qualifizierte Fragen gestellt werden. Auch in vergleichbaren Java Foren ist die Qualität der Fragen höher.

Und in einem Forum auf Literatur zu verweisen finde ich gut ... Hast Du Dir schon mal den Sinn eines Forum vor Augen gehalten? Weil wenn jeder so denkt, brauchts keine Foren mehr!

Grundsätzlich ist die Annahme falsch. Warum das so ist, siehe oben.

Aber es steht ja jedem Frei hier zu antworten und meine Antworten zu vervollständigen..
 
Zuletzt bearbeitet:
Wenn ich hier für ein kommerzielles Produkt ein so umfangreiches Consulting machen soll, stellt sich mir die Frage, wieso Firmen auf diese Art und Weise kosten sparen sollen? ;D

Was zum Teufel ist hier umfangreich? In .NET hatte ich das Ganze als PC-Version nach ca. 6h reiner Programmierzeit (im Real life also rund 1,5d) fertig. Also umfangreich würde ich das nun nicht wirklich nennen ... und von einem Consulting war nie die Rede ...

Ich wiederhole mich ungern, aber noch einmal ... vielleicht habe ich es noch nicht hieb- und stichfest beschrieben:

Das ist ein "PRIVATES PROJEKT" mit erkennbar geschäftlichen Bezug, aber eben trotzdem privat. Entsprechend weiß die Firma auch nix davon (vorerst) und dementsprechend kann sie (die Firma) aktuell dadurch auch gar keine Kosten sparen wollen.

Außerdem ... wie oben schon geschrieben, die Firma verdient keinen einzigen Cent durch den Verkauf von Software jeglicher Art.

Würden wir Deinen "Vorwurf" mal theoretisch durchspielen, also "Die Firma will Kosten durch diese Art von Projekt sparen"

--> Die eingesparten Kosten dieses Projektes stehen in keinem Verhältnis zu den tatsächlichen Aufwänden zum Betrieb unserer IT-Landschaft...
--> die paar 100 Euro eingesparten Kosten (wegen dieses Projektes) würden nicht einmal annähernd die Kosten unserer dießjährigen Abteilungs-Weihnachtsfeier einspielen ...
--> Allein der jährliche Support der von mir auf Arbeit genutzten 3rd-Software kostet jährlich mehrere 100k Euro, zusätzlich gibts noch ein Haufen von Contractoren/Consaltans die nochmal fast die gleiche Summe kosten ...

------------------------------------

Also löse Dich bitte von der Vorstellung, dass "meine" Firma hinter diesem Projekt die "Strippen zieht" und nur Kosten sparen will ...

------------------------------------

Wenn ich (und alle Anderen auch) alles nur aus Büchern erlernen würde wollen (müssen) ... bräuchte es keine Foren auf dieser Welt, da ja alles in den Büchern steht und damit die Foren auf natürlicher Weise obsolete wären... Es sei den, Du möchtest auch in dieser theoretischen Bücher-Foren-Welt weiterhin nur auf Bücher verweisen...


Was ich beobachten kann ist, dass in Java-Foren sehr oft extreme Grundlagenfragen gestellt werden, die hundert und tausendfach beantwortet wurden.

Meine Fragen waren kein Prüfungsfragen zu Variablendefinitionen, Vergleichsoperatoren oder Java-Syntax.
--> Ich habe trotz umfangreicher Suche die "hundert und tausendfachen Antworten" zu meinen 11. Fragen leider nicht oder nur unvollständig gefunden. Meist schweigen sich potentielle Suchtreffer an genau meinen Fragepunkten tot :noe:


Aber vielleicht blockt ja Google Suchanfragen nach "Android, Java, ..." ... 😉
 

Zurück
Oben