Lassen Sie uns ohne weiteres loslegen ..!
SCHRITT 1: Öffnen Sie Android Studio
If Wenn Sie es nicht haben, können Sie es von hier herunterladen: Link.
SCHRITT 2: Aktivitätsauswahl
Erstellen Sie ein neues Android Studio-Projekt. (Siehe Bild unten)
Ich halte dieses Tutorial einfach, wir müssen keine Aktivität erstellen, da wir nur die Farbe der Uhr der Statusleiste ändern.
Wählen Sie Keine Aktivität und gehen Sie zu Weiter. P. >
SCHRITT 3: Projektkonfiguration
Geben Sie den Namen und den Paketnamen für Ihre Anwendung an. Behalten Sie die Sprache als Java bei. Wenn Sie mit Kotlin vertraut sind, gehen Sie damit um – es wird nicht so viel harte Codierung geben, da dies eine Art „Hallo-Welt“ -App- / Modulentwicklung ist.
Ich behalte die minimale API bei Stufe auf 15.
Dann klicken Sie auf die Schaltfläche Fertig stellen.
SCHRITT – 4: Ändern Sie Ihre build.gradle (App) & Fügen Sie die folgenden Abhängigkeiten hinzu:
Synchronisieren Sie dann das Projekt.
SCHRITT 5: Ändern Sie Ihre manifest.xml-Datei:
Fügen Sie die folgenden Metadaten-Tags in das Anwendungs-Tag ein:
Der Name sollte xposedmodule
und der Wert true
sein. Lassen Sie die Ressource leer. Wiederholen Sie dies dann für xposedminversion
(die API-Version aus dem vorherigen Schritt) und xposeddescription
(eine sehr kurze Beschreibung Ihres Moduls).
SCHRITT 6: Erstellen Sie eine Klasse:
package com.myfirstxposedmodule;
public class MyModule {
}
Dies ist unsere Klasse, die wir in Zukunft ändern werden.
SCHRITT 7: Erstellen und Ändern der xposed_init-Datei:
Ändern Sie die Verzeichnisansicht in die Projektansicht. Navigieren Sie zu app > src > main. Klicken Sie mit der rechten Maustaste auf main und wählen Sie ein neues > -Verzeichnis.
Nennen Sie es: assets
Klicken Sie mit der rechten Maustaste Wählen Sie im kürzlich erstellten Verzeichnis assets
die neue Datei > aus.
Nennen Sie sie: xposed_init
(wählen Sie text
, wenn Sie nach dem Dateityp gefragt werden).
Fügen Sie in der Datei xposed_init
den vollständigen Namen hinzu unserer Java-Klasse. In unserem Fall sieht es so aus:
com.myfirstxposedmodule.MyModule
Auf diese Weise identifiziert das Xposed-Framework unser Modul und lädt es auf den Start. Diese Datei teilt dem Framework mit, welche Klassen geladen werden sollen. Dies wird auch in den Protokollen angezeigt.
SCHRITT 8: Ändern der MyModule-Klasse:
package com.myfirstxposedmodule;
import de.robv.android.xposed.IXposedHookLoadPackage;
import de.robv.android.xposed.callbacks.XC_LoadPackage;
import de.robv.android.xposed.XposedBridge;
public class MyModule implements IXposedHookLoadPackage {
@Override
public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable {
}
}
Implementieren Sie IXposedHookLoadPackage
und implementieren Sie die Methode handleLoadPackage
wie oben gezeigt.
Versuchen wir es jetzt indem Sie eine Protokollfunktion in diese handleLoadPackage
-Methode einfügen:
XposedBridge.log("Loaded app: " + lpparam.packageName);
Dadurch werden die geladenen Module gedruckt. Im Allgemeinen werden diese Protokolle in dieser Datei protokolliert: /data/data/de.robv.android.exposed.installer/log/debug.log
(über das Xposed-Installationsprogramm leicht zugänglich).
SCHRITT 9: Führen Sie den folgenden Code aus:
Wenn Sie dies direkt versuchen Führen Sie dies aus dem Android Studio, Sie werden diesen Fehler erhalten. Was in Ordnung ist, weil wir gerade keine Aktivitäten haben.
Keine Sorge, ich habe eine Lösung. Bearbeiten Sie einfach die Konfiguration ausführen und ändern Sie die Startoption von Standardaktivität in Nichts und wählen Sie OK.
Versuchen Sie nun erneut, (Windows: Umschalt + F10) auszuführen.
Bei erfolgreicher Ausführung auf Ihrem Gerät haben Sie ‚ Dieses Modul wird in der Modulliste der Xposed Installer-App angezeigt. Wie im folgenden Bild gezeigt, können Sie auch den Beschreibungstext sehen, den wir in die Manifestdatei eingegeben haben.
Aktivieren Sie dieses Modul einfach, indem Sie das Kontrollkästchen aktivieren und das Gerät neu starten.Öffnen Sie nach dem Neustart die Xposed Installer-Anwendung und öffnen Sie die Protokolle (Sie können auch die oben erwähnte Protokolldatei als Pfad öffnen). Sie werden folgende Zeilen sehen:
Nachdem Sie nun wissen, wie das Xposed-Modul erstellt und ausgeführt wird, können wir uns den Code der Statusleiste genauer ansehen und einige unserer eigenen Implementierungen anwenden.
SCHRITT – 10: Eingraben in den Code der Statusleiste:
Nun sind wir daran interessiert, die Uhr (den Text) aus der Statusleiste (die sich in Paket). Wie Sie wissen, ist Android eine Open-Source-Betriebsquelle, sodass Sie die Insider-Informationen des Codes sehen können. Sie können den Quellcode von Android von diesem Link herunterladen. Abhängig von Ihrer Android-Version und Ihrem Rom können sich einige Änderungen ergeben. Ab sofort sind wir nur noch daran interessiert, den Code unserer Uhr zu finden. Irgendwo im Paket com.android.systemui
befindet sich eine Clock.java
-Klasse, und diese Klasse erweitert TextView
dass Sie dies ähnlich wie eine Textansicht behandeln können. Dies ist der Link zu dieser Klasse. Es gibt eine Methode, die die Uhrzeit in der Statusleiste aktualisiert, deren Name updateClock()
lautet. Schauen Sie sich das folgende Snippet an:
Nun, was wollen wir? Wir möchten unseren Code ausführen, wenn diese Methode ausgeführt wird. Was wir im nächsten Schritt tun werden, der auch als Verknüpfen einer Methode bezeichnet wird.
SCHRITT 11: Verknüpfen der Methode:
Die XposedHelper
ist eine Klasse, die einige Hilfsmethoden bereitstellt. Eine Hilfsmethode, die wir benötigen, ist findAndHookMethod
, die den vollständigen Klassennamen in String
, Klassenlader, verwendet (wir können ihn von XC_LoadPackage.LoadPackageParam
von handleLoadPackage
), dem Methodennamen, den wir verfolgen möchten (in unserem Fall updateClock
) in String
und XC_MethodHook
Rückruf (der einfach ein Rückruf ist). Unten sehen Sie unseren Code
Im obigen Code sehen Sie, dass es zwei Methoden gibt, die ich in der anonymen Klasse XC_MethodHook
implementiert habe: beforeHookedMethod
und afterHookedMethod
. Wie der Name schon sagt, wird zuerst die Methode vor der Hook-Methode und die letztere nach der Hook-Methode ausgeführt (in unserem Fall updateClock
). Die Parameter für Argumente und Rückgabetypen werden vom Argument MethodHookParam
behandelt. Ab sofort möchten wir nur noch die Farbe der Uhr der Statusleiste ändern. Wir benötigen lediglich afterHookedMethod
.
Wir benötigen Zugriff auf diese TextView
Objekt, das wir von param.thisObject
erhalten können – dies entspricht dem this
Schlüsselwort in Clock.java
Klasse. Dann können wir es in TextView
umwandeln und dann einfach die Farbe dieses TextView
-Objekts ändern und den Text wie ich ändern :
SCHRITT – 12: Führen Sie das Modul aus:
Führen Sie den Code aus und starten Sie Ihr Gerät erneut. Sie können Ihre Uhr in Rot und den angehängten Emoji-Text sehen.
Das war’s !! Ich weiß, dass ein Neustart scheiße ist! Aber hey, du hast dein eigenes Xposed-Modul erstellt, ist das nicht großartig? !!