xây dựng ứng dụng đóng học phí dựa trên điện thoại thông minh - Pdf 13

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
──────── * ───────
ĐỒ ÁN
TỐT NGHIỆP ĐẠI HỌC
NGÀNH CÔNG NGHỆ THÔNG TIN
XÂY DỰNG ỨNG DỤNG ĐÓNG HỌC PHÍ
DỰA TRÊN NỀN ANDROID
Sinh viên thực hiện : Lê Thiên Sơn
Lớp cnpm – K51
Giáo viên hướng dẫn: Ths Đỗ Văn Uy
HÀ NỘI 05-2011
PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
1. Thông tin về sinh viên
Họ và tên sinh viên: Lê Thiên Sơn.
Điện thoại liên lạc 01656093689 Email:
Lớp: Công nghệ phần mềm B Hệ đào tạo: Chính quy
Đồ án tốt nghiệp được thực hiện tại: : Bộ môn Công nghệ phần mềm, Viện CNTT &
Truyền thông, Đại học Bách Khoa Hà Nội
Thời gian làm ĐATN: Từ ngày 15/ 01/2011 đến 27 /05/2011
2. Mục đích nội dung của ĐATN
Tìm hiểu hệ điều hành Android và xây dụng ứng dụng đóng học phí qua điện thoại di
động.
3. Các nhiệm vụ cụ thể của ĐATN
- Tìm hiểu hệ điều hành Android
- Xây dựng ứng dụng đóng học phí qua điện thoại di động
- Bảo mật hệ thống
4. Lời cam đoan của sinh viên:
Tôi Lê Thiên Sơn cam kết ĐATN là công trình nghiên cứu của bản thân tôi dưới sự hướng
dẫn của Ths Đỗ Văn Uy.
Các kết quả nêu trong ĐATN là trung thực, không phải là sao chép toàn văn của bất kỳ

• Tools for developing applications in Android
Part 2: Paying tuition problem and its specification
• Defining paying tuition problem
• Describing the business of paying tuition
• Funtionalitiy and non-funtionalitiy specifications
Part 3: Develop paying tuition system
• Analysizing this system
• Designing this system
• Coding this system
• Testing this system
DANH MỤC CÁC TỪ VIẾT TẮT
STT Viết tắt/thuật ngữ Giải nghĩa
1 CNTT Công nghệ thông tin
2 ITuition Hệ thống đóng học phí qua điện thoại di động
3 Use case Trường hợp sử dụng/ca sử dụng
4 CSDL Cơ sở dữ liệu
5 Module Một bộ phận của chương trình
5 User Người dùng trong hệ thống
DANH MỤC CÁC HÌNH
DANH MỤC CÁC BẢNG
LỜI NÓI ĐẦU
Ngày nay, cùng với sự phát triển mạnh mẽ của công nghệ thông tin, thế
giới đã chứng kiến rất nhiều thành tựu to lớn, các cuộc cách mạng trong nhiều
lĩnh vực mà nhân tố quan trọng trong đó chính là việc ứng dụng công nghệ thông
tin. Song song với các phần mềm dành cho doanh nghiệp, các phần mềm dành
cho điện thoại di động cũng được phát triển một cách mạnh mẽ. Nhu cầu của con
người đối với các thiết bị di động cũng không còn giới hạn trong việc nghe gọi và
nhắn tin như trước, mà vươn cao hơn tới các tiện ích của các dịch vụ. Xuất phát từ
nhu cầu đó, hệ thống đóng học phí qua điện thoại –Ituition được ra đời. Hệ thống
cung cấp các dịch vụ như: đóng học phí, kiểm tra học phí, lịch sử học phí dễ dàng

(MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)
- Điện thoại GSM (phụ thuộc phần cứng)
- Bluetooth, EDGE, 3G, và WiFi (tùy thuộc phần cứng)
- Camera, GPS, la bàn, và gia tốc (tùy thuộc phần cứng)
- Môi trường phát triển đa dạng gồm: 1 bộ mô phỏng, công cụ gỡ lỗi, plugin
cho Eclipse IDE…
1.3 Kiến trúc Android
Sơ đồ dưới đây cho thấy các thành phần chính của hệ điều hành Android.
Các thành phần này được mô tả chi tiết trong các mục sau (d,e,f,g,h,i).
Hình :Kiến trúc Android
1.4 Các ứng dụng trên Android
Các ứng dụng cơ bản bao gồm: email, nhắn tin SMS, lịch, bản đồ, trình
duyệt, liên lạc, Các ứng dụng đều được viết bằng ngôn ngữ Java.
1.5 Framwork ứng dụng
Bằng cách cung cấp một nền tảng phát triển mở, Android cung cấp cho
các nhà phát triển khả năng xây dựng các ứng dụng cực kỳ phong phú và sáng
tạo. Nhà phát triển được tự do tận dụng lợi thế của phần cứng, truy cập thông
tin về địa điểm, chạy các dịch vụ trên background, báo thức, …
Nhà phát triển có thể truy cập vào các API cùng một Framework sử dụng
bởi các ứng dụng cơ bản. Kiến trúc của ứng dụng được thiết kế để đơn giản hóa
việc sử dụng lại các thành phần; bất kỳ ứng dụng nào cũng có thể sử dụng lại
chức năng của một ứng dụng khác (nếu cho phép). Cơ chế này cho phép các
thành phần tương tự sẽ được sử dụng lại.
Về cơ bản, tất cả các ứng dụng là một tập các dịch vụ và hệ thống, bao
gồm:
- Views: Một tập phong phú các đối tượng view, có thể mở rộng, dùng để
xây dựng ứng dụng, bao gồm danh sách, mạng lưới, các text box, button, và trình
duyệt web nhúng
- Content Providers: cho phép ứng dụng truy cập vào dữ liệu của các ứng
dụng khác hoặc chia sẻ dữ liệu của chính nó.

Mỗi thiết bị có thể chạy nhiều máy ảo tại một thời điểm. Máy ảo Dalvik thực thi
các file trong định dạng .dex (được tối ưu hóa cho bộ nhớ tối thiểu). Các lớp ban
đầu được biên soạn bởi trình biên dịch ngôn ngữ Java khi thực thi được chuyển
đổi thành các định dạng .dex ( bởi công cụ “dx”).
Máy ảo Dalvik dựa trên nền hạt nhân Linux, hỗ trợ các chức năng cơ bản
như quản lí luồng và bộ nhớ mức thấp.
1.8 Nhân Linux của Android
Android dựa trên nền Linux phiên bản 2.6, cung cấp các dịch vụ cơ bản cho
hệ thống như bảo mật, quản lý bộ nhớ, quản lý tiến trình, network stack, và mô
hình điều khiển. Hạt nhân cũng hoạt động như một lớp trừu tượng giữa phần
cứng và phần mềm.
2. Framework xây dựng ứng dụng trên Android
2.1 Các thành phần của một ứng dụng
Một đăc trưng trọng tâm của Android là mỗi ứng dụng có thể sử dụng lại
các thành phần của các ứng dụng khác (nếu cho phép). Để được như vậy, hệ
thống phải khởi tạo một tiến trình bất cứ khi nào ứng dụng cần đến, đồng thời
khởi tạo các đối tượng Java cho phần đó. Vì vậy, không giống như ứng dụng trên
hầu hết các hệ thống khác, ứng dụng Android không có điểm vào duy nhất cho
ứng dụng (không có hàm main ()). Thay vào đó, ứng dụng có các thành phần mà
hệ thống có thể tạo ra và thực thi khi cần thiết.
Có bốn thành phần của một ứng dụng:
2.1.1 Activities:
Mỗi activity tạo ra một giao diện trực quan tương tác với người dùng. Các
activity có thể thực thi cùng nhau để tạo một giao diện người dùng cố kết, nhưng
các activity này độc lập với nhau. Mỗi activity là một lớp con của lớp cơ sở
Activity.
Một ứng dụng có thể gồm một hay nhiều activity. Các activity là gì, số lượng
bao nhiêu phụ thuộc vào việc thiết kế ứng dụng. Thông thường, activity đầu tiên
tạo ra cho người dùng là khi ứng dụng được khởi chạy. Có thể bắt đầu activity kế
tiếp từ activity hiện tại.

