gitextract_twe1voez/ ├── .github/ │ ├── ISSUE_TEMPLATE.md │ └── PULL_REQUEST_TEMPLATE.md ├── .gitignore ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── README_CN.md ├── deploy.sh ├── replugin-host-gradle/ │ ├── README.md │ ├── build.gradle │ ├── gradle/ │ │ └── wrapper/ │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties │ ├── gradle.properties │ ├── gradlew │ ├── gradlew.bat │ └── src/ │ └── main/ │ ├── groovy/ │ │ └── com/ │ │ └── qihoo360/ │ │ └── replugin/ │ │ └── gradle/ │ │ ├── compat/ │ │ │ ├── ScopeCompat.groovy │ │ │ └── VariantCompat.groovy │ │ └── host/ │ │ ├── AppConstant.groovy │ │ ├── RePlugin.groovy │ │ ├── creator/ │ │ │ ├── FileCreators.groovy │ │ │ ├── IFileCreator.groovy │ │ │ └── impl/ │ │ │ ├── java/ │ │ │ │ └── RePluginHostConfigCreator.groovy │ │ │ └── json/ │ │ │ ├── PluginBuiltinJsonCreator.groovy │ │ │ ├── PluginInfo.groovy │ │ │ └── PluginInfoParser.groovy │ │ └── handlemanifest/ │ │ └── ComponentsGenerator.groovy │ └── resources/ │ └── META-INF/ │ └── gradle-plugins/ │ └── replugin-host-gradle.properties ├── replugin-host-library/ │ ├── README.md │ ├── build.gradle │ ├── gradle/ │ │ └── wrapper/ │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties │ ├── gradle.properties │ ├── gradlew │ ├── gradlew.bat │ ├── replugin-host-lib/ │ │ ├── bintray.gradle │ │ ├── build.gradle │ │ ├── replugin-rules.pro │ │ └── src/ │ │ └── main/ │ │ ├── AndroidManifest.xml │ │ ├── aidl/ │ │ │ └── com/ │ │ │ └── qihoo360/ │ │ │ ├── loader2/ │ │ │ │ ├── IPlugin.aidl │ │ │ │ ├── IPluginClient.aidl │ │ │ │ ├── IPluginHost.aidl │ │ │ │ ├── PluginBinderInfo.aidl │ │ │ │ ├── mgr/ │ │ │ │ │ └── IServiceConnection.aidl │ │ │ │ └── sp/ │ │ │ │ └── IPref.aidl │ │ │ ├── mobilesafe/ │ │ │ │ └── svcmanager/ │ │ │ │ └── IServiceChannel.aidl │ │ │ └── replugin/ │ │ │ ├── IBinderGetter.aidl │ │ │ ├── component/ │ │ │ │ └── service/ │ │ │ │ └── server/ │ │ │ │ └── IPluginServiceServer.aidl │ │ │ ├── model/ │ │ │ │ └── PluginInfo.aidl │ │ │ └── packages/ │ │ │ ├── IPluginManagerServer.aidl │ │ │ └── PluginRunningList.aidl │ │ └── java/ │ │ └── com/ │ │ └── qihoo360/ │ │ ├── i/ │ │ │ ├── Factory.java │ │ │ ├── Factory2.java │ │ │ ├── IModule.java │ │ │ ├── IPlugin.java │ │ │ └── IPluginManager.java │ │ ├── loader/ │ │ │ ├── utils/ │ │ │ │ ├── LocalBroadcastManager.java │ │ │ │ ├── PackageUtils.java │ │ │ │ ├── PatchClassLoaderUtils.java │ │ │ │ ├── ProcessLocker.java │ │ │ │ ├── StringUtils.java │ │ │ │ └── SysUtils.java │ │ │ └── utils2/ │ │ │ └── FilePermissionUtils.java │ │ ├── loader2/ │ │ │ ├── BinderCursor.java │ │ │ ├── BuildCompat.java │ │ │ ├── Builder.java │ │ │ ├── CertUtils.java │ │ │ ├── Constant.java │ │ │ ├── DumpUtils.java │ │ │ ├── Finder.java │ │ │ ├── FinderBuiltin.java │ │ │ ├── LaunchModeStates.java │ │ │ ├── Loader.java │ │ │ ├── MP.java │ │ │ ├── PMF.java │ │ │ ├── Plugin.java │ │ │ ├── PluginBinderInfo.java │ │ │ ├── PluginCommImpl.java │ │ │ ├── PluginContainers.java │ │ │ ├── PluginContext.java │ │ │ ├── PluginDesc.java │ │ │ ├── PluginIntent.java │ │ │ ├── PluginLibraryInternalProxy.java │ │ │ ├── PluginManager.java │ │ │ ├── PluginNativeLibsHelper.java │ │ │ ├── PluginProcessMain.java │ │ │ ├── PluginProcessPer.java │ │ │ ├── PluginProviderStub.java │ │ │ ├── PluginStatusController.java │ │ │ ├── PluginTable.java │ │ │ ├── PmBase.java │ │ │ ├── PmHostSvc.java │ │ │ ├── ProcessStates.java │ │ │ ├── StubProcessManager.java │ │ │ ├── TaskAffinityStates.java │ │ │ ├── V5FileInfo.java │ │ │ ├── V5Finder.java │ │ │ ├── VMRuntimeCompat.java │ │ │ ├── alc/ │ │ │ │ ├── ActivityController.java │ │ │ │ └── IActivityWatcher.java │ │ │ ├── mgr/ │ │ │ │ ├── PluginProviderClient.java │ │ │ │ └── PluginServiceClient.java │ │ │ └── sp/ │ │ │ └── PrefImpl.java │ │ ├── mobilesafe/ │ │ │ ├── api/ │ │ │ │ ├── AppVar.java │ │ │ │ ├── IPC.java │ │ │ │ ├── Intents.java │ │ │ │ ├── Pref.java │ │ │ │ └── Tasks.java │ │ │ ├── loader/ │ │ │ │ ├── a/ │ │ │ │ │ └── DummyActivity.java │ │ │ │ ├── p/ │ │ │ │ │ └── DummyProvider.java │ │ │ │ └── s/ │ │ │ │ └── DummyService.java │ │ │ ├── parser/ │ │ │ │ └── manifest/ │ │ │ │ ├── ManifestParser.java │ │ │ │ ├── XmlHandler.java │ │ │ │ └── bean/ │ │ │ │ ├── ComponentBean.java │ │ │ │ └── DataBean.java │ │ │ └── svcmanager/ │ │ │ ├── ParcelBinder.java │ │ │ ├── PluginServiceManager.java │ │ │ ├── PluginServiceRecord.java │ │ │ ├── PluginServiceReferenceManager.java │ │ │ ├── QihooServiceManager.java │ │ │ ├── ServiceChannelCursor.java │ │ │ ├── ServiceChannelImpl.java │ │ │ ├── ServiceProvider.java │ │ │ └── ServiceWrapper.java │ │ └── replugin/ │ │ ├── ContextInjector.java │ │ ├── DefaultRePluginCallbacks.java │ │ ├── DefaultRePluginEventCallbacks.java │ │ ├── IHostBinderFetcher.java │ │ ├── PluginDexClassLoader.java │ │ ├── PluginDexClassLoaderPatch.java │ │ ├── RePlugin.java │ │ ├── RePluginApplication.java │ │ ├── RePluginCallbacks.java │ │ ├── RePluginClassLoader.java │ │ ├── RePluginConfig.java │ │ ├── RePluginConstants.java │ │ ├── RePluginEventCallbacks.java │ │ ├── RePluginInternal.java │ │ ├── base/ │ │ │ ├── AMSUtils.java │ │ │ ├── IPC.java │ │ │ ├── LocalBroadcastHelper.java │ │ │ └── ThreadUtils.java │ │ ├── component/ │ │ │ ├── ComponentList.java │ │ │ ├── activity/ │ │ │ │ ├── ActivityInjector.java │ │ │ │ └── DynamicClassProxyActivity.java │ │ │ ├── app/ │ │ │ │ └── PluginApplicationClient.java │ │ │ ├── dummy/ │ │ │ │ ├── DummyActivity.java │ │ │ │ ├── DummyProvider.java │ │ │ │ ├── DummyReceiver.java │ │ │ │ ├── DummyService.java │ │ │ │ └── ForwardActivity.java │ │ │ ├── process/ │ │ │ │ ├── PluginProcessHost.java │ │ │ │ ├── ProcessPitProviderBase.java │ │ │ │ ├── ProcessPitProviderLoader0.java │ │ │ │ ├── ProcessPitProviderLoader1.java │ │ │ │ ├── ProcessPitProviderP0.java │ │ │ │ ├── ProcessPitProviderP1.java │ │ │ │ ├── ProcessPitProviderP2.java │ │ │ │ ├── ProcessPitProviderPersist.java │ │ │ │ └── ProcessPitProviderUI.java │ │ │ ├── provider/ │ │ │ │ ├── PluginPitProviderBase.java │ │ │ │ ├── PluginPitProviderP0.java │ │ │ │ ├── PluginPitProviderP1.java │ │ │ │ ├── PluginPitProviderP2.java │ │ │ │ ├── PluginPitProviderPersist.java │ │ │ │ ├── PluginPitProviderUI.java │ │ │ │ ├── PluginProviderClient.java │ │ │ │ ├── PluginProviderClient2.java │ │ │ │ └── PluginProviderHelper.java │ │ │ ├── receiver/ │ │ │ │ ├── PluginReceiverHelper.java │ │ │ │ └── PluginReceiverProxy.java │ │ │ ├── service/ │ │ │ │ ├── PluginServiceClient.java │ │ │ │ ├── PluginServiceDispatcherManager.java │ │ │ │ ├── PluginServiceServerFetcher.java │ │ │ │ ├── ServiceDispatcher.java │ │ │ │ └── server/ │ │ │ │ ├── ConnectionBindRecord.java │ │ │ │ ├── IntentBindRecord.java │ │ │ │ ├── PluginPitService.java │ │ │ │ ├── PluginServiceServer.java │ │ │ │ ├── ProcessBindRecord.java │ │ │ │ ├── ProcessRecord.java │ │ │ │ └── ServiceRecord.java │ │ │ └── utils/ │ │ │ ├── ApkCommentReader.java │ │ │ ├── IntentMatcherHelper.java │ │ │ └── PluginClientHelper.java │ │ ├── debugger/ │ │ │ └── DebuggerReceivers.java │ │ ├── ext/ │ │ │ └── parser/ │ │ │ ├── AbstractApkParser.java │ │ │ ├── ApkParser.java │ │ │ ├── exception/ │ │ │ │ └── ParserException.java │ │ │ ├── parser/ │ │ │ │ ├── BinaryXmlParser.java │ │ │ │ ├── StringPoolEntry.java │ │ │ │ ├── XmlNamespaces.java │ │ │ │ ├── XmlStreamer.java │ │ │ │ └── XmlTranslator.java │ │ │ ├── struct/ │ │ │ │ ├── ChunkHeader.java │ │ │ │ ├── ChunkType.java │ │ │ │ ├── ResourceValue.java │ │ │ │ ├── StringPool.java │ │ │ │ ├── StringPoolHeader.java │ │ │ │ └── xml/ │ │ │ │ ├── Attribute.java │ │ │ │ ├── Attributes.java │ │ │ │ ├── NullHeader.java │ │ │ │ ├── XmlHeader.java │ │ │ │ ├── XmlNamespaceEndTag.java │ │ │ │ ├── XmlNamespaceStartTag.java │ │ │ │ ├── XmlNodeEndTag.java │ │ │ │ ├── XmlNodeHeader.java │ │ │ │ ├── XmlNodeStartTag.java │ │ │ │ └── XmlResourceMapHeader.java │ │ │ └── utils/ │ │ │ ├── Buffers.java │ │ │ ├── ParseUtils.java │ │ │ └── xml/ │ │ │ ├── AggregateTranslator.java │ │ │ ├── CharSequenceTranslator.java │ │ │ ├── CodePointTranslator.java │ │ │ ├── EntityArrays.java │ │ │ ├── LookupTranslator.java │ │ │ ├── NumericEntityEscaper.java │ │ │ ├── UnicodeUnpairedSurrogateRemover.java │ │ │ └── XmlEscaper.java │ │ ├── helper/ │ │ │ ├── HostConfigHelper.java │ │ │ ├── JSONHelper.java │ │ │ ├── LogDebug.java │ │ │ └── LogRelease.java │ │ ├── model/ │ │ │ ├── PluginInfo.java │ │ │ └── PluginInfoList.java │ │ ├── packages/ │ │ │ ├── PluginFastInstallProvider.java │ │ │ ├── PluginFastInstallProviderProxy.java │ │ │ ├── PluginInfoUpdater.java │ │ │ ├── PluginManagerProxy.java │ │ │ ├── PluginManagerServer.java │ │ │ ├── PluginPublishFileGenerator.java │ │ │ ├── PluginRunningList.java │ │ │ └── RePluginInstaller.java │ │ └── utils/ │ │ ├── AssetsUtils.java │ │ ├── Charsets.java │ │ ├── CloseableUtils.java │ │ ├── Dex2OatUtils.java │ │ ├── FileUtils.java │ │ ├── FixOTranslucentOrientation.java │ │ ├── IOUtils.java │ │ ├── InterpretDex2OatHelper.java │ │ ├── ReflectUtils.java │ │ ├── StringBuilderWriter.java │ │ ├── Validate.java │ │ ├── basic/ │ │ │ ├── ArrayMap.java │ │ │ ├── ArraySet.java │ │ │ ├── ByteConvertor.java │ │ │ ├── ContainerHelpers.java │ │ │ ├── MapCollections.java │ │ │ ├── SecurityUtil.java │ │ │ └── SimpleArrayMap.java │ │ └── pkg/ │ │ └── PackageFilesUtil.java │ └── settings.gradle ├── replugin-plugin-gradle/ │ ├── README.md │ ├── bintray.gradle │ ├── build.gradle │ ├── config.gradle │ ├── config.properties │ ├── gradle/ │ │ └── wrapper/ │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties │ ├── gradle.properties │ ├── gradlew │ ├── gradlew.bat │ └── src/ │ └── main/ │ ├── groovy/ │ │ └── com/ │ │ └── qihoo360/ │ │ └── replugin/ │ │ └── gradle/ │ │ └── plugin/ │ │ ├── AppConstant.groovy │ │ ├── ReClassPlugin.groovy │ │ ├── debugger/ │ │ │ └── PluginDebugger.groovy │ │ ├── injector/ │ │ │ ├── BaseInjector.groovy │ │ │ ├── IClassInjector.groovy │ │ │ ├── Injectors.groovy │ │ │ ├── identifier/ │ │ │ │ ├── GetIdentifierExprEditor.groovy │ │ │ │ └── GetIdentifierInjector.groovy │ │ │ ├── loaderactivity/ │ │ │ │ └── LoaderActivityInjector.groovy │ │ │ ├── localbroadcast/ │ │ │ │ ├── LocalBroadcastExprEditor.groovy │ │ │ │ └── LocalBroadcastInjector.groovy │ │ │ └── provider/ │ │ │ ├── ProviderExprEditor.groovy │ │ │ ├── ProviderExprEditor2.groovy │ │ │ ├── ProviderInjector.groovy │ │ │ └── ProviderInjector2.groovy │ │ ├── inner/ │ │ │ ├── ClassFileVisitor.groovy │ │ │ ├── CommonData.groovy │ │ │ ├── ReClassTransform.groovy │ │ │ └── Util.groovy │ │ ├── manifest/ │ │ │ ├── IManifest.groovy │ │ │ ├── ManifestAPI.groovy │ │ │ └── ManifestReader.groovy │ │ └── util/ │ │ └── CmdUtil.groovy │ └── resources/ │ └── META-INF/ │ └── gradle-plugins/ │ └── replugin-plugin-gradle.properties ├── replugin-plugin-library/ │ ├── README.md │ ├── build.gradle │ ├── gradle/ │ │ └── wrapper/ │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties │ ├── gradle.properties │ ├── gradlew │ ├── gradlew.bat │ ├── replugin-plugin-lib/ │ │ ├── bintray.gradle │ │ ├── build.gradle │ │ ├── proguard-rules.pro │ │ ├── replugin-library-rules.pro │ │ └── src/ │ │ └── main/ │ │ ├── AndroidManifest.xml │ │ ├── aidl/ │ │ │ └── com/ │ │ │ └── qihoo360/ │ │ │ ├── loader2/ │ │ │ │ └── IPlugin.aidl │ │ │ └── replugin/ │ │ │ └── IBinderGetter.aidl │ │ └── java/ │ │ └── com/ │ │ └── qihoo360/ │ │ └── replugin/ │ │ ├── Entry.java │ │ ├── MethodInvoker.java │ │ ├── RePlugin.java │ │ ├── RePluginCompat.java │ │ ├── RePluginEnv.java │ │ ├── RePluginFramework.java │ │ ├── RePluginInternal.java │ │ ├── RePluginServiceManager.java │ │ ├── base/ │ │ │ └── IPC.java │ │ ├── helper/ │ │ │ ├── JSONHelper.java │ │ │ ├── LogDebug.java │ │ │ └── LogRelease.java │ │ ├── i/ │ │ │ └── IPluginManager.java │ │ ├── loader/ │ │ │ ├── PluginResource.java │ │ │ ├── a/ │ │ │ │ ├── PluginActivity.java │ │ │ │ ├── PluginActivityGroup.java │ │ │ │ ├── PluginAppCompatActivity.java │ │ │ │ ├── PluginAppCompatXActivity.java │ │ │ │ ├── PluginExpandableListActivity.java │ │ │ │ ├── PluginFragmentActivity.java │ │ │ │ ├── PluginFragmentXActivity.java │ │ │ │ ├── PluginListActivity.java │ │ │ │ ├── PluginPreferenceActivity.java │ │ │ │ └── PluginTabActivity.java │ │ │ ├── b/ │ │ │ │ └── PluginLocalBroadcastManager.java │ │ │ ├── p/ │ │ │ │ └── PluginProviderClient.java │ │ │ └── s/ │ │ │ └── PluginServiceClient.java │ │ ├── model/ │ │ │ └── PluginInfo.java │ │ ├── packages/ │ │ │ └── PluginRunningList.java │ │ └── utils/ │ │ ├── ParcelUtils.java │ │ └── ReflectUtils.java │ └── settings.gradle ├── replugin-sample/ │ ├── README.md │ ├── host/ │ │ ├── app/ │ │ │ ├── build.gradle │ │ │ ├── proguard-rules.pro │ │ │ └── src/ │ │ │ └── main/ │ │ │ ├── AndroidManifest.xml │ │ │ ├── assets/ │ │ │ │ ├── external/ │ │ │ │ │ └── README │ │ │ │ └── plugins/ │ │ │ │ ├── demo1.jar │ │ │ │ ├── demo2.jar │ │ │ │ └── webview.jar │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── qihoo360/ │ │ │ │ └── replugin/ │ │ │ │ └── sample/ │ │ │ │ └── host/ │ │ │ │ ├── FileProvider.java │ │ │ │ ├── MainActivity.java │ │ │ │ ├── PluginFragmentActivity.java │ │ │ │ ├── SampleApplication.java │ │ │ │ └── TimeUtils.java │ │ │ └── res/ │ │ │ ├── layout/ │ │ │ │ ├── activity_main.xml │ │ │ │ └── activity_plugin_fragment.xml │ │ │ ├── values/ │ │ │ │ ├── colors.xml │ │ │ │ ├── public.xml │ │ │ │ ├── strings.xml │ │ │ │ └── styles.xml │ │ │ └── xml/ │ │ │ └── fileprovider_path.xml │ │ ├── build.gradle │ │ ├── gradle/ │ │ │ └── wrapper/ │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ │ ├── gradle.properties │ │ ├── gradlew │ │ ├── gradlew.bat │ │ └── settings.gradle │ └── plugin/ │ ├── plugin-demo1/ │ │ ├── README.md │ │ ├── app/ │ │ │ ├── build.gradle │ │ │ ├── case.gradle │ │ │ ├── proguard-rules.pro │ │ │ └── src/ │ │ │ └── main/ │ │ │ ├── AndroidManifest.xml │ │ │ ├── aidl/ │ │ │ │ └── com/ │ │ │ │ └── qihoo360/ │ │ │ │ └── replugin/ │ │ │ │ └── sample/ │ │ │ │ └── demo2/ │ │ │ │ └── IDemo2.aidl │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── qihoo360/ │ │ │ │ └── replugin/ │ │ │ │ └── sample/ │ │ │ │ └── demo1/ │ │ │ │ ├── BaseActivity.java │ │ │ │ ├── LibMainActivity.java │ │ │ │ ├── MainActivity.java │ │ │ │ ├── MainApp.java │ │ │ │ ├── TestItem.java │ │ │ │ ├── TimeUtils.java │ │ │ │ ├── activity/ │ │ │ │ │ ├── file_provider/ │ │ │ │ │ │ ├── BitmapUtils.java │ │ │ │ │ │ └── FileProviderActivity.java │ │ │ │ │ ├── for_result/ │ │ │ │ │ │ └── ForResultActivity.java │ │ │ │ │ ├── intent_filter/ │ │ │ │ │ │ └── IntentFilterDemoActivity1.java │ │ │ │ │ ├── notify_test/ │ │ │ │ │ │ └── NotifyActivity.java │ │ │ │ │ ├── preference/ │ │ │ │ │ │ ├── PrefActivity1.java │ │ │ │ │ │ └── PrefActivity2.java │ │ │ │ │ ├── single_instance/ │ │ │ │ │ │ └── TIActivity1.java │ │ │ │ │ ├── single_top/ │ │ │ │ │ │ └── SingleTopActivity1.java │ │ │ │ │ ├── standard/ │ │ │ │ │ │ └── StandardActivity.java │ │ │ │ │ ├── task_affinity/ │ │ │ │ │ │ ├── TAActivity1.java │ │ │ │ │ │ ├── TAActivity2.java │ │ │ │ │ │ ├── TAActivity3.java │ │ │ │ │ │ ├── TAActivity4.java │ │ │ │ │ │ └── package-info.java │ │ │ │ │ ├── task_affinity_2/ │ │ │ │ │ │ ├── TA2Activity1.java │ │ │ │ │ │ ├── TA2Activity2.java │ │ │ │ │ │ ├── TA2Activity3.java │ │ │ │ │ │ ├── TA2Activity4.java │ │ │ │ │ │ └── package-info.java │ │ │ │ │ ├── theme/ │ │ │ │ │ │ ├── ThemeBlackNoTitleBarActivity.java │ │ │ │ │ │ ├── ThemeBlackNoTitleBarFullscreenActivity.java │ │ │ │ │ │ └── ThemeDialogActivity.java │ │ │ │ │ └── webview/ │ │ │ │ │ └── WebViewActivity.java │ │ │ │ ├── fragment/ │ │ │ │ │ ├── DemoCodeFragment.java │ │ │ │ │ └── DemoFragment.java │ │ │ │ ├── provider/ │ │ │ │ │ ├── FileProvider.java │ │ │ │ │ └── Provider2.java │ │ │ │ ├── receivers/ │ │ │ │ │ └── PluginDemo1Receiver.java │ │ │ │ ├── service/ │ │ │ │ │ ├── PluginDemoAppService.java │ │ │ │ │ ├── PluginDemoService1.java │ │ │ │ │ └── PluginDemoService2.java │ │ │ │ ├── support/ │ │ │ │ │ ├── LogX.java │ │ │ │ │ └── NotifyUtils.java │ │ │ │ └── webview/ │ │ │ │ ├── IWebPage.java │ │ │ │ ├── ViewProxy.java │ │ │ │ └── WebPageProxy.java │ │ │ └── res/ │ │ │ ├── layout/ │ │ │ │ ├── content_lib_main.xml │ │ │ │ ├── layout_notify.xml │ │ │ │ ├── lib_activity_main.xml │ │ │ │ ├── main.xml │ │ │ │ ├── main_fragment.xml │ │ │ │ ├── simple.xml │ │ │ │ ├── simple_2.xml │ │ │ │ └── simple_4.xml │ │ │ ├── values/ │ │ │ │ └── strings.xml │ │ │ └── xml/ │ │ │ ├── fileprovider_path.xml │ │ │ └── pref_headers.xml │ │ ├── build.gradle │ │ ├── gradle/ │ │ │ └── wrapper/ │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ │ ├── gradle.properties │ │ ├── gradlew │ │ ├── gradlew.bat │ │ └── settings.gradle │ ├── plugin-demo2/ │ │ ├── README.md │ │ ├── app/ │ │ │ ├── build.gradle │ │ │ ├── case.gradle │ │ │ ├── proguard-rules.pro │ │ │ └── src/ │ │ │ └── main/ │ │ │ ├── AndroidManifest.xml │ │ │ ├── aidl/ │ │ │ │ └── com/ │ │ │ │ └── qihoo360/ │ │ │ │ └── replugin/ │ │ │ │ └── sample/ │ │ │ │ └── demo2/ │ │ │ │ └── IDemo2.aidl │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── qihoo360/ │ │ │ │ └── replugin/ │ │ │ │ └── sample/ │ │ │ │ └── demo2/ │ │ │ │ ├── Demo2Impl.java │ │ │ │ ├── MainActivity.java │ │ │ │ ├── MainApp.java │ │ │ │ ├── activity/ │ │ │ │ │ ├── appcompat/ │ │ │ │ │ │ └── AppCompatActivityDemo.java │ │ │ │ │ └── for_result/ │ │ │ │ │ └── ForResultActivity.java │ │ │ │ ├── databinding/ │ │ │ │ │ ├── DataBindingActivity.java │ │ │ │ │ └── Entry.java │ │ │ │ ├── receivers/ │ │ │ │ │ └── PluginDemo2Receiver.java │ │ │ │ ├── service/ │ │ │ │ │ └── PluginDemo2Service.java │ │ │ │ ├── support/ │ │ │ │ │ └── LogX.java │ │ │ │ └── testcase/ │ │ │ │ └── TestMultiDex.java │ │ │ └── res/ │ │ │ ├── layout/ │ │ │ │ ├── databinding_test.xml │ │ │ │ └── from_demo1.xml │ │ │ └── values/ │ │ │ └── strings.xml │ │ ├── build.gradle │ │ ├── gradle/ │ │ │ └── wrapper/ │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ │ ├── gradle.properties │ │ ├── gradlew │ │ ├── gradlew.bat │ │ └── settings.gradle │ ├── plugin-demo3-kotlin/ │ │ ├── README.md │ │ ├── app/ │ │ │ ├── build.gradle │ │ │ ├── proguard-rules.pro │ │ │ └── src/ │ │ │ └── main/ │ │ │ ├── AndroidManifest.xml │ │ │ ├── aidl/ │ │ │ │ └── com/ │ │ │ │ └── qihoo360/ │ │ │ │ └── replugin/ │ │ │ │ └── sample/ │ │ │ │ └── demo2/ │ │ │ │ └── IDemo2.aidl │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── qihoo360/ │ │ │ │ └── replugin/ │ │ │ │ └── sample/ │ │ │ │ └── demo3/ │ │ │ │ ├── BaseActivity.kt │ │ │ │ ├── MainActivity.kt │ │ │ │ ├── MainApp.kt │ │ │ │ ├── TestItem.kt │ │ │ │ ├── activity/ │ │ │ │ │ └── theme/ │ │ │ │ │ └── ThemeBlackNoTitleBarActivity.kt │ │ │ │ ├── receivers/ │ │ │ │ │ └── PluginDemo3Receiver.kt │ │ │ │ ├── service/ │ │ │ │ │ └── PluginDemoService1.kt │ │ │ │ └── support/ │ │ │ │ └── LogX.kt │ │ │ └── res/ │ │ │ ├── layout/ │ │ │ │ ├── main.xml │ │ │ │ ├── main_fragment.xml │ │ │ │ └── simple.xml │ │ │ └── values/ │ │ │ └── strings.xml │ │ ├── build.gradle │ │ ├── gradle/ │ │ │ └── wrapper/ │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ │ ├── gradle.properties │ │ ├── gradlew │ │ ├── gradlew.bat │ │ └── settings.gradle │ └── plugin-webview/ │ ├── README.md │ ├── app/ │ │ ├── build.gradle │ │ ├── proguard-rules.pro │ │ └── src/ │ │ └── main/ │ │ ├── AndroidManifest.xml │ │ ├── java/ │ │ │ └── com/ │ │ │ └── qihoo360/ │ │ │ └── replugin/ │ │ │ └── sample/ │ │ │ └── webview/ │ │ │ ├── MainActivity.java │ │ │ ├── MainApp.java │ │ │ ├── common/ │ │ │ │ ├── CommonWebChromeClient.java │ │ │ │ ├── CommonWebView.java │ │ │ │ └── CommonWebViewClient.java │ │ │ ├── env/ │ │ │ │ └── Env.java │ │ │ ├── utils/ │ │ │ │ ├── ReflectUtil.java │ │ │ │ └── WebViewResourceHelper.java │ │ │ └── views/ │ │ │ ├── SimpleWebPage.java │ │ │ └── SimpleWebView.java │ │ └── res/ │ │ ├── layout/ │ │ │ ├── web_page.xml │ │ │ └── webview.xml │ │ └── values/ │ │ ├── colors.xml │ │ └── strings.xml │ ├── build.gradle │ ├── gradle/ │ │ └── wrapper/ │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties │ ├── gradle.properties │ ├── gradlew │ ├── gradlew.bat │ └── settings.gradle ├── replugin-sample-extra/ │ ├── README.md │ └── fresco/ │ ├── FrescoHost/ │ │ ├── .gitignore │ │ ├── app/ │ │ │ ├── .gitignore │ │ │ ├── build.gradle │ │ │ ├── libs/ │ │ │ │ ├── drawee-modified-1.7.1.jar │ │ │ │ ├── fbcore-1.7.1.jar │ │ │ │ ├── fresco-1.7.1.jar │ │ │ │ ├── imagepipeline-1.7.1.jar │ │ │ │ └── imagepipeline-base-1.7.1.jar │ │ │ ├── proguard-rules.pro │ │ │ └── src/ │ │ │ └── main/ │ │ │ ├── AndroidManifest.xml │ │ │ ├── assets/ │ │ │ │ └── plugins/ │ │ │ │ └── plugin1.jar │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ ├── facebook/ │ │ │ │ │ └── fresco/ │ │ │ │ │ └── patch/ │ │ │ │ │ ├── DraweeStyleableCallbackImpl.java │ │ │ │ │ └── FrescoPatch.java │ │ │ │ └── qihoo360/ │ │ │ │ └── replugin/ │ │ │ │ └── fresco/ │ │ │ │ └── host/ │ │ │ │ ├── HostApp.java │ │ │ │ ├── HostFrescoActivity.java │ │ │ │ └── MainActivity.java │ │ │ └── res/ │ │ │ ├── layout/ │ │ │ │ ├── activity_host_fresco.xml │ │ │ │ └── activity_main.xml │ │ │ └── values/ │ │ │ ├── attrs.xml │ │ │ ├── colors.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ ├── build.gradle │ │ ├── gradle/ │ │ │ └── wrapper/ │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ │ ├── gradle.properties │ │ ├── gradlew │ │ ├── gradlew.bat │ │ └── settings.gradle │ └── FrescoPlugin/ │ ├── .gitignore │ ├── app/ │ │ ├── .gitignore │ │ ├── build.gradle │ │ ├── libs/ │ │ │ ├── drawee-modified-1.7.1.jar │ │ │ ├── fbcore-1.7.1.jar │ │ │ ├── fresco-1.7.1.jar │ │ │ ├── imagepipeline-1.7.1.jar │ │ │ └── imagepipeline-base-1.7.1.jar │ │ ├── proguard-rules.pro │ │ └── src/ │ │ └── main/ │ │ ├── AndroidManifest.xml │ │ ├── java/ │ │ │ └── com/ │ │ │ ├── facebook/ │ │ │ │ └── fresco/ │ │ │ │ └── patch/ │ │ │ │ ├── DraweeStyleableCallbackImpl.java │ │ │ │ └── FrescoPatch.java │ │ │ └── qihoo360/ │ │ │ └── replugin/ │ │ │ └── fresco/ │ │ │ └── plugin/ │ │ │ ├── MainActivity.java │ │ │ └── PluginApp.java │ │ └── res/ │ │ ├── layout/ │ │ │ └── activity_main.xml │ │ └── values/ │ │ ├── attrs.xml │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── styles.xml │ ├── build.gradle │ ├── gradle/ │ │ └── wrapper/ │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties │ ├── gradle.properties │ ├── gradlew │ ├── gradlew.bat │ └── settings.gradle ├── rp-config.gradle └── rp-publish.gradle