SlideShare a Scribd company logo
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM
LẬP TRÌNH THIẾT BỊ DI ĐỘNG
SE312
SEMINAR SUBJECT:
DATA STORAGE IN ANDROID

Giáo viên hướng dẫn: Cáp Phạm Đình Thăng
Sinh viên thực hiện:
+Nguyễn Văn Sinh 10520130
+ Tôn Ngọc Tẩn 10520133
I.

Giới thiệu về cách lưu trữ dữ liệu trên Android

 Trên android bạn có thể có nhiều cách lựa chọn để lưu

File tùy vào độ bảo mật và yêu cầu tiện dụng, linh hoạt của
bạn. Bạn có thể lựa chọn các cách sau:

• Share Preference
•Lưu trữ bằng tập tin( Internal Storage và Extral
Storage)
•SQLite Database
•Network Conection
1. Lưu trữ dưới dạng Shared Preferences

•Lớp SharedPreferences cung cấp một khuôn khổ chung cho phép bạn
lưu trữ và lấy cặp giá trị dưới dạng key-value.
•Để lấy một đối tượng của SharedPrefenrences bạn sử dụng 1 trong 2
phương thức sau:
•getSharedPreferences();
•getPreferences();
1. Lưu trữ dưới dạng Shared Preferences
Để ghi giá trị vào trong bộ nhớ đệm bạn cần sử dụng một đối tượng
editor:

•Gọi một editor thông qua SharedPreference.Editor.
•Thêm các giá trị vào bộ nhớ đệm bằng các hàm putString(), putInt(),
putBoolean().
Đẩy giá trị vào bộ nhớ bằng hàm editor.comit().

Để lấy giá trị trong bộ nhớ thì chúng ta cần chỉ cần sử dụng đối tượng
SharedPreferences để lấy giá trị thông qua hàm getString(), getInt(),…
1. Lưu trữ dưới dạng Shared Preferences
1. Lưu trữ dưới dạng Shared Preferences

btSave = (Button)findViewById(R.id.btSave);
btSave.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String name = edtName.getEditableText().toString().trim();
String id = edtID.getEditableText().toString().trim();
SharedPreferences editPreference = getSharedPreferences(CONFIGURATION_NAME,
Activity.MODE_PRIVATE);
Editor editor = editPreference.edit();
editor.putString(id, name);
editor.commit();
}
});
1. Lưu trữ dưới dạng Shared Preferences
btLoad = (Button)findViewById(R.id.btLoad);
btLoad.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String id = edtID.getEditableText().toString().trim();
SharedPreferences editPreference =
getSharedPreferences(CONFIGURATION_NAME,Activity.MODE_PRIVATE);
edtName.setText(editPreference.getString(id,CONFIGURATION_NAME));
}
});
2. Lưu và đọc tập tin trong android
•Các lớp tiện ích sử dụng thường nằm trong gói
android.os.Enviroment
•Kiểm tra môi trường các thiết bị về dữ liệu.
•Lấy thông tin từ thiết bị về khả năng lưu trữ

•Để xử lí các thao tác trên file được tốt ta sử dụng các lớp nằm
trong gói java.os:
•File: Thao tác xử lí file.
•FileInputStream: đọc nội dung file.
•FileOutputStream:Ghi nội dung file.
2. Lưu và đọc tập tin trong android

Ghi File:
private void writeFile(String inText) throws IOException
{
FileOutputStream fos = openFileOutput(FILE_NAME, Context.MODE_APPEND);
OutputStreamWriter osw = new OutputStreamWriter(fos);
osw.write(inText + "n");
osw.flush();
osw.close();
fos.close();
}
2. Lưu và đọc tập tin trong android
Đọc File:
private String readFile() throws IOException
{
FileInputStream ios = openFileInput(FILE_NAME);
InputStreamReader isr= new InputStreamReader(ios);
char[] data = new char[1024];
StringBuffer strBuffer = new StringBuffer();
int len = 0;
while((len = isr.read(data)) != -1)
{
strBuffer.append(new String(data, 0, len));
}
isr.close();
ios.close();
return strBuffer.toString();
}
3. Lưu trữ với cơ sở dữ liệu trong Android
Giới thiệu:
•Severless của SQL database engine
•Nhẹ gọn và năng động với dung lượng khoảng 300kb (chiếm
dữ liệu trong kho ứng dụng của thiết bị)
•Đa nền tảng và không cần cấu hình mạnh.
•Không hỗ trợ một số tính năng
•Lưu trữ data/data/package_name/database
3. Lưu trữ với cơ sở dữ liệu trong Android
Đối tượng SQLiteOpenHelper