chương trình receivers được tích hợp trong mã nguồn hệ thống - ví dụ, thông báo
các múi giờ đã thay đổi, pin thấp, hình ảnh đã được chụp, hoặc để người sử dụng
thay đổi tuỳ chọn ngôn ngữ. Ứng dụng cũng có thể khởi tạo trình receivers - ví
dụ, báo cho các ứng dụng khác biết rằng một số dữ liệu đã được tải về cho thiết
bị và sẵn có cho họ sử dụng.
Mỗi ứng dụng có số lượng thành phần receivers tùy ý (đáp ứng các thông báo
quan trọng). Lớp receiver là mở rộng của lớp cơ sở BroadcastReceiver.
Thành phần receiver không có giao diện với người dùng. Tuy vậy, thành phần
này có thể bắt đầu một activity để đáp ứng thông tin mà nó nhận được, hoặc có
thể sử dụng NotificationManager để cảnh báo người sử dụng. Các thông báo gây
sự chú ý của người dùng bằng nhiều cách khác nhau - nhấp nháy đèn nền, rung
thiết bị, tạo một âm thanh, vv. Và thường đặt một biểu tượng trên thanh trạng
thái, người dùng có thể mở để nhận thông báo.
2.1.4 Content providers
Thành phần Content providers tạo một bộ dữ liệu của ứng dụng sẵn có
cho các ứng dụng khác. Dữ liệu có thể lưu trữ trong hệ thống tệp, cơ sở dữ liệu
SQLite, Lớp content provider là mở rộng của lớp cơ sở ContentProvider, thực
thi tập các phương thức chuẩn, để các ứng dụng khác có thể lấy, lưu trữ dữ liệu
theo cách riếng. Tuy vậy, các ứng dụng không gọi các phương thức đó trực tiếp.
Nó sử dụng đối tượng ContentResolver để gọi. Đối tượng ContentResolver có thể
giao tiếp với bất kỳ lớp content provider nào, nó cùng với lớp Provider thực thi
quản lý bất kỳ giao tiếp nào bên trong tiến trình nào nó tham gia.
Bất cứ khi nào có yêu cầu cần được xử lý bởi một thành phần đặc biệt,
Android đảm bảo tiến trình ứng dụng của thành phần đó đang thực thi (hoặc
khởi tạo nó nếu cần thiết), và các đối tượng thích hợp của thành phần đó là sẵn
có (hoặc tạo ra đối tượng nếu cần thiết).
Kích hoạt các thành phần: intents
Các thành phần content provider được kích hoạt khi nhận yêu cầu từ
ContentResolver. Ba thành phần khác - activity, service và Broadcast receivers -
được kích hoạt bởi các thông điệp không đồng bộ intents. Mỗi intent là một đối

Các thành phần cũng có thể được tắt bởi hệ thống khi không còn được sử
dụng hoặc để lấy bộ nhớ cho nhiều thành phần khác đang hoạt động.
Các tập tin manifest :
Các ứng dụng khai báo các thành phần của nó trong tập tin manifest đặt
trong gói Android. Các file. apk chứa code, các file và tài nguyên của ứng dụng.
Tập tin manifest là một cấu trúc file XML có tên AndroidManifest.xml trong mọi
ứng dụng.
Nhiệm vụ chính của file manifest là để khai báo thành phần ứng dụng
của Android. Một hoạt động có thể được khai báo như sau:
<?xml version="1.0" encoding="utf-8"?>
<manifest . . . >
<application . . . >
<activity android:name="com.example.project.FreneticActivity"
android:icon="@drawable/small_pic.png"
android:label="@string/freneticLabel"
. . . >
</activity>
. . .
</application>
</manifest>
Thuộc tính “name” của <activity> chỉ định lớp con thực thi hoạt động
Thành phần <service> khai báo cho các service, các yếu tố <receiver> cho
Broadcast receivers, và <provider> yếu tố cho content provider.
Bộ lọc Intent:
Bộ lọc Intent của một thành phần cho Android biết các loại intents mà
thành phần đó có khả năng xử lý. Chúng được khai báo trong tập tin manifest. Ví
dụ sau thêm hai bộ lọc vào hoạt động:
<?xml version="1.0" encoding="utf-8"?>
<manifest . . . >
<application . . . >

