gitextract_qbthkmxs/ ├── .gitignore ├── GameSDKBuildJarTool/ │ ├── .gitignore │ ├── build.gradle │ ├── libs/ │ │ ├── common-24.3.0.jar │ │ ├── guava-18.0.jar │ │ ├── manifest-merger-24.3.0.jar │ │ ├── proguard.jar │ │ ├── retrace.jar │ │ └── sdk-common-25.1.2.jar │ ├── src/ │ │ └── main/ │ │ ├── cmd/ │ │ │ └── test/ │ │ │ ├── jar/ │ │ │ │ ├── test.jar │ │ │ │ └── test_proguard.jar │ │ │ ├── java/ │ │ │ │ ├── HelloWorld.java │ │ │ │ └── TestA.java │ │ │ └── proguard/ │ │ │ ├── proguard_config.pro │ │ │ └── tools/ │ │ │ ├── proguard.jar │ │ │ └── rt.jar │ │ ├── java/ │ │ │ └── com/ │ │ │ └── bzai/ │ │ │ └── gamesdk/ │ │ │ └── build/ │ │ │ ├── BuildJarTask.java │ │ │ ├── Config.java │ │ │ ├── Main.java │ │ │ ├── bean/ │ │ │ │ ├── ErrorMsg.java │ │ │ │ └── Project.java │ │ │ ├── tools/ │ │ │ │ ├── JavaTool.java │ │ │ │ ├── ProGuardTool.java │ │ │ │ ├── ServerTool.java │ │ │ │ └── exec/ │ │ │ │ └── Shell.java │ │ │ └── utils/ │ │ │ ├── FileUtils.java │ │ │ └── Utils.java │ │ └── resources/ │ │ ├── config │ │ ├── proguard_config.pro │ │ └── project_list │ └── 必读说明 ├── GameSDKDemo_Release/ │ ├── .gitignore │ ├── build.gradle │ ├── proguard-rules.pro │ └── src/ │ ├── androidTest/ │ │ └── java/ │ │ └── com/ │ │ └── bzai/ │ │ └── gamesdkframe/ │ │ └── ExampleInstrumentedTest.java │ ├── main/ │ │ ├── AndroidManifest.xml │ │ ├── java/ │ │ │ └── com/ │ │ │ └── bzai/ │ │ │ └── gamesdkframe/ │ │ │ └── demo/ │ │ │ ├── GameApplication.java │ │ │ └── GameSDKMain.java │ │ └── res/ │ │ ├── layout/ │ │ │ └── activity_main.xml │ │ └── values/ │ │ ├── colors.xml │ │ └── strings.xml │ └── test/ │ └── java/ │ └── com/ │ └── bzai/ │ └── gamesdkframe/ │ └── ExampleUnitTest.java ├── GameSDKLibrary_Release/ │ ├── .gitignore │ ├── build.gradle │ ├── libs/ │ │ ├── alipaySdk-20180601.jar │ │ ├── android-support-v4.jar │ │ ├── org.apache.http.legacy.jar │ │ ├── sdk_test_v1.0.0.jar │ │ └── wechat-sdk-android-without-mta-5.1.4.jar │ ├── proguard-rules.pro │ └── src/ │ ├── androidTest/ │ │ └── java/ │ │ └── com/ │ │ └── suyutech/ │ │ └── baselibrary/ │ │ └── ExampleInstrumentedTest.java │ ├── main/ │ │ ├── AndroidManifest.xml │ │ ├── assets/ │ │ │ ├── Channel_config.txt │ │ │ ├── Plugin_config.txt │ │ │ ├── Project_config.txt │ │ │ └── SDKInfo.json │ │ └── res/ │ │ └── values/ │ │ └── strings.xml │ └── test/ │ └── java/ │ └── com/ │ └── suyutech/ │ └── baselibrary/ │ └── ExampleUnitTest.java ├── GameSDK_API/ │ ├── .gitignore │ ├── build.gradle │ ├── proguard-rules.pro │ └── src/ │ ├── androidTest/ │ │ └── java/ │ │ └── com/ │ │ └── bzai/ │ │ └── gamesdk/ │ │ └── api/ │ │ └── ExampleInstrumentedTest.java │ ├── main/ │ │ ├── AndroidManifest.xml │ │ └── java/ │ │ └── com/ │ │ └── bzai/ │ │ └── gamesdk/ │ │ ├── GameInfoSetting.java │ │ ├── SDKApplication.java │ │ ├── api/ │ │ │ └── SDKAPI.java │ │ ├── bean/ │ │ │ ├── info/ │ │ │ │ ├── AccountEventResultInfo.java │ │ │ │ └── PlayerInfo.java │ │ │ └── params/ │ │ │ ├── GameRoleParams.java │ │ │ └── PayParams.java │ │ └── listener/ │ │ ├── AccountCallBackLister.java │ │ ├── ExitCallBackLister.java │ │ ├── InitCallBackLister.java │ │ └── PurchaseCallBackListener.java │ └── test/ │ └── java/ │ └── com/ │ └── bzai/ │ └── gamesdk/ │ └── api/ │ └── ExampleUnitTest.java ├── GameSDK_BeginProject/ │ ├── GameSDK_Project_Custom/ │ │ ├── .gitignore │ │ ├── build.gradle │ │ ├── proguard-rules.pro │ │ └── src/ │ │ ├── androidTest/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── bzai/ │ │ │ └── gamesdk/ │ │ │ └── project/ │ │ │ └── channel/ │ │ │ └── ExampleInstrumentedTest.java │ │ ├── main/ │ │ │ ├── AndroidManifest.xml │ │ │ ├── assets/ │ │ │ │ ├── Plugin_config.txt │ │ │ │ ├── Project_config.txt │ │ │ │ └── SDKInfo.json │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── bzai/ │ │ │ └── gamesdk/ │ │ │ └── project/ │ │ │ ├── CustomProject.java │ │ │ └── ProjectApplication.java │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── bzai/ │ │ └── gamesdk/ │ │ └── project/ │ │ └── channel/ │ │ └── ExampleUnitTest.java │ └── GameSDK_Project_JuHe/ │ ├── .gitignore │ ├── build.gradle │ ├── proguard-rules.pro │ └── src/ │ ├── androidTest/ │ │ └── java/ │ │ └── com/ │ │ └── bzai/ │ │ └── gamesdk/ │ │ └── project/ │ │ └── juhe/ │ │ └── ExampleInstrumentedTest.java │ ├── main/ │ │ ├── AndroidManifest.xml │ │ ├── assets/ │ │ │ ├── Plugin_config.txt │ │ │ ├── Project_config.txt │ │ │ └── SDKInfo.json │ │ └── java/ │ │ └── com/ │ │ └── bzai/ │ │ └── gamesdk/ │ │ └── project/ │ │ ├── JuHeProject.java │ │ └── ProjectApplication.java │ └── test/ │ └── java/ │ └── com/ │ └── bzai/ │ └── gamesdk/ │ └── project/ │ └── juhe/ │ └── ExampleUnitTest.java ├── GameSDK_Channel/ │ ├── GameSDK_Channel_Lexiang/ │ │ ├── .gitignore │ │ ├── build.gradle │ │ ├── libs/ │ │ │ ├── HeepayPlugin_v3.0.jar │ │ │ ├── eventbus-3.0.0.jar │ │ │ └── youxunsdk.jar │ │ ├── proguard-rules.pro │ │ ├── src/ │ │ │ ├── androidTest/ │ │ │ │ └── java/ │ │ │ │ └── com/ │ │ │ │ └── bzai/ │ │ │ │ └── gamesdk/ │ │ │ │ └── channel/ │ │ │ │ └── test/ │ │ │ │ └── ExampleInstrumentedTest.java │ │ │ ├── main/ │ │ │ │ ├── AndroidManifest.xml │ │ │ │ ├── assets/ │ │ │ │ │ └── Channel_config.txt │ │ │ │ ├── java/ │ │ │ │ │ └── com/ │ │ │ │ │ └── bzai/ │ │ │ │ │ └── gamesdk/ │ │ │ │ │ └── channel/ │ │ │ │ │ ├── application/ │ │ │ │ │ │ └── ChannelApplication.java │ │ │ │ │ └── lexiang/ │ │ │ │ │ └── LexiangSDK.java │ │ │ │ └── res/ │ │ │ │ ├── drawable/ │ │ │ │ │ ├── youxun_border_stroke.xml │ │ │ │ │ ├── youxun_cir_hint_bg.xml │ │ │ │ │ ├── youxun_cir_rect.xml │ │ │ │ │ ├── youxun_drawable_1.xml │ │ │ │ │ ├── youxun_drawable_2.xml │ │ │ │ │ ├── youxun_drawable_3.xml │ │ │ │ │ ├── youxun_drawable_33.xml │ │ │ │ │ ├── youxun_drawable_4.xml │ │ │ │ │ ├── youxun_drawable_44.xml │ │ │ │ │ ├── youxun_drawable_5.xml │ │ │ │ │ ├── youxun_drawable_6.xml │ │ │ │ │ └── youxun_service_rect.xml │ │ │ │ └── layout/ │ │ │ │ ├── youxun_account.xml │ │ │ │ ├── youxun_account_hint.xml │ │ │ │ ├── youxun_account_login.xml │ │ │ │ ├── youxun_account_reg.xml │ │ │ │ ├── youxun_bound.xml │ │ │ │ ├── youxun_dialog.xml │ │ │ │ ├── youxun_dialog2.xml │ │ │ │ ├── youxun_dialog3.xml │ │ │ │ ├── youxun_floating.xml │ │ │ │ ├── youxun_gb_dialog.xml │ │ │ │ ├── youxun_gb_item.xml │ │ │ │ ├── youxun_gb_menu.xml │ │ │ │ ├── youxun_gift_bag.xml │ │ │ │ ├── youxun_login.xml │ │ │ │ ├── youxun_login_footprint.xml │ │ │ │ ├── youxun_login_menu.xml │ │ │ │ ├── youxun_login_option_item.xml │ │ │ │ ├── youxun_login_popup.xml │ │ │ │ ├── youxun_menu_2.xml │ │ │ │ ├── youxun_menu_3.xml │ │ │ │ ├── youxun_menu_4.xml │ │ │ │ ├── youxun_mobile.xml │ │ │ │ ├── youxun_mobile_login.xml │ │ │ │ ├── youxun_mobile_reg.xml │ │ │ │ ├── youxun_mobile_verify.xml │ │ │ │ ├── youxun_notice.xml │ │ │ │ ├── youxun_pay.xml │ │ │ │ ├── youxun_toast.xml │ │ │ │ └── youxun_webview.xml │ │ │ └── test/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── bzai/ │ │ │ └── gamesdk/ │ │ │ └── channel/ │ │ │ └── test/ │ │ │ └── ExampleUnitTest.java │ │ └── 开发者说明 │ └── GameSDK_Channel_Test/ │ ├── .gitignore │ ├── build.gradle │ ├── proguard-rules.pro │ ├── src/ │ │ ├── androidTest/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── bzai/ │ │ │ └── gamesdk/ │ │ │ └── channel/ │ │ │ └── test/ │ │ │ └── ExampleInstrumentedTest.java │ │ ├── main/ │ │ │ ├── AndroidManifest.xml │ │ │ ├── assets/ │ │ │ │ └── Channel_config.txt │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── bzai/ │ │ │ │ └── gamesdk/ │ │ │ │ └── channel/ │ │ │ │ ├── application/ │ │ │ │ │ └── ChannelApplication.java │ │ │ │ └── test/ │ │ │ │ └── TestChannelSDK.java │ │ │ └── res/ │ │ │ └── values/ │ │ │ └── strings.xml │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── bzai/ │ │ └── gamesdk/ │ │ └── channel/ │ │ └── test/ │ │ └── ExampleUnitTest.java │ └── 开发者说明 ├── GameSDK_Manager/ │ ├── GameSDK_Module_Account/ │ │ ├── .gitignore │ │ ├── build.gradle │ │ ├── proguard-rules.pro │ │ └── src/ │ │ ├── androidTest/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── bzai/ │ │ │ └── gamesdk/ │ │ │ └── module/ │ │ │ └── account/ │ │ │ └── ExampleInstrumentedTest.java │ │ ├── main/ │ │ │ ├── AndroidManifest.xml │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── bzai/ │ │ │ └── gamesdk/ │ │ │ └── module/ │ │ │ └── account/ │ │ │ ├── AccountManager.java │ │ │ └── bean/ │ │ │ ├── AccountBean.java │ │ │ └── AccountCallBackBean.java │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── bzai/ │ │ └── gamesdk/ │ │ └── module/ │ │ └── account/ │ │ └── ExampleUnitTest.java │ ├── GameSDK_Module_Init/ │ │ ├── .gitignore │ │ ├── build.gradle │ │ ├── proguard-rules.pro │ │ └── src/ │ │ ├── androidTest/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── bzai/ │ │ │ └── gamesdk/ │ │ │ └── module/ │ │ │ └── init/ │ │ │ └── ExampleInstrumentedTest.java │ │ ├── main/ │ │ │ ├── AndroidManifest.xml │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── bzai/ │ │ │ └── gamesdk/ │ │ │ └── module/ │ │ │ └── init/ │ │ │ └── InitManager.java │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── bzai/ │ │ └── gamesdk/ │ │ └── module/ │ │ └── init/ │ │ └── ExampleUnitTest.java │ └── GameSDK_Module_Purchase/ │ ├── .gitignore │ ├── build.gradle │ ├── proguard-rules.pro │ └── src/ │ ├── androidTest/ │ │ └── java/ │ │ └── com/ │ │ └── bzai/ │ │ └── gamesdk/ │ │ └── module/ │ │ └── purchase/ │ │ └── ExampleInstrumentedTest.java │ ├── main/ │ │ ├── AndroidManifest.xml │ │ ├── java/ │ │ │ └── com/ │ │ │ └── bzai/ │ │ │ └── gamesdk/ │ │ │ └── module/ │ │ │ └── purchase/ │ │ │ ├── PurchaseManager.java │ │ │ └── PurchaseResult.java │ │ └── res/ │ │ └── values/ │ │ └── strings.xml │ └── test/ │ └── java/ │ └── com/ │ └── bzai/ │ └── gamesdk/ │ └── module/ │ └── purchase/ │ └── ExampleUnitTest.java ├── GameSDK_Manager_Impl/ │ ├── .gitignore │ ├── build.gradle │ ├── proguard-rules.pro │ └── src/ │ ├── androidTest/ │ │ └── java/ │ │ └── com/ │ │ └── bzai/ │ │ └── gamesdk/ │ │ └── manager/ │ │ └── impl/ │ │ └── ExampleInstrumentedTest.java │ ├── main/ │ │ ├── AndroidManifest.xml │ │ ├── java/ │ │ │ └── com/ │ │ │ └── bzai/ │ │ │ └── gamesdk/ │ │ │ └── invoke/ │ │ │ └── plugin/ │ │ │ ├── AlipayPluginApi.java │ │ │ └── WechatPluginApi.java │ │ └── res/ │ │ └── values/ │ │ └── strings.xml │ └── test/ │ └── java/ │ └── com/ │ └── bzai/ │ └── gamesdk/ │ └── manager/ │ └── impl/ │ └── ExampleUnitTest.java ├── GameSDK_Plugin/ │ ├── GameSDK_Plugin_Alipay/ │ │ ├── .gitignore │ │ ├── build.gradle │ │ ├── libs/ │ │ │ └── alipaySdk-20180601.jar │ │ ├── proguard-rules.pro │ │ └── src/ │ │ ├── androidTest/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── bzai/ │ │ │ └── gamesdk/ │ │ │ └── plugin/ │ │ │ └── alipay/ │ │ │ └── ExampleInstrumentedTest.java │ │ ├── main/ │ │ │ ├── AndroidManifest.xml │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── bzai/ │ │ │ │ └── gamesdk/ │ │ │ │ └── plugin/ │ │ │ │ └── alipay/ │ │ │ │ ├── AlipayPlugin.java │ │ │ │ └── pay/ │ │ │ │ ├── AlipayPay.java │ │ │ │ └── PayResult.java │ │ │ └── res/ │ │ │ └── values/ │ │ │ └── strings.xml │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── bzai/ │ │ └── gamesdk/ │ │ └── plugin/ │ │ └── alipay/ │ │ └── ExampleUnitTest.java │ └── GameSDK_Plugin_Wechat/ │ ├── .gitignore │ ├── build.gradle │ ├── libs/ │ │ └── wechat-sdk-android-without-mta-5.1.4.jar │ ├── proguard-rules.pro │ └── src/ │ ├── androidTest/ │ │ └── java/ │ │ └── com/ │ │ └── bzai/ │ │ └── gamesdk/ │ │ └── plugin/ │ │ └── wechat/ │ │ └── ExampleInstrumentedTest.java │ ├── main/ │ │ ├── AndroidManifest.xml │ │ └── java/ │ │ └── com/ │ │ └── bzai/ │ │ └── gamesdk/ │ │ └── plugin/ │ │ └── wechat/ │ │ ├── WechatPlugin.java │ │ ├── login/ │ │ │ └── WechatLogin.java │ │ └── pay/ │ │ └── WechatPay.java │ └── test/ │ └── java/ │ └── com/ │ └── bzai/ │ └── gamesdk/ │ └── plugin/ │ └── wechat/ │ └── ExampleUnitTest.java ├── GameSDK_Utils/ │ ├── .gitignore │ ├── build.gradle │ ├── libs/ │ │ ├── android-support-v4.jar │ │ └── org.apache.http.legacy.jar │ ├── proguard-rules.pro │ └── src/ │ ├── androidTest/ │ │ └── java/ │ │ └── com/ │ │ └── bzai/ │ │ └── gamesdk/ │ │ └── utils/ │ │ └── ExampleInstrumentedTest.java │ ├── main/ │ │ ├── AndroidManifest.xml │ │ └── java/ │ │ └── com/ │ │ └── bzai/ │ │ └── gamesdk/ │ │ └── common/ │ │ ├── utils_base/ │ │ │ ├── cache/ │ │ │ │ └── ApplicationCache.java │ │ │ ├── config/ │ │ │ │ ├── ErrCode.java │ │ │ │ └── TypeConfig.java │ │ │ ├── frame/ │ │ │ │ ├── google/ │ │ │ │ │ ├── gson/ │ │ │ │ │ │ ├── DefaultDateTypeAdapter.java │ │ │ │ │ │ ├── ExclusionStrategy.java │ │ │ │ │ │ ├── FieldAttributes.java │ │ │ │ │ │ ├── FieldNamingPolicy.java │ │ │ │ │ │ ├── FieldNamingStrategy.java │ │ │ │ │ │ ├── Gson.java │ │ │ │ │ │ ├── GsonBuilder.java │ │ │ │ │ │ ├── InstanceCreator.java │ │ │ │ │ │ ├── JsonArray.java │ │ │ │ │ │ ├── JsonDeserializationContext.java │ │ │ │ │ │ ├── JsonDeserializer.java │ │ │ │ │ │ ├── JsonElement.java │ │ │ │ │ │ ├── JsonIOException.java │ │ │ │ │ │ ├── JsonNull.java │ │ │ │ │ │ ├── JsonObject.java │ │ │ │ │ │ ├── JsonParseException.java │ │ │ │ │ │ ├── JsonParser.java │ │ │ │ │ │ ├── JsonPrimitive.java │ │ │ │ │ │ ├── JsonSerializationContext.java │ │ │ │ │ │ ├── JsonSerializer.java │ │ │ │ │ │ ├── JsonStreamParser.java │ │ │ │ │ │ ├── JsonSyntaxException.java │ │ │ │ │ │ ├── LongSerializationPolicy.java │ │ │ │ │ │ ├── TreeTypeAdapter.java │ │ │ │ │ │ ├── TypeAdapter.java │ │ │ │ │ │ ├── TypeAdapterFactory.java │ │ │ │ │ │ ├── annotations/ │ │ │ │ │ │ │ ├── Expose.java │ │ │ │ │ │ │ ├── SerializedName.java │ │ │ │ │ │ │ ├── Since.java │ │ │ │ │ │ │ ├── Until.java │ │ │ │ │ │ │ └── package-info.java │ │ │ │ │ │ ├── internal/ │ │ │ │ │ │ │ ├── $Gson$Preconditions.java │ │ │ │ │ │ │ ├── $Gson$Types.java │ │ │ │ │ │ │ ├── ConstructorConstructor.java │ │ │ │ │ │ │ ├── Excluder.java │ │ │ │ │ │ │ ├── JsonReaderInternalAccess.java │ │ │ │ │ │ │ ├── LazilyParsedNumber.java │ │ │ │ │ │ │ ├── ObjectConstructor.java │ │ │ │ │ │ │ ├── Primitives.java │ │ │ │ │ │ │ ├── Streams.java │ │ │ │ │ │ │ ├── StringMap.java │ │ │ │ │ │ │ ├── UnsafeAllocator.java │ │ │ │ │ │ │ ├── bind/ │ │ │ │ │ │ │ │ ├── ArrayTypeAdapter.java │ │ │ │ │ │ │ │ ├── CollectionTypeAdapterFactory.java │ │ │ │ │ │ │ │ ├── DateTypeAdapter.java │ │ │ │ │ │ │ │ ├── JsonTreeReader.java │ │ │ │ │ │ │ │ ├── JsonTreeWriter.java │ │ │ │ │ │ │ │ ├── MapTypeAdapterFactory.java │ │ │ │ │ │ │ │ ├── ObjectTypeAdapter.java │ │ │ │ │ │ │ │ ├── ReflectiveTypeAdapterFactory.java │ │ │ │ │ │ │ │ ├── SqlDateTypeAdapter.java │ │ │ │ │ │ │ │ ├── TimeTypeAdapter.java │ │ │ │ │ │ │ │ ├── TypeAdapterRuntimeTypeWrapper.java │ │ │ │ │ │ │ │ └── TypeAdapters.java │ │ │ │ │ │ │ └── package-info.java │ │ │ │ │ │ ├── package-info.java │ │ │ │ │ │ ├── reflect/ │ │ │ │ │ │ │ ├── TypeToken.java │ │ │ │ │ │ │ └── package-info.java │ │ │ │ │ │ └── stream/ │ │ │ │ │ │ ├── JsonReader.java │ │ │ │ │ │ ├── JsonScope.java │ │ │ │ │ │ ├── JsonToken.java │ │ │ │ │ │ ├── JsonWriter.java │ │ │ │ │ │ ├── MalformedJsonException.java │ │ │ │ │ │ └── StringPool.java │ │ │ │ │ └── volley/ │ │ │ │ │ ├── AuthFailureError.java │ │ │ │ │ ├── Cache.java │ │ │ │ │ ├── CacheDispatcher.java │ │ │ │ │ ├── DefaultRetryPolicy.java │ │ │ │ │ ├── ExecutorDelivery.java │ │ │ │ │ ├── InternalUtils.java │ │ │ │ │ ├── Network.java │ │ │ │ │ ├── NetworkDispatcher.java │ │ │ │ │ ├── NetworkError.java │ │ │ │ │ ├── NetworkResponse.java │ │ │ │ │ ├── NoConnectionError.java │ │ │ │ │ ├── ParseError.java │ │ │ │ │ ├── RedirectError.java │ │ │ │ │ ├── Request.java │ │ │ │ │ ├── RequestQueue.java │ │ │ │ │ ├── Response.java │ │ │ │ │ ├── ResponseDelivery.java │ │ │ │ │ ├── RetryPolicy.java │ │ │ │ │ ├── ServerError.java │ │ │ │ │ ├── TimeoutError.java │ │ │ │ │ ├── VolleyError.java │ │ │ │ │ ├── VolleyLog.java │ │ │ │ │ └── toolbox/ │ │ │ │ │ ├── AndroidAuthenticator.java │ │ │ │ │ ├── Authenticator.java │ │ │ │ │ ├── BasicNetwork.java │ │ │ │ │ ├── ByteArrayPool.java │ │ │ │ │ ├── ClearCacheRequest.java │ │ │ │ │ ├── DiskBasedCache.java │ │ │ │ │ ├── HttpClientStack.java │ │ │ │ │ ├── HttpHeaderParser.java │ │ │ │ │ ├── HttpStack.java │ │ │ │ │ ├── HurlStack.java │ │ │ │ │ ├── ImageLoader.java │ │ │ │ │ ├── ImageRequest.java │ │ │ │ │ ├── JsonArrayRequest.java │ │ │ │ │ ├── JsonObjectRequest.java │ │ │ │ │ ├── JsonRequest.java │ │ │ │ │ ├── NetworkImageView.java │ │ │ │ │ ├── NoCache.java │ │ │ │ │ ├── PoolingByteArrayOutputStream.java │ │ │ │ │ ├── RequestFuture.java │ │ │ │ │ ├── StringRequest.java │ │ │ │ │ └── Volley.java │ │ │ │ ├── logger/ │ │ │ │ │ ├── AndroidLogAdapter.java │ │ │ │ │ ├── CsvFormatStrategy.java │ │ │ │ │ ├── DiskLogAdapter.java │ │ │ │ │ ├── DiskLogStrategy.java │ │ │ │ │ ├── FormatStrategy.java │ │ │ │ │ ├── LogAdapter.java │ │ │ │ │ ├── LogStrategy.java │ │ │ │ │ ├── LogcatLogStrategy.java │ │ │ │ │ ├── Logger.java │ │ │ │ │ ├── LoggerPrinter.java │ │ │ │ │ ├── PrettyFormatStrategy.java │ │ │ │ │ ├── Printer.java │ │ │ │ │ └── Utils.java │ │ │ │ └── walle/ │ │ │ │ ├── WalleChannelReader.java │ │ │ │ └── payload_reader/ │ │ │ │ ├── ApkUtil.java │ │ │ │ ├── ChannelInfo.java │ │ │ │ ├── ChannelReader.java │ │ │ │ ├── Pair.java │ │ │ │ ├── PayloadReader.java │ │ │ │ └── SignatureNotFoundException.java │ │ │ ├── interfaces/ │ │ │ │ ├── CallBackListener.java │ │ │ │ └── LifeCycleInterface.java │ │ │ ├── net/ │ │ │ │ ├── RequestExecutor.java │ │ │ │ ├── base/ │ │ │ │ │ ├── VolleyRequestWrapper.java │ │ │ │ │ ├── VolleyResponseListener.java │ │ │ │ │ └── VolleySingleton.java │ │ │ │ ├── impl/ │ │ │ │ │ ├── BaseRequest.java │ │ │ │ │ ├── BaseRequestCallback.java │ │ │ │ │ ├── BaseRequestUtils.java │ │ │ │ │ └── bean/ │ │ │ │ │ └── ResponseResult.java │ │ │ │ └── request/ │ │ │ │ ├── IRequestManager.java │ │ │ │ ├── RequestCallback.java │ │ │ │ └── VolleyRequestManager.java │ │ │ ├── parse/ │ │ │ │ ├── channel/ │ │ │ │ │ ├── Channel.java │ │ │ │ │ ├── ChannelBeanList.java │ │ │ │ │ ├── ChannelListenerImpl.java │ │ │ │ │ └── ChannelManager.java │ │ │ │ ├── plugin/ │ │ │ │ │ ├── Plugin.java │ │ │ │ │ ├── PluginBeanList.java │ │ │ │ │ ├── PluginManager.java │ │ │ │ │ └── PluginReflectApi.java │ │ │ │ └── project/ │ │ │ │ ├── Project.java │ │ │ │ ├── ProjectBeanList.java │ │ │ │ └── ProjectManager.java │ │ │ ├── proguard/ │ │ │ │ ├── ProguardInterface.java │ │ │ │ └── ProguardObject.java │ │ │ └── utils/ │ │ │ ├── ArrayUtils.java │ │ │ ├── CodeUtils.java │ │ │ ├── ContextUtils.java │ │ │ ├── CryptUtils.java │ │ │ ├── DateUtils.java │ │ │ ├── FileUtils.java │ │ │ ├── IOUtils.java │ │ │ ├── JsonUtils.java │ │ │ ├── ListUtils.java │ │ │ ├── LogUtils.java │ │ │ ├── Md5Utils.java │ │ │ ├── ObjectUtils.java │ │ │ └── StringUtils.java │ │ ├── utils_business/ │ │ │ ├── cache/ │ │ │ │ ├── BaseCache.java │ │ │ │ ├── SDKInfoCache.java │ │ │ │ └── SharePreferencesCache.java │ │ │ └── config/ │ │ │ ├── KeyConfig.java │ │ │ └── UrlConfig.java │ │ └── utils_ui/ │ │ ├── BitmapUtils.java │ │ ├── LoadingUtils.java │ │ ├── ResourseIdUtils.java │ │ ├── ToastUtils.java │ │ └── activity/ │ │ └── SplashActivity.java │ └── test/ │ └── java/ │ └── com/ │ └── bzai/ │ └── gamesdk/ │ └── utils/ │ └── ExampleUnitTest.java ├── README.md ├── app/ │ ├── .gitignore │ ├── build.gradle │ ├── proguard-rules.pro │ └── src/ │ ├── androidTest/ │ │ └── java/ │ │ └── com/ │ │ └── bzai/ │ │ └── gamesdkframe/ │ │ └── ExampleInstrumentedTest.java │ ├── main/ │ │ ├── AndroidManifest.xml │ │ ├── java/ │ │ │ └── com/ │ │ │ └── bzai/ │ │ │ └── gamesdkframe/ │ │ │ ├── GameApplication.java │ │ │ └── GameSDKMain.java │ │ └── res/ │ │ ├── layout/ │ │ │ └── activity_main.xml │ │ └── values/ │ │ ├── colors.xml │ │ └── strings.xml │ └── test/ │ └── java/ │ └── com/ │ └── bzai/ │ └── gamesdkframe/ │ └── ExampleUnitTest.java ├── build.gradle ├── gradle/ │ └── wrapper/ │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradle.properties ├── gradlew ├── gradlew.bat ├── settings.gradle └── 框架必读说明