├── .gitignore ├── .idea ├── .gitignore ├── compiler.xml ├── gradle.xml ├── jarRepositories.xml ├── kotlinc.xml ├── misc.xml └── vcs.xml ├── README.md ├── SystemTools ├── linux │ ├── cwebp │ ├── guetzli │ └── pngquant ├── mac │ ├── cwebp │ ├── guetzli │ └── pngquant └── windows │ ├── cwebp.exe │ ├── guetzli.exe │ └── pngquant.exe ├── app ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── com │ │ └── fuusy │ │ └── reflectiondemo │ │ └── ExampleInstrumentedTest.java │ ├── main │ ├── AndroidManifest.xml │ ├── java │ │ └── com │ │ │ └── fuusy │ │ │ └── reflectiondemo │ │ │ ├── Activity2.java │ │ │ ├── MainActivity.java │ │ │ └── MainApp.java │ └── res │ │ ├── drawable-v24 │ │ └── ic_launcher_foreground.xml │ │ ├── drawable │ │ ├── b05.9.png │ │ ├── buttonshapewhitebg.xml │ │ ├── chat_time_bg.xml │ │ ├── comment_red_btn.xml │ │ ├── ic_email_white_24dp.xml │ │ ├── ic_launcher_background.xml │ │ └── ic_lock_white_24dp.xml │ │ ├── layout │ │ ├── activity_main.xml │ │ ├── activity_main1.xml │ │ ├── activity_main11.xml │ │ ├── activity_main2.xml │ │ ├── activity_main3.xml │ │ ├── activity_main4.xml │ │ ├── activity_main5.xml │ │ ├── activity_main6.xml │ │ ├── activity_main7.xml │ │ ├── activity_main8.xml │ │ ├── activity_main9.xml │ │ ├── host_common_toast_layout.xml │ │ └── layout_test.xml │ │ ├── mipmap-anydpi-v26 │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.xml │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.webp │ │ └── ic_launcher_round.webp │ │ ├── mipmap-mdpi │ │ ├── ic_launcher.webp │ │ └── ic_launcher_round.webp │ │ ├── mipmap-xhdpi │ │ ├── bg_no_content.png │ │ ├── big_blue_location_icon.png │ │ ├── ic_book.png │ │ ├── ic_change_street.png │ │ ├── ic_check.webp │ │ ├── ic_delete.png │ │ ├── ic_email_normal.webp │ │ ├── ic_email_select.webp │ │ ├── ic_file_delete.png │ │ ├── ic_file_select.png │ │ ├── ic_finished.png │ │ ├── ic_home_normal.webp │ │ ├── ic_home_select.webp │ │ ├── ic_launcher.png │ │ ├── ic_launcher_round.webp │ │ ├── ic_location_small.png │ │ ├── ic_login_account.webp │ │ ├── ic_login_psw.webp │ │ ├── ic_map_cur_point.png │ │ ├── ic_map_direction.png │ │ ├── ic_map_layer.png │ │ ├── ic_map_list.png │ │ ├── ic_map_location.png │ │ ├── ic_map_normal.png │ │ ├── ic_map_point.png │ │ ├── ic_map_river.png │ │ ├── ic_map_satellite.png │ │ ├── ic_map_search.png │ │ ├── ic_map_search_new.png │ │ ├── ic_map_zoom.png │ │ ├── ic_mine_change_psw.webp │ │ ├── ic_mine_mode.webp │ │ ├── ic_mine_name.webp │ │ ├── ic_mine_phone.webp │ │ ├── ic_mine_project.webp │ │ ├── ic_mine_use_help.webp │ │ ├── ic_no_pass.png │ │ ├── ic_node_type_gliu.png │ │ ├── ic_node_type_jieru.png │ │ ├── ic_node_type_normal.png │ │ ├── ic_node_type_other.jpg │ │ ├── ic_node_type_source.png │ │ ├── ic_person_normal.webp │ │ ├── ic_person_select.webp │ │ ├── ic_psw_close.webp │ │ ├── ic_psw_open.webp │ │ ├── ic_radio_bt_check_normal.png │ │ ├── ic_radio_bt_checked.png │ │ ├── ic_save.png │ │ ├── ic_selected.png │ │ ├── ic_source_difficulty.png │ │ ├── ic_submit.png │ │ ├── ic_un_check.webp │ │ ├── ic_wait_check.png │ │ ├── ic_work_bench_normal.webp │ │ ├── ic_work_bench_select.webp │ │ ├── icon_map_enter.png │ │ ├── img.png │ │ └── login_top.png │ │ ├── mipmap-xxhdpi │ │ ├── abi.png │ │ ├── abj.png │ │ ├── abk.png │ │ ├── anc.png │ │ ├── and.png │ │ ├── ane.png │ │ ├── anf.png │ │ ├── ang.png │ │ ├── anh.png │ │ ├── ani.png │ │ ├── anj.png │ │ ├── ank.png │ │ ├── anl.png │ │ ├── anm.png │ │ ├── ann.png │ │ ├── ano.png │ │ ├── anp.png │ │ ├── anq.png │ │ ├── anr.png │ │ ├── avatar.png │ │ ├── b_p.png │ │ ├── baq.png │ │ ├── baz.png │ │ ├── bb1.png │ │ ├── bg_mine.jpeg │ │ ├── bg_no_content.png │ │ ├── big_blue_location_icon.png │ │ ├── category.png │ │ ├── chat_tv_receive.9.png │ │ ├── chat_tv_send.9.png │ │ ├── good_morning_img.png │ │ ├── good_night_img.png │ │ ├── head_left.png │ │ ├── head_left_protect.png │ │ ├── head_right.png │ │ ├── head_right_protect.png │ │ ├── ic_book.png │ │ ├── ic_change_street.png │ │ ├── ic_check.webp │ │ ├── ic_delete.png │ │ ├── ic_email_normal.webp │ │ ├── ic_email_select.webp │ │ ├── ic_file_delete.png │ │ ├── ic_file_select.png │ │ ├── ic_finished.png │ │ ├── ic_home_normal.webp │ │ ├── ic_home_select.webp │ │ ├── ic_launcher.png │ │ ├── ic_launcher_round.webp │ │ ├── ic_location_small.png │ │ ├── ic_login_account.webp │ │ ├── ic_login_psw.webp │ │ ├── ic_map_cur_point.png │ │ ├── ic_map_direction.png │ │ ├── ic_map_layer.png │ │ ├── ic_map_list.png │ │ ├── ic_map_location.png │ │ ├── ic_map_normal.png │ │ ├── ic_map_point.png │ │ ├── ic_map_river.png │ │ ├── ic_map_satellite.png │ │ ├── ic_map_search.png │ │ ├── ic_map_search_new.png │ │ ├── ic_map_zoom.png │ │ ├── ic_mine_change_psw.webp │ │ ├── ic_mine_mode.webp │ │ ├── ic_mine_name.webp │ │ ├── ic_mine_phone.webp │ │ ├── ic_mine_project.webp │ │ ├── ic_mine_use_help.webp │ │ ├── ic_no_pass.png │ │ ├── ic_node_type_gliu.png │ │ ├── ic_node_type_jieru.png │ │ ├── ic_node_type_normal.png │ │ ├── ic_node_type_other.jpg │ │ ├── ic_node_type_source.png │ │ ├── ic_person_normal.webp │ │ ├── ic_person_select.webp │ │ ├── ic_psw_close.webp │ │ ├── ic_psw_open.webp │ │ ├── ic_radio_bt_check_normal.png │ │ ├── ic_radio_bt_checked.png │ │ ├── ic_save.png │ │ ├── ic_selected.png │ │ ├── ic_source_difficulty.png │ │ ├── ic_submit.png │ │ ├── ic_un_check.webp │ │ ├── ic_wait_check.png │ │ ├── ic_work_bench_normal.webp │ │ ├── ic_work_bench_select.webp │ │ ├── icon.png │ │ ├── icon_map_enter.png │ │ ├── icon_msg.png │ │ ├── icon_play.png │ │ ├── icon_time.png │ │ ├── icon_zan.png │ │ ├── img.png │ │ ├── loading_01.png │ │ ├── loading_02.png │ │ ├── loading_03.png │ │ ├── loading_04.png │ │ ├── login_top.png │ │ ├── logo.png │ │ ├── shortcut_fm.png │ │ ├── shortcut_identify.png │ │ ├── shortcut_local_music.png │ │ ├── shortcut_search.png │ │ ├── switch1283.png │ │ ├── type_channelgroup.png │ │ ├── type_channelgs.png │ │ ├── type_channelplane.png │ │ ├── type_channeltrain.png │ │ ├── type_cruise.png │ │ ├── type_district.png │ │ ├── type_food.png │ │ ├── type_hotel.png │ │ ├── type_huodong.png │ │ ├── type_shop.png │ │ ├── type_sight.png │ │ ├── type_ticket.png │ │ ├── type_travelgroup.png │ │ ├── wx_chat_icon1.png │ │ ├── wx_chat_icon2.png │ │ ├── wx_chat_icon3.png │ │ └── wx_chat_icon4.png │ │ ├── mipmap-xxxhdpi │ │ ├── bg_no_content.png │ │ ├── big_blue_location_icon.png │ │ ├── ic_book.png │ │ ├── ic_change_street.png │ │ ├── ic_check.webp │ │ ├── ic_delete.png │ │ ├── ic_email_normal.webp │ │ ├── ic_email_select.webp │ │ ├── ic_file_delete.png │ │ ├── ic_file_select.png │ │ ├── ic_finished.png │ │ ├── ic_home_normal.webp │ │ ├── ic_home_select.webp │ │ ├── ic_launcher.png │ │ ├── ic_launcher_round.webp │ │ ├── ic_location_small.png │ │ ├── ic_login_account.webp │ │ ├── ic_login_psw.webp │ │ ├── ic_map_cur_point.png │ │ ├── ic_map_direction.png │ │ ├── ic_map_layer.png │ │ ├── ic_map_list.png │ │ ├── ic_map_location.png │ │ ├── ic_map_normal.png │ │ ├── ic_map_point.png │ │ ├── ic_map_river.png │ │ ├── ic_map_satellite.png │ │ ├── ic_map_search.png │ │ ├── ic_map_search_new.png │ │ ├── ic_map_zoom.png │ │ ├── ic_mine_change_psw.webp │ │ ├── ic_mine_mode.webp │ │ ├── ic_mine_name.webp │ │ ├── ic_mine_phone.webp │ │ ├── ic_mine_project.webp │ │ ├── ic_mine_use_help.webp │ │ ├── ic_no_pass.png │ │ ├── ic_node_type_gliu.png │ │ ├── ic_node_type_jieru.png │ │ ├── ic_node_type_normal.png │ │ ├── ic_node_type_other.jpg │ │ ├── ic_node_type_source.png │ │ ├── ic_person_normal.webp │ │ ├── ic_person_select.webp │ │ ├── ic_psw_close.webp │ │ ├── ic_psw_open.webp │ │ ├── ic_radio_bt_check_normal.png │ │ ├── ic_radio_bt_checked.png │ │ ├── ic_save.png │ │ ├── ic_selected.png │ │ ├── ic_source_difficulty.png │ │ ├── ic_submit.png │ │ ├── ic_un_check.webp │ │ ├── ic_wait_check.png │ │ ├── ic_work_bench_normal.webp │ │ ├── ic_work_bench_select.webp │ │ ├── icon_map_enter.png │ │ ├── img.png │ │ └── login_top.png │ │ ├── values-night │ │ └── themes.xml │ │ └── values │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── themes.xml │ └── test │ └── java │ └── com │ └── fuusy │ └── reflectiondemo │ └── ExampleUnitTest.java ├── build.gradle ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── plugin ├── .gitignore ├── build.gradle ├── proguard-rules.pro ├── src │ └── main │ │ └── java │ │ └── com │ │ └── fuusy │ │ └── plugin │ │ └── rescompress │ │ ├── CompressImgConfig.kt │ │ ├── Config.kt │ │ ├── FileExt.kt │ │ ├── RepeatResConfig.kt │ │ ├── ResCompressPlugin.kt │ │ ├── model │ │ └── WebpFileData.kt │ │ └── util │ │ ├── CompressImgUtil.kt │ │ ├── FileUtil.kt │ │ ├── ImageUtil.kt │ │ └── Tools.kt └── ~ │ └── .m2 │ └── repository │ ├── ReflectionDemo │ └── plugin │ │ ├── maven-metadata.xml │ │ ├── maven-metadata.xml.md5 │ │ ├── maven-metadata.xml.sha1 │ │ ├── maven-metadata.xml.sha256 │ │ ├── maven-metadata.xml.sha512 │ │ └── unspecified │ │ ├── plugin-unspecified.jar │ │ ├── plugin-unspecified.jar.md5 │ │ ├── plugin-unspecified.jar.sha1 │ │ ├── plugin-unspecified.jar.sha256 │ │ ├── plugin-unspecified.jar.sha512 │ │ ├── plugin-unspecified.module │ │ ├── plugin-unspecified.module.md5 │ │ ├── plugin-unspecified.module.sha1 │ │ ├── plugin-unspecified.module.sha256 │ │ ├── plugin-unspecified.module.sha512 │ │ ├── plugin-unspecified.pom │ │ ├── plugin-unspecified.pom.md5 │ │ ├── plugin-unspecified.pom.sha1 │ │ ├── plugin-unspecified.pom.sha256 │ │ └── plugin-unspecified.pom.sha512 │ └── com │ └── fuusy │ ├── plugin │ ├── 1.0.0 │ │ ├── plugin-1.0.0.jar │ │ ├── plugin-1.0.0.jar.md5 │ │ ├── plugin-1.0.0.jar.sha1 │ │ ├── plugin-1.0.0.jar.sha256 │ │ ├── plugin-1.0.0.jar.sha512 │ │ ├── plugin-1.0.0.module │ │ ├── plugin-1.0.0.module.md5 │ │ ├── plugin-1.0.0.module.sha1 │ │ ├── plugin-1.0.0.module.sha256 │ │ ├── plugin-1.0.0.module.sha512 │ │ ├── plugin-1.0.0.pom │ │ ├── plugin-1.0.0.pom.md5 │ │ ├── plugin-1.0.0.pom.sha1 │ │ ├── plugin-1.0.0.pom.sha256 │ │ └── plugin-1.0.0.pom.sha512 │ ├── maven-metadata.xml │ ├── maven-metadata.xml.md5 │ ├── maven-metadata.xml.sha1 │ ├── maven-metadata.xml.sha256 │ └── maven-metadata.xml.sha512 │ └── reflectiondemo │ └── com.fuusy.reflectiondemo.gradle.plugin │ ├── maven-metadata.xml │ ├── maven-metadata.xml.md5 │ ├── maven-metadata.xml.sha1 │ ├── maven-metadata.xml.sha256 │ ├── maven-metadata.xml.sha512 │ └── unspecified │ ├── com.fuusy.reflectiondemo.gradle.plugin-unspecified.pom │ ├── com.fuusy.reflectiondemo.gradle.plugin-unspecified.pom.md5 │ ├── com.fuusy.reflectiondemo.gradle.plugin-unspecified.pom.sha1 │ ├── com.fuusy.reflectiondemo.gradle.plugin-unspecified.pom.sha256 │ └── com.fuusy.reflectiondemo.gradle.plugin-unspecified.pom.sha512 ├── repo ├── ReflectionDemo │ └── plugin │ │ ├── maven-metadata.xml │ │ ├── maven-metadata.xml.md5 │ │ ├── maven-metadata.xml.sha1 │ │ ├── maven-metadata.xml.sha256 │ │ ├── maven-metadata.xml.sha512 │ │ └── unspecified │ │ ├── plugin-unspecified.jar │ │ ├── plugin-unspecified.jar.md5 │ │ ├── plugin-unspecified.jar.sha1 │ │ ├── plugin-unspecified.jar.sha256 │ │ ├── plugin-unspecified.jar.sha512 │ │ ├── plugin-unspecified.module │ │ ├── plugin-unspecified.module.md5 │ │ ├── plugin-unspecified.module.sha1 │ │ ├── plugin-unspecified.module.sha256 │ │ ├── plugin-unspecified.module.sha512 │ │ ├── plugin-unspecified.pom │ │ ├── plugin-unspecified.pom.md5 │ │ ├── plugin-unspecified.pom.sha1 │ │ ├── plugin-unspecified.pom.sha256 │ │ └── plugin-unspecified.pom.sha512 ├── com │ └── fuusy │ │ └── plugin │ │ ├── 1.0.0 │ │ ├── plugin-1.0.0.jar │ │ ├── plugin-1.0.0.jar.md5 │ │ ├── plugin-1.0.0.jar.sha1 │ │ ├── plugin-1.0.0.jar.sha256 │ │ ├── plugin-1.0.0.jar.sha512 │ │ ├── plugin-1.0.0.module │ │ ├── plugin-1.0.0.module.md5 │ │ ├── plugin-1.0.0.module.sha1 │ │ ├── plugin-1.0.0.module.sha256 │ │ ├── plugin-1.0.0.module.sha512 │ │ ├── plugin-1.0.0.pom │ │ ├── plugin-1.0.0.pom.md5 │ │ ├── plugin-1.0.0.pom.sha1 │ │ ├── plugin-1.0.0.pom.sha256 │ │ └── plugin-1.0.0.pom.sha512 │ │ ├── 1.0.1 │ │ ├── plugin-1.0.1.jar │ │ ├── plugin-1.0.1.jar.md5 │ │ ├── plugin-1.0.1.jar.sha1 │ │ ├── plugin-1.0.1.jar.sha256 │ │ ├── plugin-1.0.1.jar.sha512 │ │ ├── plugin-1.0.1.module │ │ ├── plugin-1.0.1.module.md5 │ │ ├── plugin-1.0.1.module.sha1 │ │ ├── plugin-1.0.1.module.sha256 │ │ ├── plugin-1.0.1.module.sha512 │ │ ├── plugin-1.0.1.pom │ │ ├── plugin-1.0.1.pom.md5 │ │ ├── plugin-1.0.1.pom.sha1 │ │ ├── plugin-1.0.1.pom.sha256 │ │ └── plugin-1.0.1.pom.sha512 │ │ ├── maven-metadata.xml │ │ ├── maven-metadata.xml.md5 │ │ ├── maven-metadata.xml.sha1 │ │ ├── maven-metadata.xml.sha256 │ │ └── maven-metadata.xml.sha512 └── resCompress │ └── resCompress.gradle.plugin │ ├── maven-metadata.xml │ ├── maven-metadata.xml.md5 │ ├── maven-metadata.xml.sha1 │ ├── maven-metadata.xml.sha256 │ ├── maven-metadata.xml.sha512 │ └── unspecified │ ├── resCompress.gradle.plugin-unspecified.pom │ ├── resCompress.gradle.plugin-unspecified.pom.md5 │ ├── resCompress.gradle.plugin-unspecified.pom.sha1 │ ├── resCompress.gradle.plugin-unspecified.pom.sha256 │ └── resCompress.gradle.plugin-unspecified.pom.sha512 └── settings.gradle /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea/caches 5 | /.idea/libraries 6 | /.idea/modules.xml 7 | /.idea/workspace.xml 8 | /.idea/navEditor.xml 9 | /.idea/assetWizardSettings.xml 10 | .DS_Store 11 | /build 12 | /captures 13 | .externalNativeBuild 14 | .cxx 15 | local.properties 16 | -------------------------------------------------------------------------------- /.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /shelf/ 3 | /workspace.xml 4 | -------------------------------------------------------------------------------- /.idea/compiler.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /.idea/gradle.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 20 | 21 | -------------------------------------------------------------------------------- /.idea/jarRepositories.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 9 | 10 | 14 | 15 | 19 | 20 | 24 | 25 | 29 | 30 | 34 | 35 | 39 | 40 | -------------------------------------------------------------------------------- /.idea/kotlinc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | -------------------------------------------------------------------------------- /.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 14 | 15 | 16 | 17 | 18 | 19 | 21 | -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 包体积优化,资源去重&&资源压缩plugin,https://juejin.cn/post/7322156566413000742 2 | -------------------------------------------------------------------------------- /SystemTools/linux/cwebp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuusy/ResCompressPlugin/99a170e6214a2c8bdccbbd40a95fe8f78b85d6fb/SystemTools/linux/cwebp -------------------------------------------------------------------------------- /SystemTools/linux/guetzli: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuusy/ResCompressPlugin/99a170e6214a2c8bdccbbd40a95fe8f78b85d6fb/SystemTools/linux/guetzli -------------------------------------------------------------------------------- /SystemTools/linux/pngquant: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuusy/ResCompressPlugin/99a170e6214a2c8bdccbbd40a95fe8f78b85d6fb/SystemTools/linux/pngquant -------------------------------------------------------------------------------- /SystemTools/mac/cwebp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuusy/ResCompressPlugin/99a170e6214a2c8bdccbbd40a95fe8f78b85d6fb/SystemTools/mac/cwebp -------------------------------------------------------------------------------- /SystemTools/mac/guetzli: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuusy/ResCompressPlugin/99a170e6214a2c8bdccbbd40a95fe8f78b85d6fb/SystemTools/mac/guetzli -------------------------------------------------------------------------------- /SystemTools/mac/pngquant: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuusy/ResCompressPlugin/99a170e6214a2c8bdccbbd40a95fe8f78b85d6fb/SystemTools/mac/pngquant -------------------------------------------------------------------------------- /SystemTools/windows/cwebp.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuusy/ResCompressPlugin/99a170e6214a2c8bdccbbd40a95fe8f78b85d6fb/SystemTools/windows/cwebp.exe -------------------------------------------------------------------------------- /SystemTools/windows/guetzli.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuusy/ResCompressPlugin/99a170e6214a2c8bdccbbd40a95fe8f78b85d6fb/SystemTools/windows/guetzli.exe -------------------------------------------------------------------------------- /SystemTools/windows/pngquant.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuusy/ResCompressPlugin/99a170e6214a2c8bdccbbd40a95fe8f78b85d6fb/SystemTools/windows/pngquant.exe -------------------------------------------------------------------------------- /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /app/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'com.android.application' 3 | id 'resCompress' 4 | } 5 | 6 | android { 7 | compileSdk 31 8 | 9 | defaultConfig { 10 | applicationId "com.fuusy.reflectiondemo" 11 | minSdk 25 12 | targetSdk 31 13 | versionCode 1 14 | versionName "1.0" 15 | 16 | testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" 17 | } 18 | 19 | buildTypes { 20 | release { 21 | minifyEnabled false 22 | proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' 23 | } 24 | } 25 | compileOptions { 26 | sourceCompatibility JavaVersion.VERSION_1_8 27 | targetCompatibility JavaVersion.VERSION_1_8 28 | } 29 | 30 | } 31 | 32 | dependencies { 33 | 34 | implementation 'androidx.appcompat:appcompat:1.0.1' 35 | implementation 'com.google.android.material:material:1.1.0' 36 | implementation 'androidx.constraintlayout:constraintlayout:2.1.4' 37 | testImplementation 'junit:junit:4.13.2' 38 | androidTestImplementation 'androidx.test.ext:junit:1.1.5' 39 | androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1' 40 | 41 | 42 | 43 | // implementation 'com.github.tiann:FreeReflection:3.1.0' 44 | 45 | } 46 | -------------------------------------------------------------------------------- /app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile -------------------------------------------------------------------------------- /app/src/androidTest/java/com/fuusy/reflectiondemo/ExampleInstrumentedTest.java: -------------------------------------------------------------------------------- 1 | package com.fuusy.reflectiondemo; 2 | 3 | import android.content.Context; 4 | 5 | import androidx.test.platform.app.InstrumentationRegistry; 6 | import androidx.test.ext.junit.runners.AndroidJUnit4; 7 | 8 | import org.junit.Test; 9 | import org.junit.runner.RunWith; 10 | 11 | import static org.junit.Assert.*; 12 | 13 | /** 14 | * Instrumented test, which will execute on an Android device. 15 | * 16 | * @see Testing documentation 17 | */ 18 | @RunWith(AndroidJUnit4.class) 19 | public class ExampleInstrumentedTest { 20 | @Test 21 | public void useAppContext() { 22 | // Context of the app under test. 23 | Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext(); 24 | assertEquals("com.fuusy.reflectiondemo", appContext.getPackageName()); 25 | } 26 | } -------------------------------------------------------------------------------- /app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 29 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /app/src/main/java/com/fuusy/reflectiondemo/Activity2.java: -------------------------------------------------------------------------------- 1 | package com.fuusy.reflectiondemo; 2 | 3 | import android.os.Bundle; 4 | 5 | import androidx.annotation.Nullable; 6 | import androidx.appcompat.app.AppCompatActivity; 7 | 8 | 9 | public class Activity2 extends AppCompatActivity { 10 | @Override 11 | protected void onCreate(@Nullable Bundle savedInstanceState) { 12 | super.onCreate(savedInstanceState); 13 | setContentView(R.layout.layout_test); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /app/src/main/java/com/fuusy/reflectiondemo/MainActivity.java: -------------------------------------------------------------------------------- 1 | package com.fuusy.reflectiondemo; 2 | 3 | import android.os.Bundle; 4 | import android.view.LayoutInflater; 5 | 6 | import androidx.appcompat.app.AppCompatActivity; 7 | 8 | public class MainActivity extends AppCompatActivity { 9 | 10 | 11 | @Override 12 | protected void onCreate(Bundle savedInstanceState) { 13 | super.onCreate(savedInstanceState); 14 | setContentView(R.layout.activity_main); 15 | 16 | } 17 | 18 | } -------------------------------------------------------------------------------- /app/src/main/java/com/fuusy/reflectiondemo/MainApp.java: -------------------------------------------------------------------------------- 1 | package com.fuusy.reflectiondemo; 2 | 3 | import android.app.Application; 4 | import android.content.Context; 5 | 6 | 7 | 8 | public class MainApp extends Application { 9 | 10 | 11 | @Override 12 | protected void attachBaseContext(Context base) { 13 | super.attachBaseContext(base); 14 | //Reflection.unseal(base); 15 | 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-v24/ic_launcher_foreground.xml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 9 | 15 | 18 | 21 | 22 | 23 | 24 | 30 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/b05.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuusy/ResCompressPlugin/99a170e6214a2c8bdccbbd40a95fe8f78b85d6fb/app/src/main/res/drawable/b05.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/buttonshapewhitebg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/chat_time_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/comment_red_btn.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_email_white_24dp.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_launcher_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 10 | 15 | 20 | 25 | 30 | 35 | 40 | 45 | 50 | 55 | 60 | 65 | 70 | 75 | 80 | 85 | 90 | 95 | 100 | 105 | 110 | 115 | 120 | 125 | 130 | 135 | 140 | 145 | 150 | 155 | 160 | 165 | 170 | 171 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_lock_white_24dp.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 11 |