•Như một đối tượng kết nối đến database
•Khởi tạo và quản lí các phiên bản database
•Cần tham chiếu đến một đối tượng Context
Chúng ta cần xây dựng một lớp kế thưa từ lớp SQLiteOpenHelper
để dễ sử dụng
3. Lưu trữ với cơ sở dữ liệu trong Android
Các phương thức:
•public void onCreate(SQLiteDatabase db): Tạo bảng và khởi tạo các
giá trị cho bảng
•public void onUpgrade(SQLiteDatabase db, int version_old, int
version_new): xóa bảng cũ và tạo lại bảng mới
•public void onOpen(SQLiteDatabase db): mởi một đối tượng
SQLiteDatabase (ít sử dụng)
•close(): đóng đối SQLiteOpenHelper hiện tại

•getWritableDatabase(): trả về đối tượng SQLiteDatabase để đọc và
ghi
•getReadableDatabase(): trả về đối tượng SQLiteDatabase chỉ để đọc
3. Lưu trữ với cơ sở dữ liệu trong Android
Đối tượng thực thi SQLiteDatabase
•Là đối tượng đại diện cho cơ sở dự liệu mà ta tạo ra trong ứng dụng
•Đối tượng trực tiếp sẽ thực thi các câu lệnh SQL.

Phương thức trong SQLiteDatabase:
•execSQL(String sql): thực thi câu lệnh sql thông thường, không
trả về kết quả.
3. Lưu trữ với cơ sở dữ liệu trong Android
Phương thức trong SQLiteDatabase:
•delete(String table, String whereClause, String[] whereArgs):
xóa 1 dòng dữ liệu trong 1 bảng

•rawQuery(String sql, String[] selectionArgs): thực thi một câu
lệnh sql với tham số nếu có, và trả về Cursor
•close(): đóng đối tượng.
3. Lưu trữ với cơ sở dữ liệu trong Android
Đối tượng Cursor
•Là một đối tượng được trả về từ phương thức họ query
•Hành động như con trỏ đến một tập hợp các dữ liệu nằm bên
dưới cơ sơ dữ liệu.
•Quản lí việc kiểm soát các dòng dữ liệu(row) trong tập kết quả
truy vấn cơ sở dữ liệu.
3. Lưu trữ với cơ sở dữ liệu trong Android
Phương thức:
 moveToFirst :chuyển con trỏ tới dòng đầu tiên
 moveToNext : chuyển con trỏ tới dòng tiếp theo.
 moveToPrevious: chuyển con trỏ tới dòng duyệt trước đó.
 getCount :trả về số dòng của kết quả truy vấn.
 getColumnIndexOrThrow: trả về chỉ số của cột xác định
 getColumnName: trả về tên của cột có chỉ số truyền vào
 getColumnNames: trả về mảng tên các cột
 moveToPosition: đưa con trỏ đến dòng xác định.

 getPosition: trả về vị trí con trỏ
II. Sử dụng Content Provider
•

n trong Android
SDK.

•

c nhau trên
android:
•

u.

•

ng content
provider.

•
t.

•

Cursor.
II. Sử dụng Content Provider
Mọi content provider, đều sử dụng chung 1 interface để tìm và trả
về dữ liệu, bao gồm việc thêm, bớt và sửa dữ liệu.
Việc này được thực hiện thông qua các đối tượng ContentResolver
khi gọi getContentResolver():
ContentResolver cr = getContentResolver();
II. Sử dụng Content Provider
Nội dung chuỗi URI:

•A – Tiền tố mặc định của 1 URI, không thay đổi được.
•B – đăng kí provider với hệ điều hành android.
•C – Xác định loại dữ liệu nào cần lấy về
•D – ID chính xác của bản ghi cần yêu cầu.
II. Sử dụng Content Provider
Sử dụng Content Provider có sẵn:

•

