Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 37 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
37
Dung lượng
1,95 MB
Nội dung
Mục lục Lịch sử Android Tháng 7/2005, Google mua lại công ty phát triển phần mềm điện thoại Android, chưa cơng bố sử dụng cho mục đích Để trả lời cho câu hỏi đó, tháng 11/2007, sau năm phát triển, Google công bố hệ điều hành điện thoại di động mã nguồn mở Android, với thành lập “Liên minh di động mở” (Open Handset Alliance) bao gồm 65 nhà sản xuất phần cứng điện thoại lớn giới Intel, HTC, China Mobile, T-Mobile, Hình - Các thành viên "Liên minh di động mở" Tứ năm 2007, hệ điều hành Android trải qua nhiều lần cập nhật, với phiên gần Gingerbread 2.3, ngày 06/12/2010 Tính đến tháng 6/2010, có khoảng 70 mẫu điện thoại di động sử dụng hệ điều hành Android, chưa kể thiết bị điện tử khác máy tính bảng (tablet computers), ebook readers, Google TV, Khái niệm Android Android hệ điều hành điện thoại di động mở nguồn mở miễn phí Google phát triển dựa tảng Linux Bất kỳ hãng sản xuất phần cứng tự sử dụng hệ điều hành Android cho thiết bị mình, miễn thiết bị đáp ứng tiêu chuẩn Google đặt (có cảm ứng chạm, GPS, 3G, ) (Xem thêm: Android Compatibility Definition Document) Các nhà sản xuất tự thay đổi phiên Android máy cách tự mà khơng cần phải xin phép hay trả khoản phí phải đảm bảo tính tương thích ngược (backward compatibility) phiên chế riêng Android tảng cho thiết bị di động bao gồm hệ điều hành, midware số ứng dụng chủ đạo Bộ công cụ Android SDK cung cấp công cụ thư viên hàm API cần thiết để phát triển ứng dụng cho tảng Android sử dụng ngôn ngữ lập trình java Những tính mà tảng Android hổ trợ: • Application framework: Cho phép tái sử dụng thay thành phần sẳn có Android • Dalvik virtual macine: Máy ảo java tối ưu hóa cho thiết bị di động • Intergrated browser: Trình duyệt web tích hợp xây dựng dựa WebKit engine • Optimized graphics: Hổ trợ thư viện 2D 3D dự vào đặc tả OpenGL ES 1.0 • SQLite: DBMS dùng để lưu trữ liệu có cấu trúc • Hổ trở định dạng media phổ biến như: MPEG4, H.264, MP3, AAC, ARM, JPG, PNG, GIF • Hổ trợ thoại tảng GSM (Phụ thuộc vài phần cứng thiết bị) • Bluetooth, EDGE, 3G WiFi (Phụ thuộc vài phần cứng thiết bị) • Camera, GPS, la bàn cảm biến (Phụ thuộc vài phần cứng thiết bị) • Bộ cơng cụ phát triển ứng dụng mạnh mẽ Kiến trúc Android Lược đồ sau thể thành phần hệ điều hành Android: Hình - Mơ hình kiến trúc tảng Android Applications Hệ điều hành Android tích hợp sẳn số ứng dụng email client, SMS, lịch điện tử, đồ, trình duyệt web, sổ liên lạc số ứng dụng khác Ngồi tầng tầng chứa ứng dụng phát triển ngôn ngữ Java Application Framwork Tầng hệ điều hành Android cung cấp tảng phát triển ứng dụng mở qua cho phép nhà phát triển ứng dụng có khả tạo ứng dụng vơ sáng tạo phong phú Các nhà phát triển ứng dụng tự sử dụng tính cao cấp thiết bị phần cứng như: thông tin định vị địa lý, khả chạy dịch vụ nền, thiết lập đồng hồ báo thức, thêm notification vào status bar hình thiết bị… Người phát triển ứng dụng phép sử dụng đầy đủ API dùng ứng dụng tích hợp sẳn Android Kiến trúc ứng dụng Android thiết kế nhằm mục đích đơn giản hóa việc tái sử dụng component Qua ứng dụng cơng bố tính mà muốn chia sẻ cho ứng dụng khác (VD: Ứng dụng email có muốn ứng dụng khác sử dụng tính gởi mail nó) Phương pháp tương tự cho phép thành phần thay người sử dụng Tầng bao gồm tập services thành phần sau: • Một tập phong phú mở rộng bao gồm đối tượng View dùng để xây dựng ứng dụng như: list, grid, text box, button chí trình duyệt web nhúng vào ứng dụng • Content Provider: Cho phép ứng dụng truy xuất liệu từ ứng dụng khác chia liệu chúng • Resource Manager: Cung cấp khả truy xuất tài nguyên noncode hình ảnh file layout • Notification Manager: Cung cấp khả hiển thị custom alert status bar • Activity Manager: Giúp quản lý vòng đời ứng dụng Libraries • System C library: thể xây dựng từ BSD thư viện hệ thống C chuẩn (libc), điều chỉnh để tối ưu hóa cho thiết bị chạy Linux • Media libraries: Bộ thư viện hổ trợ trình diễn ghi định dạng âm than hình ảnh phổ biến • Surface manager: Quản lý hiển thị nội dung 2D 3D • LibWebCore: Một web browser engine đại sử dụng trình duyệt Android lần trình duyệt nhúng web view sử dụng ứng dụng • SGL: Engine hổ trợ đồ họa 2D • 3D libraries: Một thể xây dựng dựa APIs OpenGL ES 1.0 Những thư viện sử dụng tăng tốc 3D phần cứng lẫn phần mềm để tối ưu hóa hiển thị 3D • FreeType: Bitmap and vector font rendering • SQLite: Một DBMS nhỏ gọn mạnh mẽ Android Runtime Hệ điều hành Android tích hợp sẳn tập hợp thư viện cốt lõi cung cấp hầu hết chức có sẵn thư viện lõi ngơn ngữ lập trình Java Mọi ứng dụng Android chạy tiến trình riêng với thể máy ảo Dalvik Máy ảo Dalvik thực tế biến thể máy ảo Java sửa đổi, bổ sung công nghệ đặc trưng thiết bị di động Nó xây dựng với mục đích làm cho thiết bị di động chạy nhiều máy ảo cách hiệu Trước thực thi, ứng dụng Android convert thành file thực thi với định dạng nén Dalvik Executable (.dex) Định dạng thiết kế để phù hợp với thiết bị hạn chế nhớ tốc độ xử lý Ngoài máy ảo Dalvik sử dụng nhân Linux để cung cấp tính thread, low-level memory management Linux Kernel Hệ điều hành Android xây dựng nhân Linux 2.6 cho dịch vụ hệ thống cốt lõi như: security, memory management, process management, network stack, driver model Bộ nhân làm nhiệm vụ lớp trung gian kết nối phần cứng thiết bị phần ứng dụng Dưới mô hinh hợp tác máy ảo Dalvik Navite code: Hình - Mơ hình hợp tác máy ảo Dalvik Navite code JNI: Java Native Interface (Tương tự khái niệm Application Programming Interface) Java Native Interface: framework cho phép mã lệnh viết Java chạy máy ảo java gọi gọi ứng dụng viết native code (Ứng dụng viết cho phần cứng cụ thể hệ điều hành cụ thể) thư viện viết C, C++ Assembly Bằng cách sử dụng JNI, Android cho phép ứng dụng chạy máy ảo Dalvik sử dụng phương thức viết ngôn ngữ cấp thấp như: C, C++, Assembly Qua nhà phát triển ứng dụng xây dựng ứng dụng dựa thư viện viết C, C++, Assembly nhằm tăng tốc độ thực thi ứng dụng sử dụng tính mức thấp mà ngơn ngữ Java không hổ trợ Tuy nhiên người phát triển ứng dụng cần phải cân nhắc gia tăng độ phức tạp ứng dụng định sử dụng thư viện Phát triển ứng dụng Android 4.1 Ngơn ngữ lập trình Ngơn ngữ lập trình thức Android Java Mặc dù ứng dụng Android phát triển dựa tảng Java, Android không hỗ J2ME J2SE, hai ngơn ngữ lập trình phổ dụng cho thiết bị di động Dựa máy ảo Java Sun, Google tinh chỉnh phát triển nên máy ảo Dalvik để biên dịch mã Java với tốc độ biên dịch nhanh nhẹ Đến phiên Froyo 2.2, Android hỗ trợ Just-in-time Compiler (JIT) làm tăng tốc độ biên dịch Java lên gấp 2-5 lần so với phiên trước Hình - Biểu đồ so sánh tốc độ máy ảo Java phiên Android (Càng lớn tốt) Bằng cách sử dụng frameworks hãng thứ ba (VD: PhoneGap, Titanium, ), nhà lập trình web phát triển ứng dụng Android cách dễ dàng ngôn ngữ web phổ dụng HTML, CSS, Javascript Tuy nhiên số lượng ứng dụng theo chiều hướng chưa nhiều Ngoài ứng dụng Android sử dụng SQLite để quản lý sở liệu 4.2 Một số lưu ý 4.2.1 Vấn đề phân mảnh phiên Android thị trường: Do Android hệ điều hành mã nguồn mở miễn phí, nhà sản xuất phần cứng sử dụng tùy biến Android để cài đặt thiết bị Điều dẫn đến vấn để phân mảnh (fragmentation) thị trường tồn nhiều mẫu điện thoại Android, mẫu chạy phiên Android khác Đôi phiên Android khác giao diện hay chức năng, nhà sản xuất tự chế thêm vào mã nguồn Android Một ví dụ tiêu biểu giao diện Sense UI HTC Hình - So sánh giao diện nguyên Android giao diện Sense riêng hãng HTC thiết kế Mặt khác, việc cập nhật hệ điều hành phụ thuộc hoàn toàn vào nhà sản xuất, nên sau Google công bố phiên Android , người buộc phải chờ lâu cập nhật Do vấn đề phân mảnh này, thị trường lúc tốn nhiều phiên Android khác nhau, người phát triển ứng dụng Android buộc phải xem xét đến khả ứng dụng viết không chạy đuợc hay thiếu di số chức quan trọng chaỵ máy chạy phiên Android cũ Một ví dụ tiêu biểu ứng dụng thức mạng xã hội Twitter chạy phiên Android 2.1, tức có 1/2 thị trường người dùng điện thoại Android sử dụng ứng dụng Hình - Thống kê số lượng điện thoại sử dụng phiên Android (Nguồn -http://developer.android.com/resources/dashboard/platform-versions.html – T12/2010) 4.2.2 Vấn đề kích thước hình Một lần nữa, thị trường có nhiều nhà sản xuất điện thoại Android, Google yêu cầu tất điện thoại Android phải đáp ứng số tiêu chí chung phần cứng (màn hình cảm ứng, GPS, 3G, ), nhà sản xuất hồn tồn tự định kích cỡ độ phân giải điện thoại Như vậy, nhà phát triển ứng dụng Android phải chuẩn bị trước khả ứng dụng chạy loạt kích cỡ hình lớn nhỏ khácnhau Tuy nhiên, có điều chắn: 100% điện thoại Android sử dụng hình cảm ứng đa điểm, cịn bàn phím vật lý hay cảm ứng quang tùy máy Dưới bảng chứa thơng số kích thước hình thiết bị sử dụng Android tiêu biểu: Hình - Bảng thống kê kiểu hình điện thoại Android (Nguồn: slides thuyết trình giới thiệu Android – Hội thảo Google I/O T6/2010) Là chức cho phép ứng dụng để cung cấp chức cho ứng dụng khác Điều tương ứng với việc gọi Context.bindService(), cho phép long-standing connection tạo để service tương tác với Khi Service tạo ra, việc hệ thống cần làm tạo thành phần gọi hàm onCreate() lệnh callback thích hợp luồng chình Nó phụ thuộc vào Service thi hành hành vi thích hợp nào, chẳng hạn tạo luồng thứ hai để thực tiến trình Vịng đời Service Có lý để service chạy hệ thống Bằng cách gọi phương thức Context.startService() Context.bindService() Nếu người dùng gọi phương thức Context.startService() hệ thống nhận đối tượng service (tạo gọi hàm onCreate() cần thiết) sau lại gọi phương thức onStartCommand(Intent, int ,int) với biến cung cấp client Service tạo chạy có lệnh gọi phương thức Context.stopService() stopSelf() Dù cho service có start lần bị tắt phương thức Context.stopService() phương thức stopSelf() gọi.Service dùng phương thức stopSelf(int) để đảm bảo service không tắt Intent khởi tạo xử lý Hình 12 - Lược đồ vòng đời Service Dựa theo hình trên, service bắt đầu phương thức startService() service dùng để thực tác vụ ngầm nền, service bắt đầu phương thức bindService() service dùng để cung cấp chức cho chương trình khác BroadcastReceiver Là lớp nhận intents gửi sendBroadcast() Có thể tạo instance cho lớp cách: hoặcvới Context.registerReceiver() hay thơng qua tag file AndroidManifest.xml Có hai lớp broadcast quan trọng cần xét đến: Broadcasts bình thường (Normal broadcasts): Được gửi context.sendBroadcast tới receivers hoàn tồn khơng theo trật tự nào, dẫn tới đơi tồn lúc nhiều receivers khác Tuy nhanh trao đổi kết nhận cac1 receivers với Broadcasts có thứ tự (Ordered broadcasts) - Được gửi Context.sendOrderedBroadcast() tới receiver Như vậy, kết nhận receiver trở thành input receiver khác, hay dừng việc broadcast tới receiver khác Trật tự chạy receivers định thuộc tính android:priority intent-filter tương ứng 4.4.4 Content Provider Là nơi lưu trữ cung cấp cách truy cập liệu ứng dụng tạo nên Đây cách mà ứng dụng chia sẻ liệu Android cung cấp sẵn content providers cho số kiểu liệu thông dụng âm thanh, video, thông tin sổ điện thoại, (Xem thêm gói android.provider) Người lập trình tự tạo class (subclass) Content Provider để lưu trữ kiểu liệu riêng Cách thức hoạt động Content Provider: Mọi content provider, khác cách thức lưu trữ liệu, sử dụng chung interface để tìm trả liệu, bao gồm việc thêm, bớt sửa liệu Việc thực thông qua đối tượng ContentResolver gọi getContentResolver() ContentResolver cr = getContentResolver(); Mơ hình liệu Content providers sử dụng liệu dạng table đơn giản, hàng record cột liệu kiểu định Hình 13 - Ví dụ mơ hình liệu thơng tin số điện thoại máy Mỗi record có trường “_ID” độc để liên kết với bảng khác URI (Uniform Resource Identifier) URI dãy ký tự string dùng để: Mở trang web trình duyệt, bắt đầu với “http://” Chỉ tới file tài nguyên có sẵn máy (VD: file video, danh sách contacts, ), bắt đầu với "content://" Dựa vào hình 13 sau: Hình 14 – Các thành phần URI A – Tiền tố mặc định URI, không thay đổi B – Xác định content provider Đối với ứng dụng hãng thứ 3, tên đầy đủ lớp C – Xác định loại liệu cần lấy Nếu nguồn cung cấp cho lấy loại để trống, có nhiều loại phân phần (land/bus, land/train, sea/ship,…) D – ID record, cần lấy record Khi tạo content provider, Android tự động tạo constant cho URI provider để đảm bảo code hiệu dễ cập nhật sau Constant - CONTENT_URI xác định cho ContentProvider phải liên kết với bảng nguồn cung cấp Ví dụ: URI cho bảng liên kết số điện thoại với tên người là: android.provider.Contacts.Phones.CONTENT_URI URI cho bảng liên kết hình đại diện với tên người là: android.provider.Contacts.Photos.CONTENT_URI Tìm kiếm Content Provider Để băt đầu tìm kiếm (query) content provider, trước người lập trình cần có tay yếu tố sau: URI xác định provider Tên trường (field) liệu lấy Các kiểu liệu trường ID, cần tìm record xác định Để bắt đầu tìm kiếm, người lập trình dùng phương thức: ContentResolver.query() Activity.managedQuery() Cả phương thức có chung arguments trả đối tượng trỏ (Cursor) public final Cursor query (Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) public final Cursor managedQuery (Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) Đầu tiên, dù với query() hay managedQuery() ta cần cung cấp URI bên cung cấp, tức CONTENT_URI Chú ý muốn giới hạn tìm kiếm URI nhất, ta thêm ID vào cuốiURI sau: “content:// /23”, với 23 ID ta cần tím kiếm Hoặc ta dùng hàm hỗ trợ ContentUris.withAppended() Uri.withAppendedPath() Ví dụ: Uri myPerson ContentUris.withAppendedId(People.CONTENT_URI,23); = Các biến truyền vào khác query() managedQuery() là: projection - Tên cột liệu cần trả Nếu NULL trả tất cột selection - Tên hàng liệu trả Sử dụng với WHERE giống truy vấn SQL Nếu NULL trả tất hàng selectionArgs - quy định giá trị trả về,VD: selectionArgs = {value_as_string} ép kiểu liệu trả dạng string sortOrder - Xác định thứ tự xếp hàng Sử dụng với ORDER BY giống truy vấn SQL Nếu NULL khơng theo thứ tự Tạo Content provider Để tạo content provider, cần phải thoả mãn điều kiện: Thiết lập hệ thống lưu trữ liệu nào: file hay sử dụng sở liệu SQLite Extend lớp ContentProvider Khai báo content provider file AndroidManifest.xml Để định nghĩa lớp ContentProvider, ta cần thực phương thức trừu tượng (abstract) khai báo lớp ContentProvider: query() insert() update() delete() getType() onCreate() Phương thức query() phải trả đối tượng Cursor Mặc dù Cursor interface, Android cung cấp sẵn số đối tượng Cursor tạo sẵn Ví dụ; SQLiteCursor dành cho sở liệu SQLite, MatrixCursor cho liệu không lưu SQLite Android khuyên nên gọi ContentResover.notifyChange() để báo cho listeners biếtdữ liệu hiệu chỉnh Ngoài người lập trình nên thêm vài thao tác sau để giúp việc truy xuất lớp hiệu hơn: Định nghĩa Uri dạng public static final, với tên CONTENT_URI (như trình bày trên) Định nghĩa tên cột mà content provider trả Thôg thường tên cột sở liệu SQLite mà chúng đại diện Tiếp theo, người lập trình nên định nghĩa public static String constants để cac1 ứng dụng khác ghi rõ tên cột hướng dẫn khác cột interger tên "_id" (với constant _ID) cần định nghia để sử dụng cần lấy record độc Trong SQLite, trường _ID nên có kiểu sau:INTEGER PRIMARY KEY AUTOINCREMENT, thành phần AUTOINCREMENT khơng thiết phải có, nên đưa vào để đảm bảo ID độc nhất, tránh trường hợp xóa row ID row cấp ID giống hệ row vừa bị xóa Các ghi giúp người khác ghi đọc biết đọc liệu Nếu content provider xử lý kiểu liệu hoàn toàn mới, người lập trình cần định nghĩ kiểu MIME để trả thể ContentProvider.getType() Để khai báo Content Provider mới, trước cần phải khai báo tag file AndroidManifest.xml Hình 15 - Khai báo tag file AndroidManifest.xml Trong đó, thuộc tính name tên đầy đủ lớp ContentProvider, authorities phần xác định provider URI "content:" 4.4.5 View View thành phần để xây dựng giao diện người dùng cho ứng dụng Android View lớp widgets (widgets dùng để tạo nút nhấn, text fields, ) Lớp ViewGroup lớp layouts, coi hộp vơ hình chứa nhiều Views hay ViewGroups khác xác định thuộc tính layout Sử dụng Views: Trong cửa sổ hình, views xếp theo thứ tự hay nhiều file XML nằm res/layout Khi tạo chứa views, người lập trình cần xác định giá trị sau: Các thuộc tính - Chẳng hạn định xem TextView hiển thị chữ Mỗi view có thuộc tính phương thức khác Mức độ tập trung (Focus) - Thay đổi tập trung tuỳ theo input người dùng với requestFocus() Listeners - Định listeners để có hành động kiện xảy với setOnFocusChangeListener(View.OnFocusChangeListener) Nhìn thấy hay khơng - với setVisibility(int) Hình 16 - Ví dụ Views Một số Views thường dùng: TextView: Hiển thị khung text cho phép người dùng thay đổi ImageView: Hiển thị hình ảnh xác định từ file tài nguyên hay qua content provider Button: Hiển thị nút nhấn Checkbox: Hiển thị nút nhấn với trạng thái khác KeyboardView: Hiển thị bàn phím ảo để nhập liệu WebView: Hiển thị trang web Webkit Một số ViewGroups thường dùng: LinearLayout: Các view xếp theo hàng hay cột Hình 17 - LinearLayout AbsoluteLayout: Cho phép xác định xác vị trí view Hình 18 - AbsoluteLayout TableLayout: Sắp xếp view theo cột hàng Mỗi hàng có nhiều view, mà view tạo nên ô Hình 19 - TableLayout RelativeLayout: Cho phép xác định vị trí view theo mối quan hệ chúng (VD; canh trái, phải, ) Hình 20 - RelativeLayout FrameLayout: Là placeholder cho phép đặt lên view View đặt lên FrameLayout canh lề trái phía Hình 21 - FrameLayout ScrollView: Là FrameLayout đặc biệt cho phép trượt (scroll) danh sách dài kích thước hình Hình 22 - ScrollView 4.4.6 Lưu trữ liệu Android có nhiều cách để lưu trữ liệu Một cách đơn giản sử dụng hệ thống preferences Android cho phép activity ứng dụng lưu giữ preferences theo dạng cặp từ khóa giá trị, nằm lần gọi activity Mục đích để lưu trữ thơng tin cấu hình chi tiết mà người dùng hiệu chỉnh, chẳng hạn trang web người dùng xem gần Bạn lưu trữ thơng tin preferences từ khóa có kiểu String kiểu liệu nguyên thủy (boolean, String…) Preferences dùng cho activity độc lập hay chia sẻ activity ứng dụng Và tương lai, Preference chia sẻ ứng dụng với Bên cạnh việc sử dụng Preferences để lưu trữ liệu cịn cách đơn giản khác để thực công việc lưu trữ liệu sử dụng tập tin Android cung cấp mơ hình để truy cập tập tin: Một cho tập tin đóng gói sẵn cho ứng dụng Một dành cho tập tin tạo thiết bị thực thi ứng dụng Đối với liệu tĩnh, chẳng hạn danh sách từ dùng để kiểm tra tả Cách đơn giản để thực điều lưu vào tập tin, tập tin phải đặt thư mục res/raw project Nhờ vậy, tập tin đặt tập tin APK ứng dụng nguồn tài nguên Ngoài phương pháp trên, Android hỗ trợ hệ quản trị sở liệu quan hệ SQLite để quản lý liệu lớn có quan hệ phức tạp Nhờ vậy, người lập trình thực quản lý liệu cách dễ dàng, linh hoạt Hệ quản trị sở liệu SQLite SQLite Khi lập trình di động hay thiết bị có dung lượng nhớ hạn chế, người ta thường dùng SQLite SQLite hệ quản trị sở liệu nhúng thực từ chuẩn SQL-92 Giống với tên nó, SQLite chiếm dung lượng nhỏ (khoảng 275KB) nên việc truy xuất liệu nhanh chóng, khơng chiếm dụng q nhiều tài ngun hệ thống Do SQLIte phần mềm mã nguồn mở nên khơng bị giới hạn tác quyền Vì lý mà SQLite nhiều hãng sử dụng (Adobe, Apple, Google, Sun, Symbian) dự án mã nguồn mở (Mozila, PHP, Python) Đặc biệt, Android, SQLite thích hợp để tạo sở liệu cho ứng dụng Android Từ SQLite có giao diện SQL sử dụng dễ dàng thông dụng Sqlite nhẹ so với hệ sở liệu khác không khác biệt nhiều SQLite sử dụng ngôn ngữ truy vấn SQL (SELECT, INSERT, DELETE…), thích hợp cho ứng dụng điện thoại, đặc biệt ứng dụng hệ điều hành Android Android Runtime chứa SQLite mà khơng cần phải chia nhỏ SQLite có hệ thống câulệnhSQL đầy đủ với triggers, transactions Các câu truy vấn hệ sở liệu khác SQLite thu nhỏ so với hệ CSDL khác, khơng thể có đầy đủ điện thoại di động bạn SQLite lựa chọn thích hợp dành cho ứng dụng hệ điều hành Android Ngồi dung lượng lưu trữ nhỏ gọn, SQLite cịn cho phép sử dụng Unicode, kiểu liệu không cài đặt số phiên Android Đặc trưng SQLite SQLite thực từ tiêu chuẩn SQL-92 ngơn ngữ SQL cịn chứa số khiếm khuyết Tuy SQLite hỗ trợ triggers bạn viết trigger cho view Hoặc SQLite không hỗ trợ lệnh ALTER TABLE, đó, bạn khơng thể thực chỉnh sửa xóa cột bảng SQLite khơng hỗ trợ ràng buộc khóa ngoại , transactions lồng nhau, phép kết right outer join, full outer join SQLite sử dụng kiểu liệu khác biệt so với hệ quản trị sở liệu tương ứng Bạn insert liệu kiểu string vào cột kiểu integer mà không gặp phải lỗi Vài tiến trình luồng truy cập tới sở liệu Việc đọc liệu chạy song song, cịn việc ghi liệu khơng phép chạy đồng thời Ngoài khiếm khuyết Sqlite cung cấp cho người dùng gần đầy đủ chưng mà hệ sở liệu cần có tạo database; tạo bảng; thêm, xóa, sửa liệu SQLite Manager SQLite Manager công cụ hiệu hỗ trợ cho việc xây dựng sở liệu cho ứng dụng Android SQLite Manager, add-on miễn phí Firefox (https://addons.mozilla.org/en-US/firefox/addon/5817) Hình 23 - Màn hình làm việc addon SQlite Manager Sử dụng SQLite Manager để quản lí sở liệu Android Tạo database : Vào menu Database/ New Database Tạo bảng mới: Tại Database vừa tạo, nhấp chuột phải chọn Create table Thiết lập giá trị thích hợp Xử lý liệu: Chọn bảng cần nhập chọn tab Browse & Search Nút Add: Thêm liệu Nút Duplicate: Nhân đôi liệu Nút Edit: Chỉnh sửa liệu Nút Delete: xóa liệu Thực thi câu truy vấn: Chọn tab Execute SQL, Nhập câu lệnh SQL vào khung Enter SQL chọn Run SQL Kết trình bày khung phía Nếu câu SQL có lỗi hiển thị Last Error Tùy chỉnh Database: Chọn tab DB Settings thiết lập giá trị mong muốn Import Database vào ứng dụng Android Sau tạo CSDL SQLite Manager,chọn menu File/Export Database Lưu file sql vừa tạo vào máy Để import database vào ứng dụng, người lập trình cần : Build and Run chương trình Android Khởi động máy ảo xong, chọn nút DDMS góc bên phải chương trình Eclipse để xem cấu trúc file Vào thư mục chứa database có /data/data/your.app.package/databases/your-db-name dường dẫn sau : Sau chọn nút import chọn tập tin database Lưu ý : Phải đổi tên file từ *.sql thành * trước import vào chương trình