├── .classpath ├── .gitattributes ├── .gitignore ├── .project ├── .settings └── org.eclipse.jdt.core.prefs ├── AndroidManifest.xml ├── README.md ├── bin ├── AndroidManifest.xml ├── classes │ └── com │ │ └── v7lin │ │ └── android │ │ ├── BuildConfig.class │ │ ├── R$attr.class │ │ ├── R$color.class │ │ ├── R$drawable.class │ │ ├── R$id.class │ │ ├── R$layout.class │ │ ├── R$string.class │ │ ├── R$style.class │ │ ├── R.class │ │ ├── app │ │ ├── SuperActivity.class │ │ ├── SuperAppConfig.class │ │ ├── SuperReceiver.class │ │ └── SuperService.class │ │ ├── content │ │ ├── EnvRes.class │ │ ├── EnvResourcesWrapper.class │ │ ├── dex │ │ │ ├── EnvDexActivity.class │ │ │ ├── EnvDexClassLoader.class │ │ │ ├── EnvDexConst.class │ │ │ ├── EnvDexContextWrapper.class │ │ │ ├── EnvDexResourcesManager$EnvDexResourcesManagerHolder.class │ │ │ ├── EnvDexResourcesManager.class │ │ │ ├── EnvDexResourcesWrapper.class │ │ │ ├── EnvDexSetup$EnvDexSetupHolder.class │ │ │ ├── EnvDexSetup.class │ │ │ └── EnvDexSetupImpl.class │ │ ├── idex │ │ │ └── IDexTest.class │ │ └── res │ │ │ ├── EnvActivity.class │ │ │ ├── EnvAppConfig.class │ │ │ ├── EnvChecker.class │ │ │ ├── EnvCheckerCompat$EarlyEnvTextCheckerCompatImpl.class │ │ │ ├── EnvCheckerCompat$EnvTextCheckerCompatImpl.class │ │ │ ├── EnvCheckerCompat$IceCreamSandwichEnvTextCheckerCompatImpl.class │ │ │ ├── EnvCheckerCompat$JellyBeanMr1EnvTextCheckerCompatImpl.class │ │ │ ├── EnvCheckerCompat$UnknownEnvTextCheckerCompatImpl.class │ │ │ ├── EnvCheckerCompat.class │ │ │ ├── EnvCheckerCompatIceCreamSandwich.class │ │ │ ├── EnvCheckerCompatJellyBeanMr1.class │ │ │ ├── EnvCheckerCompatUnknown.class │ │ │ ├── EnvColorChecker.class │ │ │ ├── EnvContextWrapper.class │ │ │ ├── EnvDrawableChecker.class │ │ │ ├── EnvLayoutInflaterWrapper$EnvFactory.class │ │ │ ├── EnvLayoutInflaterWrapper.class │ │ │ ├── EnvReceiver.class │ │ │ ├── EnvService.class │ │ │ ├── EnvSetup$EnvSetupHolder.class │ │ │ ├── EnvSetup.class │ │ │ ├── EnvSetupImpl.class │ │ │ ├── EnvSkinResClearCompat$BaseEnvResClearCompatImpl.class │ │ │ ├── EnvSkinResClearCompat$EarlyEnvResClearCompatImpl.class │ │ │ ├── EnvSkinResClearCompat$EnvResClearCompatImpl.class │ │ │ ├── EnvSkinResClearCompat$IceCreamSandwichEnvResClearCompatImpl.class │ │ │ ├── EnvSkinResClearCompat$JellyBeanEnvResClearCompatImpl.class │ │ │ ├── EnvSkinResClearCompat.class │ │ │ ├── EnvSkinResourcesManager$EnvResourcesManagerHolder.class │ │ │ ├── EnvSkinResourcesManager.class │ │ │ ├── EnvSkinResourcesWrapper.class │ │ │ ├── EnvTextChecker.class │ │ │ ├── EnvTypefaceChecker.class │ │ │ ├── EnvTypefaceManager$EnvTypefaceManagerHolder.class │ │ │ └── EnvTypefaceManager.class │ │ ├── crash │ │ ├── CrashReport.class │ │ ├── CrashUncaughtExceptionHandler.class │ │ └── UncaughtExceptionHandlerWrapper.class │ │ ├── os │ │ ├── StatFsCompat$EarlyStatFsCompatImpl.class │ │ ├── StatFsCompat$JellyBeanMr2StatFsCompatImpl.class │ │ ├── StatFsCompat$StatFsCompatImpl.class │ │ ├── StatFsCompat.class │ │ ├── StatFsCompatJellyBeanMr2.class │ │ ├── env │ │ │ ├── PathConst.class │ │ │ └── PathUtils.class │ │ └── storage │ │ │ ├── StorageManagerCompat$EarlyStorageManagerCompatImpl.class │ │ │ ├── StorageManagerCompat$GingerbreadStorageManagerCompatImpl.class │ │ │ ├── StorageManagerCompat$StorageManagerCompatImpl.class │ │ │ ├── StorageManagerCompat.class │ │ │ ├── StorageManagerCompatGingerbread.class │ │ │ └── StorageUtils.class │ │ └── test │ │ ├── TestActivity$1.class │ │ ├── TestActivity.class │ │ └── TestDexActivity.class └── proguard.txt ├── gen └── com │ └── v7lin │ └── android │ ├── BuildConfig.java │ └── R.java ├── lint.xml ├── proguard.cfg ├── project.properties ├── res ├── color │ └── test_selector.xml ├── drawable-hdpi │ ├── btn_default_normal.9.png │ ├── btn_default_selected.9.png │ └── icon.png ├── drawable │ └── test_selector.xml ├── layout │ ├── layout_dex.xml │ └── layout_main.xml └── values │ ├── color.xml │ ├── strings.xml │ ├── styles.xml │ └── themes.xml └── src └── com └── v7lin └── android ├── app ├── SuperActivity.java ├── SuperAppConfig.java ├── SuperReceiver.java └── SuperService.java ├── content ├── EnvRes.java ├── EnvResourcesWrapper.java ├── dex │ ├── EnvDexActivity.java │ ├── EnvDexClassLoader.java │ ├── EnvDexConst.java │ ├── EnvDexContextWrapper.java │ ├── EnvDexResourcesManager.java │ ├── EnvDexResourcesWrapper.java │ ├── EnvDexSetup.java │ └── EnvDexSetupImpl.java ├── idex │ └── IDexTest.java └── res │ ├── EnvActivity.java │ ├── EnvAppConfig.java │ ├── EnvChecker.java │ ├── EnvCheckerCompat.java │ ├── EnvCheckerCompatIceCreamSandwich.java │ ├── EnvCheckerCompatJellyBeanMr1.java │ ├── EnvCheckerCompatUnknown.java │ ├── EnvColorChecker.java │ ├── EnvContextWrapper.java │ ├── EnvDrawableChecker.java │ ├── EnvLayoutInflaterWrapper.java │ ├── EnvReceiver.java │ ├── EnvService.java │ ├── EnvSetup.java │ ├── EnvSetupImpl.java │ ├── EnvSkinResClearCompat.java │ ├── EnvSkinResourcesManager.java │ ├── EnvSkinResourcesWrapper.java │ ├── EnvTextChecker.java │ ├── EnvTypefaceChecker.java │ └── EnvTypefaceManager.java ├── crash ├── CrashReport.java ├── CrashUncaughtExceptionHandler.java └── UncaughtExceptionHandlerWrapper.java ├── os ├── StatFsCompat.java ├── StatFsCompatJellyBeanMr2.java ├── env │ ├── PathConst.java │ └── PathUtils.java └── storage │ ├── StorageManagerCompat.java │ ├── StorageManagerCompatGingerbread.java │ └── StorageUtils.java └── test ├── TestActivity.java └── TestDexActivity.java /.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | 4 | # Custom for Visual Studio 5 | *.cs diff=csharp 6 | *.sln merge=union 7 | *.csproj merge=union 8 | *.vbproj merge=union 9 | *.fsproj merge=union 10 | *.dbproj merge=union 11 | 12 | # Standard to msysgit 13 | *.doc diff=astextplain 14 | *.DOC diff=astextplain 15 | *.docx diff=astextplain 16 | *.DOCX diff=astextplain 17 | *.dot diff=astextplain 18 | *.DOT diff=astextplain 19 | *.pdf diff=astextplain 20 | *.PDF diff=astextplain 21 | *.rtf diff=astextplain 22 | *.RTF diff=astextplain 23 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Windows image file caches 2 | Thumbs.db 3 | ehthumbs.db 4 | 5 | # Folder config file 6 | Desktop.ini 7 | 8 | # Recycle Bin used on file shares 9 | $RECYCLE.BIN/ 10 | 11 | # Windows Installer files 12 | *.cab 13 | *.msi 14 | *.msm 15 | *.msp 16 | 17 | # ========================= 18 | # Operating System Files 19 | # ========================= 20 | 21 | # OSX 22 | # ========================= 23 | 24 | .DS_Store 25 | .AppleDouble 26 | .LSOverride 27 | 28 | # Icon must end with two \r 29 | Icon 30 | 31 | # Thumbnails 32 | ._* 33 | 34 | # Files that might appear on external disk 35 | .Spotlight-V100 36 | .Trashes 37 | 38 | # Directories potentially created on remote AFP share 39 | .AppleDB 40 | .AppleDesktop 41 | Network Trash Folder 42 | Temporary Items 43 | .apdisk 44 | -------------------------------------------------------------------------------- /.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | Android_Skin 4 | 5 | 6 | 7 | 8 | 9 | com.android.ide.eclipse.adt.ResourceManagerBuilder 10 | 11 | 12 | 13 | 14 | com.android.ide.eclipse.adt.PreCompilerBuilder 15 | 16 | 17 | 18 | 19 | org.eclipse.jdt.core.javabuilder 20 | 21 | 22 | 23 | 24 | com.android.ide.eclipse.adt.ApkBuilder 25 | 26 | 27 | 28 | 29 | 30 | com.android.ide.eclipse.adt.AndroidNature 31 | org.eclipse.jdt.core.javanature 32 | 33 | 34 | -------------------------------------------------------------------------------- /.settings/org.eclipse.jdt.core.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 3 | org.eclipse.jdt.core.compiler.compliance=1.6 4 | org.eclipse.jdt.core.compiler.source=1.6 5 | -------------------------------------------------------------------------------- /AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 39 | 40 | 43 | 44 | 45 | 52 | 53 | 54 | 55 | 56 | 59 | 60 | 69 | 70 | 71 | 72 | 73 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Android_Skin 2 | ============ 3 | 4 | @Deprecated 5 | 项目已迁移至 https://github.com/v7lin/Android_Skin_2.0 6 | 7 | 前言 8 | 9 | 先来拉下仇恨,看看能不能让让仇恨满级 ... 10 | 使用 ActionBar 的同学,请绕路 ... 我救不了你 ... 11 | 喜欢用 new View 的同学,请谨慎考虑一下 ... 这是一条不归路 ... 12 | 剩下仅使用 layout.xml 的同学 ... 13 | 14 | 介绍 15 | 16 | Android 安装式的插件 ... 我就不介绍了 ... 个人认为花精力去研究这种东西,毫无意义可言 ... 17 | 本文将插件分为两种:皮肤插件和功能插件。相应的同名同类型资源优先级关系:皮肤插件资源 > 宿主应用资源 > 功能插件资源 18 | 19 | 背景 20 | 21 | 虽然本文介绍的是 Android 非安装式的插件,但是,这里的插件都是 apk ... 当然,为了避免用户错误安装了插件 apk,这些插件 apk 发布前,最好嫑签名 ... 22 | 以下三点,让我一直感叹,Google 为何如此坑爹的原因 ... 23 | 1)同一 resid,可能是宿主应用包和插件应用包都有,而对应资源却是不同的 ... 24 | 2)Android SDK Package ID 以 0x01 开头 ... 25 | 3)Android App Package ID 以 0x7f 开头 ... 26 | 27 | 皮肤插件 28 | 29 | 寻寻觅觅,冷冷清清,凄凄惨惨戚戚 ... 一路查找资料和查看Android源码,终于找到突破口了 ... 30 | Android 获取资源,最终都是通过 Resource 这个类来代理 AssetManager 实现的。 31 | 皮肤插件 Apk 只需要编译 res 和 Manifest 即可 ... 不需要任何 Code ... 32 | 33 | 1)接入口 34 | Activity 也是一个 Context ... 更准确的来说,他是一个 ContextThemeWrapper ... 而真正的 Context 是通过 attachBaseContext 设置进来的 ... 那么,我们以此为入口,通过重写 attachBaseContext 代理一下外部设置进来的 ContextImpl ... 35 | 2)插件资源的管理类的选择 36 | 细究 Android 资源管理机制,我们可以轻易发现,Android 资源的管理是通过 Resource 这个类来管理。而APP Resource 在内存中只有一个备份的,以WeakReference 形式。那么我们以这个思路,设计一个皮肤插件管理类,管理皮肤插件 Resource。 37 | 3)如何换非 inflater View 的资源呢? 38 | 这里的资源不一定是以文件形式存在,R 文件里包含的所有内容都是资源。 39 | 也许,有看过插件式开发的同学,会对此嗤之以鼻,可能会认为只要加载了皮肤插件包资源就 OK了。但这皮肤插件资源必须与宿主应用的资源数量、类型要保持一致,多一个少一个都不行。原因是:同一 resid,可能是宿主应用包和插件应用包都有,而对应资源却是不同的 ... 但,后续开发,不会涉及资源这一模块的变化么?那是不可能的 ... 40 | 那么,我们要怎样实现换肤功能呢?首先我们要明确,我们换肤要换啥?换的是同名同类型资源(包含drawable、color、colorstatelist、string、text、dimen等。但坚决不能换 id。不建议换 layout,layout 与代码中的逻辑绑定比较深) ... 41 | 4)如何换 inflater View 的资源呢? 42 | 看到上面那些内容,喜欢用 new View 的同学应该很开心吧 ... 是啊 ... 我曾经也是喜欢用 new View ... 也为此开心了一阵 ... 但随之而来的是打击 ... 当我欢欢喜喜的拿着研究成功给老大看了一下 ... 他就指出,layout.xml 中的资源能够一键搞定么?一键搞定么?搞定么?么? ... 43 | 我勒个去了 ... 还真是,这解决方案还真没啥实施价值,毕竟工程中还有很多 layout ... Toast.makeText 中也有 layout ... 擦了 ... 咋整? 44 | 众里寻她千百度,蓦然回首,那人却在灯火阑珊处 ... 就酱紫 ... 半个月苦苦寻觅,终于找到解决方案了 ... LayoutInflater ... 45 | 46 | 功能插件 47 | 48 | 得空再写这些文档吧 ... 49 | 50 | 详细介绍见:http://www.eoeandroid.com/thread-553503-1-1.html 51 | 52 | 说多了都是泪,就酱紫大家将就着自己读代码吧 ... 如有不理解的,可以发 Email 问我 ... 过两天再学一下怎么传几张图,让大家看看效果 ... 53 | 54 | Author: 林恒龙 55 | Email:v7lin@qq.com 56 | -------------------------------------------------------------------------------- /bin/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 39 | 40 | 43 | 44 | 45 | 52 | 53 | 54 | 55 | 56 | 59 | 60 | 69 | 70 | 71 | 72 | 73 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/BuildConfig.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/BuildConfig.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/R$attr.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/R$attr.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/R$color.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/R$color.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/R$drawable.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/R$drawable.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/R$id.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/R$id.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/R$layout.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/R$layout.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/R$string.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/R$string.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/R$style.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/R$style.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/R.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/R.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/app/SuperActivity.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/app/SuperActivity.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/app/SuperAppConfig.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/app/SuperAppConfig.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/app/SuperReceiver.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/app/SuperReceiver.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/app/SuperService.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/app/SuperService.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/content/EnvRes.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/content/EnvRes.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/content/EnvResourcesWrapper.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/content/EnvResourcesWrapper.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/content/dex/EnvDexActivity.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/content/dex/EnvDexActivity.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/content/dex/EnvDexClassLoader.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/content/dex/EnvDexClassLoader.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/content/dex/EnvDexConst.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/content/dex/EnvDexConst.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/content/dex/EnvDexContextWrapper.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/content/dex/EnvDexContextWrapper.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/content/dex/EnvDexResourcesManager$EnvDexResourcesManagerHolder.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/content/dex/EnvDexResourcesManager$EnvDexResourcesManagerHolder.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/content/dex/EnvDexResourcesManager.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/content/dex/EnvDexResourcesManager.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/content/dex/EnvDexResourcesWrapper.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/content/dex/EnvDexResourcesWrapper.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/content/dex/EnvDexSetup$EnvDexSetupHolder.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/content/dex/EnvDexSetup$EnvDexSetupHolder.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/content/dex/EnvDexSetup.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/content/dex/EnvDexSetup.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/content/dex/EnvDexSetupImpl.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/content/dex/EnvDexSetupImpl.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/content/idex/IDexTest.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/content/idex/IDexTest.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/content/res/EnvActivity.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/content/res/EnvActivity.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/content/res/EnvAppConfig.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/content/res/EnvAppConfig.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/content/res/EnvChecker.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/content/res/EnvChecker.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/content/res/EnvCheckerCompat$EarlyEnvTextCheckerCompatImpl.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/content/res/EnvCheckerCompat$EarlyEnvTextCheckerCompatImpl.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/content/res/EnvCheckerCompat$EnvTextCheckerCompatImpl.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/content/res/EnvCheckerCompat$EnvTextCheckerCompatImpl.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/content/res/EnvCheckerCompat$IceCreamSandwichEnvTextCheckerCompatImpl.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/content/res/EnvCheckerCompat$IceCreamSandwichEnvTextCheckerCompatImpl.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/content/res/EnvCheckerCompat$JellyBeanMr1EnvTextCheckerCompatImpl.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/content/res/EnvCheckerCompat$JellyBeanMr1EnvTextCheckerCompatImpl.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/content/res/EnvCheckerCompat$UnknownEnvTextCheckerCompatImpl.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/content/res/EnvCheckerCompat$UnknownEnvTextCheckerCompatImpl.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/content/res/EnvCheckerCompat.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/content/res/EnvCheckerCompat.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/content/res/EnvCheckerCompatIceCreamSandwich.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/content/res/EnvCheckerCompatIceCreamSandwich.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/content/res/EnvCheckerCompatJellyBeanMr1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/content/res/EnvCheckerCompatJellyBeanMr1.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/content/res/EnvCheckerCompatUnknown.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/content/res/EnvCheckerCompatUnknown.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/content/res/EnvColorChecker.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/content/res/EnvColorChecker.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/content/res/EnvContextWrapper.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/content/res/EnvContextWrapper.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/content/res/EnvDrawableChecker.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/content/res/EnvDrawableChecker.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/content/res/EnvLayoutInflaterWrapper$EnvFactory.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/content/res/EnvLayoutInflaterWrapper$EnvFactory.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/content/res/EnvLayoutInflaterWrapper.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/content/res/EnvLayoutInflaterWrapper.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/content/res/EnvReceiver.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/content/res/EnvReceiver.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/content/res/EnvService.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/content/res/EnvService.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/content/res/EnvSetup$EnvSetupHolder.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/content/res/EnvSetup$EnvSetupHolder.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/content/res/EnvSetup.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/content/res/EnvSetup.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/content/res/EnvSetupImpl.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/content/res/EnvSetupImpl.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/content/res/EnvSkinResClearCompat$BaseEnvResClearCompatImpl.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/content/res/EnvSkinResClearCompat$BaseEnvResClearCompatImpl.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/content/res/EnvSkinResClearCompat$EarlyEnvResClearCompatImpl.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/content/res/EnvSkinResClearCompat$EarlyEnvResClearCompatImpl.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/content/res/EnvSkinResClearCompat$EnvResClearCompatImpl.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/content/res/EnvSkinResClearCompat$EnvResClearCompatImpl.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/content/res/EnvSkinResClearCompat$IceCreamSandwichEnvResClearCompatImpl.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/content/res/EnvSkinResClearCompat$IceCreamSandwichEnvResClearCompatImpl.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/content/res/EnvSkinResClearCompat$JellyBeanEnvResClearCompatImpl.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/content/res/EnvSkinResClearCompat$JellyBeanEnvResClearCompatImpl.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/content/res/EnvSkinResClearCompat.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/content/res/EnvSkinResClearCompat.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/content/res/EnvSkinResourcesManager$EnvResourcesManagerHolder.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/content/res/EnvSkinResourcesManager$EnvResourcesManagerHolder.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/content/res/EnvSkinResourcesManager.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/content/res/EnvSkinResourcesManager.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/content/res/EnvSkinResourcesWrapper.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/content/res/EnvSkinResourcesWrapper.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/content/res/EnvTextChecker.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/content/res/EnvTextChecker.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/content/res/EnvTypefaceChecker.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/content/res/EnvTypefaceChecker.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/content/res/EnvTypefaceManager$EnvTypefaceManagerHolder.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/content/res/EnvTypefaceManager$EnvTypefaceManagerHolder.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/content/res/EnvTypefaceManager.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/content/res/EnvTypefaceManager.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/crash/CrashReport.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/crash/CrashReport.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/crash/CrashUncaughtExceptionHandler.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/crash/CrashUncaughtExceptionHandler.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/crash/UncaughtExceptionHandlerWrapper.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/crash/UncaughtExceptionHandlerWrapper.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/os/StatFsCompat$EarlyStatFsCompatImpl.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/os/StatFsCompat$EarlyStatFsCompatImpl.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/os/StatFsCompat$JellyBeanMr2StatFsCompatImpl.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/os/StatFsCompat$JellyBeanMr2StatFsCompatImpl.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/os/StatFsCompat$StatFsCompatImpl.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/os/StatFsCompat$StatFsCompatImpl.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/os/StatFsCompat.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/os/StatFsCompat.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/os/StatFsCompatJellyBeanMr2.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/os/StatFsCompatJellyBeanMr2.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/os/env/PathConst.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/os/env/PathConst.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/os/env/PathUtils.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/os/env/PathUtils.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/os/storage/StorageManagerCompat$EarlyStorageManagerCompatImpl.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/os/storage/StorageManagerCompat$EarlyStorageManagerCompatImpl.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/os/storage/StorageManagerCompat$GingerbreadStorageManagerCompatImpl.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/os/storage/StorageManagerCompat$GingerbreadStorageManagerCompatImpl.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/os/storage/StorageManagerCompat$StorageManagerCompatImpl.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/os/storage/StorageManagerCompat$StorageManagerCompatImpl.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/os/storage/StorageManagerCompat.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/os/storage/StorageManagerCompat.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/os/storage/StorageManagerCompatGingerbread.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/os/storage/StorageManagerCompatGingerbread.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/os/storage/StorageUtils.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/os/storage/StorageUtils.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/test/TestActivity$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/test/TestActivity$1.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/test/TestActivity.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/test/TestActivity.class -------------------------------------------------------------------------------- /bin/classes/com/v7lin/android/test/TestDexActivity.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/bin/classes/com/v7lin/android/test/TestDexActivity.class -------------------------------------------------------------------------------- /bin/proguard.txt: -------------------------------------------------------------------------------- 1 | # view AndroidManifest.xml #generated:56 2 | -keep class android.test.InstrumentationTestRunner { (...); } 3 | 4 | # view AndroidManifest.xml #generated:60 5 | -keep class com.v7lin.android.content.EnvAppConfig { (...); } 6 | 7 | # view AndroidManifest.xml #generated:73 8 | -keep class com.v7lin.android.test.TestActivity { (...); } 9 | 10 | # view AndroidManifest.xml #generated:85 11 | -keep class com.v7lin.android.test.TestDexActivity { (...); } 12 | 13 | -------------------------------------------------------------------------------- /gen/com/v7lin/android/BuildConfig.java: -------------------------------------------------------------------------------- 1 | /** Automatically generated file. DO NOT MODIFY */ 2 | package com.v7lin.android; 3 | 4 | public final class BuildConfig { 5 | public final static boolean DEBUG = true; 6 | } -------------------------------------------------------------------------------- /gen/com/v7lin/android/R.java: -------------------------------------------------------------------------------- 1 | /* AUTO-GENERATED FILE. DO NOT MODIFY. 2 | * 3 | * This class was automatically generated by the 4 | * aapt tool from the resource data it found. It 5 | * should not be modified by hand. 6 | */ 7 | 8 | package com.v7lin.android; 9 | 10 | public final class R { 11 | public static final class attr { 12 | } 13 | public static final class color { 14 | public static final int black=0x7f040002; 15 | public static final int gray=0x7f040003; 16 | /** 基色 17 | */ 18 | public static final int red=0x7f040000; 19 | public static final int test=0x7f040004; 20 | public static final int test_selector=0x7f040005; 21 | public static final int white=0x7f040001; 22 | } 23 | public static final class drawable { 24 | public static final int btn_default_normal=0x7f020000; 25 | public static final int btn_default_selected=0x7f020001; 26 | public static final int icon=0x7f020002; 27 | public static final int test_selector=0x7f020003; 28 | } 29 | public static final class id { 30 | public static final int button1=0x7f070001; 31 | public static final int checkBox1=0x7f070004; 32 | public static final int imageView1=0x7f070000; 33 | public static final int imageView2=0x7f070002; 34 | public static final int radioButton1=0x7f070005; 35 | public static final int textView1=0x7f070003; 36 | } 37 | public static final class layout { 38 | public static final int layout_dex=0x7f030000; 39 | public static final int layout_main=0x7f030001; 40 | } 41 | public static final class string { 42 | public static final int app_description=0x7f050001; 43 | public static final int app_name=0x7f050000; 44 | } 45 | public static final class style { 46 | public static final int Animation=0x7f060000; 47 | public static final int Theme_Normal=0x7f060001; 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /lint.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /proguard.cfg: -------------------------------------------------------------------------------- 1 | -optimizationpasses 5 2 | -dontusemixedcaseclassnames 3 | -dontskipnonpubliclibraryclasses 4 | -dontpreverify 5 | -dontoptimize 6 | -verbose 7 | -optimizations !code/simplification/arithmetic,!field/*,!class/merging/* 8 | 9 | # 注:做 SDK 混淆 Jar 时,不能添加优化属性 10 | 11 | # 为了方便查看外部崩溃 LOG 信息,便于定位修正 BUG 12 | -keepattributes Exceptions 13 | -keepattributes InnerClasses 14 | -keepattributes Signature 15 | -keepattributes Deprecated 16 | -keepattributes SourceFile 17 | -keepattributes LineNumberTable 18 | -keepattributes *Annotation* 19 | -keepattributes EnclosingMethod 20 | 21 | # 关闭 Log日志输出 22 | -assumenosideeffects class android.util.Log { 23 | public static *** d(...); 24 | public static *** v(...); 25 | public static *** i(...); 26 | } 27 | 28 | -keep public class * extends android.app.Activity 29 | -keep public class * extends android.app.Application 30 | -keep public class * extends android.app.Service 31 | -keep public class * extends android.content.BroadcastReceiver 32 | -keep public class * extends android.content.ContentProvider 33 | -keep public class * extends android.app.backup.BackupAgentHelper 34 | -keep public class * extends android.preference.Preference 35 | -keep public class com.android.vending.licensing.ILicensingService 36 | 37 | -keep public class * extends android.view.View { 38 | public (android.content.Context); 39 | public (android.content.Context, android.util.AttributeSet); 40 | public (android.content.Context, android.util.AttributeSet, int); 41 | public void set*(...); 42 | } 43 | 44 | -keepclasseswithmembernames class * { 45 | native ; 46 | } 47 | 48 | -keepclassmembers enum * { 49 | public static **[] values(); 50 | public static ** valueOf(java.lang.String); 51 | } 52 | 53 | -keep class * implements android.os.Parcelable { 54 | public static final android.os.Parcelable$Creator *; 55 | } 56 | 57 | -keep public class org.apache.commons.logging.** { 58 | public protected *; 59 | } 60 | -keep public class android.os.** { 61 | public protected *; 62 | } 63 | -keep public class android.text.** { 64 | public protected *; 65 | } 66 | -keep public class android.net.http.** { 67 | public protected *; 68 | } 69 | 70 | -dontwarn org.apache.commons.logging.** 71 | -dontwarn android.os.** 72 | -dontwarn android.text.** 73 | -dontwarn android.net.http.** 74 | -dontwarn android.content.** 75 | -dontwarn android.view.** 76 | -dontwarn android.widget.** 77 | 78 | -dontwarn com.android.internal.widget.** 79 | -keep class com.android.internal.widget.* { *;} 80 | -------------------------------------------------------------------------------- /project.properties: -------------------------------------------------------------------------------- 1 | # This file is automatically generated by Android Tools. 2 | # Do not modify this file -- YOUR CHANGES WILL BE ERASED! 3 | # 4 | # This file must be checked in Version Control Systems. 5 | # 6 | # To customize properties used by the Ant build system edit 7 | # "ant.properties", and override values to adapt the script to your 8 | # project structure. 9 | # 10 | # To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): 11 | #proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt 12 | 13 | # Indicates whether an apk should be generated for each density. 14 | split.density=false 15 | # Project target. 16 | target=android-20 17 | proguard.config=proguard.cfg 18 | android.library=false 19 | -------------------------------------------------------------------------------- /res/color/test_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /res/drawable-hdpi/btn_default_normal.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/res/drawable-hdpi/btn_default_normal.9.png -------------------------------------------------------------------------------- /res/drawable-hdpi/btn_default_selected.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/res/drawable-hdpi/btn_default_selected.9.png -------------------------------------------------------------------------------- /res/drawable-hdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/droplet-js/Android_Skin/45af06425c4c084feff9e471c6df2f83c678553a/res/drawable-hdpi/icon.png -------------------------------------------------------------------------------- /res/drawable/test_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /res/layout/layout_dex.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 13 | 14 |