gitextract_nx2cxqfl/ ├── .gitignore ├── CONTRIBUTING.md ├── ISSUE_TEMPLATE ├── LICENSE ├── README.md ├── assets/ │ ├── Sonic2.0.md │ ├── VasSonic3.0_preload.md │ └── sonic发展历程.md ├── checkstyle.xml ├── sonic-android/ │ ├── .gitignore │ ├── README.md │ ├── build.gradle │ ├── docs/ │ │ ├── Sonic Quick模式实现原理.md │ │ ├── Sonic Standard模式实现原理.md │ │ ├── Sonic接入指引.md │ │ ├── Sonic框架介绍.md │ │ ├── javadoc/ │ │ │ ├── allclasses-frame.html │ │ │ ├── allclasses-noframe.html │ │ │ ├── com/ │ │ │ │ └── tencent/ │ │ │ │ └── sonic/ │ │ │ │ └── sdk/ │ │ │ │ ├── QuickSonicSession.html │ │ │ │ ├── SonicCacheInterceptor.html │ │ │ │ ├── SonicConfig.Builder.html │ │ │ │ ├── SonicConfig.html │ │ │ │ ├── SonicConstants.html │ │ │ │ ├── SonicDBHelper.html │ │ │ │ ├── SonicDiffDataCallback.html │ │ │ │ ├── SonicEngine.html │ │ │ │ ├── SonicFileUtils.html │ │ │ │ ├── SonicResourceDataHelper.ResourceData.html │ │ │ │ ├── SonicResourceDataHelper.html │ │ │ │ ├── SonicRuntime.html │ │ │ │ ├── SonicServer.html │ │ │ │ ├── SonicSession.Callback.html │ │ │ │ ├── SonicSession.html │ │ │ │ ├── SonicSessionClient.html │ │ │ │ ├── SonicSessionConfig.Builder.html │ │ │ │ ├── SonicSessionConfig.html │ │ │ │ ├── SonicSessionConnection.SessionConnectionDefaultImpl.html │ │ │ │ ├── SonicSessionConnection.html │ │ │ │ ├── SonicSessionConnectionInterceptor.html │ │ │ │ ├── SonicSessionStatistics.html │ │ │ │ ├── SonicSessionStream.Callback.html │ │ │ │ ├── SonicSessionStream.html │ │ │ │ ├── SonicUtils.html │ │ │ │ ├── StandardSonicSession.html │ │ │ │ ├── download/ │ │ │ │ │ ├── SonicDownloadCache.SonicResourceCache.html │ │ │ │ │ ├── SonicDownloadCache.html │ │ │ │ │ ├── SonicDownloadCallback.SimpleDownloadCallback.html │ │ │ │ │ ├── SonicDownloadCallback.html │ │ │ │ │ ├── SonicDownloadClient.DownloadTask.html │ │ │ │ │ ├── SonicDownloadClient.SonicDownloadConnection.html │ │ │ │ │ ├── SonicDownloadClient.SubResourceDownloadCallback.html │ │ │ │ │ ├── SonicDownloadClient.html │ │ │ │ │ ├── SonicDownloadEngine.html │ │ │ │ │ ├── package-frame.html │ │ │ │ │ ├── package-summary.html │ │ │ │ │ └── package-tree.html │ │ │ │ ├── package-frame.html │ │ │ │ ├── package-summary.html │ │ │ │ └── package-tree.html │ │ │ ├── constant-values.html │ │ │ ├── deprecated-list.html │ │ │ ├── help-doc.html │ │ │ ├── index-all.html │ │ │ ├── index.html │ │ │ ├── overview-frame.html │ │ │ ├── overview-summary.html │ │ │ ├── overview-tree.html │ │ │ ├── package-list │ │ │ ├── script.js │ │ │ └── stylesheet.css │ │ └── sdk-3.0.0-javadoc.jar │ ├── gradle/ │ │ └── wrapper/ │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── sample/ │ │ ├── .gitignore │ │ ├── build.gradle │ │ ├── proguard-rules.pro │ │ └── src/ │ │ └── main/ │ │ ├── AndroidManifest.xml │ │ ├── assets/ │ │ │ └── sonic-demo-index.html │ │ ├── java/ │ │ │ └── com/ │ │ │ └── tencent/ │ │ │ └── sonic/ │ │ │ └── demo/ │ │ │ ├── BrowserActivity.java │ │ │ ├── MainActivity.java │ │ │ ├── SonicJavaScriptInterface.java │ │ │ ├── SonicRuntimeImpl.java │ │ │ ├── SonicSessionClientImpl.java │ │ │ ├── UrlListAdapter.java │ │ │ └── UrlSelector.java │ │ └── res/ │ │ ├── drawable/ │ │ │ ├── ic_add_circle_accent_24dp.xml │ │ │ ├── ic_add_circle_black_24dp.xml │ │ │ ├── ic_add_circle_selector.xml │ │ │ ├── ic_remove_circle_accent_24dp.xml │ │ │ └── sonic_button_round_mask.xml │ │ ├── layout/ │ │ │ ├── activity_browser.xml │ │ │ ├── activity_main.xml │ │ │ ├── dialog_url.xml │ │ │ └── list_item_url.xml │ │ └── values/ │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── styles.xml │ ├── sdk/ │ │ ├── .gitignore │ │ ├── build.gradle │ │ ├── proguard-rules.pro │ │ └── src/ │ │ ├── androidTest/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── tencent/ │ │ │ └── sonic/ │ │ │ └── sdk/ │ │ │ ├── BaseSonicTest.java │ │ │ ├── ExampleInstrumentedTest.java │ │ │ ├── QuickSonicSessionTest.java │ │ │ ├── SonicRuntimeImplTest.java │ │ │ ├── SonicSessionClientImplTest.java │ │ │ └── SonicTestData.java │ │ └── main/ │ │ ├── AndroidManifest.xml │ │ ├── java/ │ │ │ └── com/ │ │ │ └── tencent/ │ │ │ └── sonic/ │ │ │ └── sdk/ │ │ │ ├── QuickSonicSession.java │ │ │ ├── SonicCacheInterceptor.java │ │ │ ├── SonicConfig.java │ │ │ ├── SonicConstants.java │ │ │ ├── SonicDBHelper.java │ │ │ ├── SonicDataHelper.java │ │ │ ├── SonicDiffDataCallback.java │ │ │ ├── SonicEngine.java │ │ │ ├── SonicFileUtils.java │ │ │ ├── SonicResourceDataHelper.java │ │ │ ├── SonicRuntime.java │ │ │ ├── SonicServer.java │ │ │ ├── SonicSession.java │ │ │ ├── SonicSessionCallback.java │ │ │ ├── SonicSessionClient.java │ │ │ ├── SonicSessionConfig.java │ │ │ ├── SonicSessionConnection.java │ │ │ ├── SonicSessionConnectionInterceptor.java │ │ │ ├── SonicSessionStatistics.java │ │ │ ├── SonicSessionStream.java │ │ │ ├── SonicSessionThreadPool.java │ │ │ ├── SonicSniSSLSocketFactory.java │ │ │ ├── SonicUtils.java │ │ │ ├── StandardSonicSession.java │ │ │ └── download/ │ │ │ ├── SonicDownloadCache.java │ │ │ ├── SonicDownloadCallback.java │ │ │ ├── SonicDownloadClient.java │ │ │ └── SonicDownloadEngine.java │ │ └── res/ │ │ └── values/ │ │ └── strings.xml │ └── settings.gradle ├── sonic-iOS/ │ ├── .gitignore │ ├── README.md │ ├── Sonic/ │ │ ├── Cache/ │ │ │ ├── SonicCache.h │ │ │ ├── SonicCache.m │ │ │ ├── SonicCacheItem.h │ │ │ ├── SonicCacheItem.m │ │ │ ├── SonicDatabase.h │ │ │ └── SonicDatabase.m │ │ ├── Engine/ │ │ │ ├── SonicConfiguration.h │ │ │ ├── SonicConfiguration.m │ │ │ ├── SonicEngine.h │ │ │ └── SonicEngine.m │ │ ├── Info.plist │ │ ├── Network/ │ │ │ ├── SonicConnection.h │ │ │ ├── SonicConnection.m │ │ │ ├── SonicServer.h │ │ │ ├── SonicServer.m │ │ │ ├── SonicURLProtocol.h │ │ │ └── SonicURLProtocol.m │ │ ├── ResourceLoader/ │ │ │ ├── SonicResourceLoadOperation.h │ │ │ ├── SonicResourceLoadOperation.m │ │ │ ├── SonicResourceLoader.h │ │ │ └── SonicResourceLoader.m │ │ ├── Session/ │ │ │ ├── SonicSession.h │ │ │ ├── SonicSession.m │ │ │ ├── SonicSessionConfiguration.h │ │ │ └── SonicSessionConfiguration.m │ │ ├── Sonic.h │ │ ├── SonicConstants.h │ │ ├── SonicProtocol.h │ │ ├── Statistics/ │ │ │ ├── SonicEventConstants.h │ │ │ ├── SonicEventStatistics.h │ │ │ └── SonicEventStatistics.m │ │ └── Util/ │ │ ├── SonicUtil.h │ │ └── SonicUtil.m │ ├── Sonic.xcodeproj/ │ │ ├── project.pbxproj │ │ └── project.xcworkspace/ │ │ └── contents.xcworkspacedata │ ├── Sonic.xcworkspace/ │ │ └── contents.xcworkspacedata │ ├── SonicSample/ │ │ ├── SonicSample/ │ │ │ ├── 36f620dddab622727b270e6b79b20a98/ │ │ │ │ └── main.html │ │ │ ├── AppDelegate.h │ │ │ ├── AppDelegate.m │ │ │ ├── Assets.xcassets/ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Contents.json │ │ │ ├── Info.plist │ │ │ ├── LaunchScreen.storyboard │ │ │ ├── RootViewController.h │ │ │ ├── RootViewController.m │ │ │ ├── SonicEventObserver.h │ │ │ ├── SonicEventObserver.m │ │ │ ├── SonicJSContext.h │ │ │ ├── SonicJSContext.m │ │ │ ├── SonicOfflineCacheConnection.h │ │ │ ├── SonicOfflineCacheConnection.m │ │ │ ├── SonicWebViewController.h │ │ │ ├── SonicWebViewController.m │ │ │ └── main.m │ │ ├── SonicSample.xcodeproj/ │ │ │ ├── project.pbxproj │ │ │ └── project.xcworkspace/ │ │ │ └── contents.xcworkspacedata │ │ └── SonicSampleUITests/ │ │ ├── Info.plist │ │ └── SonicSampleUITests.m │ └── docs/ │ ├── iOS终端实现原理.md │ └── 终端接入指引-iOS版本.md ├── sonic-java/ │ ├── README.md │ ├── apidocs/ │ │ ├── allclasses-frame.html │ │ ├── allclasses-noframe.html │ │ ├── com/ │ │ │ └── github/ │ │ │ └── tencent/ │ │ │ ├── AbstractReplaceCallBack.html │ │ │ ├── HttpServletResponseCopier.html │ │ │ ├── ReplaceCallBack.html │ │ │ ├── ServletOutputStreamCopier.html │ │ │ ├── SonicFilter.html │ │ │ ├── SonicUtil.html │ │ │ ├── class-use/ │ │ │ │ ├── AbstractReplaceCallBack.html │ │ │ │ ├── HttpServletResponseCopier.html │ │ │ │ ├── ReplaceCallBack.html │ │ │ │ ├── ServletOutputStreamCopier.html │ │ │ │ ├── SonicFilter.html │ │ │ │ └── SonicUtil.html │ │ │ ├── package-frame.html │ │ │ ├── package-summary.html │ │ │ ├── package-tree.html │ │ │ └── package-use.html │ │ ├── constant-values.html │ │ ├── deprecated-list.html │ │ ├── help-doc.html │ │ ├── index-all.html │ │ ├── index.html │ │ ├── overview-tree.html │ │ ├── package-list │ │ ├── script.js │ │ └── stylesheet.css │ ├── lib/ │ │ ├── VasSonic-1.1-javadoc.jar │ │ ├── VasSonic-1.1-sources.jar │ │ └── VasSonic-1.1.jar │ ├── sample/ │ │ └── webapp/ │ │ ├── WEB-INF/ │ │ │ ├── lib/ │ │ │ │ └── VasSonic-1.1.jar │ │ │ └── web.xml │ │ └── index.jsp │ └── src/ │ └── main/ │ └── java/ │ └── com/ │ └── github/ │ └── tencent/ │ ├── AbstractReplaceCallBack.java │ ├── HttpServletResponseCopier.java │ ├── ReplaceCallBack.java │ ├── ServletOutputStreamCopier.java │ ├── SonicFilter.java │ └── SonicUtil.java ├── sonic-nodejs/ │ ├── .gitignore │ ├── README.md │ ├── README_CN.md │ ├── app.js │ ├── assets/ │ │ ├── build/ │ │ │ └── gulpfile.js │ │ ├── package.json │ │ ├── page/ │ │ │ ├── demo1.ejs │ │ │ ├── demo1.js │ │ │ ├── demo2-data.js │ │ │ ├── demo2.ejs │ │ │ ├── demo2.js │ │ │ ├── demo3-data.js │ │ │ ├── demo3.ejs │ │ │ ├── demo3.js │ │ │ ├── index.ejs │ │ │ ├── index.js │ │ │ └── tpls/ │ │ │ ├── common_body_header.ejs │ │ │ ├── common_body_header.js │ │ │ ├── common_header.ejs │ │ │ ├── common_header.js │ │ │ ├── common_meta.ejs │ │ │ └── common_meta.js │ │ └── project.config.js │ ├── common/ │ │ └── diff.js │ ├── middleware/ │ │ └── compress.js │ ├── package.json │ └── router/ │ ├── config.js │ └── index.js ├── sonic-php/ │ ├── README.md │ ├── sample/ │ │ ├── README.md │ │ ├── controller/ │ │ │ └── demo.php │ │ ├── index.php │ │ ├── js/ │ │ │ └── sonic-3.js │ │ ├── util/ │ │ │ └── sonic.php │ │ └── view/ │ │ └── demo_template.php │ └── sdk/ │ └── sonic.php └── sonic-react/ ├── README.md ├── README_CN.md ├── components/ │ ├── GameArea.js │ ├── GameFooter.js │ └── GameHeader.js ├── containers/ │ └── GameContainer.js ├── package.json ├── pages/ │ └── demo.js ├── redux/ │ └── duck.js ├── server.js └── static/ └── js/ └── flexible.js