編輯:關於Android編程
作為一個完成的應用程序,數據存儲操作是必不可少的,因此,Android系統提供了四種數據儲存方式,分別是:SharedPreference、File、SQLite以及Content Provider。由於Android系統中,數據基本都是私有的,都是存放於data/data/程序包名目錄下,所有要實現數據共享,正確方式使用Content Provider。
SQLite:SQLite是一個輕量級的數據庫,支持基本SQL語法,是常被采用的一種數據存儲方式。Android為此數據庫提供了一個名為SQLiteDatebase的類型,封裝了一些操作數據庫的API。
SharedPreference:除SQLite數據庫外,另一種常用的數據存儲方式,其本質就是一個xml文件,常用於存儲較簡單的參數設置。
File:即常說的文件(I/O)存儲方式,常用存儲大量數量的數據,但是缺點是更新數據將是一件困難的事情。
ContentProvider:Android系統中能實現所有應用程序共享的一種數據存儲方式,由於數據通常在各應用間的互相私密的,所有此存儲方式較少使用,但是其又是必不可少的一種存儲方式。例如音頻、視頻、圖片和通訊錄,一般都可以采用此種方式進程存儲。每個ContentProvider都會對外提供一個公共的URI(包裝成Uri對象),如果應用程序有數據需要共享,就需要使用ContentProvider為這些數據定義一個URI,然後其他應用程序就通過Content Provider傳入這個URI來對數據進行操作。
SharedPreference:是一種輕型的數據存儲方式,它的本質是基於XML文件存儲key-value鍵值對數據,通常用來保存一些簡單的配置信息。其存儲位置在data/data/程序包名/shared_prefs目錄下。SharedPreference對象本身只能獲取數據而不支持存儲和修改,存儲修改是通過Editor對象實現。
SharedPreference對象與SQLite數據庫相比,免去了創建數據庫、創建表、寫SQL語句等諸多操作,相對而言更加方便、簡潔。但是SharedPreference也有其自身缺陷,比如其職能存儲boolean、int、float、long和String五種簡單的數據類型,比如其無法進行條件查詢等。所有無論SharedPreference的數據存儲操作是如何簡單,它也只能是存儲方式的一種補充,而無法完全替代如SQLite數據這樣的其他數據存儲方式。
SharedPreference存儲方式操作步驟:
一、根據Context獲取SharedPreference對象
調用Context對象的getSharedPreference()方法,該方法獲得的SharedPreference對象可以被同一個應用程序下的其他組件共享調用Activity對象的getPreference()方法,該方法獲得的SharedPreference對象只能在該Activity中使用 二、利用SharedPreference對象中的edit()方法獲得Editor對象 三、通過Editor對象存儲key-value鍵值對數據 四、通過Editor對象的commit()方法提交數據
例子:——通過點擊TextView,來獲取SharedPreference保存的數據
AndroidManifest.xml——沒有做任何修改,創建工程默認
activity_main.xml
MainActivity.java
package com.example.sharedpreferencedemo;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import android.app.Activity;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
public class MainActivity extends Activity {
private TextView textView;
private SharedPreferences sharedPreferences;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
/*1、獲取SharedPreference對象,此參數一hello指定了保存的文件名稱*/
sharedPreferences = getSharedPreferences(hello, MODE_PRIVATE);
/*2、存入數據,可以存入多種類型數據,數據通過key鍵值標記對應數據*/
Editor editor = sharedPreferences.edit();
editor.putString(string, hello world.);
editor.putInt(int, 10);
editor.putBoolean(boolean, true);
/*3、提交數據*/
editor.commit();
textView = (TextView)this.findViewById(R.id.textView);
textView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
//如果鍵值不存在,則返回第二個參數的數據
String string = sharedPreferences.getString(string, )
+
+sharedPreferences.getInt(int, 0)
+
+sharedPreferences.getBoolean(boolean, false);
textView.setText(string);
textView.setTextSize(20);
}
});
}
}
下載程序:
當運行此程序後,數據就保存在/data/data/com.example.sharedpreferencedemo/shared_prefs/hello.xml文件中。進入Window->Show View->Other->Androd->File Explorer
下查看文件

點擊File Explorer對話框中的右上角第一個按鈕從收據將hello.xml文件導出到電腦中,可查看其內容

內容如下:

程序測試:——點擊TextView,獲取SharedPreference保存的數據

Android之AnimationDrawable簡單模擬動態圖
Drawable animation可以加載Drawable資源實現幀動畫。AnimationDrawable是實現Drawable animations的基本類。&nb
工作中遇到的Android內存優化問題(1)
最近工作中,遇到了幾個內存優化的問題,1.應用退出後,此應用進程保持了不少內存得不到釋放,用工具強制gc也無法釋放。2.應用進入某些頁面瞬間請求分配內存過大。此兩個問題對
Android中 多線程下載原理
計算每個線程的下載起始終止位置公式如下文件讀寫方式4中類型工程源碼目錄package cn.itcast.download;import java.io.File;imp
Android progressBar 自定義
在drawable文件夾中建立如下旋轉動畫文件 android:drawable=@drawable/loading1 android:p