Mobile/GeckoView: Difference between revisions
(Update Firefox Android Team mailing list) |
Ljcool2006 (talk | contribs) (→Documentation and Examples: fix link) |
||
Line 119: | Line 119: | ||
'''Bugs''' | '''Bugs''' | ||
* [https://bugzilla.mozilla.org/enter_bug.cgi?product= | * [https://bugzilla.mozilla.org/enter_bug.cgi?product=GeckoView&component=General File a new GeckoView bug] | ||
* [https://bugzilla.mozilla.org/buglist.cgi?product=GeckoView&component=General&resolution=---&list_id=14532935 All GeckoView Bugs] | * [https://bugzilla.mozilla.org/buglist.cgi?product=GeckoView&component=General&resolution=---&list_id=14532935 All GeckoView Bugs] | ||
* [[Mobile/GeckoView/Bugs|GeckoView Bug Dashboard]] 🐛 | * [[Mobile/GeckoView/Bugs|GeckoView Bug Dashboard]] 🐛 |
Revision as of 21:24, 29 November 2022
GeckoView wraps Mozilla's Gecko browser engine in a reusable Android library.
Mozilla uses GeckoView to power Firefox for Android, Firefox Reality, Firefox Focus, and other Android apps. GeckoView serves a similar purpose to Android's built-in WebView, but it has its own APIs and is not a drop in replacement.
Why GeckoView?
While Android offers a built-in WebView, it's not intended for building browsers, and many advanced Web APIs are disabled. Android's WebView is also a moving target: it's impossible know exactly which engine (and what version of that engine) will power a WebView on client devices.
In contrast, GeckoView is:
- Full-Featured: GeckoView is designed to expose the entire power of the Web to applications, including being suitable for building web browsers.
- Self-Contained: Because GeckoView is a standalone library that you bundle with your application, you can be confident that the code you test is the code that will actually run.
- Standards Compliant: Like Firefox, GeckoView offers excellent support for modern Web standards.
Getting Help
Interested in GeckoView? We're here to help!
If you have questions or need assistance, please reach out by:
- Talking to us in the #geckoview Matrix room
- Sending questions to the firefox-android-team@mozilla.com group mailing list
Get Started
Building a browser? Check out Android Components, our collection of ready-to-use support libraries!
Configure Gradle
1. Set the GeckoView version
Like Firefox, GeckoView has three release channels: Stable, Beta, and Nightly. Browse the Maven Repository to see currently available builds.
ext {
geckoviewChannel = "nightly"
geckoviewVersion = "70.0.20190712095934"
}
2. Add Mozilla's Maven repository
repositories {
maven {
url "https://maven.mozilla.org/maven2/"
}
}
3. Configure Java 8 support
android {
// ...
// Note: compileOptions is only required for minSdkVersion < 24
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
4. Add GeckoView Implementations
dependencies {
// ...
implementation "org.mozilla.geckoview:geckoview-${geckoviewChannel}:${geckoviewVersion}"
}
Add GeckoView to a Layout
Inside a layout .xml
file, add the following:
<org.mozilla.geckoview.GeckoView
android:id="@+id/geckoview"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
Initialize GeckoView in an Activity
1. Import the GeckoView classes inside an Activity:
import org.mozilla.geckoview.GeckoRuntime;
import org.mozilla.geckoview.GeckoSession;
import org.mozilla.geckoview.GeckoView;
2. In that activity's onCreate
function, add the following:
GeckoView view = findViewById(R.id.geckoview);
GeckoSession session = new GeckoSession();
GeckoRuntime runtime = GeckoRuntime.create(this);
session.open(runtime);
view.setSession(session);
session.loadUri("about:buildconfig"); // Or any other URL...
You're done!
Your application should now load and display a webpage inside of GeckoView.
To learn more about GeckoView's capabilities, review GeckoView's JavaDoc or the reference application.
Documentation and Examples
APIs
- GeckoView API Documentation (JavaDoc format)
- Android Components APIs
Building / Contributing
Bugs
Products / Examples
- Firefox Preview (GitHub)
- Firefox Reality (GitHub)
- Firefox Focus (GitHub)
- GeckoView Reference Application
Minimum System Requirements
- GeckoView requires Android OS version 4.1 (API Level 16) or later. Fenix and Focus support Android 5.0 (API level 21) and later.
- 32-bit ARMv7-A, 64-bit ARMv8-A (aka ARM64), 32-bit x86, or x86_64 CPU
- Minimum device specs are quad-core 1.2 GHz and 2 GB RAM (like the Moto G4 Play, E4, or E5), though Mozilla's GeckoView test devices are the Moto G5 with an octa-core 1.4 GHz CPU and 2 GB RAM and the Google Pixel 2 with an octa-core 1.9 GHz CPU and 4 GB RAM.