Tải bản đầy đủ (.docx) (31 trang)

lập trình ứng dụng di động 123

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (327.72 KB, 31 trang )

MỤC LỤC
LỜI NÓI ĐẦU

1

I. ĐẶT VẤN ĐỀ

4

1.1. Hiện trạng và mục tiêu khảo sát

4

1.2. Phương án giải quyết cụ thể

5
6

II. CƠ SỞ LÍ THUYẾT

III.

IV.

2.1. Android

6

2.2. Delving với máy ảo Dalvik

8



2.3. Các thành phần trong một Android Project

9

2.4. Các thành phần cơ bản trong ứng dụng android

11

2.5. SQLite

17

XÁC LẬP DỰ ÁN

18

3.1. Lí do chọn đề tài

18

3.2.

19

Xác định nhiệm vụ chính của đề tài

3.3. Hình thành các ý tưởng

20


3.4. Đánh giá các ý tưởng và ra quyết định lựa chọn ý tưởng

20

3.5. Phân tích ý tưởng đã chọn

21

THIẾT KẾ, TRIỂN KHAI CHƯƠNG TRÌNH

23

4.1. Thiết kế

23

4.2. Triển khai

24

4.3. Vận hành thử nghiệm

29

V. KẾT LUẬN

31

TÀI LIỆU THAM KHẢO


32

1


I.
1.1.

ĐẶT VẤN ĐỀ
Hiện trạng và mục tiêu khảo sát

-Trong thời đại kinh tế xã hội hiện nay, thông tin liên lạc đã trở thành nhu
cầu không thể thiếu đối với các hoạt động của con người như giao tiếp kinh
doanh , bạn bè và quan hệ xã hội ... Và một loại phương tiện thông tin liên
lạc mà chúng ta khơng thể khơng nói đến đó là điện thoại. Nó đã trở thành
phương tiện thông tin liên lạc phổ biến và trở thành một phần không thể
thiếu của con người.
-Thế mạnh của điện thoại chính là giúp truyền đạt thơng tin rất nhanh và
khơng bị giới hạn về địa hình và khoảng cách giao tiếp, rất nhiều công
việc , vấn đề cần giải quyết không cần phải giải quyết trực tiếp mà có thể
được thực hiện gián tiếp thơng qua điện thoại.
-Thực tế là mỗi người đều có rất nhiều bạn bè và các mối quan hệ trong
kinh doanh, trong hoạt động xã hội, …Đối với những người làm ở các cơ
quan lớn thì số lượng mối quan hệ càng nhiều thì họ càng phải lưu trữ
nhiều thơng tin về các mối quan hệ đó như số điện thoại, địa chỉ email, địa
chỉ cơ quan, địa chỉ nhà, thông tin cá nhân…Với khối lượng thông tin
khổng lồ như thế, việc xây dựng danh bạ điện thoại là một giải pháp tối ưu
và đã được áp dụng phổ biến. Trong danh bạ điện thoại người ta thường lưu
các thông tin như ta đã nói ở trên và có thể cịn nhiều thông tin khác nữa để

liên hệ dễ dàng và thuận tiện trong công việc…
-Trước đây danh bạ điện thoại thường được xây dựng trên giấy tờ, sổ sách.
Cách thức này tồn tại nhiều nhược điểm như: tìm kiếm chậm, khó chỉnh
sửa, khó chia sẻ, khó bảo quản… Khi khoa học kĩ thuật phát triển, nhịp

2