ng.
•Tập hợp những ứng dụng Content Provider của Android đã
xây dựng sẵn nằm trong android.provider
•Sử dụng định danh tài nguyên URI để truy xuất
•Đối tượng trả về dạng Cursor
•Để sử dụng các Content Provider có sẵn phải sử dụng usespermission trong AndroidMainfast.xml
II. Sử dụng Content Provider
Xây dựng Content Provider:
•Hiện thực và kế thừa từ một lớp có sẵn là Content Provider
của Android.
•Hiện thực và override tất cả các phương thức:
•onCreate(): khởi tạo provider.
•getType(): Trả về kiểu dữ liệu MIME được đưa ra
trong chuẩn của URI
•Insert(), update(), delete(): thao tác cập nhật nếu cần
thiết.

•Query(): trả về dữ liệu được yêu cầu.
•Cung cấp một URI cho ứng dụng khác truy cập
•Khai báo trong AndroidMainfast.xml.
II. Sử dụng Content Provider
Xây dựng Content Provider:

More Related Content

Viewers also liked

Khóa học lập trình ios
Khóa học lập trình iosKhóa học lập trình ios
Khóa học lập trình ios
Đào tạo Seo
 
Tạo mã độc trên vps
Tạo mã độc trên vpsTạo mã độc trên vps
Tạo mã độc trên vpsHường Tô
 
Bài 7: Toast – Dialog, ListView & Binding
Bài 7: Toast – Dialog, ListView & BindingBài 7: Toast – Dialog, ListView & Binding
Bài 7: Toast – Dialog, ListView & Bindinghoccungdoanhnghiep
 
Lập trình Android cơ bản bằng tiếng Việt
Lập trình Android cơ bản bằng tiếng ViệtLập trình Android cơ bản bằng tiếng Việt
Lập trình Android cơ bản bằng tiếng Việt
laptrinhandroid
 
QUẢN LÍ BỘ NHỚ KHI LẬP TRÌNH APPLE iOS
QUẢN LÍ BỘ NHỚ KHI LẬP TRÌNH APPLE iOSQUẢN LÍ BỘ NHỚ KHI LẬP TRÌNH APPLE iOS
QUẢN LÍ BỘ NHỚ KHI LẬP TRÌNH APPLE iOSwe20
 
Bài 4: Event handle, Action & Intent
Bài 4: Event handle, Action & IntentBài 4: Event handle, Action & Intent
Bài 4: Event handle, Action & Intenthoccungdoanhnghiep
 
Android OS
Android OSAndroid OS
Giao trinh mang may tinh (Toan tap)
Giao trinh mang may tinh (Toan tap)Giao trinh mang may tinh (Toan tap)
Giao trinh mang may tinh (Toan tap)
Justin Hoang
 
Cách tạo mã độc trên kali linux và triển khai trên android ảo
Cách tạo mã độc trên kali linux và triển khai trên android ảoCách tạo mã độc trên kali linux và triển khai trên android ảo
Cách tạo mã độc trên kali linux và triển khai trên android ảothach28
 
Tài liệu Full VOIP
Tài liệu Full VOIPTài liệu Full VOIP
Tài liệu Full VOIP
Thanh Sơn
 
Bao cao-lap-trinh-android-final
Bao cao-lap-trinh-android-finalBao cao-lap-trinh-android-final
Bao cao-lap-trinh-android-final
le dan
 
Hành vi và xu hướng sử dụng Internet tại Việt Nam
Hành vi và xu hướng sử dụng Internet tại Việt NamHành vi và xu hướng sử dụng Internet tại Việt Nam
Hành vi và xu hướng sử dụng Internet tại Việt Nam
we20
 
VoIP-FusionPBX
VoIP-FusionPBXVoIP-FusionPBX
VoIP-FusionPBX
phamvotuanthanh
 
Hướng dẫn tự học Linux
Hướng dẫn tự học LinuxHướng dẫn tự học Linux
Hướng dẫn tự học LinuxNguyễn Duy Nhân
 
Slide thuyet trinh android
Slide thuyet trinh androidSlide thuyet trinh android
Slide thuyet trinh androidkuto92love
 
Hướng dẫn sử dụng hệ điều hành Ubuntu
Hướng dẫn sử dụng hệ điều hành UbuntuHướng dẫn sử dụng hệ điều hành Ubuntu
Hướng dẫn sử dụng hệ điều hành UbuntuQuang Ngoc
 

