0x1、引言ViewBinding(视图绑定) 的作用和原理一言以蔽之:作用 → 代替findViewById 的同时,还能保证 空安全 和 类型安全,且 支持Java;原理 → AGP为模块中的每个XML生成绑定类,本质上还是findViewByid,只是自动生成控件实例,并一一对应;可以把 ViewBinding 看做 DataBinding 功能的 子集,它有的DataBinding都有,而            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-10-30 21:12:32
                            
                                202阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            随着Android开发越来越复杂,使用ViewModel来管理UI相关的数据已成为一种普遍做法。然而,混淆(Proguard/R8)会造成ViewModel类被重命名,从而导致应用崩溃或无法正常工作。为了处理“Android 混淆 ViewModel”类型的问题,以下是我整理的解决方案,涵盖了备份策略、恢复流程、灾难场景、工具链集成、监控告警及迁移方案。
## 备份策略
在进行混淆之前,确保我们            
                
         
            
            
            
            一、概述ProGuard 会检测和移除封装应用中未使用的类、字段、方法和属性,包括自带代码库中的未使用项(这使其成为以变通方式解决64k 引用限制的有用工具)。ProGuard 还可优化字节码,移除未使用的代码指令,以及用短名称混淆其余的类、字段和方法。混淆过的代码可令您的 APK 难以被逆向工程,这在应用使用许可验证等安全敏感性功能时特别有用。二、开启混淆在module的build.gradle            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-11-16 11:53:54
                            
                                40阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            Android包4.0(好像是4.0)以后混淆更加简单 1、在project.properties.txt将以下内容注释去掉proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt2、在proguard-project中加入取消混淆的声明:# 需要混淆的jar包所依赖的jar包            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-11-18 10:04:51
                            
                                327阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
                Unity中的脚本都是继承自MonoBehaviour。    MonoBehaviour 表示一个单一的行为。Unity中用户对游戏对象的操作被分割成若干个单一行为。每个单一行为都作为一个MonoBehaviour类来封装。再生成每个MonoBehaviour类的实例,并作为组件嵌入游戏对象。然后按照一定的顺序(从下到上)调用每            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-19 01:42:00
                            
                                58阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            一、混淆简介 Android中的“混淆”可以分为两部分,一部分是 Java 代码的优化与混淆,依靠 proguard 混淆器来实现;另一部分是资源压缩,将移除项目及依赖的库中未被使用的资源(资源压缩严格意义上跟混淆没啥关系,但一般我们都会放一起讲)。 1. 代码压缩  代码混淆是包含了代码压缩、优化、混淆等一系列行为的过程。如上图所示,混淆过程会有如下几个功能: 压缩。移除无效的类、类成员、方法、            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-11 11:17:47
                            
                                207阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            混淆是一种安全措施,防止在App发布以后被人反编译出来直接看到源码。做了混淆处理以后即使反编译出来一些类名也变成了Class a,Class b之类的,增加了阅读难度。            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-04 10:29:20
                            
                                832阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            写在前面  混淆在我们实际的Android开发中是必不可少的,如果不混淆, 发布出去,别人一反编译 就可以直接看你的源码了,那么在应用发布前,就需要对代码进行混淆处理,从而让我们代码即使被反编译,也难以阅读。 ProGuard作用  proguard拥有以下四个功能。  压缩(Shrink):侦测并移除代码中无用的类、字段、方法、和特性(Attribute)。  优化(OPtimize):对字节码            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-02-02 13:25:02
                            
                                240阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            项目发布之前混淆是必不可少的工作,混淆可以增加别人反编译阅读代码的难度,还可以缩小APK包。一、使用原理:见:ProGuard的作用、使用及bug分析(http://www.trinea.cn/android/proguard-use/);Proguard语法及常用proguard.cfg代码段(http://www.trinea.cn/android/proguard-grammar/);二、            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-05-23 15:04:19
                            
                                447阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            基础知识指定的类和类成员被保留作为 入口 ,使用 -keep保留类成员 ,使用-keepclassmembers保留指定的类和类成员被保留,假如指定的类成员存在的话。使用keepclasseswithmembers 基础知识部分可以看上面第2个链接,假定项目下有2个library,一个application模块,总共3个模块。先说明下gradle配置主工程 ,gradle如下,在这里定义一个统一开            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-11-17 11:12:11
                            
                                185阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            混淆的概念:对编译好的class文件进行混淆处理。ProGuard是一个混淆代码的开源项目。它的主要作用就是混淆,当然它还能对字节码进行缩减体积、优化等混淆的原理Java 是一种跨平台的、解释型语言,Java 源代码编译成中间”字节码”存储于 class 文件中。由于跨平台的需要,Java 字节码中包括了很多源代码信息,如变量名、方法名,并且通过这些名称来访问变量和方法,这些符号带有许多语义信息,            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-30 19:31:51
                            
                                278阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            proguard 原理Java代码编译成二进制class 文件,这个class 文件也可以反编译成源代码 ,除了注释外,原来的code 基本都可以看到。为了防止重要code 被泄露,我们往往需要混淆(Obfuscation code , 也就是把方法,字段,包和类这些java 元素的名称改成无意义的...            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2015-01-10 00:23:00
                            
                                562阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            第一步:代码混淆(注意引入的第三方jar) 在新版本的ADT创建项目时,混码的文件不再是proguard.cfg,而是project.properties和proguard-project.txt。新建一个项目的时候,会自动生成project.properties和proguard-project.txt文件,无需自己新建,如果你的项目无法自动生成,那么你就要检查一下你的ADT版本了如果            
                
         
            
            
            
            一、前言为何需要混淆呢?简单的说,就是将原本正常的项目文件,对其类,方法,字段,重新命名,a,b,c,d,e,f…之类的字母,达到混淆代码的目的,这样反编译出来,结构乱糟糟的,看了也头大。另外说明一下,本文的混淆总结基于Android Studio的IDE开发环境。二、官方默认的混淆配置其实在android Studio中做混淆,基本就是对Proguard-rules.pro文            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-07 12:30:23
                            
                                262阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            为保证移动端数据安全,防止应用被逆向工程师反编译或被不法分子盗用用户信息,Android应用打包发布都需要进行混淆。混淆其实是包括了代码压缩、代码混淆以及资源压缩等的优化过程。依靠 ProGuard,混淆流程将主项目以及依赖库中未被使用的类、类成员、方法、属性移除,这有助于规避64K方法数的瓶颈;同时,将类、类成员、方法重命名为无意义的简短名称,增加了逆向工程的难度。而依靠 Gradle 的 An            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-11-15 21:47:40
                            
                                150阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            一、混淆apk的必要性  当我们的app开发完毕上传各大应用市场的时候如果我们不进行apk的混淆就会导致app的安全性大大的降低,你也不想自己幸幸苦苦做完的项目就这么轻易的被别人窃取了。混淆虽然不能完全防止别人反编译apk看到你的代码,也能很大程度上让反编译的代码阅读性降低。所以混淆还是必须的。二、如何混淆  在Android Studio当中混淆APK实在是太简单了,,只需要修改build.gr            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-04 19:07:14
                            
                                182阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            =======本文章属于转载这篇文章等是跟大家分享一在Android studio 进行代码混淆配置。之前大家在eclipse上也弄过代码混淆配置,其实一样,大家可以把之前在eclipse上的配置文件直接拿过来用。不管是.cfg文件还是proguard-rules.pro文件都一样。先给大家贴一个混淆模板吧。注释很清楚。是我目前一个项目用的proguard.cfg配置文件#指定代码的压缩级别
-o            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-25 22:54:28
                            
                                116阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            第一步 : 在build.gradle中做如下配置注 : 可以分别配置debug与release的混淆配置android {
    buildTypes {
        debug {
            minifyEnabled true     //混淆
            zipAlignEnabled true   //zipalign优化
            shri            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-06-27 18:50:28
                            
                                222阅读
                            
                                                                             
                 
                
                             
         
            
            
            
              Android Studio自带混淆打包功能,通过在build.gradle文件中声明:  设置minifyEnabled属性为true,开启混淆打包功能,在项目的根目录下找到 proguard-rule.pro文件,将自定义的混淆规则写入,完成app打包混淆。  常见的混淆配置:  #指定代码的压缩级别
    -optimizationpasses 5
    
    #包明不混合大小写            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-01-24 12:11:37
                            
                                108阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            前言 对于一个应用release包来说,存在混淆效果是十分正常的。添加混淆不仅能够使用无意义的命名去重新命名类、方法及变量,使得应用代码被混淆难以反编译及进行逆向工程,同时在一定程度上还能够减小包的大小。在Android里面,由于我们常用的IDE:Android Studio集成了ProGuard,因此我们最常用,最简单的混淆是ProGuard混淆。ProGuard混淆主要包括有四个功能:压缩(S            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-10-06 21:09:18
                            
                                184阅读