sống con người tăng cao…thì những nhược điểm trên càng gây ra nhiều
khó khăn và trở ngại cho người dùng.
-Hiện nay, công nghệ thông tin đang rất phát triển và đã dần thâm nhập sâu
vào đời sống con người, nhiều ứng dụng công nghệ thông tin đã và đang
được phổ dụng rộng rãi. Trước những điều kiện và tình hình thực tế đó,
việc tin học hóa q trình tổ chức và quản lý danh bạ điện thoại là một giải
pháp hữu hiệu. Bởi lẽ: xây dựng chương trình quản lý danh bạ điện thoại
trên máy tính có rất nhiều ưu điểm khắc phục những nhược điểm trong việc
quản lý danh bạ điện thoại cá nhân trên giấy tờ như:
•Dễ dàng thay đổi chỉnh sửa
•Việc tìm kiếm nhanh chóng và thực hiện dễ dàng
•Q trình lưu trữ nhanh và lưu trữ được nhiều thơng tin
•…….
1.2. Phương án giải quyết cụ thể
-Khảo sát các mơ hình quản lý danh bạ điện thoại đã được xây dựng từ
trước…để tìm hiểu các thơng tin cơ bản cần quản lý.
-Tìm hiểu các thơng tin cần quản lý trên thực tế hiện nay.
-Phân tích, tổng hợp các thơng tin để đưa ra mơ hình tổng qt, đưa ra các
sơ đồ liên quan và thiết kế hệ thống tổ chức và quản lý danh bạ điện thoại
hoàn chỉnh.
-Tiến hành chọn ngơn ngữ lập trình, chọn hệ quản trị cơ sở dữ liệu và xây
dựng chương trình chạy trên máy đơn và sử dụng hệ điều hành Windows

XP

3


u cầu chương trình có thể lưu trữ được khối lượng thơng tin lớn, có thể
thêm, sửa, xóa thuận tiên, và tìm kiếm thơng tin nhanh theo tên, địa chỉ, số
điện thoại, cơ quan, thành phố…

4


II.
2.1.

CƠ SỞ LÍ THUYẾT
Android

Hình 1: Logo android
Android là một hệ điều hành dựa trên nền tảng Linux được thiết kế dành
cho các thiết bị di động có màn hình cảm ứng như điện thoại thơng minh và
máy tính bảng. Ban đầu, Android được phát triển bởi Android, Inc. với sự
hỗ trợ tài chính từ Google và sau này được chính Google mua lại vào năm
và trở thành một hệ điều hành di động mã nguồn mở, miễn phí, mạnh mẽ
và được ưa chuộng cao trên thế giới.
Hệ điều hành Android một hệ điều hành rất mạnh mạnh, có bảo mật cao, hỗ
trợ được nhiều công nghệ tiên tiến như 3G, GPS, EDGE, Wifi.. tương thích
với nhiều phần cứng, hỗ trợ nhiều loại bộ nhập dữ liệu như keyboard, touch
và trackball. Android là hệ điều hành di động nên có khả năng kết nối cao
với các mạng không dây. Hỗ trợ cơng nghệ OpenGL nên có khả năng chơi

các phương tiện media, hoạt hình cũng như trình diễn các khả năng đồ họa
khác cực tốt, là tiền đề để phát triển các ứng dụng có giao diện phức tạp
chẳng hạn như là các trò chơi.
Android liên tục được phát triển, mỗi bản cập nhật từ Google là mỗi lần
Android được tối ưu hóa để hoạt động tốt hơn, nhanh và ổn định hơn, hỗ
5


trợ thêm công nghệ mới. Chẳng hạn như theo một đánh giá thì Android
phiên bản 2.2 hoạt động nhanh hơn bản 2.1 tới 450%. Hiện nay, phiên bản
mới ổn định là 3.2 phát hành 7/2011 với tên gọi theo “họ” 3.x trước đó là
Honeycomb. Tuy nhiên phiên bản Android tiếp theo – tên mã Ice Cream
Sandwich (Android 4.0) – trong q trình được Google hồn thiện và được
tung ra vào quý 4 năm 2011.
Năm 2008, hệ điều hành Android đã chính thức mở tồn bộ mã nguồn, điều
đó cho phép các hãng điện thoại có thể đem mã nguồn về tùy chỉnh, thiết kế
lại sao cho phù hợp với mỗi mẫu mã điện thoại của họ và điều quan trọng
nữa là hệ điều hành mở này hồn tồn miễn phí, không phải trả tiền nên
giúp họ tiết kiệm khá lớn chi phí phát triển hệ điều hành. Những điều đó là
cực kỳ tốt không chỉ đối với các hãng sản xuất điện thoại nhỏ mà ngay cả
với những hãng lớn như Samsung, HTC....
Với Google, vì Android hồn tồn miễn phí, Google không thu tiền từ
những hãng sản xuất điện thoại, tuy không trực tiếp hưởng lợi từ Android
nhưng bù lại, những dịch vụ của hãng như Google Search, Google Maps,...
nhờ có android mà có thể dễ dàng xâm nhập nhanh vào thị trường di động
vì mỗi chiếc điện thoại được sản xuất ra đều được tích hợp hàng loạt dịch
vụ của Google. Từ đó hãng có thể kiếm bội, chủ yếu là từ các nguồn quảng
cáo trên các dịch vụ đó.
Với các nhà phát triển ứng dụng (developers), việc hệ điều hành android
được sử dụng phổ biến đồng nghĩa với việc họ có thể thoải mái phát triển