Viewers also liked (17)

Bài 8: ListView & Binding
Bài 8: ListView & BindingBài 8: ListView & Binding
Bài 8: ListView & Binding
 
Khóa học lập trình ios
Khóa học lập trình iosKhóa học lập trình ios
Khóa học lập trình ios
 
Tạo mã độc trên vps
Tạo mã độc trên vpsTạo mã độc trên vps
Tạo mã độc trên vps
 
Bài 7: Toast – Dialog, ListView & Binding
Bài 7: Toast – Dialog, ListView & BindingBài 7: Toast – Dialog, ListView & Binding
Bài 7: Toast – Dialog, ListView & Binding
 
Lập trình Android cơ bản bằng tiếng Việt
Lập trình Android cơ bản bằng tiếng ViệtLập trình Android cơ bản bằng tiếng Việt
Lập trình Android cơ bản bằng tiếng Việt
 
QUẢN LÍ BỘ NHỚ KHI LẬP TRÌNH APPLE iOS
QUẢN LÍ BỘ NHỚ KHI LẬP TRÌNH APPLE iOSQUẢN LÍ BỘ NHỚ KHI LẬP TRÌNH APPLE iOS
QUẢN LÍ BỘ NHỚ KHI LẬP TRÌNH APPLE iOS
 
Bài 4: Event handle, Action & Intent
Bài 4: Event handle, Action & IntentBài 4: Event handle, Action & Intent
Bài 4: Event handle, Action & Intent
 
Android OS
Android OSAndroid OS
Android OS
 
Giao trinh mang may tinh (Toan tap)
Giao trinh mang may tinh (Toan tap)Giao trinh mang may tinh (Toan tap)
Giao trinh mang may tinh (Toan tap)
 
Cách tạo mã độc trên kali linux và triển khai trên android ảo
Cách tạo mã độc trên kali linux và triển khai trên android ảoCách tạo mã độc trên kali linux và triển khai trên android ảo
Cách tạo mã độc trên kali linux và triển khai trên android ảo
 
Tài liệu Full VOIP
Tài liệu Full VOIPTài liệu Full VOIP
Tài liệu Full VOIP
 
Bao cao-lap-trinh-android-final
Bao cao-lap-trinh-android-finalBao cao-lap-trinh-android-final
Bao cao-lap-trinh-android-final
 
Hành vi và xu hướng sử dụng Internet tại Việt Nam
Hành vi và xu hướng sử dụng Internet tại Việt NamHành vi và xu hướng sử dụng Internet tại Việt Nam
Hành vi và xu hướng sử dụng Internet tại Việt Nam
 
VoIP-FusionPBX
VoIP-FusionPBXVoIP-FusionPBX
VoIP-FusionPBX
 
Hướng dẫn tự học Linux
Hướng dẫn tự học LinuxHướng dẫn tự học Linux
Hướng dẫn tự học Linux
 
Slide thuyet trinh android
Slide thuyet trinh androidSlide thuyet trinh android
Slide thuyet trinh android
 
Hướng dẫn sử dụng hệ điều hành Ubuntu
Hướng dẫn sử dụng hệ điều hành UbuntuHướng dẫn sử dụng hệ điều hành Ubuntu
Hướng dẫn sử dụng hệ điều hành Ubuntu
 

Similar to Data storage Android

Baigiang_bai_tiet3
Baigiang_bai_tiet3Baigiang_bai_tiet3
Baigiang_bai_tiet3thuymtg
 
Linq n hibernate net-tier
Linq n hibernate net-tierLinq n hibernate net-tier
Linq n hibernate net-tierNguyen Tran
 
đề Cương chi tiết
đề Cương chi tiếtđề Cương chi tiết
đề Cương chi tiết
Nguyễn Long
 
Thêm sửa-xóa-combobox - c#
Thêm sửa-xóa-combobox - c#Thêm sửa-xóa-combobox - c#
Thêm sửa-xóa-combobox - c#Văn Dũng
 
Hỏi tình hình bk tiny bktiny-hdsd
Hỏi tình hình bk tiny   bktiny-hdsdHỏi tình hình bk tiny   bktiny-hdsd
Hỏi tình hình bk tiny bktiny-hdsdVu Hung Nguyen
 
