Android教程 -09 数据的持久化存储
視頻為本篇播客知識點講解,建議采用超清模式觀看, 歡迎點擊訂閱我的優酷
任何一個程序其實說白了就是在不停地和數據打交道,數據持久化就是指將那些內存中的瞬時數據保存到存儲設備中,保證及時手機關機的情況下,這些數據仍然不會丟失。
Android中存儲方式有五種:
SharedPreferences存儲數據
適用范圍:保存少量的數據,且這些數據的格式非常簡單:字符串型、基本類型的值。比如應用程序的各種配置信息(如是否打開音效、是否使用震動效果、小游戲的玩家積分等),解鎖口 令密碼等
核心原理:保存基于XML文件存儲的key-value鍵值對數據,通常用來存儲一些簡單的配置信息。
創建SharedPreferences的方法:
Context getSharedPreferences() Activity getPreferences() PreferenceManager getDefaultSharedPreference()SharedPreferences使用方法:
edit() 開始編輯 apply()和commit() 提交數據 getXXX() 獲取數據 public class MainActivity extends AppCompatActivity {private EditText editText;// sp保存數據SharedPreferences config;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);// 創建SPconfig = getSharedPreferences("config", MODE_PRIVATE);editText = (EditText) findViewById(R.id.editText);// 讀取保存的數據 寫入到editText// 取數據 參數2為 如果找不到"data"key值,默認返回的數據String data=config.getString("data","");editText.setText(data);}/**按鈕點擊事件*/public void saveData(View v) {// 1 獲取輸入的內容String data = editText.getText().toString();// 2獲取到了編輯器SharedPreferences.Editor edit = config.edit();// 3 保存數據 key -valueedit.putString("data",data);//4 保存到文件中//edit.commit(); // 效率慢edit.apply(); // 效率快} }看到上面的代碼,我們就可以做保存密碼的實際案例了:
視頻為本篇播客知識點講解,建議采用超清模式觀看, 歡迎點擊訂閱我的優酷
MD5加密
上面的Demo,我們保存了密碼,一般在實際開發的過程中,保存密碼都不要保存明文, 很容易被別人竊取密碼, 一般都對密碼進行加密
常見的加密方式為MD5加密
視頻為本篇播客知識點講解,建議采用超清模式觀看, 歡迎點擊訂閱我的優酷
public class MD5Utils {/*** 對密碼進行加密* @param password 要加密的密碼* @return 密文*/public static String digest(String password){try {//加密方式為MD5加密MessageDigest digest=MessageDigest.getInstance("MD5");// 把一個byte數組 轉換成加密后byte數組byte[] bytes = digest.digest(password.getBytes());StringBuilder sb=new StringBuilder();for(byte b:bytes){// 去掉負數int c=b&0xff; // 負數轉換成正數 // 加鹽String result=Integer.toHexString(c)+3;// 把10進制的數 轉換成16進制的數 0 255if(result.length()<2){sb.append("0");// 讓十六進制數 全部都是兩位數}sb.append(result);}return sb.toString(); // 把加密后的密文返回回去} catch (NoSuchAlgorithmException e) {e.printStackTrace();// can't reachreturn "";}}MD5加密是不可逆的加密算法, 只能 明文->密文 密文是不能轉換成明文的, 銀行卡密碼都是采用MD5加密的,但是銀行卡密碼都是用md5加密后的密文再進行加密,反復幾十次,基本上保證密碼非常安全。
未完待續…..
轉載于:https://www.cnblogs.com/hehe520/p/6329907.html
總結
以上是生活随笔為你收集整理的Android教程 -09 数据的持久化存储的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 转: jdbc连接数据库需要注意和出错的
- 下一篇: activity切换动画特效