我是Android开发的新手。我正在开发一个调用Web服务进行注册,登录等的应用程序......现在我将url和其他常量存储为类中的静态最终对象。这是最好的方法吗?或者我应该使用首选项或string.xml来保存在反编译apk时确保安全的URL?
答案 0 :(得分:-1)
这是最好的方式吗,或者我应该使用偏好或 string.xml用于保存在反编译时确保安全的url apk?
可以修改root电话以提供对私人首选项等的访问。即使您的代码经过混淆并且字符串已加密,您的网址仍然可以曝光。
答案不是保密URL,而是以可靠的方式保护Web服务调用。您的帖子没有足够的信息来详细说明哪种安全性最适合您的应用/服务。看看OAuth; amazon AWS如何保护他们的Web服务调用。这是一个好的开始。
答案 1 :(得分:-2)
您应该使用您的登录凭证的首选项,如下所示,并希望您从中获得理想:
SharedPreferences sh_Pref;
Editor toEdit;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.yourlayout);
sh_Pref = getSharedPreferences("Login Credentials", MODE_PRIVATE);
EditText et_username=(EditText) findViewById(R.id.et_username);
EditText et_password=(EditText)this.findViewById(R.id.et_password);
Button btn_login=(Button)this.findViewById(R.id.btn_login);
btn_login.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
username = et_username.getText().toString();
password = et_password.getText().toString();
sharedPrefernces();
Toast.makeText(MyPoints.this, "Details are saved", 20).show();
}
});
}
外面的oncreate:
public void sharedPrefernces() {
// sh_Pref = getSharedPreferences("Login Credentials", MODE_PRIVATE);
toEdit = sh_Pref.edit();
toEdit.putString("Username", username);
toEdit.putString("Password", password);
toEdit.putBoolean("isLogedIn", true);
Log.d("TripleVMusic", "username in pref= " + username);
Log.d("TripleVMusic", "password in pref = " + password);
toEdit.commit();
}