Make DocumentCursor opt-out of having a self-observer
A content observer is registered by default when setting a notification uri for a Cursor, in order to make the Cursor correctly notify listeners of all changes to its URI, not just the ones made locally. This is not required for DocumentCursor, because it already has a separate mechanism for watching for all changes made to the data backed by the cursor. This avoids DocumentProviders having to call into system_server to answer queries about directory trees, which can otherwise add up to significant amounts of time for large directory trees. In my tests, this improves the performance of iterating through a directory by roughly 20%. This number is likely to be higher on non-test devices, that probably see more binder contention, and will also depend on the structure of the file tree. Bug: 130276310 Test: SAF test app Change-Id: I386363b0608c420e9847caf6fbf6686641c955e2
Loading
Please register or sign in to comment