awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
ACRA avatar

ACRA/acra

0
View on GitHub↗
6,495 stars·1,129 forks·Kotlin·Apache-2.0·5 viewswww.acra.ch↗

Acra

Acra is an Android crash reporting framework and diagnostic data collector designed to detect failures and capture device diagnostics, system logs, and application state. It serves as an embeddable library for capturing and processing crash reports, providing a pipeline to send this data to custom backends or via email.

The project features a plugin-based sender architecture that allows reports to be routed through HTTP endpoints, email clients, or proprietary backend implementations. It includes a user-controlled reporting system with preference toggles and interactive dialogs to manage user consent and report frequency.

The framework covers a broad range of diagnostic capabilities, including the collection of system logcat output, device identifiers, and application preferences. It manages the report lifecycle through file-based persistence and synchronized queuing to ensure delivery after application restarts. The system also includes security primitives for report encryption and traffic management to limit the frequency of reports sent from a single device.

Features

  • Crash Reporting - Provides a comprehensive framework for collecting and managing crash reports from Android applications.
  • Delivery Senders - Provides a pluggable architecture for routing crash reports through HTTP, email, or custom backends.
  • Crash Diagnostics - Collects application logs, system events, and device metadata to provide deep context for debugging failures.
  • Consent Management - Provides preference toggles for users to manage consent for reporting and data collection.
  • Metadata Attachments - Adds key-value traces and breadcrumbs to reports to track events leading to failure.
  • Reporting Plugins - Defines a pluggable sender interface allowing custom implementations for HTTP, email, or proprietary backends.
  • Local Report Persistence - Persists crash reports as files on disk before transmission to enable recovery after application restarts.
  • Report Delivery Routing - Routes crash data through HTTP endpoints, email clients, or custom backends with support for offline queuing.
  • Crash Reporters - Collects detailed device and error data during an application failure and transmits it to a backend.
  • Telemetry and Log Collectors - Extracts system logcat output, device identifiers, and application preferences without relying on reflection.
  • Application Logging - Appends the latest lines from custom application log files to generated crash reports.
  • Android System Log Captures - Extracts and filters system logcat output from Android devices to provide diagnostic context for crashes.
  • Scheduled Report Deliveries - Schedules report transmission based on network availability and ensures delivery after application restarts.
  • System - Collects persisted system-tagged events from the Android DropBoxManager for deep failure diagnostics.
  • Application Preferences - Collects application preference files for inclusion in crash reports with privacy filtering.
  • User Preference Configurations - Uses SharedPreferences to store user consent and data exclusion rules for runtime control.
  • Android Configuration Management - Stores report toggles and sensitive key exclusions within Android SharedPreferences.
  • User-Facing Consent Dialogs - Shows a customizable dialog requesting user consent and optional comments before sending reports.
  • Device Identification Utilities - Adds unique hardware identifiers to reports for device-level tracking.
  • Interactive Report Notifications - Triggers a system notification that allows users to send or discard a report with optional comments.
  • Sensitive Data Protection - Implements privacy protection by removing sensitive preference keys matching regular expressions from crash reports.
  • UI Lifecycle Integration - Triggers crash dialogs only when the application is in the foreground to avoid memory leaks.
  • Synchronized Queues - Uses a thread-safe queue to manage the flow of reports during concurrent background transmission.
  • File-Based Persistence - Persists captured crash data to local disk to ensure delivery after application restarts.
  • Crash Submission Interfaces - Displays a dialog after a failure that allows users to add comments to the report.
  • Customizable Report Schemas - Allows developers to define which specific data fields and system information are collected.
  • Pluggable Report Senders - Implements a plugin-based architecture for routing crash data via HTTP, email, or proprietary backends.
  • Error Reporting - Allows manual reporting of exceptions caught in try-catch blocks or other unexpected application states.
  • Report Rate Limiting - Restricts the number of reports sent from a single device to prevent backend flooding.
  • Arbitrary File Attachments - Includes specific device files via URIs or content providers as report attachments.
  • User-Controlled Reporting Interfaces - Provides preference toggles and interactive dialogs for managing user consent and crash report frequency.
  • Mobile Email Routing - Delivers crash reports via the device email client to avoid requiring internet permissions.
  • ProGuard Configurations - Provides crash reporting configuration rules.
  • Testing and Debugging Tools - Library for automated crash reporting and diagnostics.
  • Mobile UI & Components - Application Crash Reports for Android

