Android之探索SharedPreferences資料存放區的背後

來源:互聯網
上載者:User

標籤:

前言:

    最近一直在學習ios的資料存放區,當學習到NSUserDefaults的時候讓我回想起了SharedPreferences,今天閑來無事,想著總結一下SharedPreferences的使用。

什麼是SharedPreferences儲存?

      SharedPreferences是基礎key-value(索引值對)來儲存一些輕量資料的儲存方式,特別適用於儲存軟體配置參數。使用SharedPreferences 儲存資料,其背後是用xml檔案存放資料,檔案存放在/data/data/<package name>/shared_prefs。

具體是怎麼使用的?

寫入資料

       SharedPreferences sharedPreferences= getSharedPreferences("test",                Activity.MODE_PRIVATE);        //執行個體化SharedPreferences.Editor對象        SharedPreferences.Editor editor = sharedPreferences.edit();        //用putString的方法儲存資料        editor.putBoolean(USER_ISLOGIN,true);        editor.putString(USER_ID, "123456");        editor.putString(USER_PWD, "pwd123");        //提交當前資料        editor.apply();

讀取資料

SharedPreferences sharedPreferences= getSharedPreferences("test",                Activity.MODE_PRIVATE);        String userId=sharedPreferences.getString(USER_ID,"");        String userPwd=sharedPreferences.getString(USER_PWD,"");        boolean isLogin=sharedPreferences.getBoolean(USER_ISLOGIN,false);        Log.e("","userId---->"+userId);        Log.e("","userPwd---->"+userPwd);        Log.e("","isLogin---->"+isLogin);

重點介紹下

SharedPreferences sharedPreferences= getSharedPreferences("test",                Activity.MODE_PRIVATE);

第一個參數是產生xxx.xml檔案的檔案名稱字,第二個參數是檔案的存取權限以及檔案資料寫入方式。簡單說明一下幾種方式:

Activity.MODE_PRIVATE,//預設操作模式,代表該檔案是私人資料,只能被應用本身訪問,在該模式下,寫入的內容會覆蓋原檔案的內容
Activity.MODE_WORLD_READABLE,//表示當前檔案可以被其他應用讀取,
Activity.MODE_WORLD_WRITEABLE,//表示當前檔案可以被其他應用寫入;
Activity.MODE_APPEND//該模式會檢查檔案是否存在,存在就往檔案追加內容,否則就建立新檔案

可以複合使用例如:
如果希望檔案被其他應用讀和寫,可以傳入:Activity.MODE_WORLD_READABLE+Activity.MODE_WORLD_WRITEABLE  

看下具體寫入檔案的儲存結構:

     看到上面的儲存資料那麼清晰是不是嚇壞了!對!你沒有看錯!儲存在檔案中就是這樣的,純明文儲存沒有一點安全性可言~即使設定了Activity.MODE_PRIVATE許可權在ROOT許可權面前也是不堪一擊的。所以我們在使用SharedPreferences的時候盡量不要儲存一些有關使用者資訊的資料比如本文例子中的userId,userPwd等,如果要儲存那該怎麼補救的呢?我們可以把key md5一下例如MD5Utils.md5(USER_ID),value 值加密一下,可以採用AES加密 附上一個AndroidAES加密文章(http://www.cnblogs.com/whoislcj/p/5473030.html)。

 

Android之探索SharedPreferences資料存放區的背後

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.