我在Android中使用ProGuard
来混淆我的代码。我的应用程序使用Android蓝牙API,以下是我整个代码段的一部分
import android.app.Activity;
import android.bluetooth.BluetoothAdapter;
import android.os.Bundle;
import android.widget.Toast;
public class MainActivity extends Activity {
private BluetoothAdapter mBluetoothAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
// If the adapter is null, then Bluetooth is not supported
if (mBluetoothAdapter == null) {
Toast.makeText(this, "Bluetooth is not available", Toast.LENGTH_LONG).show();
finish();
return;
}
//more code over here
}
当我启用ProGuard并尝试模糊我的代码时,我使用Java decompiler
我的问题是为什么BluetoothAdapter
类没有被混淆。为什么ProGuard不会将自己的命名添加到BluetoothAdapter
等默认类中。我是否需要在配置文件中添加任何参数以混淆适配器类,或者这是不可能的?
请帮我解决这个问题
答案 0 :(得分:2)
BluetoothAdapter
类是android API(android.bluetooth.BluetoothAdapter
)的一部分,proguard无法模糊对它的引用,否则VM无法知道您正在使用此类。混淆只能在您的课程上进行,而不会篡改您无法控制的课程。