gitextract_9gwt80rw/ ├── .commitlintrc.yml ├── .github/ │ ├── actions/ │ │ ├── post-build/ │ │ │ └── action.yml │ │ └── pre-build/ │ │ └── action.yml │ └── workflows/ │ ├── check-build-test.yml │ └── release.yml ├── .gitignore ├── .idea/ │ └── codeStyles/ │ ├── Project.xml │ └── codeStyleConfig.xml ├── CONTRIBUTING.md ├── LICENSE.txt ├── PRIVACY.md ├── README.md ├── build.gradle ├── buildScripts/ │ └── gradle/ │ ├── common.gradle │ ├── fix_issue_1263.gradle │ ├── maven.gradle │ └── versions.properties ├── gradle/ │ └── wrapper/ │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradle.properties ├── gradlew ├── gradlew.bat ├── projects/ │ ├── sample/ │ │ ├── README.md │ │ ├── dynamic-apk/ │ │ │ ├── sample-hello-api/ │ │ │ │ ├── .gitignore │ │ │ │ ├── README.md │ │ │ │ ├── build.gradle │ │ │ │ ├── proguard-rules.pro │ │ │ │ └── src/ │ │ │ │ └── main/ │ │ │ │ ├── AndroidManifest.xml │ │ │ │ └── java/ │ │ │ │ └── com/ │ │ │ │ └── tencent/ │ │ │ │ └── shadow/ │ │ │ │ └── sample/ │ │ │ │ └── api/ │ │ │ │ └── hello/ │ │ │ │ ├── HelloFactory.java │ │ │ │ ├── IHelloWorld.java │ │ │ │ └── IHelloWorldImpl.java │ │ │ ├── sample-hello-api-holder/ │ │ │ │ ├── .gitignore │ │ │ │ ├── README.md │ │ │ │ ├── build.gradle │ │ │ │ ├── proguard-rules.pro │ │ │ │ └── src/ │ │ │ │ └── main/ │ │ │ │ ├── AndroidManifest.xml │ │ │ │ └── java/ │ │ │ │ └── com/ │ │ │ │ └── tencent/ │ │ │ │ └── shadow/ │ │ │ │ └── sample/ │ │ │ │ └── apk/ │ │ │ │ └── hello/ │ │ │ │ ├── DynamicHello.java │ │ │ │ ├── HelloImplLoader.java │ │ │ │ └── HelloWorldUpdater.java │ │ │ ├── sample-hello-apk/ │ │ │ │ ├── .gitignore │ │ │ │ ├── build.gradle │ │ │ │ ├── proguard-rules.pro │ │ │ │ └── src/ │ │ │ │ └── main/ │ │ │ │ ├── AndroidManifest.xml │ │ │ │ ├── java/ │ │ │ │ │ └── com/ │ │ │ │ │ └── tencent/ │ │ │ │ │ └── shadow/ │ │ │ │ │ ├── dynamic/ │ │ │ │ │ │ └── impl/ │ │ │ │ │ │ ├── HelloFactoryImpl.java │ │ │ │ │ │ └── WhiteList.java │ │ │ │ │ └── sample/ │ │ │ │ │ └── api/ │ │ │ │ │ └── hello/ │ │ │ │ │ └── SampleHelloWorld.java │ │ │ │ └── res/ │ │ │ │ └── layout/ │ │ │ │ └── activity_load_plugin.xml │ │ │ └── sample-hello-host/ │ │ │ ├── .gitignore │ │ │ ├── build.gradle │ │ │ ├── proguard-rules.pro │ │ │ └── src/ │ │ │ └── main/ │ │ │ ├── AndroidManifest.xml │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── tencent/ │ │ │ └── shadow/ │ │ │ └── sample/ │ │ │ └── host/ │ │ │ ├── AndroidLogLoggerFactory.java │ │ │ ├── HostApplication.java │ │ │ ├── MainActivity.java │ │ │ ├── PluginHelper.java │ │ │ └── api/ │ │ │ ├── FixedPathPmUpdater.java │ │ │ └── HelloWorldApiHolder.java │ │ ├── maven/ │ │ │ ├── host-project/ │ │ │ │ ├── .gitignore │ │ │ │ ├── build.gradle │ │ │ │ ├── gradle/ │ │ │ │ │ └── wrapper/ │ │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ │ └── gradle-wrapper.properties │ │ │ │ ├── gradle.properties │ │ │ │ ├── gradlew │ │ │ │ ├── gradlew.bat │ │ │ │ ├── introduce-shadow-lib/ │ │ │ │ │ ├── .gitignore │ │ │ │ │ ├── build.gradle │ │ │ │ │ ├── proguard-rules.pro │ │ │ │ │ └── src/ │ │ │ │ │ └── main/ │ │ │ │ │ ├── AndroidManifest.xml │ │ │ │ │ ├── java/ │ │ │ │ │ │ └── com/ │ │ │ │ │ │ └── tencent/ │ │ │ │ │ │ └── shadow/ │ │ │ │ │ │ └── sample/ │ │ │ │ │ │ └── introduce_shadow_lib/ │ │ │ │ │ │ ├── AndroidLoggerFactory.java │ │ │ │ │ │ ├── FixedPathPmUpdater.java │ │ │ │ │ │ ├── InitApplication.java │ │ │ │ │ │ └── MainPluginProcessService.java │ │ │ │ │ └── res/ │ │ │ │ │ └── values/ │ │ │ │ │ └── themes.xml │ │ │ │ ├── sample-host/ │ │ │ │ │ ├── .gitignore │ │ │ │ │ ├── build.gradle │ │ │ │ │ ├── proguard-rules.pro │ │ │ │ │ └── src/ │ │ │ │ │ └── main/ │ │ │ │ │ ├── AndroidManifest.xml │ │ │ │ │ └── java/ │ │ │ │ │ └── com/ │ │ │ │ │ └── tencent/ │ │ │ │ │ └── shadow/ │ │ │ │ │ └── sample/ │ │ │ │ │ └── host/ │ │ │ │ │ ├── MainActivity.java │ │ │ │ │ └── MyApplication.java │ │ │ │ └── settings.gradle │ │ │ ├── manager-project/ │ │ │ │ ├── .gitignore │ │ │ │ ├── build.gradle │ │ │ │ ├── gradle/ │ │ │ │ │ └── wrapper/ │ │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ │ └── gradle-wrapper.properties │ │ │ │ ├── gradle.properties │ │ │ │ ├── gradlew │ │ │ │ ├── gradlew.bat │ │ │ │ ├── sample-manager/ │ │ │ │ │ ├── .gitignore │ │ │ │ │ ├── build.gradle │ │ │ │ │ ├── proguard-rules.pro │ │ │ │ │ └── src/ │ │ │ │ │ └── main/ │ │ │ │ │ ├── AndroidManifest.xml │ │ │ │ │ ├── aidl/ │ │ │ │ │ │ └── com/ │ │ │ │ │ │ └── tencent/ │ │ │ │ │ │ └── shadow/ │ │ │ │ │ │ └── sample/ │ │ │ │ │ │ └── plugin/ │ │ │ │ │ │ └── IMyAidlInterface.aidl │ │ │ │ │ ├── java/ │ │ │ │ │ │ └── com/ │ │ │ │ │ │ └── tencent/ │ │ │ │ │ │ └── shadow/ │ │ │ │ │ │ ├── dynamic/ │ │ │ │ │ │ │ └── impl/ │ │ │ │ │ │ │ ├── ManagerFactoryImpl.java │ │ │ │ │ │ │ └── WhiteList.java │ │ │ │ │ │ └── sample/ │ │ │ │ │ │ └── manager/ │ │ │ │ │ │ ├── Constant.java │ │ │ │ │ │ ├── FastPluginManager.java │ │ │ │ │ │ └── SamplePluginManager.java │ │ │ │ │ └── res/ │ │ │ │ │ └── layout/ │ │ │ │ │ └── activity_load_plugin.xml │ │ │ │ └── settings.gradle │ │ │ └── plugin-project/ │ │ │ ├── .gitignore │ │ │ ├── build.gradle │ │ │ ├── gradle/ │ │ │ │ └── wrapper/ │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ └── gradle-wrapper.properties │ │ │ ├── gradle.properties │ │ │ ├── gradlew │ │ │ ├── gradlew.bat │ │ │ ├── plugin-app/ │ │ │ │ ├── .gitignore │ │ │ │ ├── build.gradle │ │ │ │ ├── proguard-rules.pro │ │ │ │ └── src/ │ │ │ │ └── main/ │ │ │ │ ├── AndroidManifest.xml │ │ │ │ ├── aidl/ │ │ │ │ │ └── com/ │ │ │ │ │ └── tencent/ │ │ │ │ │ └── shadow/ │ │ │ │ │ └── sample/ │ │ │ │ │ └── plugin/ │ │ │ │ │ └── IMyAidlInterface.aidl │ │ │ │ ├── java/ │ │ │ │ │ └── com/ │ │ │ │ │ └── tencent/ │ │ │ │ │ └── shadow/ │ │ │ │ │ └── sample/ │ │ │ │ │ └── plugin/ │ │ │ │ │ ├── MainActivity.java │ │ │ │ │ └── MyService.java │ │ │ │ └── res/ │ │ │ │ ├── layout/ │ │ │ │ │ └── activity_main.xml │ │ │ │ └── values/ │ │ │ │ ├── colors.xml │ │ │ │ ├── strings.xml │ │ │ │ └── styles.xml │ │ │ ├── sample-loader/ │ │ │ │ ├── .gitignore │ │ │ │ ├── build.gradle │ │ │ │ ├── proguard-rules.pro │ │ │ │ └── src/ │ │ │ │ └── main/ │ │ │ │ ├── AndroidManifest.xml │ │ │ │ └── java/ │ │ │ │ └── com/ │ │ │ │ └── tencent/ │ │ │ │ └── shadow/ │ │ │ │ ├── dynamic/ │ │ │ │ │ └── loader/ │ │ │ │ │ └── impl/ │ │ │ │ │ └── CoreLoaderFactoryImpl.java │ │ │ │ └── sample/ │ │ │ │ └── loader/ │ │ │ │ ├── SampleComponentManager.java │ │ │ │ └── SamplePluginLoader.java │ │ │ ├── sample-runtime/ │ │ │ │ ├── .gitignore │ │ │ │ ├── build.gradle │ │ │ │ ├── proguard-rules.pro │ │ │ │ └── src/ │ │ │ │ └── main/ │ │ │ │ ├── AndroidManifest.xml │ │ │ │ └── java/ │ │ │ │ └── com/ │ │ │ │ └── tencent/ │ │ │ │ └── shadow/ │ │ │ │ └── sample/ │ │ │ │ └── runtime/ │ │ │ │ ├── PluginDefaultProxyActivity.java │ │ │ │ ├── PluginSingleInstance1ProxyActivity.java │ │ │ │ └── PluginSingleTask1ProxyActivity.java │ │ │ └── settings.gradle │ │ └── source/ │ │ ├── sample-constant/ │ │ │ ├── .gitignore │ │ │ ├── build.gradle │ │ │ ├── proguard-rules.pro │ │ │ └── src/ │ │ │ └── main/ │ │ │ ├── AndroidManifest.xml │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── tencent/ │ │ │ └── shadow/ │ │ │ └── sample/ │ │ │ └── constant/ │ │ │ └── Constant.java │ │ ├── sample-host/ │ │ │ ├── .gitignore │ │ │ ├── build.gradle │ │ │ ├── proguard-rules.pro │ │ │ └── src/ │ │ │ └── main/ │ │ │ ├── AndroidManifest.xml │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── tencent/ │ │ │ │ └── shadow/ │ │ │ │ └── sample/ │ │ │ │ └── host/ │ │ │ │ ├── AndroidLogLoggerFactory.java │ │ │ │ ├── HostApplication.java │ │ │ │ ├── MainActivity.java │ │ │ │ ├── Plugin2ProcessPPS.java │ │ │ │ ├── PluginHelper.java │ │ │ │ ├── PluginLoadActivity.java │ │ │ │ ├── PluginProcessPPS.java │ │ │ │ ├── manager/ │ │ │ │ │ ├── FixedPathPmUpdater.java │ │ │ │ │ └── Shadow.java │ │ │ │ └── plugin_view/ │ │ │ │ ├── HostAddPluginViewActivity.java │ │ │ │ └── MainProcessManagerReceiver.java │ │ │ └── res/ │ │ │ ├── layout/ │ │ │ │ ├── activity_jump_to_plugin.xml │ │ │ │ ├── activity_load.xml │ │ │ │ └── part_key_adapter.xml │ │ │ └── values/ │ │ │ ├── strings.xml │ │ │ └── themes.xml │ │ ├── sample-host-lib/ │ │ │ ├── .gitignore │ │ │ ├── build.gradle │ │ │ ├── proguard-rules.pro │ │ │ ├── sample-host-lib.pro │ │ │ └── src/ │ │ │ └── main/ │ │ │ ├── AndroidManifest.xml │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── tencent/ │ │ │ │ └── shadow/ │ │ │ │ └── sample/ │ │ │ │ └── host/ │ │ │ │ └── lib/ │ │ │ │ ├── HostAddPluginViewContainer.java │ │ │ │ ├── HostAddPluginViewContainerHolder.java │ │ │ │ ├── HostUiLayerProvider.java │ │ │ │ └── LoadPluginCallback.java │ │ │ └── res/ │ │ │ └── layout/ │ │ │ └── host_ui_layer_layout.xml │ │ ├── sample-manager/ │ │ │ ├── .gitignore │ │ │ ├── build.gradle │ │ │ ├── proguard-rules.pro │ │ │ └── src/ │ │ │ └── main/ │ │ │ ├── AndroidManifest.xml │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── tencent/ │ │ │ │ └── shadow/ │ │ │ │ ├── dynamic/ │ │ │ │ │ └── impl/ │ │ │ │ │ ├── ManagerFactoryImpl.java │ │ │ │ │ └── WhiteList.java │ │ │ │ └── sample/ │ │ │ │ └── manager/ │ │ │ │ ├── FastPluginManager.java │ │ │ │ └── SamplePluginManager.java │ │ │ └── res/ │ │ │ └── layout/ │ │ │ └── activity_load_plugin.xml │ │ └── sample-plugin/ │ │ ├── sample-app/ │ │ │ ├── .gitignore │ │ │ ├── build.gradle │ │ │ ├── proguard-rules.pro │ │ │ └── src/ │ │ │ └── main/ │ │ │ ├── AndroidManifest.xml │ │ │ ├── assets/ │ │ │ │ └── web/ │ │ │ │ └── test.html │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── tencent/ │ │ │ │ └── shadow/ │ │ │ │ └── sample/ │ │ │ │ └── plugin/ │ │ │ │ └── app/ │ │ │ │ └── lib/ │ │ │ │ ├── UseCaseApplication.java │ │ │ │ └── usecases/ │ │ │ │ ├── activity/ │ │ │ │ │ ├── TestActivityOnCreate.java │ │ │ │ │ ├── TestActivityOptionMenu.java │ │ │ │ │ ├── TestActivityOrientation.java │ │ │ │ │ ├── TestActivityReCreate.java │ │ │ │ │ ├── TestActivityReCreateBySystem.java │ │ │ │ │ ├── TestActivitySetTheme.java │ │ │ │ │ └── TestActivityWindowSoftMode.java │ │ │ │ ├── application/ │ │ │ │ │ └── TestApplicationActivity.java │ │ │ │ ├── context/ │ │ │ │ │ ├── ActivityContextSubDirTestActivity.java │ │ │ │ │ ├── ApplicationContextSubDirTestActivity.java │ │ │ │ │ └── SubDirContextThemeWrapperTestActivity.java │ │ │ │ ├── dialog/ │ │ │ │ │ ├── TestDialog.java │ │ │ │ │ └── TestDialogActivity.java │ │ │ │ ├── fragment/ │ │ │ │ │ ├── TestDialogFragment.java │ │ │ │ │ ├── TestDialogFragmentActivity.java │ │ │ │ │ ├── TestDynamicFragmentActivity.java │ │ │ │ │ ├── TestFragment.java │ │ │ │ │ └── TestXmlFragmentActivity.java │ │ │ │ ├── host_communication/ │ │ │ │ │ └── PluginUseHostClassActivity.java │ │ │ │ ├── packagemanager/ │ │ │ │ │ └── TestPackageManagerActivity.java │ │ │ │ ├── provider/ │ │ │ │ │ ├── TestDBContentProviderActivity.java │ │ │ │ │ ├── TestDBHelper.java │ │ │ │ │ ├── TestFileProviderActivity.java │ │ │ │ │ ├── TestProvider.java │ │ │ │ │ └── TestProviderInfo.java │ │ │ │ ├── receiver/ │ │ │ │ │ ├── MyReceiver.java │ │ │ │ │ ├── TestDynamicReceiverActivity.java │ │ │ │ │ └── TestReceiverActivity.java │ │ │ │ ├── service/ │ │ │ │ │ └── HostAddPluginViewService.java │ │ │ │ └── webview/ │ │ │ │ └── WebViewActivity.java │ │ │ └── res/ │ │ │ ├── anim/ │ │ │ │ └── dialog_exit_fade_out.xml │ │ │ ├── drawable/ │ │ │ │ ├── selector_group.xml │ │ │ │ └── selector_item.xml │ │ │ ├── layout/ │ │ │ │ ├── activity_test_file_provider.xml │ │ │ │ ├── activity_test_re_create_by_system.xml │ │ │ │ ├── layout_activity_lifecycle.xml │ │ │ │ ├── layout_activity_settheme.xml │ │ │ │ ├── layout_common.xml │ │ │ │ ├── layout_dialog.xml │ │ │ │ ├── layout_dialog_activity.xml │ │ │ │ ├── layout_fragment_activity.xml │ │ │ │ ├── layout_fragment_test.xml │ │ │ │ ├── layout_fragment_xml_activity.xml │ │ │ │ ├── layout_host_add_plugin_view.xml │ │ │ │ ├── layout_orientation.xml │ │ │ │ ├── layout_packagemanager.xml │ │ │ │ ├── layout_provider_db.xml │ │ │ │ ├── layout_receiver.xml │ │ │ │ ├── layout_recreate.xml │ │ │ │ ├── layout_result.xml │ │ │ │ ├── layout_service.xml │ │ │ │ ├── layout_softmode.xml │ │ │ │ └── layout_test_view_cons_cache.xml │ │ │ ├── menu/ │ │ │ │ └── case_test_activity_option_menu.xml │ │ │ ├── values/ │ │ │ │ ├── strings.xml │ │ │ │ ├── styles.xml │ │ │ │ └── themes.xml │ │ │ └── values-v21/ │ │ │ └── themes.xml │ │ ├── sample-base/ │ │ │ ├── .gitignore │ │ │ ├── build.gradle │ │ │ ├── proguard-rules.pro │ │ │ └── src/ │ │ │ └── main/ │ │ │ └── AndroidManifest.xml │ │ ├── sample-base-lib/ │ │ │ ├── .gitignore │ │ │ ├── build.gradle │ │ │ ├── proguard-rules.pro │ │ │ └── src/ │ │ │ └── main/ │ │ │ ├── AndroidManifest.xml │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── tencent/ │ │ │ │ └── shadow/ │ │ │ │ └── sample/ │ │ │ │ └── plugin/ │ │ │ │ └── app/ │ │ │ │ └── lib/ │ │ │ │ └── gallery/ │ │ │ │ ├── BaseActivity.java │ │ │ │ ├── MainActivity.java │ │ │ │ ├── TestApplication.java │ │ │ │ ├── cases/ │ │ │ │ │ ├── UseCaseManager.java │ │ │ │ │ ├── UseCaseSummaryFragment.java │ │ │ │ │ └── entity/ │ │ │ │ │ ├── UseCase.java │ │ │ │ │ └── UseCaseCategory.java │ │ │ │ ├── splash/ │ │ │ │ │ ├── ISplashAnimation.java │ │ │ │ │ ├── SplashActivity.java │ │ │ │ │ └── SplashAnimation.java │ │ │ │ └── util/ │ │ │ │ ├── PluginChecker.java │ │ │ │ ├── ToastUtil.java │ │ │ │ └── UiUtil.java │ │ │ └── res/ │ │ │ ├── drawable/ │ │ │ │ └── child_bg.xml │ │ │ ├── layout/ │ │ │ │ ├── layout_case_category_item.xml │ │ │ │ ├── layout_case_item.xml │ │ │ │ ├── layout_fragment_case_summary.xml │ │ │ │ ├── layout_main.xml │ │ │ │ ├── layout_main_above.xml │ │ │ │ ├── layout_main_behind.xml │ │ │ │ └── layout_splash.xml │ │ │ ├── values/ │ │ │ │ ├── dimens.xml │ │ │ │ ├── strings.xml │ │ │ │ └── themes.xml │ │ │ └── xml/ │ │ │ └── filepaths.xml │ │ ├── sample-loader/ │ │ │ ├── .gitignore │ │ │ ├── build.gradle │ │ │ ├── proguard-rules.pro │ │ │ └── src/ │ │ │ └── main/ │ │ │ ├── AndroidManifest.xml │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── tencent/ │ │ │ └── shadow/ │ │ │ ├── dynamic/ │ │ │ │ ├── impl/ │ │ │ │ │ └── WhiteList.java │ │ │ │ └── loader/ │ │ │ │ └── impl/ │ │ │ │ └── CoreLoaderFactoryImpl.java │ │ │ └── sample/ │ │ │ └── plugin/ │ │ │ └── loader/ │ │ │ ├── SampleComponentManager.java │ │ │ └── SamplePluginLoader.java │ │ ├── sample-runtime/ │ │ │ ├── .gitignore │ │ │ ├── build.gradle │ │ │ ├── proguard-rules.pro │ │ │ └── src/ │ │ │ └── main/ │ │ │ ├── AndroidManifest.xml │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── tencent/ │ │ │ └── shadow/ │ │ │ └── sample/ │ │ │ └── plugin/ │ │ │ └── runtime/ │ │ │ ├── PluginDefaultProxyActivity.java │ │ │ ├── PluginSingleInstance1ProxyActivity.java │ │ │ └── PluginSingleTask1ProxyActivity.java │ │ └── third-party/ │ │ ├── pinnedheaderexpandablelistview/ │ │ │ ├── .gitignore │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── build.gradle │ │ │ ├── proguard-rules.pro │ │ │ └── src/ │ │ │ └── main/ │ │ │ ├── AndroidManifest.xml │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── ryg/ │ │ │ └── expandable/ │ │ │ └── ui/ │ │ │ ├── PinnedHeaderExpandableListView.java │ │ │ └── StickyLayout.java │ │ └── slidingmenu/ │ │ ├── .gitignore │ │ ├── LICENSE.txt │ │ ├── README.md │ │ ├── build.gradle │ │ ├── proguard-rules.pro │ │ └── src/ │ │ └── main/ │ │ ├── AndroidManifest.xml │ │ ├── java/ │ │ │ └── com/ │ │ │ └── jeremyfeinstein/ │ │ │ └── slidingmenu/ │ │ │ └── lib/ │ │ │ ├── CanvasTransformerBuilder.java │ │ │ ├── CustomViewAbove.java │ │ │ ├── CustomViewBehind.java │ │ │ └── SlidingMenu.java │ │ └── res/ │ │ └── values/ │ │ ├── attrs.xml │ │ └── ids.xml │ ├── sdk/ │ │ ├── coding/ │ │ │ ├── .gitignore │ │ │ ├── aar-to-jar-plugin/ │ │ │ │ ├── .gitignore │ │ │ │ ├── build.gradle │ │ │ │ └── src/ │ │ │ │ └── main/ │ │ │ │ └── kotlin/ │ │ │ │ └── com/ │ │ │ │ └── tencent/ │ │ │ │ └── shadow/ │ │ │ │ └── coding/ │ │ │ │ └── aar_to_jar_plugin/ │ │ │ │ └── AarToJarPlugin.kt │ │ │ ├── android-jar/ │ │ │ │ ├── .gitignore │ │ │ │ └── build.gradle │ │ │ ├── build.gradle │ │ │ ├── code-generator/ │ │ │ │ ├── .gitignore │ │ │ │ ├── build.gradle │ │ │ │ └── src/ │ │ │ │ ├── main/ │ │ │ │ │ └── kotlin/ │ │ │ │ │ └── com/ │ │ │ │ │ └── tencent/ │ │ │ │ │ └── shadow/ │ │ │ │ │ ├── coding/ │ │ │ │ │ │ └── code_generator/ │ │ │ │ │ │ └── ActivityCodeGenerator.kt │ │ │ │ │ └── core/ │ │ │ │ │ └── runtime/ │ │ │ │ │ └── NeighborClass.kt │ │ │ │ └── test/ │ │ │ │ └── kotlin/ │ │ │ │ └── com/ │ │ │ │ └── tencent/ │ │ │ │ └── shadow/ │ │ │ │ └── coding/ │ │ │ │ └── code_generator/ │ │ │ │ └── ActivityCodeGeneratorTest.kt │ │ │ ├── common-jar-settings/ │ │ │ │ ├── .gitignore │ │ │ │ ├── build.gradle │ │ │ │ └── src/ │ │ │ │ └── main/ │ │ │ │ └── kotlin/ │ │ │ │ └── com/ │ │ │ │ └── tencent/ │ │ │ │ └── shadow/ │ │ │ │ └── coding/ │ │ │ │ └── common_jar_settings/ │ │ │ │ └── CommonJarSettingsPlugin.kt │ │ │ ├── get-android-jar/ │ │ │ │ ├── .gitignore │ │ │ │ ├── build.gradle │ │ │ │ └── src/ │ │ │ │ └── main/ │ │ │ │ └── AndroidManifest.xml │ │ │ ├── gradle/ │ │ │ │ └── wrapper/ │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ └── gradle-wrapper.properties │ │ │ ├── gradlew │ │ │ ├── gradlew.bat │ │ │ ├── java-build-config/ │ │ │ │ ├── .gitignore │ │ │ │ └── build.gradle │ │ │ └── settings.gradle │ │ ├── core/ │ │ │ ├── .gitignore │ │ │ ├── activity-container/ │ │ │ │ ├── .gitignore │ │ │ │ ├── build.gradle │ │ │ │ └── src/ │ │ │ │ └── main/ │ │ │ │ └── java/ │ │ │ │ └── com/ │ │ │ │ └── tencent/ │ │ │ │ └── shadow/ │ │ │ │ └── core/ │ │ │ │ └── runtime/ │ │ │ │ └── container/ │ │ │ │ ├── DelegateProvider.java │ │ │ │ ├── DelegateProviderHolder.java │ │ │ │ ├── HostActivity.java │ │ │ │ ├── HostActivityDelegate.java │ │ │ │ ├── HostActivityDelegator.java │ │ │ │ ├── HostNativeActivityDelegate.java │ │ │ │ ├── HostNativeActivityDelegator.java │ │ │ │ ├── NativePluginContainerActivity.java │ │ │ │ └── PluginContainerActivity.java │ │ │ ├── build.gradle │ │ │ ├── common/ │ │ │ │ ├── .gitignore │ │ │ │ ├── build.gradle │ │ │ │ └── src/ │ │ │ │ └── main/ │ │ │ │ └── java/ │ │ │ │ └── com/ │ │ │ │ └── tencent/ │ │ │ │ └── shadow/ │ │ │ │ └── core/ │ │ │ │ ├── common/ │ │ │ │ │ ├── ILoggerFactory.java │ │ │ │ │ ├── InstalledApk.java │ │ │ │ │ ├── Logger.java │ │ │ │ │ └── LoggerFactory.java │ │ │ │ └── runtime/ │ │ │ │ └── container/ │ │ │ │ ├── ContentProviderDelegateProvider.java │ │ │ │ ├── ContentProviderDelegateProviderHolder.java │ │ │ │ ├── HostContentProviderDelegate.java │ │ │ │ └── PluginContainerContentProvider.java │ │ │ ├── gradle/ │ │ │ │ └── wrapper/ │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ └── gradle-wrapper.properties │ │ │ ├── gradle-plugin/ │ │ │ │ ├── .gitignore │ │ │ │ ├── build.gradle │ │ │ │ └── src/ │ │ │ │ ├── main/ │ │ │ │ │ └── kotlin/ │ │ │ │ │ └── com/ │ │ │ │ │ └── tencent/ │ │ │ │ │ └── shadow/ │ │ │ │ │ └── core/ │ │ │ │ │ └── gradle/ │ │ │ │ │ ├── AGPCompat.kt │ │ │ │ │ ├── AGPCompatImpl.kt │ │ │ │ │ ├── CreatePackagePluginTask.kt │ │ │ │ │ ├── ShadowPlugin.kt │ │ │ │ │ ├── ShadowPluginHelper.kt │ │ │ │ │ └── extensions/ │ │ │ │ │ ├── PackagePluginExtension.kt │ │ │ │ │ ├── PluginApkConfig.kt │ │ │ │ │ └── PluginBuildType.kt │ │ │ │ └── test/ │ │ │ │ ├── kotlin/ │ │ │ │ │ └── com/ │ │ │ │ │ └── tencent/ │ │ │ │ │ └── shadow/ │ │ │ │ │ └── core/ │ │ │ │ │ └── gradle/ │ │ │ │ │ ├── PackageMultiPluginTest.kt │ │ │ │ │ ├── PackageOnlyPluginTest.kt │ │ │ │ │ └── PackagePluginTaskTest.kt │ │ │ │ └── testProjects/ │ │ │ │ └── case1/ │ │ │ │ ├── .gitignore │ │ │ │ ├── build.gradle │ │ │ │ ├── loader/ │ │ │ │ │ ├── build.gradle │ │ │ │ │ └── src/ │ │ │ │ │ └── main/ │ │ │ │ │ └── AndroidManifest.xml │ │ │ │ ├── plugin1/ │ │ │ │ │ ├── .gitignore │ │ │ │ │ ├── build.gradle │ │ │ │ │ └── src/ │ │ │ │ │ └── main/ │ │ │ │ │ └── AndroidManifest.xml │ │ │ │ ├── plugin2/ │ │ │ │ │ ├── .gitignore │ │ │ │ │ ├── build.gradle │ │ │ │ │ └── src/ │ │ │ │ │ └── main/ │ │ │ │ │ └── AndroidManifest.xml │ │ │ │ ├── runtime/ │ │ │ │ │ ├── build.gradle │ │ │ │ │ └── src/ │ │ │ │ │ └── main/ │ │ │ │ │ └── AndroidManifest.xml │ │ │ │ ├── settings.gradle │ │ │ │ └── src/ │ │ │ │ └── main/ │ │ │ │ └── AndroidManifest.xml │ │ │ ├── gradle.properties │ │ │ ├── gradlew │ │ │ ├── gradlew.bat │ │ │ ├── load-parameters/ │ │ │ │ ├── .gitignore │ │ │ │ ├── build.gradle │ │ │ │ └── src/ │ │ │ │ └── main/ │ │ │ │ └── java/ │ │ │ │ └── com/ │ │ │ │ └── tencent/ │ │ │ │ └── shadow/ │ │ │ │ └── core/ │ │ │ │ └── load_parameters/ │ │ │ │ └── LoadParameters.java │ │ │ ├── loader/ │ │ │ │ ├── .gitignore │ │ │ │ ├── build.gradle │ │ │ │ └── src/ │ │ │ │ ├── main/ │ │ │ │ │ └── kotlin/ │ │ │ │ │ └── com/ │ │ │ │ │ └── tencent/ │ │ │ │ │ └── shadow/ │ │ │ │ │ └── core/ │ │ │ │ │ └── loader/ │ │ │ │ │ ├── ShadowPluginLoader.kt │ │ │ │ │ ├── blocs/ │ │ │ │ │ │ ├── CheckPackageNameBloc.kt │ │ │ │ │ │ ├── CreateApplicationBloc.kt │ │ │ │ │ │ ├── CreatePluginApplicationInfoBloc.kt │ │ │ │ │ │ ├── CreateResourceBloc.kt │ │ │ │ │ │ ├── LoadApkBloc.kt │ │ │ │ │ │ └── LoadPluginBloc.kt │ │ │ │ │ ├── classloaders/ │ │ │ │ │ │ ├── CombineClassLoader.kt │ │ │ │ │ │ └── PluginClassLoader.kt │ │ │ │ │ ├── delegates/ │ │ │ │ │ │ ├── DI.kt │ │ │ │ │ │ ├── PackageManagerWrapper.java │ │ │ │ │ │ ├── ShadowActivityDelegate.kt │ │ │ │ │ │ ├── ShadowContentProviderDelegate.kt │ │ │ │ │ │ ├── ShadowDelegate.kt │ │ │ │ │ │ └── ShadowNativeActivityDelegate.kt │ │ │ │ │ ├── exceptions/ │ │ │ │ │ │ ├── CreateApplicationException.kt │ │ │ │ │ │ ├── LoadApkException.kt │ │ │ │ │ │ ├── LoadPluginException.kt │ │ │ │ │ │ └── ParsePluginApkException.kt │ │ │ │ │ ├── infos/ │ │ │ │ │ │ ├── ContainerProviderInfo.kt │ │ │ │ │ │ └── PluginParts.kt │ │ │ │ │ └── managers/ │ │ │ │ │ ├── ComponentManager.kt │ │ │ │ │ ├── PluginContentProviderManager.kt │ │ │ │ │ ├── PluginPackageManagerImpl.kt │ │ │ │ │ └── PluginServiceManager.kt │ │ │ │ └── test/ │ │ │ │ └── kotlin/ │ │ │ │ └── com/ │ │ │ │ └── tencent/ │ │ │ │ └── shadow/ │ │ │ │ └── core/ │ │ │ │ └── loader/ │ │ │ │ └── classloaders/ │ │ │ │ └── PluginClassLoaderTest.kt │ │ │ ├── manager/ │ │ │ │ ├── .gitignore │ │ │ │ ├── build.gradle │ │ │ │ └── src/ │ │ │ │ ├── main/ │ │ │ │ │ └── java/ │ │ │ │ │ └── com/ │ │ │ │ │ └── tencent/ │ │ │ │ │ └── shadow/ │ │ │ │ │ └── core/ │ │ │ │ │ └── manager/ │ │ │ │ │ ├── BasePluginManager.java │ │ │ │ │ └── installplugin/ │ │ │ │ │ ├── AppCacheFolderManager.java │ │ │ │ │ ├── CopySoBloc.java │ │ │ │ │ ├── InstallPluginException.java │ │ │ │ │ ├── InstalledDao.java │ │ │ │ │ ├── InstalledPlugin.java │ │ │ │ │ ├── InstalledPluginDBHelper.java │ │ │ │ │ ├── InstalledRow.java │ │ │ │ │ ├── InstalledType.java │ │ │ │ │ ├── MinFileUtils.java │ │ │ │ │ ├── ODexBloc.java │ │ │ │ │ ├── PluginConfig.java │ │ │ │ │ ├── SafeZipFile.java │ │ │ │ │ └── UnpackManager.java │ │ │ │ └── test/ │ │ │ │ └── java/ │ │ │ │ └── com/ │ │ │ │ └── tencent/ │ │ │ │ └── shadow/ │ │ │ │ └── core/ │ │ │ │ └── manager/ │ │ │ │ └── installplugin/ │ │ │ │ └── SafeZipFileTest.java │ │ │ ├── manager-db-test/ │ │ │ │ ├── .gitignore │ │ │ │ ├── build.gradle │ │ │ │ └── src/ │ │ │ │ ├── androidTest/ │ │ │ │ │ ├── java/ │ │ │ │ │ │ ├── com/ │ │ │ │ │ │ │ └── tencent/ │ │ │ │ │ │ │ └── shadow/ │ │ │ │ │ │ │ └── core/ │ │ │ │ │ │ │ ├── manager/ │ │ │ │ │ │ │ │ └── installplugin/ │ │ │ │ │ │ │ │ └── DbCompatibilityTest.java │ │ │ │ │ │ │ └── pluginmanager/ │ │ │ │ │ │ │ └── CustomAndroidJUnitRunner.java │ │ │ │ │ │ └── common/ │ │ │ │ │ │ └── AndroidLogLoggerFactory.java │ │ │ │ │ └── res/ │ │ │ │ │ └── raw/ │ │ │ │ │ ├── expect_sql_version1.sql │ │ │ │ │ ├── expect_sql_version2.sql │ │ │ │ │ ├── expect_sql_version3.sql │ │ │ │ │ ├── expect_sql_version4.sql │ │ │ │ │ ├── init_sql_version1.sql │ │ │ │ │ ├── init_sql_version2.sql │ │ │ │ │ ├── init_sql_version3.sql │ │ │ │ │ ├── init_sql_version4.sql │ │ │ │ │ └── plugin1.json │ │ │ │ └── main/ │ │ │ │ └── AndroidManifest.xml │ │ │ ├── manifest-parser/ │ │ │ │ ├── .gitignore │ │ │ │ ├── build.gradle │ │ │ │ └── src/ │ │ │ │ ├── main/ │ │ │ │ │ └── kotlin/ │ │ │ │ │ └── com/ │ │ │ │ │ └── tencent/ │ │ │ │ │ └── shadow/ │ │ │ │ │ └── core/ │ │ │ │ │ └── manifest_parser/ │ │ │ │ │ ├── AndroidManifestKeys.kt │ │ │ │ │ ├── AndroidManifestReader.kt │ │ │ │ │ ├── ManifestParser.kt │ │ │ │ │ └── PluginManifestGenerator.kt │ │ │ │ └── test/ │ │ │ │ ├── kotlin/ │ │ │ │ │ └── com/ │ │ │ │ │ └── tencent/ │ │ │ │ │ └── shadow/ │ │ │ │ │ └── core/ │ │ │ │ │ └── manifest_parser/ │ │ │ │ │ ├── AndroidManifestReaderTest.kt │ │ │ │ │ └── PluginManifestGeneratorTest.kt │ │ │ │ └── resources/ │ │ │ │ ├── case_as_little_as_possible.xml │ │ │ │ ├── noAppComponentFactory.xml │ │ │ │ └── sample-app.xml │ │ │ ├── runtime/ │ │ │ │ ├── .gitignore │ │ │ │ ├── build.gradle │ │ │ │ └── src/ │ │ │ │ └── main/ │ │ │ │ └── java/ │ │ │ │ └── com/ │ │ │ │ └── tencent/ │ │ │ │ └── shadow/ │ │ │ │ └── core/ │ │ │ │ └── runtime/ │ │ │ │ ├── ActivityOptionsSupport.java │ │ │ │ ├── FixedContextLayoutInflater.java │ │ │ │ ├── PackageManagerInvokeRedirect.java │ │ │ │ ├── PluginActivity.java │ │ │ │ ├── PluginManifest.java │ │ │ │ ├── PluginPackageManager.java │ │ │ │ ├── PluginPartInfo.java │ │ │ │ ├── PluginPartInfoManager.java │ │ │ │ ├── ResolverHook.java │ │ │ │ ├── ShadowActivity.java │ │ │ │ ├── ShadowActivityLifecycleCallbacks.java │ │ │ │ ├── ShadowAppComponentFactory.java │ │ │ │ ├── ShadowApplication.java │ │ │ │ ├── ShadowContext.java │ │ │ │ ├── ShadowDialogSupport.java │ │ │ │ ├── ShadowFactory2.java │ │ │ │ ├── ShadowFragmentSupport.java │ │ │ │ ├── ShadowInstrumentation.java │ │ │ │ ├── ShadowIntentService.java │ │ │ │ ├── ShadowLayoutInflater.java │ │ │ │ ├── ShadowNativeActivity.java │ │ │ │ ├── ShadowPackageItemInfo.java │ │ │ │ ├── ShadowPendingIntent.java │ │ │ │ ├── ShadowService.java │ │ │ │ ├── ShadowWebView.java │ │ │ │ ├── ShadowWebViewLayoutInflater.java │ │ │ │ ├── SubDirContextThemeWrapper.java │ │ │ │ ├── UriConverter.java │ │ │ │ ├── XmlPullParserUtil.java │ │ │ │ └── package-info.java │ │ │ ├── settings.gradle │ │ │ ├── transform/ │ │ │ │ ├── .gitignore │ │ │ │ ├── build.gradle │ │ │ │ └── src/ │ │ │ │ ├── main/ │ │ │ │ │ └── kotlin/ │ │ │ │ │ └── com/ │ │ │ │ │ └── tencent/ │ │ │ │ │ └── shadow/ │ │ │ │ │ └── core/ │ │ │ │ │ └── transform/ │ │ │ │ │ ├── DeprecatedTransformWrapper.kt │ │ │ │ │ ├── GradleTransformWrapper.kt │ │ │ │ │ ├── ShadowTransform.kt │ │ │ │ │ ├── TransformManager.kt │ │ │ │ │ └── specific/ │ │ │ │ │ ├── ActivityOptionsSupportTransform.kt │ │ │ │ │ ├── ActivityTransform.kt │ │ │ │ │ ├── AppComponentFactoryTransform.kt │ │ │ │ │ ├── ApplicationTransform.kt │ │ │ │ │ ├── ContentProviderTransform.kt │ │ │ │ │ ├── DialogSupportTransform.kt │ │ │ │ │ ├── FragmentSupportTransform.kt │ │ │ │ │ ├── InstrumentationTransform.kt │ │ │ │ │ ├── IntentServiceTransform.kt │ │ │ │ │ ├── KeepHostContextTransform.kt │ │ │ │ │ ├── LayoutInflaterTransform.kt │ │ │ │ │ ├── PackageItemInfoTransform.kt │ │ │ │ │ ├── PackageManagerTransform.kt │ │ │ │ │ ├── PendingIntentTransform.kt │ │ │ │ │ ├── ReceiverSupportTransform.kt │ │ │ │ │ ├── ServiceTransform.kt │ │ │ │ │ ├── SimpleRenameTransform.kt │ │ │ │ │ └── WebViewTransform.kt │ │ │ │ └── test/ │ │ │ │ ├── java/ │ │ │ │ │ ├── android/ │ │ │ │ │ │ ├── app/ │ │ │ │ │ │ │ ├── Activity.java │ │ │ │ │ │ │ ├── Application.java │ │ │ │ │ │ │ ├── Fragment.java │ │ │ │ │ │ │ ├── Instrumentation.java │ │ │ │ │ │ │ └── Service.java │ │ │ │ │ │ ├── content/ │ │ │ │ │ │ │ ├── BroadcastReceiver.java │ │ │ │ │ │ │ ├── ComponentName.java │ │ │ │ │ │ │ ├── Context.java │ │ │ │ │ │ │ ├── Intent.java │ │ │ │ │ │ │ ├── pm/ │ │ │ │ │ │ │ │ ├── ActivityInfo.java │ │ │ │ │ │ │ │ ├── ApplicationInfo.java │ │ │ │ │ │ │ │ ├── PackageInfo.java │ │ │ │ │ │ │ │ ├── PackageItemInfo.java │ │ │ │ │ │ │ │ ├── PackageManager.java │ │ │ │ │ │ │ │ ├── ProviderInfo.java │ │ │ │ │ │ │ │ └── ServiceInfo.java │ │ │ │ │ │ │ └── res/ │ │ │ │ │ │ │ └── XmlResourceParser.java │ │ │ │ │ │ ├── os/ │ │ │ │ │ │ │ ├── Bundle.java │ │ │ │ │ │ │ └── IBinder.java │ │ │ │ │ │ ├── util/ │ │ │ │ │ │ │ └── AttributeSet.java │ │ │ │ │ │ └── webkit/ │ │ │ │ │ │ └── WebView.java │ │ │ │ │ ├── com/ │ │ │ │ │ │ └── tencent/ │ │ │ │ │ │ └── shadow/ │ │ │ │ │ │ └── core/ │ │ │ │ │ │ └── runtime/ │ │ │ │ │ │ ├── PackageManagerInvokeRedirect.java │ │ │ │ │ │ ├── PluginPartInfo.java │ │ │ │ │ │ ├── PluginPartInfoManager.java │ │ │ │ │ │ ├── ShadowActivity.java │ │ │ │ │ │ ├── ShadowApplication.java │ │ │ │ │ │ ├── ShadowContext.java │ │ │ │ │ │ ├── ShadowFragmentSupport.java │ │ │ │ │ │ ├── ShadowInstrumentation.java │ │ │ │ │ │ └── ShadowWebView.java │ │ │ │ │ └── test/ │ │ │ │ │ ├── EggReceiver.java │ │ │ │ │ ├── TestActivity.java │ │ │ │ │ ├── TestActivityLifecycleCallbacks.java │ │ │ │ │ ├── TestApplication.java │ │ │ │ │ ├── TestInstrumentation.java │ │ │ │ │ ├── TestPackageManager.java │ │ │ │ │ ├── TestReceiver.java │ │ │ │ │ ├── TestService.java │ │ │ │ │ ├── TestWebView.java │ │ │ │ │ └── fragment/ │ │ │ │ │ ├── TestFragment.java │ │ │ │ │ ├── UseGetActivityFragment.java │ │ │ │ │ ├── UseStartActivityForResultFragment.java │ │ │ │ │ └── UseStartActivityFragment.java │ │ │ │ └── kotlin/ │ │ │ │ └── com/ │ │ │ │ └── tencent/ │ │ │ │ └── shadow/ │ │ │ │ └── core/ │ │ │ │ └── transform/ │ │ │ │ └── specific/ │ │ │ │ ├── ActivityLifecycleCallbacksTransformTest.kt │ │ │ │ ├── ActivityTransformTest.kt │ │ │ │ ├── ApplicationTransformTest.kt │ │ │ │ ├── FragmentSupportTransformTest.kt │ │ │ │ ├── InstrumentationTransformTest.kt │ │ │ │ ├── PackageManagerTransformTest.kt │ │ │ │ ├── ReceiverSupportTransformTest.kt │ │ │ │ ├── ServiceTransformTest.kt │ │ │ │ ├── SimpleRenameTransformTest.kt │ │ │ │ └── WebViewTransformTest.kt │ │ │ ├── transform-kit/ │ │ │ │ ├── .gitignore │ │ │ │ ├── build.gradle │ │ │ │ └── src/ │ │ │ │ ├── main/ │ │ │ │ │ ├── java/ │ │ │ │ │ │ └── javassist/ │ │ │ │ │ │ ├── EnhancedCodeConverter.java │ │ │ │ │ │ └── convert/ │ │ │ │ │ │ ├── TransformCallExceptSuperCallToStatic.java │ │ │ │ │ │ └── TransformNewClassFix.java │ │ │ │ │ └── kotlin/ │ │ │ │ │ └── com/ │ │ │ │ │ └── tencent/ │ │ │ │ │ └── shadow/ │ │ │ │ │ └── core/ │ │ │ │ │ └── transform_kit/ │ │ │ │ │ ├── AbstractTransform.kt │ │ │ │ │ ├── AbstractTransformManager.kt │ │ │ │ │ ├── AndroidClassPoolBuilder.kt │ │ │ │ │ ├── AutoMakeMissingClassPool.kt │ │ │ │ │ ├── ClassTransform.kt │ │ │ │ │ ├── JavassistTransform.kt │ │ │ │ │ ├── OverrideCheck.kt │ │ │ │ │ ├── ReplaceClassName.kt │ │ │ │ │ ├── SpecificTransform.kt │ │ │ │ │ └── TransformStep.kt │ │ │ │ └── test/ │ │ │ │ ├── java/ │ │ │ │ │ └── test/ │ │ │ │ │ ├── MethodRedirectToStatic.java │ │ │ │ │ └── override/ │ │ │ │ │ └── Foo.java │ │ │ │ └── kotlin/ │ │ │ │ └── com/ │ │ │ │ └── tencent/ │ │ │ │ └── shadow/ │ │ │ │ └── core/ │ │ │ │ └── transform_kit/ │ │ │ │ ├── AbstractTransformTest.kt │ │ │ │ ├── FilterRefClassesTest.kt │ │ │ │ ├── OverrideCheckTest.kt │ │ │ │ └── RedirectMethodCallToStaticTest.kt │ │ │ └── utils/ │ │ │ ├── .gitignore │ │ │ ├── build.gradle │ │ │ └── src/ │ │ │ ├── main/ │ │ │ │ └── java/ │ │ │ │ └── com/ │ │ │ │ └── tencent/ │ │ │ │ └── shadow/ │ │ │ │ └── core/ │ │ │ │ └── utils/ │ │ │ │ └── Md5.java │ │ │ └── test/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── tencent/ │ │ │ └── shadow/ │ │ │ └── core/ │ │ │ └── utils/ │ │ │ └── Md5Test.java │ │ └── dynamic/ │ │ ├── .gitignore │ │ ├── build.gradle │ │ ├── dynamic-apk/ │ │ │ ├── .gitignore │ │ │ ├── build.gradle │ │ │ ├── proguard-rules.pro │ │ │ └── src/ │ │ │ └── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── tencent/ │ │ │ └── shadow/ │ │ │ └── dynamic/ │ │ │ └── apk/ │ │ │ ├── ApkClassLoader.java │ │ │ ├── ChangeApkContextWrapper.java │ │ │ └── ImplLoader.java │ │ ├── dynamic-host/ │ │ │ ├── .gitignore │ │ │ ├── build.gradle │ │ │ ├── proguard-rules.pro │ │ │ └── src/ │ │ │ └── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── tencent/ │ │ │ └── shadow/ │ │ │ └── dynamic/ │ │ │ └── host/ │ │ │ ├── BasePluginProcessService.java │ │ │ ├── BinderUuidManager.java │ │ │ ├── DynamicPluginManager.java │ │ │ ├── DynamicRuntime.java │ │ │ ├── EnterCallback.java │ │ │ ├── FailedException.java │ │ │ ├── LoaderFactory.java │ │ │ ├── LoaderImplLoader.java │ │ │ ├── ManagerFactory.java │ │ │ ├── ManagerImplLoader.java │ │ │ ├── NotFoundException.java │ │ │ ├── PluginLoaderImpl.java │ │ │ ├── PluginManager.java │ │ │ ├── PluginManagerImpl.java │ │ │ ├── PluginManagerUpdater.java │ │ │ ├── PluginProcessService.java │ │ │ ├── PpsBinder.java │ │ │ ├── PpsController.java │ │ │ ├── PpsStatus.java │ │ │ └── UuidManager.java │ │ ├── dynamic-host-multi-loader-ext/ │ │ │ ├── .gitignore │ │ │ ├── build.gradle │ │ │ ├── proguard-rules.pro │ │ │ └── src/ │ │ │ └── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── tencent/ │ │ │ └── shadow/ │ │ │ └── dynamic/ │ │ │ └── host/ │ │ │ ├── MultiDynamicContainer.java │ │ │ ├── MultiLoaderPluginProcessService.java │ │ │ ├── MultiLoaderPpsBinder.java │ │ │ └── MultiLoaderPpsController.java │ │ ├── dynamic-loader/ │ │ │ ├── .gitignore │ │ │ ├── build.gradle │ │ │ └── src/ │ │ │ └── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── tencent/ │ │ │ └── shadow/ │ │ │ └── dynamic/ │ │ │ └── loader/ │ │ │ ├── PluginLoader.java │ │ │ └── PluginServiceConnection.java │ │ ├── dynamic-loader-impl/ │ │ │ ├── .gitignore │ │ │ ├── build.gradle │ │ │ └── src/ │ │ │ └── main/ │ │ │ └── kotlin/ │ │ │ └── com/ │ │ │ └── tencent/ │ │ │ └── shadow/ │ │ │ └── dynamic/ │ │ │ ├── impl/ │ │ │ │ └── LoaderFactoryImpl.kt │ │ │ └── loader/ │ │ │ └── impl/ │ │ │ ├── BinderPluginServiceConnection.kt │ │ │ ├── CoreLoaderFactory.kt │ │ │ ├── DynamicPluginLoader.kt │ │ │ ├── LoaderFactoryImpl.kt │ │ │ └── PluginLoaderBinder.kt │ │ ├── dynamic-manager/ │ │ │ ├── .gitignore │ │ │ ├── build.gradle │ │ │ ├── proguard-rules.pro │ │ │ └── src/ │ │ │ └── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── tencent/ │ │ │ └── shadow/ │ │ │ └── dynamic/ │ │ │ └── manager/ │ │ │ ├── BaseDynamicPluginManager.java │ │ │ ├── BinderPluginLoader.java │ │ │ ├── PluginManagerThatUseDynamicLoader.java │ │ │ ├── PluginServiceConnectionBinder.java │ │ │ ├── UuidManagerBinder.java │ │ │ └── UuidManagerImpl.java │ │ ├── dynamic-manager-multi-loader-ext/ │ │ │ ├── .gitignore │ │ │ ├── build.gradle │ │ │ ├── proguard-rules.pro │ │ │ └── src/ │ │ │ └── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── tencent/ │ │ │ └── shadow/ │ │ │ └── dynamic/ │ │ │ └── manager/ │ │ │ └── PluginManagerThatSupportMultiLoader.java │ │ ├── gradle/ │ │ │ └── wrapper/ │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ │ ├── gradle.properties │ │ ├── gradlew │ │ ├── gradlew.bat │ │ └── settings.gradle │ └── test/ │ ├── common-jar-settings-test/ │ │ ├── .gitignore │ │ ├── build.gradle │ │ └── src/ │ │ └── main/ │ │ └── java/ │ │ └── Test.java │ ├── dynamic/ │ │ ├── host/ │ │ │ └── test-dynamic-host/ │ │ │ ├── .gitignore │ │ │ ├── build.gradle │ │ │ ├── proguard-rules.pro │ │ │ └── src/ │ │ │ ├── androidTest/ │ │ │ │ ├── AndroidManifest.xml │ │ │ │ └── java/ │ │ │ │ └── com/ │ │ │ │ ├── google/ │ │ │ │ │ └── devtools/ │ │ │ │ │ └── build/ │ │ │ │ │ └── android/ │ │ │ │ │ └── desugar/ │ │ │ │ │ └── runtime/ │ │ │ │ │ └── ThrowableExtension.java │ │ │ │ └── tencent/ │ │ │ │ └── shadow/ │ │ │ │ └── test/ │ │ │ │ ├── CreateResourceTest.java │ │ │ │ ├── CustomAndroidJUnitRunner.java │ │ │ │ ├── PluginTest.java │ │ │ │ ├── cases/ │ │ │ │ │ ├── plugin_androidx/ │ │ │ │ │ │ ├── AppCompatActivityTest.java │ │ │ │ │ │ ├── ComponentFactoryTest.java │ │ │ │ │ │ ├── LiveDataWithActivityTest.java │ │ │ │ │ │ └── PluginAndroidxAppTest.java │ │ │ │ │ ├── plugin_main/ │ │ │ │ │ │ ├── ActivityContextSubDirTest.java │ │ │ │ │ │ ├── ActivityLifecycleCallbacksTest.java │ │ │ │ │ │ ├── ActivityReCreateTest.java │ │ │ │ │ │ ├── ActivityWindowSoftModeTest.java │ │ │ │ │ │ ├── ApplicationContextInActivityTest.java │ │ │ │ │ │ ├── ApplicationContextSubDirTest.java │ │ │ │ │ │ ├── ApplicationTest.java │ │ │ │ │ │ ├── BasicTest.java │ │ │ │ │ │ ├── BootClassloaderTest.java │ │ │ │ │ │ ├── ContextGetPackageCodePathTest.java │ │ │ │ │ │ ├── GetCallingActivityTest.java │ │ │ │ │ │ ├── HostInterfaceTest.java │ │ │ │ │ │ ├── InstrumentationTest.java │ │ │ │ │ │ ├── LayoutInflaterTest.java │ │ │ │ │ │ ├── NullRefInXmlTest.java │ │ │ │ │ │ ├── PackageManagerTest.java │ │ │ │ │ │ ├── PluginBroadcastReceiverTest.java │ │ │ │ │ │ ├── PluginMainAppTest.java │ │ │ │ │ │ ├── PluginServiceTest.java │ │ │ │ │ │ ├── RegisterNullReceiverTest.java │ │ │ │ │ │ ├── ReinstallPluginTest.java │ │ │ │ │ │ ├── ServiceContextSubDirTest.java │ │ │ │ │ │ ├── SubDirContextThemeWrapperTest.java │ │ │ │ │ │ ├── TargetFragmentTest.java │ │ │ │ │ │ ├── ThemeTest.java │ │ │ │ │ │ ├── ViewIdTest.java │ │ │ │ │ │ ├── application_info/ │ │ │ │ │ │ │ ├── ApplicationInfoTest.java │ │ │ │ │ │ │ ├── CommonApplicationInfoTest.java │ │ │ │ │ │ │ ├── ContextGetApplicationInfoTest.java │ │ │ │ │ │ │ ├── PackageManagerGetOtherInstalledApplicationInfoTest.java │ │ │ │ │ │ │ └── PackageManagerGetSelfApplicationInfoTest.java │ │ │ │ │ │ ├── dialog_support/ │ │ │ │ │ │ │ ├── AlertDialogOwnerActivityTest.java │ │ │ │ │ │ │ └── DialogOwnerActivityTest.java │ │ │ │ │ │ └── fragment_support/ │ │ │ │ │ │ ├── CommonFragmentSupportTest.java │ │ │ │ │ │ ├── FragmentSupportTest.java │ │ │ │ │ │ ├── ProgrammaticallyAddBaseFragmentTest.java │ │ │ │ │ │ ├── ProgrammaticallyAddDialogFragmentTest.java │ │ │ │ │ │ ├── ProgrammaticallyAddFragmentTest.java │ │ │ │ │ │ ├── ProgrammaticallyAddNormalFragmentTest.java │ │ │ │ │ │ ├── ProgrammaticallyAddOnlyOverrideOnAttachActivityFragmentTest.java │ │ │ │ │ │ ├── ProgrammaticallyAddOnlyOverrideOnAttachContextFragmentTest.java │ │ │ │ │ │ ├── ProgrammaticallyAddSubFragmentTest.java │ │ │ │ │ │ ├── XmlAddBaseFragmentTest.java │ │ │ │ │ │ ├── XmlAddFragmentTest.java │ │ │ │ │ │ ├── XmlAddNormalFragmentTest.java │ │ │ │ │ │ └── XmlAddSubFragmentTest.java │ │ │ │ │ └── plugin_service/ │ │ │ │ │ ├── PluginIntentServiceConnectionTest.java │ │ │ │ │ ├── PluginServiceAppTest.java │ │ │ │ │ └── PluginServiceConnectionTest.java │ │ │ │ └── repeat/ │ │ │ │ ├── Repeat.java │ │ │ │ └── RepeatRule.java │ │ │ └── main/ │ │ │ ├── AndroidManifest.xml │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── tencent/ │ │ │ │ └── shadow/ │ │ │ │ └── test/ │ │ │ │ └── dynamic/ │ │ │ │ └── host/ │ │ │ │ ├── AndroidLogLoggerFactory.java │ │ │ │ ├── BindPluginServiceActivity.java │ │ │ │ ├── HostApplication.java │ │ │ │ ├── JumpToPluginActivity.java │ │ │ │ ├── MainActivity.java │ │ │ │ ├── PluginHelper.java │ │ │ │ ├── PluginLoadActivity.java │ │ │ │ ├── PluginProcessPPS.java │ │ │ │ ├── PluginServiceProcessPPS.java │ │ │ │ ├── SimpleIdlingResourceImpl.java │ │ │ │ └── manager/ │ │ │ │ ├── FixedPathPmUpdater.java │ │ │ │ └── Shadow.java │ │ │ └── res/ │ │ │ ├── layout/ │ │ │ │ ├── activity_jump_to_plugin.xml │ │ │ │ ├── activity_load.xml │ │ │ │ └── part_key_adapter.xml │ │ │ └── values/ │ │ │ ├── strings.xml │ │ │ └── themes.xml │ │ ├── manager/ │ │ │ └── test-dynamic-manager/ │ │ │ ├── .gitignore │ │ │ ├── build.gradle │ │ │ ├── proguard-rules.pro │ │ │ └── src/ │ │ │ └── main/ │ │ │ ├── AndroidManifest.xml │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── tencent/ │ │ │ │ └── shadow/ │ │ │ │ ├── dynamic/ │ │ │ │ │ └── impl/ │ │ │ │ │ ├── ManagerFactoryImpl.java │ │ │ │ │ └── WhiteList.java │ │ │ │ └── test/ │ │ │ │ ├── UiUtil.java │ │ │ │ ├── cases/ │ │ │ │ │ ├── PluginIntentServiceConnectionTestCase.java │ │ │ │ │ └── PluginServiceConnectionTestCase.java │ │ │ │ └── dynamic/ │ │ │ │ └── manager/ │ │ │ │ ├── ActivityTestDynamicPluginManager.java │ │ │ │ ├── FastPluginManager.java │ │ │ │ ├── ReinstallPluginTestDynamicPluginManager.java │ │ │ │ ├── ServiceTestDynamicPluginManager.java │ │ │ │ └── TestDynamicPluginManager.java │ │ │ └── res/ │ │ │ └── layout/ │ │ │ └── activity_load_plugin.xml │ │ └── plugin/ │ │ ├── test-dynamic-loader/ │ │ │ ├── .gitignore │ │ │ ├── build.gradle │ │ │ ├── proguard-rules.pro │ │ │ └── src/ │ │ │ └── main/ │ │ │ ├── AndroidManifest.xml │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── tencent/ │ │ │ └── shadow/ │ │ │ ├── dynamic/ │ │ │ │ └── loader/ │ │ │ │ └── impl/ │ │ │ │ └── CoreLoaderFactoryImpl.java │ │ │ └── test/ │ │ │ └── dynamic/ │ │ │ └── loader/ │ │ │ ├── TestComponentManager.java │ │ │ └── TestPluginLoader.java │ │ └── test-dynamic-runtime/ │ │ ├── .gitignore │ │ ├── build.gradle │ │ ├── proguard-rules.pro │ │ └── src/ │ │ └── main/ │ │ ├── AndroidManifest.xml │ │ └── java/ │ │ └── com/ │ │ └── tencent/ │ │ └── shadow/ │ │ └── test/ │ │ └── dynamic/ │ │ └── runtime/ │ │ └── container/ │ │ ├── PluginDefaultProxyActivity.java │ │ ├── PluginSingleInstance1ProxyActivity.java │ │ └── PluginSingleTask1ProxyActivity.java │ ├── gradle-plugin-agp-compat-test/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── build.gradle │ │ ├── gradle/ │ │ │ └── wrapper/ │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ │ ├── gradle.properties │ │ ├── gradlew │ │ ├── gradlew.bat │ │ ├── settings.gradle │ │ ├── stub-project/ │ │ │ ├── .gitignore │ │ │ ├── build.gradle │ │ │ ├── proguard-rules.pro │ │ │ ├── settings.gradle │ │ │ └── src/ │ │ │ └── main/ │ │ │ ├── AndroidManifest.xml │ │ │ ├── java/ │ │ │ │ └── PluginManifestIncludeTest.java │ │ │ └── res/ │ │ │ └── values/ │ │ │ └── themes.xml │ │ ├── test_JDK11.sh │ │ ├── test_JDK17.sh │ │ ├── test_clean.sh │ │ └── test_prepare.sh │ ├── lib/ │ │ ├── constant/ │ │ │ ├── .gitignore │ │ │ ├── build.gradle │ │ │ ├── proguard-rules.pro │ │ │ └── src/ │ │ │ └── main/ │ │ │ ├── AndroidManifest.xml │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── tencent/ │ │ │ └── shadow/ │ │ │ └── test/ │ │ │ └── lib/ │ │ │ └── constant/ │ │ │ └── Constant.java │ │ ├── custom-view/ │ │ │ ├── .gitignore │ │ │ ├── build.gradle │ │ │ ├── proguard-rules.pro │ │ │ └── src/ │ │ │ └── main/ │ │ │ ├── AndroidManifest.xml │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── tencent/ │ │ │ └── shadow/ │ │ │ └── test/ │ │ │ └── lib/ │ │ │ └── custom_view/ │ │ │ └── TestViewConstructorCacheView.java │ │ ├── plugin-use-host-code-lib/ │ │ │ ├── .gitignore │ │ │ ├── build.gradle │ │ │ └── src/ │ │ │ └── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── tencent/ │ │ │ └── shadow/ │ │ │ └── test/ │ │ │ └── lib/ │ │ │ └── plugin_use_host_code_lib/ │ │ │ ├── interfaces/ │ │ │ │ ├── HostTestInterface.java │ │ │ │ └── subpackage/ │ │ │ │ └── Foo.java │ │ │ └── other/ │ │ │ └── HostOtherInterface.java │ │ └── test-manager/ │ │ ├── .gitignore │ │ ├── build.gradle │ │ └── src/ │ │ └── main/ │ │ └── java/ │ │ └── com/ │ │ └── tencent/ │ │ └── shadow/ │ │ └── test/ │ │ └── lib/ │ │ └── test_manager/ │ │ ├── SimpleIdlingResource.java │ │ └── TestManager.java │ ├── none-dynamic/ │ │ └── host/ │ │ └── test-none-dynamic-host/ │ │ ├── .gitignore │ │ ├── build.gradle │ │ ├── proguard-rules.pro │ │ └── src/ │ │ └── main/ │ │ ├── AndroidManifest.xml │ │ ├── java/ │ │ │ └── com/ │ │ │ └── tencent/ │ │ │ └── shadow/ │ │ │ └── test/ │ │ │ └── none_dynamic/ │ │ │ └── host/ │ │ │ ├── DefaultContainerActivity.java │ │ │ ├── HostApplication.java │ │ │ ├── MainActivity.java │ │ │ ├── PreparePluginApkBloc.java │ │ │ ├── SLoggerFactory.java │ │ │ ├── SingleTaskContainerActivity.java │ │ │ ├── TestComponentManager.java │ │ │ ├── TestLoadingActivity.java │ │ │ └── TestPluginLoader.java │ │ └── res/ │ │ ├── layout/ │ │ │ ├── activity_main.xml │ │ │ └── qq_nearby_now_loading.xml │ │ └── values/ │ │ ├── strings.xml │ │ └── themes.xml │ └── plugin/ │ ├── androidx-cases/ │ │ └── test-plugin-androidx-cases/ │ │ ├── .gitignore │ │ ├── build.gradle │ │ ├── proguard-rules.pro │ │ └── src/ │ │ └── main/ │ │ ├── AndroidManifest.xml │ │ └── java/ │ │ └── com/ │ │ └── tencent/ │ │ └── shadow/ │ │ └── test/ │ │ └── plugin/ │ │ └── androidx_cases/ │ │ └── lib/ │ │ ├── AppCompatTestActivity.java │ │ ├── AppComponentFactoryTestActivity.java │ │ ├── LiveDataWithActivityTestActivity.java │ │ ├── TestComponentFactory.java │ │ └── UiUtil.java │ ├── general-cases/ │ │ └── test-plugin-general-cases/ │ │ ├── .gitignore │ │ ├── build.gradle │ │ ├── proguard-rules.pro │ │ └── src/ │ │ ├── androidTest/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── tencent/ │ │ │ └── shadow/ │ │ │ └── test/ │ │ │ └── plugin/ │ │ │ └── general_cases/ │ │ │ └── app/ │ │ │ ├── ActivityLifecycleCallbacksTest.java │ │ │ ├── CustomAndroidJUnitRunner.java │ │ │ ├── NormalAppTest.java │ │ │ └── PackageManagerTest.java │ │ └── main/ │ │ ├── AndroidManifest.xml │ │ ├── java/ │ │ │ ├── com/ │ │ │ │ └── tencent/ │ │ │ │ └── shadow/ │ │ │ │ └── test/ │ │ │ │ └── plugin/ │ │ │ │ └── general_cases/ │ │ │ │ └── lib/ │ │ │ │ ├── gallery/ │ │ │ │ │ ├── TestApplication.java │ │ │ │ │ └── util/ │ │ │ │ │ ├── ToastUtil.java │ │ │ │ │ └── UiUtil.java │ │ │ │ └── usecases/ │ │ │ │ ├── SimpleIdlingResource.java │ │ │ │ ├── WithIdlingResourceActivity.java │ │ │ │ ├── activity/ │ │ │ │ │ ├── ApplicationContextActivity.java │ │ │ │ │ ├── PrintActivityResultActivity.java │ │ │ │ │ ├── TestActivityOnCreate.java │ │ │ │ │ ├── TestActivityOrientation.java │ │ │ │ │ ├── TestActivityReCreate.java │ │ │ │ │ ├── TestActivityReCreateBySystem.java │ │ │ │ │ ├── TestActivityWindowSoftMode.java │ │ │ │ │ ├── TestCallingActivity.java │ │ │ │ │ ├── TestListActivity.java │ │ │ │ │ └── WindowSoftModeJumpActivity.java │ │ │ │ ├── application/ │ │ │ │ │ ├── ActivityLifecycleCallbacksTestActivity.java │ │ │ │ │ ├── TestApplicationActivity.java │ │ │ │ │ └── TestGetApplicationInfoActivity.java │ │ │ │ ├── classloader/ │ │ │ │ │ └── TestBootClassloaderActivity.java │ │ │ │ ├── context/ │ │ │ │ │ ├── ActivityContextSubDirTestActivity.java │ │ │ │ │ ├── ApplicationContextSubDirTestActivity.java │ │ │ │ │ ├── ContextGetPackageCodePathTestActivity.java │ │ │ │ │ ├── RegisterNullReceiverActivity.java │ │ │ │ │ ├── ServiceContextSubDirTestActivity.java │ │ │ │ │ ├── SubDirContextThemeWrapperTestActivity.java │ │ │ │ │ ├── TestLayoutInflaterActivity.java │ │ │ │ │ └── TestThemeActivity.java │ │ │ │ ├── dialog/ │ │ │ │ │ ├── TestAlertDialogActivity.java │ │ │ │ │ ├── TestDialog.java │ │ │ │ │ └── TestDialogActivity.java │ │ │ │ ├── fragment/ │ │ │ │ │ ├── BaseFragment.java │ │ │ │ │ ├── FragmentStartedActivity.java │ │ │ │ │ ├── OnlyOverrideActivityMethodBaseFragment.java │ │ │ │ │ ├── OnlyOverrideContextMethodBaseFragment.java │ │ │ │ │ ├── ProgrammaticallyAddFragmentActivity.java │ │ │ │ │ ├── SubTestBaseFragment.java │ │ │ │ │ ├── TargetFragmentTestActivity.java │ │ │ │ │ ├── TestBaseFragment.java │ │ │ │ │ ├── TestDialogFragment.java │ │ │ │ │ ├── TestFragment.java │ │ │ │ │ ├── TestFragmentCommonLogic.java │ │ │ │ │ ├── TestNormalFragment.java │ │ │ │ │ ├── TestSubFragment.java │ │ │ │ │ ├── TestSubOnlyOverrideOnAttachActivityFragment.java │ │ │ │ │ ├── TestSubOnlyOverrideOnAttachContextFragment.java │ │ │ │ │ └── XmlAddFragmentActivity.java │ │ │ │ ├── instrumentation/ │ │ │ │ │ ├── MyInstrumentation.java │ │ │ │ │ └── TestInstrumentationActivity.java │ │ │ │ ├── interfaces/ │ │ │ │ │ └── TestHostInterfaceActivity.java │ │ │ │ ├── packagemanager/ │ │ │ │ │ └── TestPackageManagerActivity.java │ │ │ │ ├── provider/ │ │ │ │ │ ├── TestDBContentProviderActivity.java │ │ │ │ │ ├── TestDBHelper.java │ │ │ │ │ ├── TestFileProviderActivity.java │ │ │ │ │ ├── TestProvider.java │ │ │ │ │ └── TestProviderInfo.java │ │ │ │ ├── receiver/ │ │ │ │ │ ├── BroadCastHelper.java │ │ │ │ │ ├── MyReceiver.java │ │ │ │ │ ├── ReceiverWithoutAction.java │ │ │ │ │ └── TestReceiverActivity.java │ │ │ │ ├── service/ │ │ │ │ │ ├── TestService.java │ │ │ │ │ └── TestStartServiceActivity.java │ │ │ │ └── view/ │ │ │ │ ├── TestNullRefInXmlActivity.java │ │ │ │ ├── TestViewConstructorCache.java │ │ │ │ └── TestViewIdActivity.java │ │ │ └── org/ │ │ │ └── xmlpull/ │ │ │ └── v1/ │ │ │ └── XmlPullParser.java │ │ └── res/ │ │ ├── layout/ │ │ │ ├── activity_list.xml │ │ │ ├── activity_test_file_provider.xml │ │ │ ├── activity_test_re_create_by_system.xml │ │ │ ├── layout_activity_lifecycle.xml │ │ │ ├── layout_common.xml │ │ │ ├── layout_fragment_activity.xml │ │ │ ├── layout_fragment_test.xml │ │ │ ├── layout_list_item.xml │ │ │ ├── layout_orientation.xml │ │ │ ├── layout_packagemanager.xml │ │ │ ├── layout_provider_db.xml │ │ │ ├── layout_receiver.xml │ │ │ ├── layout_recreate.xml │ │ │ ├── layout_result.xml │ │ │ ├── layout_service.xml │ │ │ ├── layout_softmode.xml │ │ │ ├── layout_test_null_ref.xml │ │ │ ├── layout_test_view_cons_cache.xml │ │ │ ├── layout_test_view_id.xml │ │ │ ├── layout_xml_add_base_fragment_activity.xml │ │ │ ├── layout_xml_add_normal_fragment_activity.xml │ │ │ └── layout_xml_add_sub_fragment_activity.xml │ │ ├── values/ │ │ │ ├── strings.xml │ │ │ └── themes.xml │ │ └── xml/ │ │ └── filepaths.xml │ └── particular-cases/ │ └── plugin-service-for-host/ │ ├── .gitignore │ ├── build.gradle │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ └── java/ │ └── com/ │ └── tencent/ │ └── shadow/ │ └── test/ │ └── plugin/ │ └── particular_cases/ │ └── plugin_service_for_host/ │ ├── SystemExitIntentService.java │ └── SystemExitService.java └── settings.gradle