FLAG_ACTIVITY_CLEAR_TOP
FLAG_ACTIVITY_RESET_TASK_IF_NEEDED
FLAG_ACTIVITY_SINGLE_TOP
Thuộc tính <activity> :
taskAffinity
launchMode
allowTaskReparenting
clearTaskOnLaunch
alwaysRetainTaskState
finishOnTaskLaunch
2.3 Luồng và tiến trình.
Khi cần chạy thành phần đầu tiên của một ứng dụng, Android khởi tạo
một tiến trình Linux cho nó với một luồng đơn thực thi. Theo mặc định, tất cả các
thành phần của ứng dụng chạy trên luồng và tiến trình đó.
Tiến trình:
Tiến trình được kiểm soát bởi tập tin manifest. Các thành phần:
<activity>, <service>, <receiver>, và <provider> đều có một thuộc tính process chỉ
định tiến trình phù hợp. Thuộc tính này được thiết lập để mỗi thành phần chạy
trong tiến trình riêng, chia sẻ tiến trình, hay chạy các thành phần của các ứng
dụng khác nhau trong cùng một tiến trình. <application> có thuộc tính process,
để thiết lập giá trị mặc định áp dụng cho tất cả các thành phần.
Tất cả các thành phần được tạo ra trong luồng chính của tiến trình chỉ
định. Các thành phần không nên thực thi các hoạt động kéo dài hoặc ngăn chặn
khi được gọi bởi hệ thống. Có thể sinh các luồng riêng biệt cho các hoạt động kéo
dài.
Android có thể quyết định tắt đi một tiến trình tại một số điểm, khi dung lượng
bộ nhớ thấp và yêu cầu của tiến trình khác phục vụ ngay lập tức. Thành phần
ứng dụng đang chạy trong tiến trình đó sẽ bị hủy. Tiến trình được khởi tạo lại
cho các thành phần khi có yêu cầu.
Luồng:

Mọi activity phải thực hiện onCreate () để khởi tạo đối tượng đầu
tiên,thực hiện onPause () để thay đổi dữ liệu và chặn tương tác với người dùng.
7 phương thức trên định nghĩa toàn bộ vòng đời của một activity
Sơ đồ minh họa vòng đời của activity
Hình :Vòng đời của Activity
Trong đó phương thức :
- onCreate(): Được gọi là khi activity tạo ra lần đầu tiên. Phương pháp này
được truyền vào một đối tượng Bundle có chứa trạng thái trước đó của activity.
Luôn theo sau bởi onStart().
- onRestart (): Được gọi sau khi activity đã dừng lại (stopped), để bắt đầu
lại.
Luôn theo sau bởi onStart ()
- onStart (): Được gọi ngay trước khi activity trở nên rõ ràng cho người
dùng.
Theo sau bởi onResume() hoặc onStop()
- onResume(): Được gọi ngay trước khi bắt đầu activity tương tác với
người sử dụng
Luôn theo sau bởi onPause ().
- onPause(): Được gọi khi hệ thống chuẩn bị bắt đầu khôi phục activity
khác. Phương thức này thường được dùng để xác nhận những thay đổi chưa
được lưu vào dữ liệu ổn định, dừng hình ảnh động Các activity tiếp theo sẽ
không được tiếp tục cho đến khi nó quay lại.
Theo sau bởi onResume() nếu trả về activity trước đó, hoặc onStop () nếu nó ẩn
với người dùng.
- onStop(): Được gọi khi activity không còn nhìn thấy được. Điều này xảy
ra bởi nó đang bị huỷ, hay vì activity khác đã được tiếp tục và bao phủ nó.
Theo sau bởi onRestart() hoặc onDestroy ()
- onDestroy(): Được gọi trước khi activity bị hủy. Đây là lời gọi cuối cùng
với một activity. Nó có thể được gọi vì activity đã hoàn thành (finish()) hoặc do
hệ thống tạm thời hủy đối tượng của activity để tiết kiệm không gian.

Tiến trình với receiver đang hoạt động sẽ không bị hủy.
Vòng đời của tiến trình:
Hệ thống Android sẽ duy trì một tiến trình ứng dụng càng lâu càng tốt, và
loại bỏ các tiến trình cũ khi bộ nhớ ở mức thấp. Để xác định lưu giữ, hay hủy một
tiến trình, Android thực hiện phân cấp các tiến trình theo tầm quan trọng dựa
trên các thành phần đang chạy trong nó và trạng thái của các thành phần. Đầu
tiên là các tiến trình có tầm quan trọng thấp nhất, tiếp đó các mức quan trọng
tăng dần. Có năm mức trong hệ thống. Danh sách sau trình bày các tiến trình
theo thứ tự mức quan trọng:
Foreground process (tiến trình tiền cảnh) yêu cầu cho những gì người
dùng hiện tại đang làm. Các điều kiện :
- Đang chạy một activity mà người dùng đang tương tác
- Có một service liên kết với activity mà người dùng đang tương tác.
- Có một đối tượng service gọi lại phương thức (onCreate(), onStart(),
onDestroy ().
- Có một đối tượng BroadcastReceiver gọi phương thức onReceive().
Visible process ( tiến trình có thể nhìn thấy): Một tiến trình có thể nhìn
thấy thỏa mãn các điều kiện sau:
- Có một activity trước đó, vẫn còn hiển thị cho người sử dụng (onPause()).
- Có một service lien kết với một activity nhìn thấy được.
Service process (tiến trình dịch vụ): chạy một service bắt đầu với phương
thức startService() và không thuộc một trong hai loại trên.
Background process ( tiến trình nền): mang một activity không hiện hiển
thị cho người dùng (onStop()). Các tiến trình này không có tác động trực tiếp đến
người dùng, và có thể bị hủy bất cứ lúc nào có yêu cầu lấy lại bộ nhớ. Có rất nhiều
tiến trình chạy nền, chúng được giữ trong một danh sách LRU.
Empty process ( tiến trình rỗng): không giữ thành phần ứng dụng nào
đang hoạt động. Hệ thống thường hủy các tiến trình này để cân đối tài nguyên
tổng thể của hệ thống giữa vùng nhớ tiến trình và cùng nhớ hạt nhân cơ bản.
3. Công cụ phát triển

một giao diện bên trong tiến trình (interprocess)
sqlite3 : Cho phép truy cập vào các tập tin dữ liệu SQLite - được tạo ra và
sử dụng bởi các ứng dụng Android.
Traceview: Tạo ra các views phân tích đồ họa của dữ liệu trace log có thể
tạo ra từ các ứng dụng Android.
mksdcard: Tạo một đĩa ảnh có thể sử dụng với bộ mô phỏng, mô phỏng sự
hiện diện của một thẻ lưu trữ ngoài (chẳng hạn thẻ SD).
Dx: Cho phép ghi đè bytecode .class lên bytecode Android (chứa trong
file .dex).
UI/Application Exerciser Monkey: Chương trình chạy trên bộ mô phỏng
hay thiết bị thật, tạo ra các dòng giả ngẫu nhiên của các sự kiện như người dùng
nhấp chuột, chạm vào, … kiểm tra các ứng dụng đang phát triển, một cách ngẫu
nhiên nhưng vẫn lặp lại.
Android: Đoạn mã cho phép quản lý AVDs và tạo ra file buid Ant, có thể
dùng để biên dịch các ứng dụng Android.
Zipalign: Một công cụ tối ưu hóa file .apk quan trọng. Công cụ này đảm
bảo tất cả các dữ liệu không nén bắt đầu với một liên kết cụ thể liên quan đến
phần đầu của file, thường dùng để chỉnh các tập tin .apk sau khi chúng được
đánh dấu
CHƯƠNG 2: BÀI TOÁN ĐÓNG HỌC PHÍ QUA ĐIỆN
THOẠI DI ĐỘNG DỰA TRÊN NỀN ANDROID I-TUITION
1 Phát biểu bài toán
1.1 Đặt vấn đề
- Thực trạng đóng học phí tại trường ĐHBK Hà Nội: Đối với sinh viên học
theo hình thức niên chế, thông tin học phí sẽ được thông báo ở giữa kỳ.
Việc đóng học phí thì có rất nhiều trở ngại và tốn thời gian, công việc được
thực hiện một cách thủ công. Mỗi lần sinh viên đóng học phí thì nhân viên
phòng đào tạo phải rà soát lại trong sổ sau đó viết biên lai thu nhận tiền
bằng tay. Ngoài ra thông thường sinh viên sẽ tập trung vào các ngày cuối
để đóng học phí. Điều này làm cho công việc của phòng đào tạo quá tải,

Xử lý thông tin sau đóng học phí: Sau khi thu học phí ngân hang sẽ gửi
thông tin đóng học phí cho trường. Trường sẽ căn cứ vào kết quả này để xử lý
học tập tiếp theo.
2. Đặc tả yêu cầu phần mềm
2.1 Đặc tả chức năng
Chương trình yêu cầu phải có đầy đủ các chức năng sau:
- Chức năng đăng ký (Register)
Thuộc
tính
Mô tả
Tổng
quát
Trạng thái: proposed Ưu tiên: Low
Stereotype: << Functional>> Độ khó : Medium
Phạm vi: Public
Chức năng này cho phép người dung đăng ký một tài khoản
trong hệ thống
Nội dung
Hình : Đặc tả chức năng đăng ký
- Chức năng đăng nhập (Login)
Thuộ
c tính
Mô tả
Tổng quát Trạng thái: proposed
Ưu tiên: Medium
type: << Functional>>
Độ khó : Medium
Phạm vi: Public
Chức năng này cho phép người dùng đăng
nhập vào hệ thống để thực hiện các dịch vụ


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status