Android API/Library für externe Entwickler zur Verfügung stellen

Kazudemruzo

Mitglied
Schönen Guten Tag,
Ich habe eine App die mit Hilfe von BLE Beacons und Triangulation die Position des App-Users bestimmt und die ausgewerteten Daten an ein Server sendet.
Nun möchte ich einige Funktionen der App auslagern und anderen Entwicklern für Ihre existierende App zur Verfügung stellen.
Da die Daten, an meinen Server gesendet werden und ich nicht möchte, dass das geändert werden kann, würde ich gerne eine "closed source" Library entwickeln.
Es soll eine Dokumentation meinerseits erstellt werden, die einige Methoden enthalten, die Andere dann an geeigneten Stellen bei sich in der App aufrufen können.
Wie ich verstanden habe, ist eine Android-Library open-source und jeder kann den code anpassen wie man es benötigt.
Ich habe bereits etwas Erfahrung mit der Android-App Entwicklung, aber dieses Thema ist für mich Neuland.

Kennt jemand eine Möglichkeit dieses Vorhaben umzusetzen, ganz egal ob mit einer Art verschlüsselten Datei oder einer Web-Lösung?
Über Hilfe würde ich mich sehr freuen.
Liebe Grüße
Karuzo Rodriguez
 

sascha-sphw

Top Contributor
Security geht nur über den Server, Stichwort Authentication / Authorization. Alles was der Client hat, kann er auch einsehen und alles machen was er möchte. Obfuscation ist keine Sicherheit gegen fremden Zugriff.

Implementiere lieber oAuth2 in Deinen Service. Dann könnte die Client Lib auch open source sein. BTW open source ist kein muss nur weil sie für andere zur Verfügung stehen soll.
 

Kazudemruzo

Mitglied
hey danke für die schnelle Antwort.
Aber ich verstehe sie nicht so genau. Ich bin im Moment in der Phase wo ich entscheiden muss, welches System für dieses Vorhaben am besten geeignet ist. Gibt es z.B eine Möglichkeit eine Art AAR-file zu erstellen, die dann jemand bei sich in das Projekt einfügt und die Methoden aufrufen kann , ohne dass die Benutzer dieser Dateien in den Source Code schauen können. Oder müsste ich dafür einen ganz anderen Weg wählen?
 

mihe7

Top Contributor
Was @sascha-sphw meinte ist: wenn man ein Programm aus der Hand gibt, gibt es keine Möglichkeit einen wirklichen Schutz zu erzielen. Du kannst nur die Hürden erhöhen, beispielsweise könntest Du einen Obfuscator drüberlaufen lassen. Das ist aber kein echtes Hindernis.

Schutz kannst Du nur erreichen, wenn Du die Logik eben nicht aus der Hand gibst. Dazu bietest Du für die Logik einen externen Service an. Die App nutzt dann diesen Service und voila -> kein Zugriff auf den Teil der Software mehr möglich.
 

Kazudemruzo

Mitglied
Schutz kannst Du nur erreichen, wenn Du die Logik eben nicht aus der Hand gibst. Dazu bietest Du für die Logik einen externen Service an. Die App nutzt dann diesen Service und voila -> kein Zugriff auf den Teil der Software mehr möglich.
Ja genau, das ist genau das was ich erreichen will. Ich habe aber nichts gefunden, was mir dabei weiterhilft.
Was ich im Endeffekt erreichen möchte ist, dass die Logik hinter dem System und am wichtigsten die Serveradresse an die die Daten gesendet werden, versteckt und unveränderbar bleiben.

Es gibt ja Web-APIs die durch URL Aufrufe Daten liefern, aber ich kann mir nicht vorstellen, wie der aufrufenden App dann mitgeteilt werden kann, dass diese sein Bluetooth eischalten, nach Signalen suchen, sie auswerten und am Ende an den Server senden soll.

Meine Frage bleibt daher leider immer noch, wie genau stelle ich das an, was du in deiner Antwort als "externen Service" bezeichnest.
 

Oneixee5

Top Contributor
Die Serveradresse kann man nicht verstecken. selbst wenn es dir gelingen sollte die URL zu verschleiern, so ist die Anfrage im Netzwerk-Stack des Gerätes immer sichtbar und kann analysiert werden. Wenn die Bibliothek keine Möglichkeit bietet die URL zu ändern, dann ändert man eben den DNS. Selbst wenn du eine feste IP verwenden solltest, dann nimmt man eben eine eine Umleitung vor.
Die Funktionalität, welche du anbieten willst, sollte dein Server bereitstellen. Wenn jemand die URL der Anfrage manipuliert, dann landet er auch nicht auf deinem Server und hat damit nicht die Funktionalität zur Verfügung.
 

