2016-09-19 84 views
4

最近我用this使用更多混淆代码设计应用程序?

打开了一些真实的应用程序所以我从中得到了源代码。在这些源代码,我发现大部分的代码是这样设计

public class LockActivity extends Activity { 
    public void onCreate(Bundle bundle) { 
     super.onCreate(bundle); 
     if (GlobalDataHolder.m9617e()) { 
      bm.m8771b(getApplicationContext(), getPackageManager()); 
      finish(); 
     } 
    } 

    protected void onResume() { 
     super.onResume(); 
     if (GlobalDataHolder.m9617e()||this.f4719a.m9124j()) { 
      bm.m8771b(getApplicationContext(), getPackageManager()); 

      finish(); 
      return; 
     } 
     startActivity(new Intent(getApplicationContext(), LaunchActivity.class)); 
    } 

    public void onPause() { 
     super.onPause(); 
    } 

    public void onDestroy() { 
     super.onDestroy(); 
    } 
} 

而且还java文件由乱码命名,如

aa.java 

bh.java 

cj.java 

我的问题是

1)为什么这些开发人员创建名为'm8771b','m9617e'

的函数2)为什么大多数应用程序都是这样设计的?

3)这是否更安全以避免其他人复制他们的代码?

4)我们是否应该像这样设计应用程序?

5)他们如何记住他们放置的功能?

+0

当我们在android项目中使用proguard时,改变了名称和类名。这不是由用户完成的。 –

回答

4

人们不会写这样的代码...除非他们是一个专家或没有经验。使用表面上随机的方法/类名称字符串称为混淆,它意味着隐藏某些内容的真实含义以使其难以阅读。

Obfuscation Wiki,因为它涉及到软件开发

有计划在那里,像ProGuard这对于我们做到这一点。其目的是为了使代码紧凑和模糊。这样一来,人们就很难反编译和重建项目,而无法无休止地依靠复杂性来完成项目。

由于Java总是编译成字节码,所以它可以被反编译的方式是可预测的,并且更具标准性,即可编写一次编译任何语言的语言。 ProGuard有助于保护知识产权或专有软件,防止人们窃取代码。