ỨNG DỤNG PHẦN MỀM TRÊN MOBILE
Trang 1Mục lục
1 MÁY ẢO DALVIK 3
2 KIẾN TRÚC CỦA ANDROID 3
3 CÁC THÀNH PHẦN TRONG MỘT ANDROID PROJECT 4
3.1 AndroidManifest.xml 4
3.2 File R.java 4
4 CHU KỲ ỨNG DỤNG ANDROID 4
4.1 Activity Stack 4
4.2 Các trạng thái của chu kỳ sống 5
5 CÁC THÀNH PHẦN GIAO DIỆN TRONG ANDROID 6
5.1 View 6
5.2 View group 6
5.3 Widget 7
6 TELEPHONY 7
7 SQLITE 7
8 WEB SERVICE VÀ SOAP 7
CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 8
1 ĐẶC TẢ BÀI TOÁN 8
2 ĐẶC TẢ CHỨC NĂNG 8
2.1 Upload phone book 8
2.2 Revert phone book 9
2.3 Send contact 10
2.4 Reveive contact 11
2.5 Export contact tới SD Card 12
2.6 Import contact từ SD Card 13
2.7 Restore account 13
3 SƠ ĐỒ CLASS 14
3.1 Class UI 14
Trang 23.2 Class Webservice 14
3.3 Class Contact 15
3.4 Class ContactProvider 15
4 CƠ SỞ DỮ LIỆU 16
1 MỘT VÀI HÌNH ẢNH ỨNG DỤNG 19
2 DANH SÁCH CÁC LIÊN KẾT MÀN HÌNH MỨC 1&2 21
3 ĐÁNH GIÁ ỨNG DỤNG 21
4 HƯỚNG PHÁT TRIỂN TRONG TƯƠNG LAI 22
5 KẾT LUẬN 22
Trang 3CƠ SỞ LÝ THUYẾT
1 MÁY ẢO DALVIK
Dalvik là máy ảo giúp các ứng dụng java chạy được trên các thiết bịđộng Android Nó chạy các ứng dụng đã được chuyển đổi thành một filethực thi Dalvik (dex) Định dạng phù hợp cho các hệ thống mà thường bịhạn chế về bộ nhớ và tốc độ xử lý
2 KIẾN TRÚC CỦA ANDROID
Hình 2.1 Cấu trúc stack hệ thống Android
Android dựa trên Linux phiên bản 2.6 cho hệ thống dịch vụ cốt lõi nhưsecurity, memory management, process management, network stack, anddriver model Kernel Linux hoạt động như một lớp trừu tượng hóa giữaphần cứng và phần còn lại của phần mềm stack
Trang 43 CÁC THÀNH PHẦN TRONG MỘT ANDROID PROJECT
3.1 AndroidManifest.xml
Khai báo các Activity, các permission,… nhằm giúp hệ thống có thểgiựa vào đó mà có thể quản lý được các thành phần và quản lý ứng dụngmột cách an toàn, tối ưu
3.2 File R.java
Là một file quản lý tài nguyên trong một ứng dụng Android File nàyđược quản lý bởi IDE và coder thường không cần phải thao tác trên filenày
4 CHU KỲ ỨNG DỤNG ANDROID
4.1 Activity Stack
Bên trong hệ thống các activity được quản lý như một activity stack.Khi một Activity mới được start, nó được đặt ở đỉnh của stack và trởthành activity đang chạy activity trước sẽ ở bên dưới activity mới và sẽkhông thấy trong suốt quá trình activity mới tồn tại
Nếu người dùng nhấn nút Back thì activity kết tiếp của stack sẽ di duyểnlên và trở thành active
Hình 2.2 Stack Activity
Trang 54.2 Các trạng thái của chu kỳ sống
Hình 2.3 Chu kỳ sống của Activity
Một Activity chủ yếu có 3 chu kỳ chính sau:
Active hoặc running: Khi Activity là được chạy trên màn hình.Activity này tập trung vào những thao tác của người dùng trên ứngdụng
Paused: Activity là được tạm dừng (paused) khi mất focus nhưngngười dùng vẫn trông thấy Có nghĩa là một Activity mới ở trên nónhưng không bao phủ đầy màn hình Một Activity tạm dừng là cònsống nhưng có thể bị kết thúc bởi hệ thống trong trường hợp thiếuvùng nhớ
Stopped: Nếu nó hoàn toàn bao phủ bởi Activity khác Nó vẫn còntrạng thái và thông tin thành viên trong nó Người dùng không thấy
nó và thường bị loại bỏ trong trường hợp hệ thống cần vùng nhớcho tác vụ khác
Trang 65 CÁC THÀNH PHẦN GIAO DIỆN TRONG ANDROID
5.1 View
Trong một ứng dụng Android, giao diện người dùng được xây dựng từcác đối tượng View và ViewGroup Có nhiều kiểu View và ViewGroup.Mỗi một kiểu là một hậu duệ của class View và tất cả các kiểu đó đượcgọi là các Widget
Tất cả mọi widget đều có chung các thuộc tính cơ bản như là cách trìnhbày vị trí, background, kích thước, lề,… Tất cả những thuộc tính chungnày được thể hiện hết ở trong đối tượng View
Trong Android Platform, các screen luôn được bố trí theo một kiểu cấutrúc phân cấp như hình dưới Một screen là một tập hợp các Layout và cácwidget được bố trí có thứ tự Để thể hiện một screen thì trong hàmonCreate của mỗi Activity cần phải được gọi một hàm làsetContentView(R.layout.main); hàm này sẽ load giao diện từ file XMLlên để phân tích thành mã bytecode
Hình 2.4 Cách thức bố trí giao diện trong ứng dụng Android
5.2 View group
ViewGroup là các đối tượng giao diện giúp bố trí các đối tượng giaodiện khác trong nó theo một cách sắp xếp nào đó
Trang 75.3 Widget
Là khái niệm chỉ chung cho tất cả các đối tượng giao diện được sửdụng trong hệ thống Android Các đối tượng đó bao gồm: Button,ImageView, ImageButton, CheckBox,…
6 TELEPHONY
Telephony là một trong 4 thành phần chính của một hệ thống Android
Nó cho phép người lập trình có thể lấy các thông tin của hệ thống nhưthông tin SIM, thông tin thiết bị, thông tin mạng,… Ngoài ra, chúng tacũng có thể cài đặt các thông số cho thiết bị nếu các thông số đó có thểthay đổi được Tất cả những điều đó được quản lý bởi một classTelephonyManager trong Android
7 SQLITE
SQLite là một dạng CSDL tương tự như Mysql, PostgreSQL Đặc
điểm của SQLite là gọn, nhẹ, đơn giản Vì vậy, nó được ứng dụng nhiều
trong các thiết bị có kích thước bộ nhớ nhỏ
8 WEB SERVICE VÀ SOAP
Webservice là một dịch vụ cung cấp cơ chế triệu gọi các đối tượng từ
xa thông qua giao thức HTTP cùng với cơ chế truyền tải định dạng đốitượng theo công nghệ XML Chính vì sử dụng giao thức HTTP của Webnên giờ đây các lời gọi trở nên đơn giản và thông qua được các rào cản vềtường lửa Để đảm bảo điều này, một giao thức mới là SOAP (SimpleObject Access Protocol) ra đời để hỗ trợ cho Web services SOAP đượcđịnh nghĩa dựa trên giao thức chuẩn HTTP, SOAP cho phép dữ liệuchuyển đi bằng HTTP và định dạng theo chuẩn XML Các lời gọi hàmtham số truyền hàm, dữ liệu trả về từ hàm, tất cả đều được chuyển sangdạng XML và có thể dễ dàng xử lý bởi tất cả các ngôn ngữ Một thế mạnhkhác đó là nếu các đối tượng phân tán xây dựng trên mô hình Webservices sẽ có thể triệu gọi lẫn nhau, bất chấp đối tượng đó được viết trênngôn ngữ Java của Sun hay NET của Microsoft Hiện tại,
SOAP được coi là một sự thay đổi lớn kể từ khi COM, RMI, CORBA
ra đời
Trang 8CHƯƠNG 1: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
1 ĐẶC TẢ BÀI TOÁN
Xây dựng ứng dụng Phone Book Safe Manager dùng để quản lýcontact trong điện thoại Android Cho phép người dùng lưu trữ phonebook của họ lên tài khoản trên server và có thể lấy lại ở một máyAndroid khác hoặc một lúc khác Đồng thời cho phép gửi và nhậncontact, thông báo contact mới, lưu trữ contact vào thẻ nhớ, và nhiềuchức năng tiện ích khác…
2 ĐẶC TẢ CHỨC NĂNG
2.1 Upload phone book
Hình 2.5 Biểu đồ tuần tự chức năng upload phone book
Bước 1,2 : Đọc tất cả các Contact trong phone book và lưu vào một listBước 3: Chuyển đổi Contact list thành XML
Bước 4, 5: Triệu gọi hàm BackupConatct trên Webservice và truyền vàocác tham số là các thông tin upload, UserID, hàm này sẽ thực hiện chèn
dữ liệu vào CSDL tương ứng với tài khoản của người dùng
Trang 9Bước 6, 7: Trả về kết quả là đã upload thành công hay không.
2.2 Revert phone book
Hình 2.6 Biểu đồ tuần tự chức năng khôi phục phone book
Bước 1,2 : Đọc tất cả các Contact trong phone book và lưu vào một listBước 3: Chuyển đổi Contact list thành XML
Bước 4, 5: Triệu gọi hàm BackupConatct trên Webservice và truyền vàocác tham số là các thông tin upload, UserID, hàm này sẽ thực hiện chèn
dữ liệu vào CSDL tương ứng với tài khoản của người dùng
Bước 6, 7: Trả về kết quả là đã upload thành công hay không
Trang 102.3 Send contact
Hình 2.7 Biểu đồ tuần tự chức năng send contact
Bước 1,2,3,4: Đọc các thông tin đầy đủ của các Contact đã được chọn vàtrả về một Contact list
Bước 5,6: Convert Contact list thành nội dung XML và triệu gọi từ xahàm SendContact từ web service Đồng thời truyền vào các tham số là nộidung cần gửi và các thông tin cần thiết như người gửi, người nhận, ngàygửi,…
Bước 7: Add nội dung gửi và các thông tin gửi vào một table Từ tablenày tất cả các người dùng sẽ truy cập vào và lấy các dữ liệu của họ
Bước 8,9: Trả về một thông điệp thông báo cho người dùng biết là đã gửiđược hay chưa cũng như các trường hợp lỗi
Trang 112.4 Reveive contact
Hình 2.8 Quá trình nhận Contact mới
Bước 1: Người dùng chọn contact cần add trên màn hình chứa danh sáchcác contact mới ID contact được chọn sẽ được gửi lên webservice yêucầu lấy về thông tin đầy đủ của contact đó
Bước 2: Thông tin đầy của của contact được trả về
Bước 3: Kiểm tra xem contact đã tồn tại trong phone book hay chưa
Bước 4: Thêm vào phone book nếu như chưa tồn tại Ngược lại thì khôngthêm vào
Trang 122.5 Export contact tới SD Card
Hình 2.9 Quá trình xuất Contact ra SD Card
Bước 1: Gửi các contact ID đã được chọn bởi người dùng cho đối tượngContactProvider yêu cầu đọc những contact với ID đó lên
Bước 2, 3, 4: Đọc đầy đủ thông tin các contact đã chọn và trả về một danhsách
Bước 5: Chuyển danh sách các contact vừa được trả về sang nội dungXML
Bước 6, 7: Thực hiện ghi vào thẻ nhớ và thông báo cho người dùng biết
Trang 132.6 Import contact từ SD Card
Hình 2.10 Quá trình nhận Contact từ SD Card
Bước 1, 2: Đọc file từ SD Card
Bước 3, 4: Convert nội dung XML đã được đọc từ file thành Contact list
và ghi các Contact đó vào phone book trong điện thoại Android
2.7 Restore account
Hình 2.11 Quá trình khôi phục tài khoản
Bước 1: Người dùng nhập địa chỉ email dự phòng đã được nhập trong quátrình tạo tài khoản trước đây
Trang 14Bước 2: Kiểm tra biểu thức email có chính xác hay không Bước nàynhằm mục đích giảm thời gian kiểm tra trên server nếu như email khôngchính xác.
Bước 3: Triệu gọi từ xa hàm RestoreAccount trên web service
Bước 4: Thực hiện truy vấn để lấy về thông tin tài khoản trong CSDL.Bước 5, 6: Trả thông tin tài khoản về Client
Bước 7: Client sẽ thực hiện gửi thông tin tài khoản vào email dự phòngcủa người dùng Người dùng sẽ truy cập email dự phòng của họ để xemlại thông tin tài khoản và có thể đăng nhập lại để đổi thông tin tài khoản
3 SƠ ĐỒ CLASS
3.1 Class UI
Hình 2.12 Sơ đồ class mối quan hệ giữa các Acitivity
- Activity là một class thuộc hệ thống Android
- MyActivity kế thừa từ class Activity để cụ thể hoá thêm một sốphương thức mà tất cả các sub class đều cần đến
3.2 Class Webservice
Class Webservice được dùng để kết nối và trao đổi dữ liệu với webservice
Trang 15Hình 2.13 3.3 Class Contact
Trang 164 CƠ SỞ DỮ LIỆU
Hình 2.16 Biểu đồ CSDL trên web server
Bảng ACCOUNTS:
Được dùng để lưu trữ thông tin tài khoản người dùng
Thuộc tính của các field như sau:
Field Name Type
USERNAME nvarchar(50)PASSWORD nvarchar(50)EMAIL nvarchar(100)USERID bigint, primary key
Bảng 2.1 Thuộc tính các trường thuộc bảng Account
Trang 17TIME nvarchar(30)
VERSION_ID bigint, primary key
Bảng 2.2 Thuộc tính các trường thuộc bảng BACKUP_CONTACT
Bảng MYUSERNAME
Được dùng để lưu trữ tên tài khoản của những người bạn có sử dụng hệthống phone book safe Cũng giống như khi chat yahoo hoặc skype thìđều có một contact list nhằm giúp bạn dễ dàng quản lý và tìm kiếm khicần
Trang 18DEMO ỨNG DỤNG
1 MỘT VÀI HÌNH ẢNH ỨNG DỤNG
Hình 2.17 Màn hình Login Hình 2.18 Màn hình Phone book
Hình 2.19 Add & Edit Hình 2.20 Options menu
Trang 19Hình 2.21 Ghi chú trước khi
upload phone book
Hình 2.22 Tự động báo Contact
mới
Trang 202 DANH SÁCH CÁC LIÊN KẾT MÀN HÌNH MỨC 1&2
Export Contact to SDCard 100%
Import Contact from SDCard 100%
màn hình view contact
màn hình login
màn hình danh sách các contact
dialog nhập chú
thích để upload
phone book
màn hình danh sách phonebook
đã upload
màn hình quản
lý danh sách tài khoản dialog change
password
màn hình danh sách tài khoản ứng dụng
dialog tạo tài
khoản mới
dialog khôi phục tài khoản
dialog thông báo contact mới
màn hình nhận contact mới
progressdialog export contact
màn hình edit contact
panel tìm kiếm
contact
Trang 21Receive Contact 100%
Create new account 100%
Friends Android manager 100%
Các issue và bug chưa giải quyết
Chưa upload được hình ảnh lên server (issue)
ListView cuộn chưa smooth (issue)
4 HƯỚNG PHÁT TRIỂN TRONG TƯƠNG LAI
Chức năng gửi và nhận tin nhắn thông qua wifi
Chức năng này sẽ được phát triển trong tương lai nhằm mục đích giúpnhững người thường xuyên có kết nối wifi có thể gửi tin nhắn mà khôngmất tiền Tin nhắn đến sẽ được thông báo bằng dialog ngay trên màn hìnhdesktop và kể cả khi dang sử dụng ứng dụng khác
Chức năng gửi thư thoại thông qua wifi
Chức năng này sẽ tận dụng chức năng thu âm được trang bị trong cácmáy Android Dữ liệu sẽ được đóng gói và truyền lên tài khoản ngườinhận
Chức năng huỷ dữ liệu
Khi bị mất điện thoại thì điều mà người dùng lo lắng nhất chính lànhững dữ liệu cá nhân trong đó Chức năng này sẽ tự động huỷ các dữ liệuđược chỉ định sẵn trong thẻ nhớ hoặc bộ nhớ máy khi nhận được yêu cầuthông qua tin nhắn hoặc wifi Ngoài ra người dùng còn có thể thiết lập cơchế huỷ dữ liệu tự động khi không được thực hiện một sự kiện nào đótrong một khoảng thời gian nào đó
5 KẾT LUẬN
Sau khi thực hiện xong project này em đã nắm bắt được qui trình làmmột dự án phần mềm trên mobile nói chung và Android nói riêng đồngthời hiểu thêm được nhiều kiến thức về Android và các công nghệ liênquan như là XML, XStream, Web service và SOAP,…