ứng dụng trên nền android với sự tin tưởng là ứng dụng đó sẻ có thể chạy
được ngay trên nhiều dịng điện thoại của các hãng khác nhau. Họ ít phải
quan tâm là đang phát triển cho điện thoại nào, phiên bản bao nhiêu vì nền
tảng android là chung cho nhiều dịng máy, máy ảo Java đã chịu trách
6


nhiệm thực thi những ứng dụng phù hợp với mỗi dịng điện thoại mà nó
đang chạy. Tất cả các chương trình ứng dụng được viết bằng ngơn ngữ Java
kết hợp với XML nên có khả năng khả chuyển cao.
Một số hãng sản xuất điện thoại có sử dụng hệ điều hành Android tiêu biểu:
HTC, LG, MOTOROLA, SAMSUNG, SONY, ACER, Ở Việt Nam các
công ty như Viettel, FPT đãng tung những sản phẩm chạy android cho riêng
mình. Ngồi ra cịn nhiều hãng điện thoại vừa và nhỏ khác nữa cũng sử
dụng hệ điều hành android trong sản phẩm của mình...
2.2.

Delving với 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 file thự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ý. Dalvik đã được thiết kế và viết bởi Dan
Bornstein, người đã đặt tên cho nó sau khi đến thăm một ngơi làng đánh cá
nhỏ có tên là Dalvík ở đảo Eyjafjưrður, nơi mà một số tổ tiên của ơng sinh
sống.
Từ góc nhìn của một nhà phát triển, Dalvik trông giống như máy ảo Java
(Java Virtual Machine) nhưng thực tế thì hồn tồn khác. Khi nhà phát triển
viết một ứng dụng dành cho Android, anh ta thực hiện các đoạn mã trong
mơi trường Java. Sau đó, nó sẽ được biên dịch sang các bytecode của Java,

tuy nhiên để thực thi được ứng dụng này trên Android thì nhà phát triển
phải thực thi một cơng cụ có tên là dx. Đây là công cụ dùng để chuyển đổi
bytecode sang một dạng gọi là dex bytecode. "Dex" là từ viết tắt của
"Dalvik executable" đóng vai trị như cơ chế ảo thực thi các ứng dụng
Android.
7


2.3.

Các thành phần trong một Android Project

2.3.1. AndroidManifest.xml
Trong bất kì một project Android nào khi tạo ra đều có một file
AndroidManifest.xml, file này được dùng để định nghĩa các screen sử
dụng, các
permission cũng như các theme cho ứng dụng. Đồng thời nó cũng chứa
thơng tin về phiên bản SDK cũng như màn hình chính sẽ chạy đầu tiên.
File này được tự động sinh ra khi tạo một Android project. Trong file
manifest bao giờ cũng có 3 thành phần chính đó là: application, permission
và version
• Application
Thẻ <application>, bên trong thẻ này chứa các thuộc tính được định nghĩa
cho
ứng dụng Android như:
- android:icon = “drawable resource”  Ở đây đặt đường dẫn đến file icon
của ứng dụng khi cài đặt. Ví dụ: android:icon = “@drawable/icon”.
- android:name = “string”  thuộc tính này để đặt tên cho ứng dụng
Android.
Tên này sẽ được hiển thị lên màn hình sau khi cài đặt ứng dụng.

8


