整数代替 ID 和布局
Integer in place of Ids and Layouts
我已经为 java 代码反编译了一个 apk,在其中我得到了这些整数值来代替 R.id 和 R.layouts。你能解释一下为什么会这样吗?
protected void onCreate(Bundle paramBundle)
{
super.onCreate(paramBundle);
setContentView(2130903041);
this.b1 = ((Button)findViewById(2131230721));
this.b2 = ((Button)findViewById(2131230722));
this.b1.setOnClickListener(new View.OnClickListener()
{
public void onClick(View paramAnonymousView)
{
Settingss.this.showDialog(1);
}
});
this.b2.setOnClickListener(new View.OnClickListener()
{
public void onClick(View paramAnonymousView)
{
Settingss.this.showDialog(2);
}
});
}
protected Dialog onCreateDialog(int paramInt)
{
if (paramInt == 1)
{
final Dialog localDialog1 = new Dialog(this);
localDialog1.setContentView(2130903043);
localDialog1.setTitle("Set Message");
final EditText localEditText = (EditText)localDialog1.findViewById(2131230724);
Button localButton1 = (Button)localDialog1.findViewById(2131230721);
((Button)localDialog1.findViewById(2131230722)).setOnClickListener(new View.OnClickListener()
我知道第一个 setContentView(2130903041) 用于 R.layout.layoutname,接下来的两个是我布局中的按钮,所以我直接用按钮的特定 ID 替换了整数值。
单击布局中的“设置消息”按钮会弹出一个对话框,要求设置消息。所以我不知道如何设置那个对话框的 id,因为它在布局中没有提到并且从哪里弹出。
我混淆的代码是这样的:
final Dialog localDialog1 = new Dialog(this);
localDialog1.setContentView(2130903043);
localDialog1.setTitle("Set Message");
final EditText localEditText = (EditText)localDialog1.findViewById(2131230724);
Button localButton1 = (Button)localDialog1.findViewById(2131230721);
((Button)localDialog1.findViewById(2131230722)).setOnClickListener(new View.OnClickListener()
{
很简单。生成 apk 后,ID 将在 java 文件中转换为 Decimal 值。您必须将其转换为 Hexadecimal(您可以使用计算器来完成)。一旦你得到十六进制值,你只需要在R.java文件中搜索它,你就会得到字段的名称或id。
例如,在行中:localDialog1.setContentView(2130903043);
十六进制的id是7F030003。现在您可以在 R.java 文件中搜索此值。
我已经为 java 代码反编译了一个 apk,在其中我得到了这些整数值来代替 R.id 和 R.layouts。你能解释一下为什么会这样吗?
protected void onCreate(Bundle paramBundle)
{
super.onCreate(paramBundle);
setContentView(2130903041);
this.b1 = ((Button)findViewById(2131230721));
this.b2 = ((Button)findViewById(2131230722));
this.b1.setOnClickListener(new View.OnClickListener()
{
public void onClick(View paramAnonymousView)
{
Settingss.this.showDialog(1);
}
});
this.b2.setOnClickListener(new View.OnClickListener()
{
public void onClick(View paramAnonymousView)
{
Settingss.this.showDialog(2);
}
});
}
protected Dialog onCreateDialog(int paramInt)
{
if (paramInt == 1)
{
final Dialog localDialog1 = new Dialog(this);
localDialog1.setContentView(2130903043);
localDialog1.setTitle("Set Message");
final EditText localEditText = (EditText)localDialog1.findViewById(2131230724);
Button localButton1 = (Button)localDialog1.findViewById(2131230721);
((Button)localDialog1.findViewById(2131230722)).setOnClickListener(new View.OnClickListener()
我知道第一个 setContentView(2130903041) 用于 R.layout.layoutname,接下来的两个是我布局中的按钮,所以我直接用按钮的特定 ID 替换了整数值。
单击布局中的“设置消息”按钮会弹出一个对话框,要求设置消息。所以我不知道如何设置那个对话框的 id,因为它在布局中没有提到并且从哪里弹出。
我混淆的代码是这样的:
final Dialog localDialog1 = new Dialog(this);
localDialog1.setContentView(2130903043);
localDialog1.setTitle("Set Message");
final EditText localEditText = (EditText)localDialog1.findViewById(2131230724);
Button localButton1 = (Button)localDialog1.findViewById(2131230721);
((Button)localDialog1.findViewById(2131230722)).setOnClickListener(new View.OnClickListener()
{
很简单。生成 apk 后,ID 将在 java 文件中转换为 Decimal 值。您必须将其转换为 Hexadecimal(您可以使用计算器来完成)。一旦你得到十六进制值,你只需要在R.java文件中搜索它,你就会得到字段的名称或id。
例如,在行中:localDialog1.setContentView(2130903043);
十六进制的id是7F030003。现在您可以在 R.java 文件中搜索此值。