Star history

Star history chart for acra/acraStar history chart for acra/acra

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Frequently asked questions

What does acra/acra do?

Acra is an Android crash reporting framework and diagnostic data collector designed to detect failures and capture device diagnostics, system logs, and application state. It serves as an embeddable library for capturing and processing crash reports, providing a pipeline to send this data to custom backends or via email.

What are the main features of acra/acra?

The main features of acra/acra are: Crash Reporting, Delivery Senders, Crash Diagnostics, Consent Management, Metadata Attachments, Reporting Plugins, Local Report Persistence, Report Delivery Routing.

What are some open-source alternatives to acra/acra?

Open-source alternatives to acra/acra include: kstenerud/kscrash — KSCrash is a C++ crash reporting library and remote reporting framework designed to capture application crashes and… countly/countly-server — Countly is a self-hosted product analytics and engagement platform that tracks user behavior across mobile, web, and… bombela/backward-cpp — backward-cpp is a C++ stack trace library and debugging utility designed to capture, resolve, and print detailed… mozilla-firefox/firefox — Firefox is a cross-platform web browser engine designed to render web content, execute JavaScript, and manage secure… iqiyi/xcrash — xCrash is an Android crash reporting SDK and diagnostic tool designed to monitor application health. It captures Java… ereza/customactivityoncrash — CustomActivityOnCrash is an Android crash handling library that replaces the default system crash dialog with a custom…

Open-source alternatives to Acra

Similar open-source projects, ranked by how many features they share with Acra.
  • kstenerud/kscrashkstenerud avatar

    kstenerud/KSCrash

    4,462View on GitHub↗

    KSCrash is a C++ crash reporting library and remote reporting framework designed to capture application crashes and signals. It functions as an async-safe crash reporter that traps exceptions and deadlocks to ensure reports are generated during critical failures. The system includes a memory diagnostics tool for tracking memory pressure and identifying zombie objects to diagnose memory-related terminations. It also features a symbol demangling tool that converts mangled C++ and Swift function names into human-readable strings for stack trace analysis. The project provides comprehensive monit

    Objective-C
    View on GitHub↗4,462
  • countly/countly-servercountly avatar

    countly/countly-server

    5,875View on GitHub↗

    Countly is a self-hosted product analytics and engagement platform that tracks user behavior across mobile, web, and desktop applications. It collects and analyzes device properties, user actions, and session lifecycle data to understand engagement patterns, while also providing crash reporting, push notification delivery, and A/B testing capabilities. The platform is designed for privacy-first deployment, with built-in consent management and the ability to run entirely on private infrastructure. The platform distinguishes itself through its comprehensive feature set that combines analytics w

    JavaScript
    View on GitHub↗5,875
  • bombela/backward-cppbombela avatar

    bombela/backward-cpp

    4,285View on GitHub↗

    backward-cpp is a C++ stack trace library and debugging utility designed to capture, resolve, and print detailed execution traces and crash reports. It functions as a crash reporter and call stack printer that translates raw memory addresses into human-readable function names, filenames, and line numbers. The project provides automated crash reporting by registering system handlers for fatal errors, such as segmentation faults, to automatically generate execution traces upon program failure. It distinguishes itself by extracting source file fragments from disk to display specific lines of cod

    C++
    View on GitHub↗4,285
  • mozilla-firefox/firefoxmozilla-firefox avatar

    mozilla-firefox/firefox

    11,305View on GitHub↗

    Firefox is a cross-platform web browser engine designed to render web content, execute JavaScript, and manage secure browsing sessions. It utilizes a multi-process isolation architecture that distributes browser tasks across independent operating system processes to ensure stability and prevent site-specific failures from impacting the entire application. The engine incorporates a sandboxed execution environment to restrict web content and untrusted scripts to isolated memory compartments, enforcing security policies that prevent unauthorized access to system resources. The project distinguis

    JavaScript
    View on GitHub↗11,305
See all 30 alternatives to Acra→