- android:theme = “drawable theme”  thuộc tính này để đặt theme cho
ứng
dụng. Các theme là các cách để hiển thị giao diện ứng dụng...
• Permission
Bao gồm các thuộc tính chỉ định quyền truy xuất và sử dụng tài nguyên của
ứng dụng. Khi cần sử dụng một loại tài nguyên nào đó thì trong file
manifest của ứng dụng cần phải khai báo các quyền truy xuất như sau:
• SDK version
Thẻ xác định phiên bản SDK được khai báo như sau:
Ở đây chỉ ra phiên bản SDK nhỏ nhất mà ứng dụng hiện đang sử dụng.
2.3.2. File R.java
File R.java là một file tự động sinh ra ngay khi tạo ứng dụng, file này được
sử dụng để quản lý các thuộc tính được khai báo trong file XML của ứng
dụng và các tài nguyên hình ảnh.
Mã nguồn của file R.java được tự động sinh khi có bất kì một sự kiện nào
xảy xa làm thay đổi các thuộc tính trong ứng dụng. Chẳng hạn như, bạn kéo
và thả một file hình ảnh từ bên ngồi vào project thì ngay lập tức thuộc tính
đường dẫn đến file đó cũng sẽ được hình thành trong file R.java hoặc xố
một file hình ảnh thì đường dẫn tương ứng đến hình ảnh đó cũng tự động bị
xố.
Có thể nói file R.java hồn tồn khơng cần phải đụng chạm gì đến trong cả
quá trình xây dựng ứng dụng.

9


2.4.


Các thành phần cơ bản trong ứng dụng android

2.4.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 đó được gọ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ình bày vị trí, background, kích thước, lề,...được thể hiện hết ở trong
đối tượng View. Trong Android Platform, các screen ln được bố trí theo
một kiểu cấu trú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ác widget được bố trí cóthứ tự. Để thể hiện một screen thì trong
hàm onCreate 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 XML lên
để phân tích thành mã bytecode.
2.4.2. View Group
ViewGroup thực ra chính là View hay nói đúng hơn thì ViewGroup chính là
các
widget Layout được dùng để bố trí các đối tượng khác trong một screen.
2.4.3. Linear Layout (bố trí giao diện)
LinearLayout được dùng để bố trí các thành phần giao diện theo chiều
ngang hoặc chiều dọc nhưng trên một line duy nhất mà khơng có xuống
10


dịng. LinearLayout làm cho các thành phần trong nó khơng bị phụ thuộc
vào kích thước của màn hình. Các thành phần trong LinearLayout được dàn
theo những tỷ lệ cân xứng dựa vào các ràng buộc giữa các thành phần.
2.4.4. Frame Layout (khung)
FrameLayout được dùng để bố trí các đối tượng theo kiểu giống như là các

Layer trong Photoshop. Những đối tượng nào thuộc Layer bên dưới thì sẽ
bị che khuất bởi các đối tượng thuộc Layer nằm trên. FrameLayer thường
được sử dụng khi muốn tạo ra các đối tượng có khung hình bên ngồi
chẳng hạn như contact image button.
2.4.5. Retalive Layout
Layout này cho phép bố trí các widget theo một trục đối xứng ngang hoặc
dọc. Để đặt được đúng vị trí thì các widget cần được xác định một mối ràng
buộc nào đó với các widget khác. Các ràng buộc này là các ràng buộc trái,
phải, trên, dưới so với một widget hoặc so với layout parent. Dựa vào
những mối ràng buộc đó mà RetaliveLayout cũng khơng phụ thuộc vào
kích thước của screen thiết bị. Ngồi ra, nó cịn có ưu điểm là giúp tiết
kiệm layout sử dụng nhằm mục đích giảm lượng tài nguyên sử dụng khi
load đồng thời đẩy nhanh quá trình xử lý.
2.4.6. Table Layout (bảng giao diện)
Layout này được sử dụng khi cần thiết kế một table chứa dữ liệu hoặc cần
bố trí các widget theo các row và column. Chẳng hạn như, giao diện của
một chiếc máy tính đơn giản hoặc một danh sách dữ liệu.
2.4.7. Button

11


Sở dĩ widget button được giới thiệu đầu tiên trong số các widget khác là vì
đây là đối tượng có thể nói là được dùng nhiều nhất trong hầu hết các ứng
dụng Android.
2.4.8. Image Button (hình ảnh nút)
Cũng tương tự như Button, ImageButton chỉ có thêm một thuộc tính
android:src = “@drawable/icon” để thêm hình ảnh vào và khơng có thẻ
text.
2.4.9. Image View (xem hình)

