README.md (2194B)
[Android Components](../../../README.md) > Support > AppServices
A collection of helpers for integrating native Application Services' components.
Usage
During Application initialization (typically in Application#onCreate), add the following line:
val configuration = Config(
crashReporting = CustomCrashReporter(),
logLevel = Log.Priority.WARN,
)
AppServicesInitializer.init(configuration)
You may also desire to initialize the networking layer with a concept-fetch implementation separately. Although this is not part of the initialization order that is required, doing so as soon as possible means that any code in your native layer would be able to use the shared network stack ASAP.
RustHttpConfig.setClient(lazy { HttpClient() })
// To ensure emulators still work, add something similar.
if (isDebug) {
RustHttpConfig.allowEmulatorLoopback()
}
Setting up the dependency
Use Gradle to download the library from maven.mozilla.org (Setup repository):
implementation "org.mozilla.components:support-appservices:{latest-version}"
Rust Log
A bridge allowing log messages from Rust code to be sent to the log system in support-base
Rust HTTP
A bridge allowing configuration of Rust HTTP requests without directly depending on the application services library.
This essentially wraps the rust HTTP config library so that consumers who don't use a custom megazord don't have to depend on application-services code.
It's separate from RustLog since it's plausible users might only want to initialize logging, and not use any app-services network functionality.
Rust Errors
A bridge for reporting Rust errors to Sentry/Glean.
This component defines and installs an application-services ApplicationErrorReporter class that:
- Forwards error reports and breadcrumbs to
SentryServices - Reports error counts to Glean
License
This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/