android 缓存区,Android 缓存篇之系统缓存

  • Post author:
  • Post category:其他


案例场景:目前没有,写一个记住账号密码吧,记住密码一般都是SP缓存,卸载之后就没了,但是如果用系统缓存的话卸载后重新安装还是有数据的。

我分别测试了几个不同版本,因为我是硬件开发,硬件版本5.1.1 ,考虑到手机,就下载了几个不同版本测试

788bac119e61

image.png

效果图:

5.1.1 版本

788bac119e61

5.1.1系统缓存.gif

通过测试发现5.1.1 版本手机是可以使用的,哪怕你卸载了重新安装时候还是会读取数据的

6.0 版本

788bac119e61

6.0系统缓存.gif

通过测试发现6.0 版本手机也可以使用的,就是卸载重新安装后初始化值。

8.0 版本 不支持

10.0 版本 不支持

应该是版本特性问题,我后期找找补上

通过测试我们发现5.1.1 以及 6.0版本是可以使用的, 但是8.0 和 10.0是不行的,应该是权限或者别的吧,有时间在补上,这个需要的大家可以从版本升级那边找找答案,我后期补上这块!

代码示意图:

788bac119e61

image.png

代码如下:

权限 我就是忘了这个一直调试不出来~

AndroidManifest.xml

package=”com.phone.rmbpws”>

android:allowBackup=”true”

android:icon=”@mipmap/ic_launcher”

android:label=”@string/app_name”

android:roundIcon=”@mipmap/ic_launcher_round”

android:supportsRtl=”true”

android:theme=”@style/AppTheme”>

MainActivity

package com.phone.rmbpws;

import android.content.Intent;

import android.os.Bundle;

import android.view.View;

import android.widget.EditText;

import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;

import java.util.regex.Pattern;

public class MainActivity extends AppCompatActivity {

private EditText etCnt;

private EditText etPsw;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

initView();

}

private void initView() {

etCnt = (EditText) findViewById(R.id.et_cnt);

etPsw = (EditText) findViewById(R.id.et_psw);

CommonManage.inIt(this);

etCnt.setText(NormalConfig.USER);

etPsw.setText(NormalConfig.PSW);

}

private void start() {

startActivity(new Intent(this, MainActivity2.class));

finish();

}

public void onClickLogin(View view) {

switch (view.getId()) {

case R.id.tv_login:

saveLogin();

break;

}

}

private void saveLogin() {

String user = etCnt.getText().toString().trim();

String psw = etPsw.getText().toString().trim();

if (user.length() == 0) {

Toast.makeText(this, “Account number cannot be empty”, Toast.LENGTH_SHORT).show();

return;

}

if (psw.length() == 0) {

Toast.makeText(this, “Password cannot be empty”, Toast.LENGTH_SHORT).show();

return;

}

CommonManage.cm.save(user, psw);

Toast.makeText(this, “Successful login”, Toast.LENGTH_SHORT).show();

}

public static boolean isNumeric(String str) {

Pattern pattern = Pattern.compile(“[0-9]*”);

return pattern.matcher(str).matches();

}

}

activity.xml

788bac119e61

image.png

xmlns:app=”http://schemas.android.com/apk/res-auto”

xmlns:tools=”http://schemas.android.com/tools”

android:layout_width=”match_parent”

android:layout_height=”match_parent”

tools:context=”.MainActivity”>

android:id=”@+id/tv_cnt”

android:layout_width=”wrap_content”

android:layout_height=”wrap_content”

android:layout_marginLeft=”20dp”

android:layout_marginTop=”80dp”

android:padding=”6dp”

android:text=”账号:”

android:textSize=”18sp” />

android:id=”@+id/tv_psw”

android:layout_width=”wrap_content”

android:layout_height=”wrap_content”

android:layout_below=”@id/tv_cnt”

android:layout_alignLeft=”@id/tv_cnt”

android:layout_marginTop=”20dp”

android:padding=”6dp”

android:text=”密码:”

android:textSize=”18sp” />

android:id=”@+id/et_cnt”

android:layout_width=”match_parent”

android:layout_height=”wrap_content”

android:layout_alignTop=”@id/tv_cnt”

android:layout_marginLeft=”10dp”

android:layout_marginRight=”20dp”

android:layout_toRightOf=”@id/tv_cnt”

android:hint=”输入账号”

android:padding=”6dp”

android:textSize=”18sp” />

android:inputType=”number”

android:id=”@+id/et_psw”

android:layout_width=”match_parent”

android:layout_height=”wrap_content”

android:layout_alignTop=”@id/tv_psw”

android:layout_alignRight=”@id/et_cnt”

android:layout_marginLeft=”10dp”

android:layout_toRightOf=”@id/tv_psw”

android:hint=”输入密码”

android:padding=”6dp”

android:textSize=”18sp” />

android:onClick=”onClickLogin”

android:id=”@+id/tv_login”

android:layout_width=”match_parent”

android:layout_height=”wrap_content”

android:layout_alignLeft=”@id/tv_cnt”

android:layout_alignRight=”@id/et_cnt”

android:layout_alignParentBottom=”true”

android:layout_marginBottom=”80dp”

android:gravity=”center”

android:padding=”6dp”

android:text=”登录”

android:textSize=”18sp” />

CommonManage.java

package com.phone.rmbpws;

import android.content.Context;

public class CommonManage {

public static ConfigManage cm;

public static void inIt(Context cnt) {

cm = new ConfigManage(cnt);

}

}

ConfigManage.java

package com.phone.rmbpws;

import android.content.Context;

public class ConfigManage {

public static String user = “user”;

public static String psw = “psw”;

private SettingManage setManage;

public ConfigManage(Context cnt) {

setManage = new SettingManage(cnt);

getStaticData();

}

private void getStaticData() {

NormalConfig.USER = setManage.get(user, “admin”);

NormalConfig.PSW = setManage.get(psw, “000”);

}

public boolean save(String user, String psw) {

boolean result = false;

try {

setManage.set(this.user, user);

setManage.set(this.psw, psw);

NormalConfig.USER = user;

NormalConfig.PSW = psw;

result = true;

} catch (Exception e) {

}

return result;

}

}

SettingManage.java

package com.phone.rmbpws;

import android.content.Context;

import android.provider.Settings;

public class SettingManage {

Context cnt;

public SettingManage(Context c) {

cnt = c;

}

public int set(String key, String value) {

int result = 0;

try {

Settings.System.putString(cnt.getContentResolver(), key, value);

result = 1;

} catch (Exception e) {

}

return result;

}

public String get(String key, String defaultValue) {

String result = null;

try {

result = Settings.System.getString(cnt.getContentResolver(), key);

} catch (Exception e) {

e.printStackTrace();

}

return result == null ? defaultValue : result;

}

}

NormalConfig.java

package com.phone.rmbpws;

public class NormalConfig {

public static String USER;

public static String PSW;

public static boolean flag;

}