Được dùng để thể hiện một hình ảnh. Nó cũng giống như ImageButton, chỉ
khác là khơng có hình dáng của một cái button.
2.4.10. List View(xem danh sách)
Được sử dụng để thể hiện một danh sách các thông tin theo từng cell. Mỗi
cell
thông thường được load lên từ một file XML đã được cố định trên đó số
lượng thông tin và loại thông tin cần được thể hiện.
Để thể hiện được một list thông tin lên một screen thì cần phải có 3 yếu tố
chính:
- Data Source: Data Source có thể là một ArrayList, HashMap hoặc bất kỳ
một cấu trúc dữ liệu kiểu danh sách nào.
- Adapter: Adapter là một class trung gian giúp ánh xạ dữ liệu trong Data
Source vào đúng vị trí hiển thị trong ListView. Chẳng hạn, trong Data
Source có một trường name và trong ListView cũng có một TextView để
thể hiện trường name này. Tuy nhiên, ListView sẽ không thể hiển thị dữ
12


liệu trong Data Source lên được nếu như Adapter không gán dữ liệu vào
cho đối tượng hiển thị.
- ListView: ListView là đối tượng để hiển thị các thông tin trong Data
Source ra một cách trực quan và người dùng có thể thao tác trực tiếp trên
đó.
2.4.11. Text View(xem văn bản)
TextView ngồi tác dụng là để hiển thị văn bản thì nó cịn cho phép định
dạng nội dung bằng thẻ html.
Nội dung TextView cũng có thể được định dạng bằng thẻ html ngay trong
XML.
2.4.12. Edit Text(sửa văn bản)
Trong Android đối tượng EditText được sử dụng như một TextField hoặc

một TextBox.
Các thuộc tính cần chú ý sử dụng EditText đó là:
- android:inputType = “...” sử dụng để xác định phương thức nhập cho
EditText. Chẳng hạn như khi bạn muốn một ô để nhập password hay một ơ
để nhập Email thì thuộc tính này sẽ làm điều đó.
- android:singleLine = “true” EditText của bạn sẽ trở thành một TextField,
ngược lại sẽ là TextBox.
2.4.13. Check Box(đánh dấu)
Nhận 2 giá trị true hoặc false. Đối tượng CheckBox cho phép chọn nhiều
item cùng một lúc.
Khai báo: CheckBox cb = new CheckBox(Context ...); XML:
13


2.4.14. Activity(hoạt động)
Activity là một thành chính của một ứng dụng Android, được dùng để hiển
thị một màn hình và nắm bắt các hoạt động xảy ra trên màn hình đó. Khi
làm việc với Activity cần nắm bắt được một số kiến thức cơ bản như sau:
- Chu kỳ sống của một Activity
- Tạo menu và dialog
- Khởi động một Activity
Cách chuyển giữa các Intend theo 2 loại:
- Khai báo khơng tường minh: Cung cấp chính xác thơng tin của activity
cần gọi bằng cách truyền vào tên class của Activity đó.
- Khai báo khơng tường minh: Cung cấp các thao tác cần làm gì với loại dữ
liệu nào, hệ thơng sẽ tìm đến activity tương ứng để khởi động.
• Tính liên lạc giữa 2 activity
Khi chuyển sang một Activity khác ta có thể gửi kèm dữ liệu trong intend
đó
như sau:


Bên phía Activity được khởi động hay được chuyển đến, có thể lấy dữ liệu
được
gửi như sau:

14


2.4.15. Intent()
Khái niệm Intend:
- Là một cấu trúc dữ liệu mô tả cách thức, đối tượng thực hiện của một
Activity.
- Là cầu nối giữa các Activity: ứng dụng Android thường bao gồm nhiều
Activity, mỗi Activity hoạt động độc lập với nhau và thực hiện những cơng
việc khác nhau. Intent chính là người đưa thư, giúp các Activity có thể triệu
gọi cũng như truyền các dữ liệu cần thiết tới một Activity khác. Điều này
cũng giống như việc di chuyển qua lại giữa các Forms trong lập trình
Windows Form.

Hình 2: Chuyển đổi giữa hai Activity sử dụng intent
2.4.16. Background Service

15


Service là 1 trong 4 thành phần chính trong 1 ứng dụng Android (Activity,
Service, BroadcastReceiver, ContentProvider) thành phần này chạy trong
hậu trường và làm những công việc không cần tới giao diện như chơi nhạc,
download, xử lí tính tốn...
Một Service có thể được sử dụng theo 2 cách:

