flesh out ABI non-isolate feature

Non-isolate feature means that a split can access the resources,
java calls, and native calls in the other splits.  This patch
focuses on adding tests for the non-isolate feature.

This patch creates tests to verify how ABI splits can access each ABI
split.

There are four roles that are jni, number_provider_a,
number_provider_b, and number_proxy. Each role has its own
apk and so file. There are four functions in jni.
* get_number_a_via_proxy
    using number_proxy
* get_number_b_via_proxy
    using number_proxy
* get_number_a_from_provider
    using number_provider_a
* get_number_b_from_provider
    using number_provider_b

The relationships between four roles are the following:

        .-> number_provider_a
        |          ^
        |          |
    jni +-> number_proxy
        |          |
        |          V
        .-> number_provider_b

Test: TID="CtsAppSecurityHostTestCases"; \
      TC="android.appsecurity.cts.SplitTests"; \
      METHODS="testNativeSingle_full,testNativeSingle_instant"; \
      METHODS="${METHODS},testNativeSingleNatural_full"; \
      METHODS="${METHODS},testNativeSingleNatural_instant"; \
      METHODS="${METHODS},testNativeAll_full"; \
      METHODS="${METHODS},testNativeAll_instant"; \
      METHODS="${METHODS},testNativeAllNatural_full"; \
      METHODS="${METHODS},testNativeAllNatural_instant"; \
      METHODS="${METHODS},testNativeSplitForEachSupportedAbi_full"; \
      METHODS="${METHODS},testNativeSplitForEachSupportedAbi_instant"; \
      atest "${TID}:${TC}#${METHODS}"
Bug: 173761243
Change-Id: I60610d7e56c0d1cf69bfba96b1e0cc6894273340
23 files changed