Tài liệu Lập trình Zend Framework 2.x
Tài liệu Lập trình Zend Framework 2.xTài liệu Lập trình Zend Framework 2.x
Tài liệu Lập trình Zend Framework 2.x
ZendVN
 
Bài 5: Làm quen với lập trình CSDL ASP.NET - Giáo trình FPT - Có ví dụ kèm theo
Bài 5: Làm quen với lập trình CSDL ASP.NET - Giáo trình FPT - Có ví dụ kèm theoBài 5: Làm quen với lập trình CSDL ASP.NET - Giáo trình FPT - Có ví dụ kèm theo
Bài 5: Làm quen với lập trình CSDL ASP.NET - Giáo trình FPT - Có ví dụ kèm theo
MasterCode.vn
 
Bài 7: Đối tượng Data Source -Đóng gói ứng dụng - Giới thiệu các kĩ thuật lập...
Bài 7: Đối tượng Data Source -Đóng gói ứng dụng - Giới thiệu các kĩ thuật lập...Bài 7: Đối tượng Data Source -Đóng gói ứng dụng - Giới thiệu các kĩ thuật lập...
Bài 7: Đối tượng Data Source -Đóng gói ứng dụng - Giới thiệu các kĩ thuật lập...
MasterCode.vn
 
Oop unit 04 các kỹ thuật xây dựng lớp
Oop unit 04 các kỹ thuật xây dựng lớpOop unit 04 các kỹ thuật xây dựng lớp
Oop unit 04 các kỹ thuật xây dựng lớp
Tráng Hà Viết
 
Drupal framework xanh
Drupal framework xanhDrupal framework xanh
Drupal framework xanhXanh Nguyen
 
1.OOP Introduction (1).pptx
1.OOP Introduction (1).pptx1.OOP Introduction (1).pptx
1.OOP Introduction (1).pptx
Hải Nguyễn Đăng
 
01 chuong1-gioithieuado-140404114504-phpapp01
01 chuong1-gioithieuado-140404114504-phpapp0101 chuong1-gioithieuado-140404114504-phpapp01
01 chuong1-gioithieuado-140404114504-phpapp01
huynhtrong774129
 
Bài 9: Sao lưu và khôi phục hệ thống Domain - Giáo trình FPT
Bài 9: Sao lưu và khôi phục hệ thống Domain - Giáo trình FPTBài 9: Sao lưu và khôi phục hệ thống Domain - Giáo trình FPT
Bài 9: Sao lưu và khôi phục hệ thống Domain - Giáo trình FPT
MasterCode.vn
 
Thuc hanh ado.net_bai_03
Thuc hanh ado.net_bai_03Thuc hanh ado.net_bai_03
Thuc hanh ado.net_bai_03
Thanh Điền
 
Tutoria mvc framework
Tutoria mvc frameworkTutoria mvc framework
Tutoria mvc frameworkXuan Le
 
Bai3 basic servlets_956
Bai3 basic servlets_956Bai3 basic servlets_956
Bai3 basic servlets_956
Ham Chơi
 
Bài 7: Thư viện jQuery và thư viện jQuery UI - Giáo trình FPT
Bài 7: Thư viện jQuery và thư viện jQuery UI - Giáo trình FPTBài 7: Thư viện jQuery và thư viện jQuery UI - Giáo trình FPT
Bài 7: Thư viện jQuery và thư viện jQuery UI - Giáo trình FPT
MasterCode.vn
 
Android report
Android reportAndroid report
Android reportMinh Đệ
 

Similar to Data storage Android (20)

Baigiang_bai_tiet3
Baigiang_bai_tiet3Baigiang_bai_tiet3
Baigiang_bai_tiet3
 
Linq n hibernate net-tier
Linq n hibernate net-tierLinq n hibernate net-tier
Linq n hibernate net-tier
 
đề Cương chi tiết
đề Cương chi tiếtđề Cương chi tiết
đề Cương chi tiết
 
Qt he co so du lieu
Qt he co so du lieuQt he co so du lieu
Qt he co so du lieu
 
Thêm sửa-xóa-combobox - c#
Thêm sửa-xóa-combobox - c#Thêm sửa-xóa-combobox - c#
Thêm sửa-xóa-combobox - c#
 
