Das Ziel des Firefox Reality-Projekts besteht darin, einen voll ausgestatteten Browser ausschließlich für eigenständige AR- und VR-Headsets zu entwickeln.
Sie finden uns unter #fxr:mozilla.org in der Matrix (Anleitung zum Beitritt), auf Twitter @MozillaReality und unter [email protected].
Laden Sie Entwickler-APKs für Firefox Reality herunter , die aus der neuesten Version generiert wurden.
Firefox Reality unterstützt Chinesisch (China), Chinesisch (Taiwan), Englisch, Französisch, Deutsch, Italienisch, Japanisch, Russisch und Spanisch für Benutzeroberfläche, Sprachsuche und Texteingabe. Die Lokalisierung erfolgt durch Mozillas großartige Community freiwilliger Lokalisierer.
Weitere Informationen zur Lokalisierung, zur Funktionsweise im Firefox Reality-Projekt und zur korrekten Bearbeitung von lokalisierbarem Text in der Anwendung finden Sie auf der Wiki-Seite zur Lokalisierung.
Klonen Sie FirefoxReality.
git clone [email protected]:MozillaReality/FirefoxReality.git
cd FirefoxReality
Klonen Sie das Drittanbieter-Repository.
Wenn Sie für Oculus, Snapdragon VR oder VIVE entwickeln, müssen Sie das Repo mit SDK-Dateien von Drittanbietern klonen.
git clone [email protected]:MozillaReality/FirefoxReality-android-third-party.git third_party
Dieses Repo steht nur Mozilla-Mitarbeitern zur Verfügung. Wenn Sie Zugriff auf das entsprechende SDK, aber nicht auf dieses Repo haben, können Sie diese hier manuell platzieren:
third_party/ovr_mobile/
für Oculus (sollte einen VrApi
Ordner enthalten)third_party/wavesdk/
für Vive (sollte unter anderem einen build
Ordner enthalten) Das Repo third_party
kann wie folgt aktualisiert werden:
pushd third_party && git fetch && git checkout main && git rebase origin/main && popd
Git-Submodule abrufen.
Möglicherweise müssen Sie eine Zwei-Faktor-Authentifizierung für die Befehlszeile einrichten.
git submodule update --init --recursive
Sie können für verschiedene Geräte bauen:
oculusvr
: Samsung Gear VR und Oculus Gowavevr
: VIVE FocusZum Testen auf einem Nicht-VR-Gerät:
noapi
: Läuft auf Standard-Android-Telefonen ohne HeadsetBuild für Oculus Mobile und WaveVR erfordert Zugriff auf die jeweiligen SDKs, die nicht in diesem Repo enthalten sind.
Die Befehlszeilenversion von gradlew
erfordert JDK 8 von Oracle. Wenn eine Fehlermeldung angezeigt wird, dass Gradle Ihre Java-Version nicht versteht, überprüfen Sie, welche Version Sie verwenden, indem Sie java -showversion
oder java -version
ausführen. Sie verwenden wahrscheinlich JDK 9 oder 10, was nicht funktioniert.
Öffnen Sie das Projekt mit Android Studio , erstellen Sie es und führen Sie es aus. Abhängig davon, was Sie bereits in Android Studio installiert haben, schlägt der Build möglicherweise fehl und Sie werden dann möglicherweise aufgefordert, Abhängigkeiten zu installieren. Machen Sie einfach weiter so, wie es vorgeschlagen wird. Um das Gerät auszuwählen, für das erstellt werden soll, gehen Sie zu Tool Windows > Build Variants
und wählen Sie eine Build-Variante aus, die Ihrem Gerät entspricht.
Wenn Sie FirefoxReality für WaveVR SDK erstellen möchten:
Laden Sie das VIVE Wave SDK von den VIVE Developer Resources herunter und entpacken Sie es. Führen Sie dann im Projektverzeichnis der obersten Ebene Folgendes aus:
mkdir -p third_party/wavesdk
cp /path/to/the/sdk/2.0.32/SDK/libs/wvr_client.aar third_party/wavesdk
cp ./extra/wavesdk/build.gradle ./third_party/wavesdk
Stellen Sie sicher, dass Sie die Build-Variante in Android Studio auf wavevrDebug
setzen, bevor Sie das Projekt erstellen.
Möglicherweise möchten Sie dieses Projekt anhand lokaler Versionen einiger Abhängigkeiten erstellen. Dies könnte entweder durch die Verwendung eines lokalen Maven-Repositorys (ziemlich umständlich) oder über die Abhängigkeitsersetzungen von Gradle (überhaupt nicht umständlich!) erfolgen.
Derzeit wird der Ersetzungsfluss für einige der Kernabhängigkeiten über Konfigurationsflags in local.properties
optimiert. Sie können einen lokalen Checkout der folgenden Abhängigkeiten erstellen, indem Sie deren lokale Pfade angeben:
dependencySubstitutions.geckoviewTopsrcdir=/path/to/mozilla-central
(und optional dependencySubstitutions.geckoviewTopobjdir=/path/to/topobjdir
). Siehe Fehler 1533465. Vergessen Sie nicht, nach der Änderung von local.properties
eine Gradle-Synchronisierung in Android Studio durchzuführen. Wenn Sie Ersetzungen angegeben haben, werden diese in der Modulliste angezeigt und Sie können sie in einem einzigen Android Studio-Fenster ändern.
Sie können ein Dev-Anwendungs-ID-Sufix aktivieren, um sowohl Dev- als auch Produktions-Builds gleichzeitig zu installieren. Sie müssen nur diese Eigenschaft zu Ihrer user.properties
Datei hinzufügen:
simultaneousDevProduction =true
Lokale Release-Builds können nützlich sein, um die Leistung zu messen oder Probleme zu beheben, die nur in Release-Builds auftreten. Anstatt sich mit Release-Schlüsseln herumzuschlagen, können Sie das Testen vereinfachen, indem Sie diese Eigenschaft zu Ihrer user.properties
Datei hinzufügen:
useDebugSigningOnRelease =true
Hinweis: Die mit einem Debug-Keystore generierten Release-APKs können nicht für die Produktion verwendet werden.
Die ETC2-Komprimierung wird verwendet, um die Leistung und Speichernutzung zu verbessern. Rohe Assets werden im Ordner uncompressed_assets
abgelegt. Sie können die komprimierten Texturen mit dem Kompressor-Dienstprogramm in tools/compressor
generieren. Sie müssen etc2comp einrichten und in Ihrem PATH verfügbar machen, bevor Sie das Skript ausführen. Führen Sie diesen Befehl aus, um die komprimierten Assets zu generieren:
cd tools/compressor
npm install
npm run compress
Sie können die OpenXR-API für Oculus aktivieren, indem Sie diese Eigenschaft zu Ihrer user.properties
Datei hinzufügen:
openxr =true
Device supports , but APK only supports armeabi-v7a[...]
Aktivieren Sie das USB-Remote-Debugging auf dem Gerät.
Firefox > Web Developer > WebIDE > Performance
bleibt hängen, wenn „Profil anhalten und anzeigen“ ausgegraut istStarten Sie FxR neu und schließen Sie die WebIDE-Seite und öffnen Sie sie erneut.
Tool Windows > Build Variants
ist leerAndroid Studio > Check for Updates…
.File > Sync Project with Gradle Files
aus. pro hand -p true -s false SIGILL
adb shell am start -a android.intent.action.VIEW -d "https://aframe.io" org.mozilla.vrbrowser/org.mozilla.vrbrowser.VRBrowserActivity
verwenden, um eine URL von der Befehlszeile zu ladenadb shell am start -a android.intent.action.VIEW -n org.mozilla.vrbrowser/org.mozilla.vrbrowser.VRBrowserActivity -e homepage "https://example.com"
verwenden, um die Homepage zu überschreibenadb shell setprop debug.oculus.enableVideoCapture 1
verwenden, um ein Video auf der Oculus Go aufzunehmen. Denken Sie daran adb shell setprop debug.oculus.enableVideoCapture 0
auszuführen, um die Aufzeichnung des Videos zu stoppen.Sharing > Record Video
user.properties
disableCrashRestart=true
festlegen, um den App-Neustart bei einem Absturz zu deaktivieren. Um mit Servo-Unterstützung zu kompilieren, erstellen Sie eine Datei mit dem Namen user.properties
im Projektverzeichnis der obersten Ebene und fügen Sie enableServo=1
hinzu. Um dann Servo in Firefox Reality zu aktivieren, gehen Sie in den Einstellungen zum Bedienfeld „Entwickleroptionen“ und schalten Sie die Option „Servo“ um. Anschließend wird der Navigationsleiste eine neue Schaltfläche hinzugefügt. Durch Klicken auf diese Schaltfläche wird die aktuelle Seite mit Servo neu geladen.