- Nó có thể được bắt đầu và được cho phép hoạt động cho đến khi một
người nào đó dừng nó lại hoặc nó tự ngắt. Ở chế độ này, nó được bắt đầu
bằng

cách

gọi

Context.startService()



dừng

bằng

lệnh

Context.stopService(). Nó có thể tự ngắt bằng lệnh Service.stopSelf() hoặc
Service.stopSelfResult(). Chỉ cần một lệnh stopService() để ngừng Service
lại cho dù lệnh startService() được gọi ra bao nhiêu lần.
- Service có thể được vận hành theo như đã được lập trình việc sử dụng một
Interface mà nó định nghĩa. Các người dùng thiết lập một đường truyền tới
đốitượng Service và sử dụng đường kết nói đó để thâm nhập vào Service.
Kết nối này được thiết lập bằng cách gọi lệnh Context.bindService() và
được đóng lại bằng cách gọi lệnh Context.unbindService(). Nhiều người
dùng có thể kết nối tới cùng một thiết bị. Nếu Service vẫn chưa được khởi
chạy, lệnh bindService() có thể tùy ý khởi chạy nó. Hai chế độ này thì
khơng tách biệt tồn bộ. Bạn có thể kết nối với một Service mà nó đã được
bắt đầu với lệnh startService(). Ví dụ, một Service nghe nhạc ở chế độ nền

có thể được bắt đầu bằng cách gọi lệnh startService() cùng với một đối
tượng Intent mà định dạng được âm nhạc để chơi. Chỉ sau đó, có thể là khi
người sử dụng muốn kiểm sốt trình chơi nhạc hoặc biết thêm thơng tin về
bài hát hiện tại đang chơi, thì sẽ có một Activity tạo lập một đường truyền
tới Service bằng cách gọi bindService(). Trong trường hợp như thế này,

16


stopService() sẽ không thực sự ngừng Service cho đến khi liên kết cuối
cùng được đóng lại.
2.5.

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. Chương trình gồm 1 file duy nhất vỏn
vẹn chưa đến 500kB, không cần cài đặt, không cần cấu hình hay khởi động
mà có thể sử dụng ngay. Dữ liệu database cũng được lưu ở một file duy
nhất. Khơng có khái niệm user, password hay quyền hạn trong SQLite
database. SQLite khơng thích hợp với những hệ thống lớn nhưng ở quy mơ
vừa tầm thì SQLite phát huy uy lực và không hề yếu kém về mặt chức năng
hay tốc độ. Với các đặc điểm trên SQLite được sử dụng nhiều trong việc
phát triển, thử nghiệm...và là sự lưa chọn phù hợp cho những người bắt đầu
học database. Hiện nay thì SQLite đã được ứng dụng vào smartphone như
iPhone và Android để lưu trữ dữ liệu. Để có thể dễ dàng thao tác với
SQLite chúng ta có thể sử dụng trình duyệt FireFox và tải về plugin SQLite
tại link sau: />Sau khi tải về file xpi, kéo file này vào cửa sổ firefox để cài đặt plugin. Sau
khi cài đặt plugin xong thì vào Menu_tools trong firefox sẽ có chức năng
SQLite Manager.

III.

XÁC LẬP DỰ ÁN

3.1. Lí do chọn đề tài
Ngành bưu chính viễn thơng ngày càng phát triển, đời sống con người ngày
càng đi lên. Điện thoại là một phương tiện giao tiếp quan trọng nó khơng
chỉ gói gọn trong các cơ quan, cơng ty mà cịn mở rộng ra trong các gia
đình, việc lắp đặt một máy điện thoại trong cơ quan, cơng ty, gia đình là
17


diều kiện cần thiết khơng thể thiếu vì vậy số lượng khách thuê bao ngày
càng tăng lên, các nhân viên trong ngành bưu điện không thể quản lý hết số
điện thoại ngày càng nhiều đó bằng cơng cụ thủ cơng thêm vào đó nhu cầu
của các chủ thuê bao ngày càng phong phú đòi hỏi các nhân viên bưu điện
cung cấp thơng tin một cách nhanh chóng, chính xác và kịp thời. Theo khảo
sát digital marketing tại Việt Nam của Adsota, tính đến cuối năm 2019,
lượng người sử dụng smarthphone ở Việt Nam là 43,7 triệu người, trong đó
có 42% người Việt dùng smarthphone để liên lạc, tán gấu mỗi Theo báo
dân sinh, tính đến cuối năm 2019, Việt Nam lọt vào top 15 thị trường người
dùng smarthphone cao nhất thế .

Hình 3: Số lượng người dùng smartphone của 15 nước đứng đầu thế giới
Xuất phát từ yêu cầu trên chúng em đã đưa ra chương trình “Quản Lí Danh
Bạ Điện Thoại”, để đáp ứng mọi thắc mắc của những người cần tìm số điện
thoại, hoặc địa chỉ của người nào đó sẽ được trả lời ngay qua sự quản lý
của “Danh Bạ Điện Thoại”, hy vọng rằng với những tiện ích thực tế chương
trình có thể ứng dụng một cách cụ thể trong công tác quản lý điện thoại .
3.2.


Xác định nhiệm vụ chính của đề tài
18


-

Nghiên cứu kiến trúc Android ;
Nghiên cứu các thành phần cơ bản trong Android ;
Nghiên cứu cách phát triển ứng dụng trên Android ;
Xây dựng ứng dụng quản lí danh bạ trên nền tảng Android.

3.3. Hình thành các ý tưởng
- Font chữ đẹp mắt;
- Giao diện đơn giản, dễ nhìn ;
- Có thanh tiêu đề ( cơng cụ tìm kiếm, thêm danh bạ );
- Thiết kế chức năng tìm kiếm tiện ích, giúp người dùng có thể dễ dàng tìm
kiếm thuê bao mong muốn ;
- Có các chức năng như gọi điện, nhắn tin, chỉnh sửa thơng tin và xóa danh
bạ;
- Sử dụng SQLite để lưu trữ ;
- Cấp quyền cho ứng dụng ;
- Tối ưu hóa tiếng việt ;
- Ứng dụng không được quá phức tạp ;
- Dung lượng file không quá lớn ;
- Thanh menu thật đơn giản ;
- Phải có thơng tin liên hệ.

3.4.


Đánh giá các ý tưởng và ra quyết định lựa chọn ý tưởng

19


Nhìn chúng các ý tưởng đều rất tốt và khá sát với các nhu cầu của người
dùng. Bên cạnh đó, phần ý tưởng này rất phù hợp cho việc sinh viên nghiên
cứu, tìm tịi các giải pháp cũng như tiếp cận nhiều hơn với việc lập trình
một ứng dụng di động để lấy đó làm tiền đề cho những dự án sau này.

20


3.5.

Phân tích ý tưởng đã chọn

Mỗi ý tưởng có tính thực tiễn cao khi nó để vận hành, thâm nhập vào công
việc một cách thuận lợi. Khi thiết kế một ý tưởng, cần phải tuân theo các
nguyên tắc sau :
* Yêu cầu về truy cập dữ liệu : Hệ thống phải có khả năng truy cập dữ liệu
nhanh chóng, thuận lợi, chính xác. Các thao tác phải thuận tiện, đơn giản
nhưng phải đáp ứng đầy đủ các yêu cầu về truy cập dữ liệu .
* Yêu cầu về hệ thống thơng tin : Hệ thống phải được bảo trì, có tính mở để
dể phát triển, điều chỉnh. Đặc biệt phải có khả năng kiểm tra tính đúng đắn
của dữ liệu cũng như khả năng phát hiện lỗi xử lý lỗi .
* Yêu cầu về giao diện : Giao diện về người dùng và máy phải được thiết
kế một cách khoa học, thân thiện, đẹp mắt và không cầu kỳ. Phải có tính
thống nhất về phương pháp làm việc, cách trình bày, khả năng trợ giúp, kịp
thời giải quyết mọi thắc mắc của người sử dụng. Các thông báo lỗi phải đầy

đủ, phải dự kiến được mọi sai sót của người dùng và có hướng khắc phục
tốt các đặc điểm này .
* Chức năng thêm danh bạ: Cho phép ứng dụng lưu trữ các thông tin của
chủ thuê bao ( tên, số điện thoại, giới tính )
* Chức năng cập nhật dữ liệu : Chỉnh sửa và cập nhật lại thông tin của chủ
thuê bao
* Chức năng tìm kiếm: Là chức năng quan trọng nhất trong chương trình
cho phép tra cứu các thông tin về các chủ thuê bao

21


* Cấp quyền: Cho phép ứng dụng này chuyển sang một ứng dụng khác giúp
người dùng có thể thực hiện được chức năng mong muốn như gọi điện,
nhắn tin.
*SQLite: Cho phép ứng dụng lưu giữ dữ liệu trong local, để mổi lần reset
không cần bị mất hết dữ liệu trong ứng dụng.

22


IV.
4.1.

THIẾT KẾ, TRIỂN KHAI CHƯƠNG TRÌNH
Thiết kế

Phần mềm quản lí danh bạ gồm có 4 chức năng chính cơ bản:
- Thêm danh bạ: Bao gồm thêm số thuê bao, số điện thoại và giới tính vào
ứng dụng. Trong trường hợp nhập thiếu hoặc thừa số điện thoại cho phép thì

ứng dụng sẽ đưa ra thông báo cho người dùng biết.
- Tìm kiếm: Có 2 cách để sử dụng cơng cụ tìm kiếm đó là tìm kiếm theo tên
th bao và tìm kiếm theo số điện thoại liên lạc. Với cách tìm kiếm này, chỉ
cần nhập vào 1 kí tự hay số điện thoại trùng với danh sách danh bạ có trong
ứng dụng thì ngay lập tức các chủ thuê bao có thơng tin gần giống như thê
sẽ được liệt kê theo danh sách trong một mảng tạm thời.
- Danh sách: Hiện thì một bảng danh sách với những thuê bao đã được thêm
vào ứng dụng theo thứ tự là: Giới tính, tên thuê bao và số điện thoại.
23


- Hệ thống: Với chức năng này, chúng ta sẽ có 4 thanh cơng cụ tương đương
như sau:
+ Chỉnh sửa: Cho phép người dùng sửa lại thông tin liên hệ nếu chẳng may
nhập sai.
+ Xóa liên hệ: Xóa những danh bạ mà người dùng khơng mong muốn.
Trước lúc xóa, ứng dụng sẽ đưa ra một thông báo đẩy xem người dùng có
thật sự muốn xóa khơng. Nếu chọn “Có” th bao sẽ được xóa khỏi ứng
dụng vĩnh viễn, cịn nếu chọn “Khơng” th bao vẫn khơng có thay đổi gì.
+ Gọi điện: Cho phép người dùng gọi điện trực tiếp tới số thuê bao cần liên
hệ.
+ Nhắn tin: Cho phép người dùng nhắn tin tới chủ thuê bao cần liên hệ.

4.2.
Triển khai
Sau đây là một số code cơ bản có trong ứng dụng:
private static ArrayList<Contact> arrayClone = new
ArrayList<>();
// arrayClone là mảng tạm dùng trong trường hợp search
// static là để không bị thay đổi dư liệu như kiểu tham chiếu

arrayContact = db.getAllContacts();
// List danh bạ ở đây sẽ được gắn bằng list danh bạ lấy ở
local
// .getAllContacts là method của DatabaseContactHelper ->
đọc dữ liệu ở file SQLite lưu ở bộ nhớ máy và thêm nố vào
mảng

24


if(arrayContact != null || arrayContact.size() > 0) {
arrayClone.clear();
arrayClone.addAll(arrayContact);
}
// trường hợp này xảy ra khi lúc đầu run app list danh bạ sẽ
rỗng. Tránh lỗi gây đứng app
// Lỗi crash app do .clear và .addAll
adapter = new ContactAdapter(this,
R.layout.item_contact_listview, arrayContact, this);
// Adapter nhận thêm một listener - CHính là INTERFACE
OnItemContactClickListener
// Activity implement OnItemContactClickListener nên
listener ở đây chính là activity(this)
for(Contact c : arrayContact) {
if(c.getmName().contains(query) ||
c.getmNumber().contains(query)) {
temp.add(c);
}
}
adapter.updateData(temp );

return false;
//dùng for để tìm trong mảng arrayContact này có item nào
có name hoặc số điện thoại nào trùng với thông tin nhập ở
input search hay không. Nếu có thì add vào mảng tạm
(temp). Sau khi tìm xong thì update lại data cho listview
(mảng tạm)

25


×