Hỏi tình hình bk tiny bktiny-hdsd
Hỏi tình hình bk tiny   bktiny-hdsdHỏi tình hình bk tiny   bktiny-hdsd
Hỏi tình hình bk tiny bktiny-hdsd
 
Aspnet 3.5 _02
Aspnet 3.5 _02Aspnet 3.5 _02
Aspnet 3.5 _02
 
Tài liệu Lập trình Zend Framework 2.x
Tài liệu Lập trình Zend Framework 2.xTài liệu Lập trình Zend Framework 2.x
Tài liệu Lập trình Zend Framework 2.x
 
Bài 5: Làm quen với lập trình CSDL ASP.NET - Giáo trình FPT - Có ví dụ kèm theo
Bài 5: Làm quen với lập trình CSDL ASP.NET - Giáo trình FPT - Có ví dụ kèm theoBài 5: Làm quen với lập trình CSDL ASP.NET - Giáo trình FPT - Có ví dụ kèm theo
Bài 5: Làm quen với lập trình CSDL ASP.NET - Giáo trình FPT - Có ví dụ kèm theo
 
Bài 7: Đối tượng Data Source -Đóng gói ứng dụng - Giới thiệu các kĩ thuật lập...
Bài 7: Đối tượng Data Source -Đóng gói ứng dụng - Giới thiệu các kĩ thuật lập...Bài 7: Đối tượng Data Source -Đóng gói ứng dụng - Giới thiệu các kĩ thuật lập...
Bài 7: Đối tượng Data Source -Đóng gói ứng dụng - Giới thiệu các kĩ thuật lập...
 
Oop unit 04 các kỹ thuật xây dựng lớp
Oop unit 04 các kỹ thuật xây dựng lớpOop unit 04 các kỹ thuật xây dựng lớp
Oop unit 04 các kỹ thuật xây dựng lớp
 
Drupal framework xanh
Drupal framework xanhDrupal framework xanh
Drupal framework xanh
 
1.OOP Introduction (1).pptx
1.OOP Introduction (1).pptx1.OOP Introduction (1).pptx
1.OOP Introduction (1).pptx
 
01 chuong1-gioithieuado-140404114504-phpapp01
01 chuong1-gioithieuado-140404114504-phpapp0101 chuong1-gioithieuado-140404114504-phpapp01
01 chuong1-gioithieuado-140404114504-phpapp01
 
Bài 9: Sao lưu và khôi phục hệ thống Domain - Giáo trình FPT
Bài 9: Sao lưu và khôi phục hệ thống Domain - Giáo trình FPTBài 9: Sao lưu và khôi phục hệ thống Domain - Giáo trình FPT
Bài 9: Sao lưu và khôi phục hệ thống Domain - Giáo trình FPT
 
Thuc hanh ado.net_bai_03
Thuc hanh ado.net_bai_03Thuc hanh ado.net_bai_03
Thuc hanh ado.net_bai_03
 
Tutoria mvc framework
Tutoria mvc frameworkTutoria mvc framework
Tutoria mvc framework
 
Bai3 basic servlets_956
Bai3 basic servlets_956Bai3 basic servlets_956
Bai3 basic servlets_956
 
Bài 7: Thư viện jQuery và thư viện jQuery UI - Giáo trình FPT
Bài 7: Thư viện jQuery và thư viện jQuery UI - Giáo trình FPTBài 7: Thư viện jQuery và thư viện jQuery UI - Giáo trình FPT
Bài 7: Thư viện jQuery và thư viện jQuery UI - Giáo trình FPT
 
Android report
Android reportAndroid report
Android report
 

