ADL steht für Android Interface Definition Language.
Um ADL zu verstehen, müssen wir zunächst wissen, was eine ideale oder Schnittstellen-Definitionssprache ist.
Ideal ist eine Sprache, die es einem Programm oder einem Objekt, das in einer Sprache geschrieben ist, ermöglicht, mit einem anderen Programm, das in einer
unbekannten Sprache geschrieben ist, zu kommunizieren.
Ideal ist also im Grunde eine ideale oder Schnittstellen-Definitionssprache, die von Android verwendet wird.
In Android.
Ein Prozess kann nicht auf den Speicher eines anderen Prozesses zugreifen, so dass sie einander nicht wirklich verstehen können.
Um zu kommunizieren, müssen sie also ihre Objekte in Primitive zerlegen, die das Betriebssystem verstehen kann.
Und das Betriebssystem stellt das Objekt über diese Grenze für Sie bereit.
Der Code für dieses Martialing ist kompliziert zu schreiben, daher übernimmt Android dies für Sie mit
Hilfe von ideal.
Jede Anwendung in Android läuft in ihren eigenen Prozessen.
Eine Anwendung kann nicht direkt auf den Speicherbereich einer anderen Anwendung zugreifen.
Dies wird als Application SandBoxing bezeichnet.
Um eine anwendungsübergreifende Kommunikation zu ermöglichen, bietet es eine Implementierung des IPC-Protokolls
(Inter Process Communication).
IPC-Protokolle neigen dazu, kompliziert zu werden, da eine Vielzahl von Datenverknüpfungen und -übertragungen erforderlich
ist.
Im Idealfall können Sie die Programmierschnittstelle definieren, auf die sich sowohl der Client als auch der Dienst einigen, um über die
Interprozesskommunikation miteinander zu kommunizieren.
Ideal ist eine leichtgewichtige IPC-Implementierung mit einer Syntax, die Java- oder Kotlin-Entwicklern sehr vertraut ist,
und bietet außerdem ein Tool, das die Erstellung von Stubs automatisiert.
Wir werden über die Stufenklassen sprechen, wenn wir das ideale Praktikum machen.
Um es ganz einfach zu machen.
Stellen Sie sich vor, Sie haben sich mit Außerirdischen aus einem anderen Universum getroffen.
Sie müssen mit ihnen kommunizieren und haben keine Ahnung, wie Sie es ihnen verständlich machen können.
Nun ist Gott der einzige Mensch, der Ihre Sprache und die Sprache der Fremden verstehen kann.
Stellen Sie sich Android als Gott vor und Idol als Priester, den so genannten Vermittler zwischen Gott und Ihnen.
Lassen Sie uns ein neues Projekt für den idealen Server erstellen.
Wir brauchen keine Aktivität und wählen keine Aktivität aus.
Und meine Anwendung, nennen wir sie mal einen Idle-Server.
Ja.
Und wir ändern die Sprache auf Java.
Und klicken Sie auf Fertig stellen.
Okay, wir haben das Projekt jetzt fertig.
Lassen Sie uns nun die ideale Schnittstelle dafür schaffen.
Einfach hier rechts klicken.
Die ideale Hürden-Datei.
Nennen wir es ein ideales Ideal.
Carlisle ins Gesicht.
Ja.
Klicken Sie auf Fertigstellen.
Hier sehen Sie den idealen Ordner, und wir haben diese Datei.
Farbige Schnittstelle im Leerlauf, Punkt im Leerlauf.
Dies ist also sehr ähnlich wie eine Java-Schnittstelle.
Nun müssen wir den Stub erstellen.
Dazu werden wir einfach dieses Projekt aufbauen, ein Rebuild-Projekt.
Nach dem Neuaufbau sollte es also einen Ordner geben, in dem sich die Stubs befinden, die das Framework für uns erstellt.
Der Bau ist bereits abgeschlossen.
Sie können diesen von Java generierten Ordner sehen, und wenn Sie darauf klicken, sehen Sie die unbenutzte Farbschnittstelle.
Hier wird eine Schnittstellendatei erstellt, diese hier, und sie hat diesen speziellen Stub.
Dies ist also der Code, der automatisch vom Android-Framework generiert wird, um uns bei der Kommunikation zwischen zwei
separaten Android-Anwendungen zu unterstützen.
Was wir also tun müssen, ist, dass wir diesen speziellen Stub Plus implementieren müssen.
Wie Sie hier sehen, handelt es sich um eine Dummy-Funktion, die automatisch erstellt wurde.
Wir müssen also diese Funktion durch unsere Funktion ersetzen.
So können wir diese Funktion einfach durch unsere Funktion ersetzen.
In unserem Fall brauchen wir nur eine Methode, die den Integer-Wert der Farbe zurückgibt.
Diese Funktion erzeugt also im Grunde genommen einige zufällige Farben und sendet sie an die Kunden zurück.
In der Schnittstelle müssen wir dies also nur definieren, und wir bauen sie wieder auf.
Nach dem Wiederaufbau geht man also hierher und kommt wieder herunter.
Sie können sehen, diese Methode definiert bekommen Farbe.
Lassen Sie uns nun den Dienst erstellen.
Erstellen Sie den Dienst service.
Nennen wir es als I-Dienst Java-Export aktiviert.
Das ist in Ordnung.
Beenden.
Wir haben diesen Dienst jetzt.
Wir müssen die Haltestelle grundsätzlich implementieren, also erstellen wir das Binder-Objekt.
Finden.
Okay, also müssen wir jetzt die Logik für get color schreiben.
Also muss der "get color" einige zufällige Farben generieren und sie zurücksenden.
Schreiben wir nun die Logik, um die Farbe zu ermitteln.
Im Grunde erstellen wir nur eine Zufallszahl und eine Zufallsfarbe und geben diesen Wert zurück.
Lassen Sie uns dieses fehlende Tag erstellen.
Bereitschaftsdienst.
Das sind zehn.
Lassen Sie uns ein Semikolon setzen.
Wir sind also fertig mit der Implementierung des Binders.
Und wir müssen auch etwas tun.
Wir sollten die Mappe zurückgeben und diese Zeile streichen.
Ich denke also, dass wir mit diesem Dienst fast fertig sind.
Und wir sollten auch die Manifeste überprüfen.
Auch hier müssen wir ein Action Intent-Tag erstellen, damit wir diesen Dienst von einer separaten Anwendung aus über
Intents aufrufen können.
Lassen Sie uns nun die Aktion für diesen Dienst erstellen.
Geben Sie hier einfach den Namen der Aktion an.
Wir werden also diesen Aktionsnamen aus der Client-Anwendung verwenden, um diesen Dienst auszulösen.
Lassen Sie uns nun fortfahren und die Client-App für das neue Projekt erstellen.
Dafür brauchen wir eine leere Aktivität, denn wir brauchen eine Schaltfläche, die bei Betätigung diesen Dienst
aufrufen soll.
Nehmen wir also eine leere Aktivität.
Drücken Sie auf "Weiter", nennen wir es "Ideal Client" und es ist Java.
Verwenden Sie ein gutes Klick-Finish.
Okay, zuerst werden wir hier schnell eine Aktivität erstellen.
Jetzt haben wir bereits Aktivität.
Wir fügen einfach eine Schaltfläche zu dieser Aktivität hinzu, so dass sie im Moment eine Textansicht hat.
Stattdessen fügen wir eine Schaltfläche hinzu und entfernen diese Textansicht und in irgendeiner Einschränkung alle Stellen.
Okay, jetzt können wir es vielleicht ein bisschen größer machen.
Okay, der Name, lassen wir ihn als Schaltfläche selbst und den Text.
Wir können es ändern, um meine Farbe zu ändern.
Ich möchte also diesen Knopf drücken.
Wir erwarten, dass dies die Farbe aus dem Leerlaufdienst erhält.
Okay, jetzt müssen wir die Datei der Leerlauf-Schnittstelle kopieren.
Legen wir also zunächst einen leeren Ordner an.
Klicken Sie auf idle und den Schnittstellennamen, und lassen Sie ihn als idle color interface stehen, der dem der Server-Schnittstellendatei
entspricht.
Klicken Sie einfach auf Fertig stellen.
Jetzt hat es diese Datei erstellt.
Gehen wir nun zurück zur Server-Anwendung und kopieren wir den Inhalt dieser Datei, einschließlich des Paketnamens.
Kehren Sie zum Kunden zurück und ersetzen Sie einfach alles durch das hier.
Bitte beachten Sie den Paketnamen.
Wir verwenden also den Paketnamen des Servers.
Nun müssen wir auch diesen Paketnamen in idle server three factor rename umbenennen.
Wir werden dieses Verzeichnis einfach in ideal server factor umbenennen.
Jetzt haben wir also einen gemeinsamen Cafe- oder Idle-Server mit dem Paketnamen hier.
Das ist also ziemlich wichtig.
Schritt.
Bitte vermerken Sie das hier.
Wir können den Unterschied zwischen den Namen hier sehen.
Dies ist der ideale Client und hier im Idle-Ordner ist es ein Idle-Server. Stellen Sie also sicher, dass Ihre Idle-Datei
immer den gleichen Paketnamen hat wie der Server, auf dem sie definiert ist.
Lassen Sie uns jetzt weitermachen und es bauen.
Bauen Sie es wieder auf.
Das Framework hat hier also bereits die Schritte generiert, die dem entsprechen, was wir auf dem Server gesehen haben.
Okay, jetzt machen wir weiter und nehmen die Änderungen in der Hauptaktivität vor, um an den Dienst zu binden und bei einem Klick auf die
Schaltfläche diesen Dienst aufzurufen.
Lassen Sie uns zunächst ein Objekt dieser Schnittstelle definieren.
I Arial Color Interface Service.
Lassen Sie uns nun ein Dienstverbindungsobjekt erstellen.
Hier haben wir also zwei Methoden für die Verbindung von Diensten und die Trennung von Diensten.
Ein verbundener Dienst wird also aufgerufen, wenn der Dienst verbunden oder an den idealen Dienst gebunden ist, und dieser
wird aufgerufen, wenn der Dienst getrennt wird.
Jetzt müssen wir also dieses Objekt, das Schnittstellenobjekt, initialisieren.
Hierfür verwenden wir die Leerlauf-Farbschnittstelle.
Dies ist also nichts anderes als die Datei, die das Framework erstellt hat, die Schnittstellenklassendatei, die das Framework erstellt
hat.
Also hören Sie nicht auf, die Klasse Cloud als Schnittstelle zu betrachten.
Es gibt also eine Methode in dieser Methode.
Dies ist also eine statische Methode, die im Grunde das Binder-Objekt aufnimmt
und im Grunde das Schnittstellenobjekt zurückgibt.
Wir können dieses Schnittstellenobjekt nun verwenden, um diese Methoden wie diese aufzurufen, z. B. get color.
Aber das sollten wir hier nicht tun.
Stattdessen müssen wir einen On-Click-Listener für die Schaltfläche erstellen und dies innerhalb der Schaltfläche tun.
Erstellen Sie diesen Tag.
Waage.
Okay, das ist jetzt also erledigt.
Der nächste Schritt besteht darin, den Gedankenstrich zu erstellen, der auf den Dienst verweist.
Hier erstellen wir also die Absicht, indem wir die Aktion verwenden.
Diese Aktion ist also das, was wir im Manifest des idealen Servers definiert haben.
Auf dem idealen Server haben Sie in der Manifestdatei diesen Absichtsfilter definiert, richtig?
Frühere enthält die ideale Farben Service.
Wir verwenden dieselbe Aktion in der Hauptaktivität.
Dies wird also ausdrücklich auf den von uns erstellten Dienst verweisen.
Und dann setzen wir den Paketnamen als Compute für den Idle-Server.
Dies ist also der Paketname des idealen Servers.
Und danach nutzen wir den Bindungsdienst.
Der Bindungsdienst benötigt also drei Parameter.
Die erste ist die Absicht, die ausdrücklich auf den von uns erstellten Dienst verweist.
Das ist nichts anderes als der ideale Service.
Und dann haben wir das Verbindungsobjekt.
Dies ist also im Grunde das Verbindungsobjekt, das wir erstellt haben.
Dann haben wir ein Flag binden oder zu erstellen, was dies tut ist, wenn der Dienst vorhanden ist, wird es automatisch den Dienst zu erstellen,
wird der Dienst nicht immer ausgeführt werden.
Wenn es also keinen Client für den Dienst gibt, wird der Dienst automatisch beendet.
Immer wenn sich ein neuer Client an den Dienst bindet, wird der Dienst automatisch erstellt, falls
er noch nicht in Betrieb ist.
Das ist es also, was dieser dritte Parameter bewirkt.
Der nächste Schritt ist nun die Erstellung einer CLICKLIST-Schaltfläche.
Dazu erstellen wir zunächst ein Schaltflächenobjekt, indem wir auf die Schaltfläche oder ID-Schaltfläche verweisen.
Denken Sie daran, dass wir den Namen der Schaltfläche als Schaltfläche beibehalten haben.
Dies ist die XML.
Dadurch wird ein Objekt dieser Schaltfläche erstellt.
Und dann setzen wir einen Listener auf diese Schaltfläche in diesem On-Click-Ereignis.
Im Grunde genommen wird eine Farbvariable initialisiert, und dieser Farbwert wird von diesem Dienst ausgefüllt.
Anstelle eines Remote-Dienstes müssen Sie ihn also als ideale Farbe bezeichnen.
Wir fangen also an, Farbe zu bekommen.
Lassen Sie uns nun fortfahren und dies im Emulator ausführen.
Ich habe den Emulator hier.
Erstens: der ideale Server.
Dies ist das ideale Serverprojekt.
Machen Sie weiter und erstellen Sie eine APK.
Das ist sie also.
Sie können das Fahrrad also einfach per Drag & Drop in den Emulator ziehen, um es zu installieren.
Sie ist jetzt schon installiert.
Lassen Sie es uns noch einmal versuchen.
Es wird so installiert, dass Sie nicht wirklich ADB zur Installation verwenden müssen.
In diesem Fall können Sie sie also einfach per Drag & Drop verschieben.
Kommen wir nun zum Kunden zurück.
Und das wollen wir ausprobieren.
Okay, das ist also unsere App.
Wenn Sie dann auf Meine Farbe ändern klicken, sollte sich die Farbe der Schaltfläche ändern.
Es wird also passieren.
Und nur um sicherzugehen, dass der Server kalt wird.
Wir können zu Logcat gehen und den ADL-Server öffnen.
Ja.
Löschen Sie einfach die Protokolle und klicken Sie hier, dann können Sie das auf dem idealen Server sehen.
Es geht im Grunde darum, die Farbe zu erzeugen und zurückzuschicken.
Die Farbe, die wir bekommen, ist also die Farbe, die sich verwandelt.
Wenn Sie darauf klicken, wird sie zurückgeschickt.
Dies sind also die Sperren, die aus dem inaktiven Server kommen.
Ich hoffe, Sie haben verstanden, wie man ein Ideal mit zwei Anwendungen aus diesem Tutorial zu implementieren, wenn
Sie irgendwelche Zweifel oder Fragen haben, fügen Sie bitte einen Kommentar und ich werde mehr als glücklich zu beantworten.
Ich danke Ihnen.