Kazudemruzo

Mitglied
Ich danke euch für die ganzen Antworten. Ich bin die Sache ganz falsch angegangen.
Versteh ich das dann richtig, dass man im Endeffekt keine komplett verschleierte Biblitohek für andere schreiben kann.
1. Man soll die wichstigsten Sachen wie den Bluetooth-Scan ganz normal im Endgerät ausführen lassen
2. Diese werden dann an ein Server gesendet
3. Dort soll erst die ganze Berechnung und Auswertung geschehen
4. Das Endgerät bekommt dann am Ende nur das nötigste vom Server zurück
 

mihe7

Top Contributor
Versteh ich das dann richtig, dass man im Endeffekt keine komplett verschleierte Biblitohek für andere schreiben kann.
Richtig. Selbst, wenn Du alles 100 %ig sicher verschlüsseln, verschleiern und was weiß ich noch könntest: irgendwann wird der Bytecode im Speicher stehen, so dass er ausgeführt werden kann und spätestens an der Stelle kann man nachvollziehen, was der Code macht.

1. Man soll die wichstigsten Sachen wie den Bluetooth-Scan ganz normal im Endgerät ausführen lassen
2. Diese werden dann an ein Server gesendet
3. Dort soll erst die ganze Berechnung und Auswertung geschehen
4. Das Endgerät bekommt dann am Ende nur das nötigste vom Server zurück
Ja, was nicht in fremde Hände geraten soll, muss eben in Deinen bleiben.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
L Twilio library einbinden Android & Cross-Platform Mobile Apps 2
E Java ME couldn't load zayitlib.dll library Android & Cross-Platform Mobile Apps 1
C Consent für Admob mit ump / funding choices Android & Cross-Platform Mobile Apps 6
B Was fehlt mir hier für diese Klasse? ich habe es mit (>>> ... <<<) markiert. Android & Cross-Platform Mobile Apps 4
J SharedPreferences für User-Session Android & Cross-Platform Mobile Apps 2
M Barrierefreie Appentwicklung für Android - Suche Codebeispiele Android & Cross-Platform Mobile Apps 8
I App für Fire HD entwickeln Android & Cross-Platform Mobile Apps 3
T Bringen mir die Java-Basics irgendetwas für die Android-Programmierung Android & Cross-Platform Mobile Apps 4
L Textfeld für Dezimalzahl mit Vorzeichen Android & Cross-Platform Mobile Apps 2
J Android Datenbank Klasse nur für CRUD-Operation, oder auch mehr ? Android & Cross-Platform Mobile Apps 8
B Android Projekt für Android und IOS erstellen? Android & Cross-Platform Mobile Apps 5
J Impressumspflicht für App, wenn ich kein Unternehmer bin? Android & Cross-Platform Mobile Apps 13
T Android Equalizer für Android Android & Cross-Platform Mobile Apps 3
L Zeitstempel für Sensordaten bekommen Android & Cross-Platform Mobile Apps 3
L Android Texterkennung für Android? Android & Cross-Platform Mobile Apps 1
L Android Chart API für Android Android & Cross-Platform Mobile Apps 0
T Android Datenbankverbindung in Service für Push Notification Android & Cross-Platform Mobile Apps 0
R Android USB Treiber für Huawei Android & Cross-Platform Mobile Apps 1
M Hilfe bei App Programmierung für Android Android & Cross-Platform Mobile Apps 1
B Script für Android Android & Cross-Platform Mobile Apps 1
H Datenprotokoll für Graphview Android & Cross-Platform Mobile Apps 2
M Android Obfuscation für Strings Android & Cross-Platform Mobile Apps 8
S Bilder mit fester grösse für verschiedene Android Endgeräte Android & Cross-Platform Mobile Apps 2
D Android Layout für alle Geräte Android & Cross-Platform Mobile Apps 4
A String[] für Lisadapter Android & Cross-Platform Mobile Apps 4
D Lib für (Desktop-)Java und Android schreiben Android & Cross-Platform Mobile Apps 7
J MySQL Simulation für Android App Android & Cross-Platform Mobile Apps 2
kaoZ Tutorial .xml Layouting für z.B ListView elemente Android & Cross-Platform Mobile Apps 7
W Java Editor für Android +Emulator Android & Cross-Platform Mobile Apps 7
M 20 Image Button für jede Auflösung positionieren Android & Cross-Platform Mobile Apps 3
L Android ActionBar mit unterschiedlichen Farben für Tabs Android & Cross-Platform Mobile Apps 3
S Voraussetzungen für Android-Apps Android & Cross-Platform Mobile Apps 7
R Sinnvoller Ablageort für Leveldaten Android & Cross-Platform Mobile Apps 8
B App bei Play-Store für bestimmte auflösungen anbieten? Android & Cross-Platform Mobile Apps 3
G extends Activity für Berechnungen? Android & Cross-Platform Mobile Apps 7
H Progrämmchen für Symbian Android & Cross-Platform Mobile Apps 4
G wiederkehrenden Wert für Design in XML ablegen Android & Cross-Platform Mobile Apps 2
L Android SearchBox für Custom Listview Android & Cross-Platform Mobile Apps 5
T Android KontrollApp für Nitrado Server Android & Cross-Platform Mobile Apps 2
L Android Eine Kleinigkeit für Profis Android & Cross-Platform Mobile Apps 2
G Android C++ Quellcode für Android Geräte compilieren Android & Cross-Platform Mobile Apps 2
T Zeit in zwei Zahlen für Widget zerlegen Android & Cross-Platform Mobile Apps 2
J Apps für Android programmieren - Android Handy notwendig oder reicht Simulator? Android & Cross-Platform Mobile Apps 3
A Android SimpleDateFormat gibt für Date unter android anderes Datum zurück als in Std. Java Android & Cross-Platform Mobile Apps 2
H Android Landscape Modus für App dektivieren Android & Cross-Platform Mobile Apps 3
M Frage zu Java Programm für Windows Mobile 6.5 Android & Cross-Platform Mobile Apps 2
H Welches JDK für Huawei G7002? Android & Cross-Platform Mobile Apps 6
C Panel/View für Android Android & Cross-Platform Mobile Apps 3
C Sanke für Android Android & Cross-Platform Mobile Apps 3
Kukulkan Welche Mindestanforderungen (JDK) für Android und BB? Android & Cross-Platform Mobile Apps 8
G Views für verschiedenen Bildschirmgroeßen Android & Cross-Platform Mobile Apps 2
thE_29 Widget für verpasste Anruf + SMS Android & Cross-Platform Mobile Apps 2
A Android Android Parameter für VM Android & Cross-Platform Mobile Apps 7
O Entwickler für Java Anwendungen auf Handy gesucht! Android & Cross-Platform Mobile Apps 3
S JButton in GUI für Handys? Android & Cross-Platform Mobile Apps 3
M Welche Datenbank für J2ME? Android & Cross-Platform Mobile Apps 5
D Event für Tastensperre? Android & Cross-Platform Mobile Apps 3
G WTK für Nokia Android & Cross-Platform Mobile Apps 2
P bestimmte API für XDA ORBIT2 Android & Cross-Platform Mobile Apps 3
S Idee gesucht für ein kleines Programm Android & Cross-Platform Mobile Apps 3
M ein image pixel für pixel aufbauen : setPixel() ? Android & Cross-Platform Mobile Apps 1
M Handyprogramm für U-Bahn-Fahrplan für Siemens SK65 Android & Cross-Platform Mobile Apps 2
J Empfehlungen für ME-Anfänger Android & Cross-Platform Mobile Apps 2
K Anwendung für Handy programmieren Android & Cross-Platform Mobile Apps 1
P Java für PDA DELL Axim 51 Android & Cross-Platform Mobile Apps 4
M Virtuelle Machiene für PDA Android & Cross-Platform Mobile Apps 8
B Programm für NokiaComunicator erstellen Android & Cross-Platform Mobile Apps 2
K Programme für Handy erstellen Android & Cross-Platform Mobile Apps 3
M Java-Programme für Handy auf Desktop-PC ausführen Android & Cross-Platform Mobile Apps 4
T Für Handy Game die Sprache umschreiben? Android & Cross-Platform Mobile Apps 24
M java game für handy mit grahi. oberfläche Android & Cross-Platform Mobile Apps 1
D java.security.MessageDigest (für ME?) Android & Cross-Platform Mobile Apps 1
N Unser Team such Coder für Spieleprojekte Android & Cross-Platform Mobile Apps 8
B WTK für Sony Ericsson? Android & Cross-Platform Mobile Apps 7
S JAVA für java-mobiltelefone Android & Cross-Platform Mobile Apps 14
Flynn Text-File auf externe Speicherkarte schreiben Android & Cross-Platform Mobile Apps 1
ms_cikar Thread / Intent als externe klasse Android & Cross-Platform Mobile Apps 1
F Externe Bibliotheken in Projekt einbinden Android & Cross-Platform Mobile Apps 5
P J2ME - Anbindung an externe Datenbank Android & Cross-Platform Mobile Apps 3

Ähnliche Java Themen

Neue Themen


Oben