The core idea behind the library is to keep it
- Small: with minimal dependencies and not too many functions for those libraries maintaining a single dex.
- Modular: customers should be able to use as much -- or as little -- as they like, even if it means more build files for the library authors.
- ThreadSafe: Metrics Collectors should be completely thread safe.
- Minimal resource impact: Collectors should be cheap to query and should try to minimize memory allocated. If there's no choice but to have something be expensive, then document that explictly.
- Well tested: structure the code to be easily testable, and make sure all the tricky bits are covered.
We actively welcome your pull requests.
- Fork the repo and create your branch from
master
. - If you've added code that should be tested, add tests.
- If you've changed APIs, update the documentation.
- Ensure the test suite passes.
- Make sure your code lints.
- If you haven't already, complete the Contributor License Agreement ("CLA").
In order to accept your pull request, we need you to submit a CLA. You only need to do this once to work on any of Facebook's open source projects.
Complete your CLA here: https://code.facebook.com/cla
We use GitHub issues to track public bugs. Please ensure your description is clear and has sufficient instructions to be able to reproduce the issue.
Facebook has a bounty program for the safe disclosure of security bugs. In those cases, please go through the process outlined on that page and do not file a public issue.
- We use the Google Java Style to avoid thinking about formatting.
- Just run the formatter before uploading your patch.
- PS. There's an IntelliJ Plugin as well.
By contributing to Battery Metrics, you agree that your contributions will be licensed under the LICENSE file in the root directory of this source tree.