Data storage Android

  • 1. TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM LẬP TRÌNH THIẾT BỊ DI ĐỘNG SE312 SEMINAR SUBJECT: DATA STORAGE IN ANDROID Giáo viên hướng dẫn: Cáp Phạm Đình Thăng Sinh viên thực hiện: +Nguyễn Văn Sinh 10520130 + Tôn Ngọc Tẩn 10520133
  • 2. I. Giới thiệu về cách lưu trữ dữ liệu trên Android  Trên android bạn có thể có nhiều cách lựa chọn để lưu File tùy vào độ bảo mật và yêu cầu tiện dụng, linh hoạt của bạn. Bạn có thể lựa chọn các cách sau: • Share Preference •Lưu trữ bằng tập tin( Internal Storage và Extral Storage) •SQLite Database •Network Conection
  • 3. 1. Lưu trữ dưới dạng Shared Preferences •Lớp SharedPreferences cung cấp một khuôn khổ chung cho phép bạn lưu trữ và lấy cặp giá trị dưới dạng key-value. •Để lấy một đối tượng của SharedPrefenrences bạn sử dụng 1 trong 2 phương thức sau: •getSharedPreferences(); •getPreferences();
  • 4. 1. Lưu trữ dưới dạng Shared Preferences Để ghi giá trị vào trong bộ nhớ đệm bạn cần sử dụng một đối tượng editor: •Gọi một editor thông qua SharedPreference.Editor. •Thêm các giá trị vào bộ nhớ đệm bằng các hàm putString(), putInt(), putBoolean(). Đẩy giá trị vào bộ nhớ bằng hàm editor.comit(). Để lấy giá trị trong bộ nhớ thì chúng ta cần chỉ cần sử dụng đối tượng SharedPreferences để lấy giá trị thông qua hàm getString(), getInt(),…
  • 5. 1. Lưu trữ dưới dạng Shared Preferences
  • 6. 1. Lưu trữ dưới dạng Shared Preferences btSave = (Button)findViewById(R.id.btSave); btSave.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub String name = edtName.getEditableText().toString().trim(); String id = edtID.getEditableText().toString().trim(); SharedPreferences editPreference = getSharedPreferences(CONFIGURATION_NAME, Activity.MODE_PRIVATE); Editor editor = editPreference.edit(); editor.putString(id, name); editor.commit(); } });
  • 7. 1. Lưu trữ dưới dạng Shared Preferences btLoad = (Button)findViewById(R.id.btLoad); btLoad.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub String id = edtID.getEditableText().toString().trim(); SharedPreferences editPreference = getSharedPreferences(CONFIGURATION_NAME,Activity.MODE_PRIVATE); edtName.setText(editPreference.getString(id,CONFIGURATION_NAME)); } });
  • 8. 2. Lưu và đọc tập tin trong android •Các lớp tiện ích sử dụng thường nằm trong gói android.os.Enviroment •Kiểm tra môi trường các thiết bị về dữ liệu. •Lấy thông tin từ thiết bị về khả năng lưu trữ •Để xử lí các thao tác trên file được tốt ta sử dụng các lớp nằm trong gói java.os: •File: Thao tác xử lí file. •FileInputStream: đọc nội dung file. •FileOutputStream:Ghi nội dung file.
  • 9. 2. Lưu và đọc tập tin trong android Ghi File: private void writeFile(String inText) throws IOException { FileOutputStream fos = openFileOutput(FILE_NAME, Context.MODE_APPEND); OutputStreamWriter osw = new OutputStreamWriter(fos); osw.write(inText + "n"); osw.flush(); osw.close(); fos.close(); }
  • 10. 2. Lưu và đọc tập tin trong android Đọc File: private String readFile() throws IOException { FileInputStream ios = openFileInput(FILE_NAME); InputStreamReader isr= new InputStreamReader(ios); char[] data = new char[1024]; StringBuffer strBuffer = new StringBuffer(); int len = 0; while((len = isr.read(data)) != -1) { strBuffer.append(new String(data, 0, len)); } isr.close(); ios.close(); return strBuffer.toString(); }
  • 11. 3. Lưu trữ với cơ sở dữ liệu trong Android Giới thiệu: •Severless của SQL database engine •Nhẹ gọn và năng động với dung lượng khoảng 300kb (chiếm dữ liệu trong kho ứng dụng của thiết bị) •Đa nền tảng và không cần cấu hình mạnh. •Không hỗ trợ một số tính năng •Lưu trữ data/data/package_name/database
  • 12. 3. Lưu trữ với cơ sở dữ liệu trong Android Đối tượng SQLiteOpenHelper •Như một đối tượng kết nối đến database •Khởi tạo và quản lí các phiên bản database •Cần tham chiếu đến một đối tượng Context Chúng ta cần xây dựng một lớp kế thưa từ lớp SQLiteOpenHelper để dễ sử dụng
  • 13. 3. Lưu trữ với cơ sở dữ liệu trong Android Các phương thức: •public void onCreate(SQLiteDatabase db): Tạo bảng và khởi tạo các giá trị cho bảng •public void onUpgrade(SQLiteDatabase db, int version_old, int version_new): xóa bảng cũ và tạo lại bảng mới •public void onOpen(SQLiteDatabase db): mởi một đối tượng SQLiteDatabase (ít sử dụng) •close(): đóng đối SQLiteOpenHelper hiện tại •getWritableDatabase(): trả về đối tượng SQLiteDatabase để đọc và ghi •getReadableDatabase(): trả về đối tượng SQLiteDatabase chỉ để đọc
  • 14. 3. Lưu trữ với cơ sở dữ liệu trong Android Đối tượng thực thi SQLiteDatabase •Là đối tượng đại diện cho cơ sở dự liệu mà ta tạo ra trong ứng dụng •Đối tượng trực tiếp sẽ thực thi các câu lệnh SQL. Phương thức trong SQLiteDatabase: •execSQL(String sql): thực thi câu lệnh sql thông thường, không trả về kết quả.
  • 15. 3. Lưu trữ với cơ sở dữ liệu trong Android Phương thức trong SQLiteDatabase: •delete(String table, String whereClause, String[] whereArgs): xóa 1 dòng dữ liệu trong 1 bảng •rawQuery(String sql, String[] selectionArgs): thực thi một câu lệnh sql với tham số nếu có, và trả về Cursor •close(): đóng đối tượng.
  • 16. 3. Lưu trữ với cơ sở dữ liệu trong Android Đối tượng Cursor •Là một đối tượng được trả về từ phương thức họ query •Hành động như con trỏ đến một tập hợp các dữ liệu nằm bên dưới cơ sơ dữ liệu. •Quản lí việc kiểm soát các dòng dữ liệu(row) trong tập kết quả truy vấn cơ sở dữ liệu.
  • 17. 3. Lưu trữ với cơ sở dữ liệu trong Android Phương thức:  moveToFirst :chuyển con trỏ tới dòng đầu tiên  moveToNext : chuyển con trỏ tới dòng tiếp theo.  moveToPrevious: chuyển con trỏ tới dòng duyệt trước đó.  getCount :trả về số dòng của kết quả truy vấn.  getColumnIndexOrThrow: trả về chỉ số của cột xác định  getColumnName: trả về tên của cột có chỉ số truyền vào  getColumnNames: trả về mảng tên các cột  moveToPosition: đưa con trỏ đến dòng xác định.  getPosition: trả về vị trí con trỏ
  • 18. II. Sử dụng Content Provider • n trong Android SDK. • c nhau trên android: • u. • ng content provider. • t. • Cursor.
  • 19. II. Sử dụng Content Provider Mọi content provider, đều sử dụng chung 1 interface để tìm và trả về dữ liệu, bao gồm việc thêm, bớt và sửa dữ liệu. Việc này được thực hiện thông qua các đối tượng ContentResolver khi gọi getContentResolver(): ContentResolver cr = getContentResolver();
  • 20. II. Sử dụng Content Provider Nội dung chuỗi URI: •A – Tiền tố mặc định của 1 URI, không thay đổi được. •B – đăng kí provider với hệ điều hành android. •C – Xác định loại dữ liệu nào cần lấy về •D – ID chính xác của bản ghi cần yêu cầu.
  • 21. II. Sử dụng Content Provider Sử dụng Content Provider có sẵn: • ng. •Tập hợp những ứng dụng Content Provider của Android đã xây dựng sẵn nằm trong android.provider •Sử dụng định danh tài nguyên URI để truy xuất •Đối tượng trả về dạng Cursor •Để sử dụng các Content Provider có sẵn phải sử dụng usespermission trong AndroidMainfast.xml
  • 22. II. Sử dụng Content Provider Xây dựng Content Provider: •Hiện thực và kế thừa từ một lớp có sẵn là Content Provider của Android. •Hiện thực và override tất cả các phương thức: •onCreate(): khởi tạo provider. •getType(): Trả về kiểu dữ liệu MIME được đưa ra trong chuẩn của URI •Insert(), update(), delete(): thao tác cập nhật nếu cần thiết. •Query(): trả về dữ liệu được yêu cầu. •Cung cấp một URI cho ứng dụng khác truy cập •Khai báo trong AndroidMainfast.xml.
  • 23. II. Sử dụng Content Provider Xây dựng Content Provider: