Explicitly keep default constructor in rules without members

R8 implicitly keeps the default constructor when no member rules are specified. Future versions of R8 will require apps to explicitly keep the default constructors that are required for the build to work.

This conservatively changes all keep rules that currently keep the default constructor to explicitly keep the default constructor.

Future work will attempt to tighten up the rules that do not require the default constructor to be kept.

Bug: 373579455
Bug: 387953561
Test: existing
Change-Id: Ibfb967417af6914cdf04a7f242fd6773d7dd8b7a
1 file changed
tree: e4cd6e391797775bfbd72222dc79e7c25f456569
  1. qc/
  2. res/
  3. src/
  4. test_common/
  5. tests/
  6. tools/
  7. Android.bp
  8. AndroidManifest.xml
  9. CleanSpec.mk
  10. contactsprovider_flags.aconfig
  11. contactsproviderutils.sh
  12. logging.sh
  13. OWNERS
  14. PREUPLOAD.cfg
  15. proguard.flags
  16. README-tests.md
  17. README.md
  18. TEST_MAPPING
README.md

Debugging Tools

Enable all verbose logs

Running ./logging.sh will enable all verbose logs for the queries in the provider. More details in the script itself.

Querying the database

There are 2 different ways to easily query the database, qc and contatcsproviderutils.sh.

QC usage

qc queries the deivce directly. For usage, append the query in single quotes after the command:

e.g.

qc/qc 'select * from raw_contacts'

or to get all the tables

qc/qc '.tables'

QC support SQLite language, but it might have some limitations working with complex nested queries.

contactsproviderutils.sh usage

This script downlaods the database locally and logins into a local version. It is also possible to push any change back to the device.

  • Add tools to path
    source contactsproviderutils.sh
    
  • Pull contacts2.db and query:
    sqlite3-pull
    
    This will open a sql terminal with rlwrap which can be easily used for queries.
  • Pull contacts2.db and query with a graphical interface:
    sqlitebrowser-pull
    
  • Push local updates to the device:
    sqlite3-push