simpleperf: Improve the way downloading native libs on device.

Apks are usually built with stripped native libs, so app_profiler.py
supports downloading native libs on device, and pass the native lib
directory to simpleperf via --symfs option. However, it has below
problems:
1. It needs to download native libs each time profiling.
2. It needs to wait until the app starts and read the /proc/pid/maps to
know which native libs are needed.

This patch solves the problems as below:
1. When app_profiler.py downloads native libs, it will write a
build_id_list file in the native lib directory, which is a map from
build_id to debug library path.
2. Simpleperf searchs build_id_list in the native lib directory, and
uses build_id to find the debug files it needs.
3. Before downloading libs, app_profiler.py checks build_id_list to
find libs available on device, thus avoids downloading libs more than
once.

Add tests in simpleperf_unit_test and test.py.
Update demos to Android Studio 3.2.
In profiling.gradle, remove the logic preventing stripping native
libs in apk to test this patch. Another reason to remove it is because
I found it affects release builds.

Bug: http://b/69165587
Test: run simpleperf_unit_test && python test.py.

Change-Id: I8ecf7ba2c0f58c131c261c1b4546f4916aea1f82
39 files changed