标签:
手机中存储空间分为ROM和SDcard,ROM中放着操作系统以及我们安装的APP,而sdcard中一般放置着我们APP产生的数据。当然,Android也为每个APP在ROM中创建一个数据存储空间,具体目录是/data/data下。在真机中调试中,该目录对于其他用户是没有开启任何权限,所以在DDMS中我们是打不开该目录的。
解决方案就是我们通过adb登录到我们手机上,然后直接切换到root用户,这时后手机可能会询问是否授权,我们则选择允许。这样我们就成为root用户了。然后我们在更改/data目录的权限,这样就能在DDMS上看到/data下的内容了。具体操纵如下:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:orientation="vertical" tools:context="xidian.dy.com.chujia.MainActivity"> <EditText android:id="@+id/username" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="请输入用户名"/> <EditText android:id="@+id/password" android:inputType="textPassword" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="请输入密码"/> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <CheckBox android:id="@+id/remember" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="记住用户名和密码" android:layout_centerVertical="true"/> <Button android:id="@+id/login" android:layout_alignParentRight="true" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="登录"/> </RelativeLayout> </LinearLayout>
package xidian.dy.com.chujia; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.telephony.SmsManager; import android.util.Log; import android.util.PrintWriterPrinter; import android.view.View; import android.widget.Button; import android.widget.CheckBox; import android.widget.EditText; import android.widget.Toast; import java.io.BufferedWriter; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.util.List; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button bt = (Button) findViewById(R.id.login); bt.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { EditText etUsername = (EditText) findViewById(R.id.username); String username = etUsername.getText().toString(); EditText etPassword = (EditText) findViewById(R.id.password); String password = etPassword.getText().toString(); Log.e("Login", "登录成功"); CheckBox cb = (CheckBox) findViewById(R.id.remember); if(cb.isChecked()){ String path = "/data/data/xidian.dy.com.chujia/info.txt"; File file = new File(path); PrintWriter pw = null; try { pw = new PrintWriter(new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file)))); } catch (FileNotFoundException e) { Log.e("MainActivity","file not found"); } pw.println(username); pw.println(password); pw.close(); } } }); } }
Android为每个app在/data/data下创建一个文件夹,文件夹的名字就是APP的包名。我们的APP报名为xidian.dy.com.chujia,所以为了保存用户数据,我在/data/data/xidian.dy.com.chujia/创建一个infro.txt文件夹,然后将用户名和密码包存到该文件夹下。对用户名和密码的保存就使用普通的java IO流即可。
标签:
原文地址:http://www.cnblogs.com/xidongyu/p/5558305.html