Reduce binary size (1.6MB -> 600K) by removing protos/trace:lite dep

This CL removes any dependency from {traced, traced_probes, perfetto}
to //protos/trace:lite. Neither of them really require such dependency
and it causes significant binary bloat due to all the hundreds
.pb.{cc,h} generated by libprotobuf for any possible trace packet.
Specifically:

traced_probes: needs only to depend on the "zero" protos, for writing.

traced: needs the official protobuf only for the following reasons:
  - Packet validation (e.g., trusted uid)
  - Directly injecting some special packets (TraceConfig, uid, clocks)
Neither of them requires really the hundreds trace packets. They
can just use TrustedPacket, which doesn't pull in the other packets.

perfetto: it requires only TraceConfig, but that is a separate smaller
target.

Bug: 77316877
Test: pefetto_unittests / perfetto_integrationtests
Change-Id: I6e01b47af3313887c685ffb4614009910413bbea
20 files changed
tree: b698d59ff78e68429be5966ea98639eb9cf35407
  1. build_overrides/
  2. buildtools/
  3. debian/
  4. docs/
  5. gn/
  6. include/
  7. infra/
  8. protos/
  9. src/
  10. test/
  11. tools/
  12. .clang-format
  13. .gitignore
  14. .gn
  15. .travis.yml
  16. Android.bp
  17. Android.bp.extras
  18. BUILD.gn
  19. codereview.settings
  20. MODULE_LICENSE_APACHE2
  21. NOTICE
  22. OWNERS
  23. perfetto.rc
  24. PRESUBMIT.py
  25. README.chromium
  26. README.md
README.md

Perfetto - Performance instrumentation and logging for POSIX platforms

This project is meant to be built both as part of the Android tree and from a standalone checkout

For internal docs see this page

Supported platforms

Android is the platform targeted in the first milestones. Right now Linux desktop and OSX are maintained best-effort.

Contributing

This project uses Android AOSP Gerrit for code reviews and uses the Google C++ style. Currently targets -std=c++11.

You can use both git cl upload from Chromium depot tools or Android repo to upload patches.

git cl is quite convenient as it supports code auto-formatting via git cl format.

See https://source.android.com/source/contributing for more details about external contributions and CLA signing.

Build instructions

See docs/build_instructions.md

Running Perfetto

See docs/running_perfetto.md

Continuous integration

Continuous build and test coverage is available at perfetto-ci.appspot.com. Trybots: CLs uploaded to gerrit are automatically submitted to TravisCI within one minute and made available on the CI page above. The relevant code lives in the infra/ directory.

Run tests

On the host (Linux / OSX)

$ tools/ninja -C out/default (tracing_unittests | tracing_benchmarks)
$ out/default/tracing_unittests --gtest_help

On Android

Either connect a device in ADB mode or use the bundled emulator.

To start the emulator:
$ tools/run_android_emulator (arm | arm64) &

To run the tests (either on the emulator or physical device):
$ tools/run_android_test out/default tracing_unittests