Refactor Memory Balloon control routines

* Created MemBalloonController as the single place for all routines
* Stop using binder; it actually wasn't a binder object.
* The periodic inflation is handled using scheduled executor service

Bug: 402025547
Bug: 392791968
Test: intentionally set the period to 5s (for testing purpose), start
the VM, go to background, and then come back. The log is as follows:

03-13 15:59:30.631  8298  8361 V VmTerminalApp: app resumed. deflating mem balloon to the minimum
03-13 15:59:51.863  8298  8361 V VmTerminalApp: inflating mem balloon to 10 %
03-13 15:59:56.863  8298  8361 V VmTerminalApp: inflating mem balloon to 15 %
03-13 16:00:01.864  8298  8361 V VmTerminalApp: inflating mem balloon to 20 %
03-13 16:00:06.864  8298  8361 V VmTerminalApp: inflating mem balloon to 25 %
03-13 16:00:08.315  8298  8361 V VmTerminalApp: app resumed. deflating mem balloon to the minimum
03-13 16:00:22.002  8298  8361 V VmTerminalApp: inflating mem balloon to 10 %
03-13 16:00:27.003  8298  8361 V VmTerminalApp: inflating mem balloon to 15 %
03-13 16:00:32.003  8298  8361 V VmTerminalApp: inflating mem balloon to 20 %
03-13 16:00:37.003  8298  8361 V VmTerminalApp: inflating mem balloon to 25 %
03-13 16:00:42.003  8298  8361 V VmTerminalApp: inflating mem balloon to 30 %

Change-Id: I05e1f8d3635d14924fc1b7b4222d7bbd7e57b6c5
4 files changed
tree: ec041777e5d5d48d05dfe89df4b84a361f14b8c1
  1. android/
  2. build/
  3. docs/
  4. guest/
  5. libs/
  6. microfuchsia/
  7. tests/
  8. .clang-format
  9. .gitignore
  10. Android.bp
  11. dice_for_avf_guest.cddl
  12. OWNERS
  13. PREUPLOAD.cfg
  14. README.md
  15. rustfmt.toml
  16. TEST_MAPPING
README.md

Android Virtualization Framework (AVF)

Android Virtualization Framework (AVF) provides secure and private execution environments for executing code. AVF is ideal for security-oriented use cases that require stronger isolation assurances over those offered by Android’s app sandbox.

Visit our public doc site to learn more about what AVF is, what it is for, and how it is structured. This repository contains source code for userspace components of AVF.

If you want a quick start, see the getting started guideline and follow the steps there.

For in-depth explanations about individual topics and components, visit the following links.

AVF components:

AVF APIs:

How-Tos: