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

PHÁT TRIỂN ỨNG DỤNG TRÊN THIẾT BỊ DI ĐỘNG XÂY DỰNG ỨNG DỤNG QUẢN LÝ CÔNG VIỆC CÁ NHÂN

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 (1.35 MB, 36 trang )

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
------------o0o-------------

BÀI TẬP LỚN
PHÁT TRIỂN ỨNG DỤNG TRÊN
THIẾT BỊ DI ĐỘNG
Đề tài: XÂY DỰNG ỨNG DỤNG QUẢN LÝ CÔNG VIỆC CÁ NHÂN
Giảng viên hướng dẫn

:

Th.s Nguyễn Thái Cường

Lớp

: KTPM4 – K10

Nhóm

: 14

Sinh viên thực hiện

:

Phạm Minh Hồng-1041360303
Nguyễn Văn Khải-1941360319
Bùi Văn Long- 1041360565

Hà Nội, 2019


1


LỜI CẢM ƠN
Trong suốt quá trình học tập và làm bài tập lớn, nhóm 14 đã nhận được sự
hướng dẫn, giúp đỡ nhiệt tình của quý thầy cô trong khoa Công nghệ thông tin
trường Đại học Công nghiệp Hà Nội và các bạn trong lớp để hoàn thành đề tài tìm
hiểu của nhóm. Với lòng kính trọng và sự biết ơn sâu sắc, nhóm em xin được bày
tỏ lời cảm ơn chân thành tới thầy Nguyễn Thái Cường - người thầy đã hết lòng
giúp đỡ, hướng dẫn và tạo mọi điều kiện thuận lợi cho nhóm trong suốt quá trình
học tập và hoàn thành bài tập lớn của nhóm.
Những đóng góp của mọi người là kinh nghiệm quý báu giúp cho các thành
viên trong nhóm có những dự tính sau này cho việc tiếp tục phát triển ứng dụng và
xin việc ở các công ty.
Chúng em xin chân thành cảm ơn !
Sinh viên nhóm 14

2


MỤC LỤC

3


MỤC LỤC HÌNH

4



1. Tên đề tài
Xây dựng ứng dụng quản lý công việc cá nhân.
2. Lý do chọn đề tài
Bạn đã bao giờ thử tính xem mình đã phí phạm bao nhiêu thời gian trong
một ngày, một tuần, thậm chí trong cả cuộc đời mình chưa. Hay có bao giờ bạn ước
một ngày có 48 giờ để làm tốt công việc của mình. Có rất nhiều người giống bạn,
chỉ lo lo rượt đuổi thời gian mà do không biết tận dụng, sắp xếp công việc và cuộc
sống thế nào cho phù hợp nhất
Mỗi chúng ta đều hiểu được việc lên kế hoạch làm việc cho bản thân rất
quan trọng để bạn quản lý thời gian hiệu quả, vì những mục tiêu giúp bạn định
hướng rõ ràng cho công việc của chính mình. Nếu bạn không có một kế hoạch cụ
thể thì sẽ dễ lặp đi lặp lại các thao tác để thực hiện một công việc nhiều điều hay
sa đà vào các công việc không có mục đích, từ đó làm mất thời gian quý giá. Làm
việc không có kế hoạch còn là lí do khiến bạn trì hoãn thực hiện các công việc
quan trọng. Chính vì vậy, việc xây dựng một kế hoạch làm việc tốt là điều quan
trọng giúp bạn quản lý hiệu quả thời gian của mình.
Xuất phát từ những vấn đề trên nhóm 14 trong môn phát triên ứng dụng trên
thiết bị di động đã cùng nhau “Xây dựng ứng dụng quản lý công việc cá nhân”.
3. Mục đích
Đề tài “Xây dựng ứng dụng quản lý công việc cá nhân.” nhằm tìm hiểu về
phương thức xây dựng một ứng dụng trên thiết bị di động, từ đó nắm được một số
kỹ năng như thiết kế, ngôn ngữ và sử dụng ứng dụng có liên quan tới ứng dụng
android.
4. Bố cục
Nội dung chính chia làm 3 chương:
Chương 1. Tổng quan android.
Chương 2. Thiết kế giao diện cho ứng dụng Android
Chương 3. Khảo sát và phân tích thiết kế hệ thống ứng dụng.
Chương 4. Cài đặt công cụ và xây dựng ứng dụng.


5


5. Phương pháp tiếp cận
Thu thập thống kê phân tích: Lý thuyết trong tài liệu phát triển ứng dụng
trên thiết bị di động, thông tin trên Internet
Phân tích mẫu: tìm hiểu ứng dụng và công nghệ phát triển
Thực nghiệm: xây dụng ứng dụng quản lý công việc từ đó nắm được một số
kỹ năng trong thiết kế ứng dụng android.

6


PHẦN 2. NỘI DUNG
CHƯƠNG 1: TỔNG QUAN VỀ ANDROID
1.1 Giới thiệu hệ điều hành Android
Android là một hệ điều hành chạy trên điện thoại di động được phát triển từ
nhân Linux. Được phát triển vào năm 2005 với một dự án cùng tên “Android”.
Trong một phần chiến lược của mình để lấn sâu vào lĩnh vực di động Google đã
mua về toàn bộ quá trình phát triển cũng như đội phát triển của Android.
Google phát hành Android dưới dạng mã nguồn mở và miễn phí, do đó bất cứ
ai muốn sử dụng đều có thể tải về mã nguồn Android đầy đủ. Hơn nữa các nhà
cung cấp (thường là những nhà phát triển phần cứng) có thể phát triển thêm phần
mở rộng và tùy biến cho Android để tạo những sản phẩm riêng biệt của họ so với
sản phẩm của những công ty khác. Điều này làm cho mô hình phát triển Android
rất hấp dẫn và do đó khơi dậy sự quan tâm của nhiều nhà cung cấp. Điều này rất
phù hợp với các công ty bị ảnh hưởng bởi hiện tượng này như là Iphone của Apple,
một sản phẩm cực kì thành công trong công cuộc cách mạng hóa ngành công
nghiệp Smartphone. Các công ty như SamSung, Motorola, SonyEricsson và một số
những nhà sản xuất đã tìm được một con đường mới để làm sống dậy sản phẩm

của họ. Những nhà sản xuất này coi Android như một giải pháp – họ sẽ tiếp tục
thiết kế phần cứng của riêng mình và sử dụng Android như một hệ điều hành
chính[9][10].
Ưu điểm chính của việc áp dụng Android là cung cấp một cách tiếp cận thống
nhất để phát triển ứng dụng. Các nhà phát triển chỉ cần phát triển cho Android và
các ứng dụng của họ có thể chạy trên nhiều thiết bị khác nhau, miễn là các thiết bị
được hỗ trợ bằng cách sử dụng Android. Trong thế giới smartphone ứng dụng là
một phần quan trọng nhất của chuỗi thành công. Do đó các nhà sản xuất thiết bị coi
Android như là hy vọng tốt nhất để thách thức sự tấn công của Iphone
1.2 Lược sử về Android
Android được phát hành phiên bản đầu tiên 11/11/2007, là một môi trường hệ
điều hành hoàn chỉnh dựa trên hệ điều hành nhân Linux V2.6. Lúc đầu, đích triển
khai đối với Android là lĩnh vực điện thoại di động, gồm các loại điện thoại thông
minh và các loại thiết bị điện thoại kiểu gập chi phí thấp. Tuy nhiên, phạm vi đầy
đủ các dịch vụ điện toán của Android và sự hỗ trợ chức năng phong phú của nó có
tiềm năng mở rộng ra ngoài thị trường điện thoại di động. Android còn có thể hữu
ích đối với các nền tảng và ứng dụng khác[2].
Nền Android là sản phẩm của Open Handset Alliance (Liên minh thiết bị cầm
tay mở), một tập đoàn các tổ chức cùng hợp tác với nhau để xây dựng nên một loại
điện thoại di động tốt hơn. Tập đoàn do Google đứng đầu này gồm các nhà vận
7


hành (điện thoại) di động, các nhà sản xuất thiết bị cầm tay, sản xuất linh kiện, các
nhà cung cấp nền và giải pháp phần mềm và các công ty tiếp thị. Từ một quan
điểm phát triển phần mềm, Android trở thành trung tâm của thế giới mã nguồn mở
và rất có tiềm năng phát triển.
Thiết bị cầm tay có khả năng Android đầu tiên trên thị trường là thiết bị G1 do
HTC sản xuất và được bán trên T-Mobile. Nó trở nên sẵn có sau gần một năm đồn
đại, khi mà các công cụ phát triển phần mềm sẵn có duy nhất chỉ là một số bản

phát hành Bộ công cụ phát triển phần mềm (SDK) được cải tiến dần từng bước.
Khi ngày phát hành G1 gần đến, nhóm Android đã phát hành SDK V1.0 và các ứng
dụng bắt đầu vượt lên nhằm hướng tới nền tảng mới này.
Để kích thích đổi mới và phát triển các ứng dụng của Android, Google đã tài
trợ hai vòng cuộc thi “Các thách thức nhà phát triển Android”, và hàng triệu đô la
đã được đổ vào các ứng dụng dự thi hàng đầu. Vài tháng sau G1, Android Market
được phát hành, cho phép người sử dụng duyệt và tải về các ứng dụng trực tiếp vào
điện thoại của họ. Trong vòng 18 tháng, một nền di động mới đã chính thức có mặt
trên thị trường và sẽ là đối thủ cạnh tranh nặng ký của các nền di động phổ biến
trước đó như Symbian hay Window Mobile.
Android cung cấp khá đầy đủ các công cụ cơ bản và được thiết kế sao cho các
nhà phát triển có thể tận dụng tối đa lợi thế của thiết bị cầm tay để xây dựng nên
các ứng dụng thực sự thuyết phục. Họ có thể tạo một ứng dụng có thể gọi thực hiện
các chức năng lõi trong điện thoại như thực hiện cuộc gọi, gửi tin nhắn SMS, dùng
camera… hay chia sẻ thông tin cá nhân lên trang web chẳn hạn như thông tin liên
lạc, vị trí địa lí, lịch biểu… Các nhà phát triển còn có thể làm bất cứ việc gì trên
thiết bị Android bởi vì hệ thống Android giao tiếp thông qua các Intents – nó đơn
giản là một chuỗi mô tả một hành động nào đó - ví dụ:
“android.provider.Telephony.SMS_RECEIVED”. Android còn cung cấp sẵn các
dịch vụ định vị (và đây là một thế mạnh của Google) cùng với một tập các ứng
dụng về “Map” với các tính năng rất ấn tượng như dò đường, tính khoảng cách địa
điểm, tìm bạn… Ngoài ra còn có một số tính năng nổi bật khác như Animation và
đồng thời cũng hỗ trợ media-playback. Android đã dần hoàn thiện qua các phiên
bản, mà phiên bản mới nhất hiện nay là Android 4.0.

8


Hình 1.1 Lịch sử các phiện bản của hệ điều hành Android
1.3 Nền tảng Android

Với khả năng rộng rãi của Android, sẽ rất dễ dàng nhầm lẫn nó với một hệ
điều hành máy tính để bàn. Android là một môi trường phân tầng, xây dựng trên
nền của hệ điều hành nhân Linux, và nó bao hàm nhiều chức năng phong phú. Hệ
thống giao diện người sử dụng gồm có:
 Cửa sổ
 Khung hình
 Các tiểu trình để hiển thị các phần tử phổ biến như các hộp biên soạn, danh sách,
danh sách thả xuống.
Android có nhiều tùy chọn kết nối, gồm WiFi, Bluetooth và dữ liệu không dây
qua một kết nối di động (như GPRS, EDGE và 3G). Một kỹ thuật phổ biến trong
các ứng dụng Android là liên kết tới Google Maps để hiển thị một địa chỉ trực tiếp
trong một ứng dụng. Việc hỗ trợ cho các dịch vụ dựa trên địa điểm (chẳng hạn như
GPS) và các dụng cụ đo gia tốc cũng có sẵn trong gói phần mềm Android, mặc dù
không phải tất cả các thiết bị Android được trang bị với các phần cứng cần thiết.
Ngoài ra còn có cả hỗ trợ máy ảnh(camera). Về mặt lịch sử, có hai lĩnh vực mà các
ứng dụng di động đã gắng sức theo kịp các đối tác máy tính để bàn là đồ họa/đa
phương tiện và phương thức lưu trữ dữ liệu. Android giải quyết thách thức về đồ
họa bằng sự hỗ trợ dựng sẵn cho đồ họa 2D và 3D, gồm cả thư viện OpenGL.
Gánh nặng lưu trữ dữ liệu được giảm nhẹ vì nền Android có gồm cả cơ sở dữ liệu
SQLite mã nguồn mở phổ biến. Hình 1.4 cho thấy một khung hình đơn giản hóa về
các tầng phần mềm Android.

9


Hình 1.2. cấu trúc android
1.4 Vòng đời của ứng dụng Android:
Không giống như các ứng dụng trên các nền tảng khác, các ứng dụng Android
không có một điều khiển đến vòng đời của chúng. Thay vào đó, các thành phần
ứng dụng phải lắng nghe việc thay đổi trạng thái bên trong của ứng dụng đó và tác

động trở lại một cách hợp lý. Mỗi một ứng dụng Android ở trong chính tiến trình
của nó, chạy một thể hiện riêng biệt của Dalvik.Việc quản lý bộ nhớ và tiến trình
của mỗi ứng dụng Android được điều khiển một cách riêng trong lúc runtime.
Android quản lý tài nguyên một cách chặt chẽ, nó sẽ làm bất cứ việc gì để
đảm bảo cho thiết bị duy trì đáp ứng. Điều này có nghĩa là các tiến trình sẽ bị hủy
đi mà không có một cảnh báo nào nếu cần giải phóng tài nguyên cho các ứng dụng
có độ ưu tiên cao.

10


1.5 Các thành phần của ứng dụng android

Hình 1.3. Thành phần của ứng dụng Android
Activities:
- Một activity trong android đại diện cho một màn hình duy nhất mà người
dùng có thể tương tác.
- Một ứng dụng có thể có nhiều activities và mỗi activity hoạt động độc
lập, nhưng có thể được liên kết với nhau và mỗi activity được tạo phải
được kê khai trong manifest của app.
- Mỗi activity trong android là lớp con của Activity được xác định trong
SDK Android
- Ví dụ: public MainActivity extend Activiy
Service:
- Service là quá trình chạy nền lâu dài mà không cần bất kỳ sự tương tác
nào của người dùng.
- Ví dụ: một service có thể phát nhạc khi ở chế độ nền trong khi người
dùng đang dùng ứng dụng khác, hoặc có thể tìm nạp dữ liệu qua mạng
mà không chặn tương tác của người dùng với mỗi hoạt động.
- Ví dụ: public Service extend Service.

Broadcast Receivers:
- Xử lý giao tiếp giữa hệ điều hành android và các ứng dụng.
Content Providers: Được sử dụng để chia sẻ dữ liệu giữa các ứng dụng trong
android, dữ liệu không thể được chia sẻ trực tiếp giữa hai ứng dụng.
11


CHƯƠNG 2: THIẾT KẾ GIAO DIỆN CHO ỨNG DỤNG ANDROID
2.1 Một số lớp hỗ trợ thiết kế giao diện cho ứng dụng Android
Android cung cấp một số công cụ thiết kế giao diện:

 Views: là lớp UI cơ bản cho các control giao diện. Tất cả các control giao diện người
dùng, các lớp layout đều được dẫn xuất từ lớp Views.

 ViewGroups: được mở rộng từ lớp View và có thể chứa nhiều Views. ViewGroups cũng
được kế thừa để cung cấp các lớp quản lý bố cục như LinearLayout. ViewGroup được
dùng để xây dựng nên các component có thể dùng lại (widget) hoặc để quản lý bố cục
cho các control.

 Activity: dùng để hiển thị giao diện người dùng. Lớp này do người phát triển ứng dụng
viết.

Hình 2.4. Quan hệ giữa các thành phần trên
2.2 Android Widget Toolbox
Android cung cấp một bộ công cụ các View chuẩn để tạo các giao diện người dùng
đơn giản,giúp đơn giản hóa việc phát triển và tạo sự đồng nhất giữa các ứng dụng.
Các control thông dụng:

• TextView: là một label chỉ có tác dụng hiển thị văn bản, nó hỗ trợ hiển thị nhiều dòng,
định dạng chuỗi.


• EditText: là một vùng nhập văn bản có thể chỉnh sửa, hỗ trợ nhập nhiều dòng.
• ListView: tạo và quản lý một nhóm các View để hiển thị một danh sách các phần tử. Một
ListView chuẩn dùng để hiển thị chuỗi giá trị của một mảng các TextView.

• Spinner: là một control kết hợp, hiển thị một TextView và một ListView kết hợp dùng để
chọn một item từ danh sách. Nó được tạo thành từ một TextView chứa giá trị hiện tại
đang được chọn kết hợp với một nút mà khi nhấn vào sẽ đưa ra một danh sách lựa chọn.

12


• Button
• CheckBox
• RadioButton
Andoid cũng hỗ trợ nhiều View cao cấp hơn như: date-time picker, auto-complete
input box, map, gallery, và tab sheet.
2.3 Các kiểu Layout:
LayoutManager (thường gọi là layout) là mở rộng của lớp ViewGroup, được thiết kế
để điều chỉnh vị trí của các control trên màn hình ứng dụng. Layout có thể lồng nhau để
tạo nên các giao diện phức tạp. Android có một số các layout đơn giản giúp xây dựng UI.
Để tạo nên một bố cục hợp lý thì nên kết hợp các layout với nhau.
Các lớp layout cơ bản:

• FrameLayout: là layout đơn giản nhất trong Layout Manager, FrameLayout đặt mỗi
View con vào góc trái trên của màn hình. Việc thêm nhiều control sẽ chồng một cái mới
lên trên cái trước đó.

• LinearLayout: thêm mỗi View theo một đường thẳng, theo chiều dọc hoặc ngang. Một
layout theo chiều dọc sẽ có một control trên một dòng, layout theo chiều ngang chỉ có

một dòng cho nhiều View. Nó cho phép chỉ định giá trị “weight” cho mỗi View con để
điều chỉnh kích thước bên trong không gian cho phép.

• RelativeLayout: dùng để định vị trí cho các View cân xứng với các control khác cũng
như với đường biên của màn hình.

• TableLayout: giúp bố trí các View theo một lưới có các dòng và các cột. Các cột có thể
được thiết lập để co lại hoặc giản ra.

• AbsoluteLayout: trong layout này, vị trí mỗi View sẽ là tọa độ tuyệt đối, đảm bảo bố cục
chính xác cho các thành phần. Do đó, không thể có được sự linh hoạt đối với các màn
hình có kích thước khác nhau.
Sử dụng Layout:
Để sử dụng layout người ta thường dùng phương pháp là sử dụng resource bên
ngoài từ file XML. Một layout XML phải chứa một nút gốc.Nút gốc này có thể chứa các
layout và các View lồng nhau để xây dựng nên các giao diện phức tạp.

13


Hình 2.5. Quan hệ giữa các thành phần trên
2.4 Tạo các View:
2.4.1 Chỉnh sửa các View có sẵn
Chỉnh sửa hoặc kế thừa một control sẳn có nếu nó cung cấp các chức năng cần thiết,
bằng cách ghi đè các handler và onDraw của nó. Để định nghĩa lại giao diện cũng như
các ứng xử của control mới tạo, cần phải ghi đè và thừa kế các điều khiển sự kiện (event
handler) kết hợp với các hành vi muốn thay đổi.
2.4.2 Tạo các điều khiển ghép (compound control)
Compound control là các widget có thể tái sử dụng, nó chứa nhiều control được bố
trí và có liên hệ với nhau, nó được tạo từ nhiều control cơ bản.Ví dụ như tạo nên một

dropdown combo box bằng cách kết hợp một TextView và một Button mà khi được nhấn
sẽ hiển thị một ListView.
Khi tạo một compound control cần định nghĩa layout, hình thức và cách thức tác
động lẫn nhau giữa các View mà nó chứa. Compound control được tạo thành từ việc dẫn
xuất từ lớp ViewGroup.
Để tạo một compound control mới, chọn một lớp layout phù hợp nhất để xác định vị
trí cho các control, và dẫn xuất từ nó:
public class MyCompoundView extends LinearLayout {
public MyCompoundView(Context context) {
super(context);
}
public MyCompoundView(Context context, AttributeSet attrs) {
super(context, attrs);

14


}
}
Cách được ưa chuộng hơn để thiết kế giao diện cho một compound control là sử
dụng layout resource.
Để dùng được layout này cho widget mới cần phải định nghĩa lại contructor của nó
sử dụng phương thức inflate từ dịch vụ LayoutInflate. Phương thức inflate nhận tham số
là layout resource và trả về một View.
Một khi đã xây dựng được giao diện cho control, điều tiếp theo là định nghĩa điều
khiển sự kiện cho mỗi control con trong nó.
2.4.3 Tạo các Control tùy chỉnh
Người phát triển có thể tạo ra các control theo ý của mình để tạo được một giao diện
mang tính duy nhất phù hợp với yêu cầu của người dùng. Các control mới cần phải được
thừa kế từ lớp View hoặc SurfaceView.

Lớp View cung cấp một đối tượng Canvas và một số phương thức vẽ cũng như các
lớp Paint, để tạo một giao diện trực quan.Người thiết kế có thể định nghĩa lại các sự kiện
người dùng như cảm ứng trên màn hình, nhấn phím để tạo nên sự tương tác.Trong những
trường hợp mà không đòi hỏi việc vẽ lại cũng như đồ họa 3D thì lớp cơ sở View có giải
pháp hiệu quả.
Trong khi đó, lớp SurfaceView cung cấp một đối tượng canvas hỗ trợ việc vẽ từ một
luồng xử lý nền và sử dụng openGL cho đồ họa 3D. Đây là một lựa chọn tuyệt với cho
các điều khiển đòi hỏi đồ họa cao, cần phải cập nhật liên tục hoặc hiển thị các đồ họa
phức tạp, như game 3D.
2.5 Tạo giao diện Activity với các View
Một Activity khi chưa thiết kế sẽ khởi động với một màn hình rỗng. Để thiết lập
giao diện cho màn hình rỗng này cần gọi phường thức setContentView khi everride lại
phương thức onCreate. Phương thức setContentView có thể nhận một tham số là resource
ID hoặc một thể hiện của View. Do đó, có thể định nghĩa giao diện ứng dụng bằng code
hoặc tham chiếu đến resource (layout).
Nếu dùng layout resource thì sẽ tách riêng việc thiết kế giao diện và phần code xử
lý, cung cấp một khả năng thay đổi linh hoạt giao diện mà không thay đổi code bên trong.
2.6 Menu
2.6.1 Menu trong Android
Menu đưa ra một giải pháp để tăng tính tiện dụng của ứng dụng mà không chiếm
dụng không gian trên màn hình. Mỗi một Activity có riêng cho nó một menu, được hiển
thị khi người dùng nhấn nút Menu.
Android cũng hỗ trợ menu ngữ cảnh, nó được gán vào bất kỳ View nào bên trong
một Activity.Một menu ngữ cảnh được hiển thị khi người dùng nhấn nút D-pad, trackball,

15


hoặc nhấn vào màn hình cảm ứng khoảng 3 giây.menu ngữ cảnh hỗ trợ submenu,
checkbox, radio button, shortcut key, và icon.

Các loại menu trong android:

• Icon Menu: được kết với menu, xuất hiện ở phần dưới của màn hình thiết bị khi nút
Menu được nhấn. Nó hiển thị icon và text cho các menu item hoặc các submenu. Icon
menu hỗ trợ tạo tối đa 6 menu item, và các menu item này không thể hiển thị checkbox,
radio button, hay shortcut key.

Hình 2.6. Icon menu
• Expanded Menu: hiển thị khi người dùng chọn More trong menu icon. Expand Menu
hiển thị một danh sách có thể cuộn được các menu item, và các menu item này không thể
chứa các icon mà chỉ có thể chứa text, shortcut key và checkbox/ radio button.

Hình 2.7. Expanded menu
• Submenu: mỗi submenu hiển thị bằng một cửa sổ, tên của submenu được hiển thị ở
thanh header và mỗi Menu item được hiển thị với đầy đủ text, checkbox, shortcut key và
không thể hiển thị icon cho các item. Android không hỗ trợ các submenu lồng nhau, vì
không thể thêm một submenu vào một submenu.

16


Hình 2.8. Submenu
2.6.2 Các kiểu Menu Item
Android hỗ trợ hầu hết các kiểu menu item truyền thống, bao gồm icon, shortcut,
checkbox, radio button:

• Checkbox và Radio button group: Để thiết lập một menu item là checkbox sử dụng
phương thức setCheckable, để thiết lập trạng thái của checkbox dùngsetChecked.
Một radio button group là một nhóm các radio button và chỉ có một trong số chúng
được chọn tại một thời điểm. Để tạo một radio button group, gán cùng ID nhóm cho mỗi

item, sau đó gọi phương thức Menu.setGroupCheckable, truyền vào ID nhóm, và thiết lập
giá trị cho các tham số khác là True.

• Shorcut Key: để chỉ định một keypad shortcut cho một Menu Item sử dụng phương thức
setShortcut. Phương thức này yêu cầu truyền vào 2 tham số, một là phím số và một là bàn
phím đầy đủ.
menuItem.setShortcut(‘0’, ‘b’);

• Condensed Title: dùng một text để hiển thị menu.
menuItem.setTitleCondensed(“Short Title”);

• Icon: biểu tượng chỉ được hiển thị trên Icon Menu
menuItem.setIcon(R.drawable.menu_item_icon).

• Menu Item Click Listener: khi một menu được chọn sẽ có một xử lý điều khiển. Đó là
phương thức onOptionsItemSelected.
menuItem.setOnMenuItemClickListener(new OnMenuItemClickListener() {
public boolean onMenuItemClick(MenuItem _menuItem) {
[ ...thực hiện xử lý ... ]

17


return true;
}
});

• Intent: Khi một menu item được chọn, Android sẽ thực thi startActivity với một đối
tượng Intent.
menuItem.setIntent(new Intent(this, MyOtherActivity.class));

2.6.3 Tạo một Menu
Để tạo một menu, trong Activity override phương thức onCreateOptionsMenu,
phương thức này được thực thiện ở lần đầu tiên khi menu được hiển thị.
onCreateOptionsMenunhận một tham số kiểu Menu. Dùng phương thức add trên đối
tượng Menu này để thêm vào các item. Mỗi menu item cần phải chỉ định các thuộc tính
sau:

• Nhóm mà item đó được thêm vào.
• ID, mỗi item có một ID duy nhất, bởi vì chúng được xử lý chung trong phương thức
onOptionsItemSelected nên việc xác định item nào được chọn là phụ thuộc vào ID được
chỉ định cho nó.

• Cách sắp xếp thứ tự mà item được hiển thị.
• Text thể hiện của item, có thể là một chuỗi các ký tự hoặc một string resource.

18


CHƯƠNG 3. KHẢO SÁT VÀ PHÂN TÍCH THIẾT KẾ HỆ
THỐNG ỨNG DỤNG
3.1. Mô tả hệ thống cơ sơ

Các ứng dụng hỗ trợ lưu trữ thông tin hay ghi nhớ hoạt động, thời gian đã
được tích hợp sẵn trong mỗi phiên bản hệ điều hành theo máy. Đồng hồ thời gian
hay lịch là nơi thể hiện thời gian tại nơi mà thiết đang hoạt đông mà người chủ cài
đặt vào. Nhiệm vụ chính của ứng dụng là thông báo thời gian và một số ghi chú cơ
bản cảu người sử dụng….
Thông tin hay ghi chú của người dùng được lưu trữ trong ứng dụng lịch là nơi
lưu trữ cơ bản nhằm chánh việc quên mất công việc hay ghi nhớ lại công việc đã
làm hay cần làm. Các thông tin được mô tả ngắn gọn như : công việc, thời gian …

3.2. Đánh giá hệ thống cơ sơ cu

Do đây chỉ là ứng dụng được tích hợp sẵn vào mỗi hệ điều hành của máy nên
còn nhiều vấn đề bất cập:
• Lưu trữ thông tin không thật sự đầy đủ
• Có khả năng tổn thất khi bị lỗi thiết bị hay mất thiết bị
• Gây bất tiện trong quản lý sổ sách thống kê
Chưa có tính năng sao lưu dẫn tới dễ mất hay thất thoát dữ liệu.
3.3. Yêu câu bài toán

Xuất phát từ một số nhược điểm đã nêu ra từ hệ thống được tích hợp sẵn nên
việc xây dựng một hệ thống ứng dựng có thể hỗ trợ hay khắc phục được nhược
điểm cơ bản của hệ thống có sẵn là điều cần thiết và hợp lý.
Hệ thống ứng dụng “quản lý công việc cá nhân” sẽ đáp ứng một số yêu cầu
sau:
-

Tự động hóa các thao tác sao lưu dữ liệu theo lịch hẹn giờ.
Thực hiện tính năng tìm nhanh.
Phần lưu trữ thông tin rộng để có thể lưu trữ thông tin một cách đầy đủ nhất.
Đưa ra các chức năng đơn giản mà dễ thực hiện như thêm, sửa, xóa thông
tin.

3.4. Phân tích thiết kế hệ thống chức năng

Muốn xây dựng thiết kế hệ thống “quản lý công việc cá nhân” thì vấn đề đầu
tiên chúng ta phải phân tích hệ thống nhằm tìm và lựa chọn giải pháp thích hợp,
biện pháp cụ thể.

19



Trong quá trình phân tích để chuyển từ bài toán thì các sơ đồ chức năng và sơ
đồ luồng dữ liệu giúp ta dễ dàng xác định được yêu cầu của người dùng. Giúp ta
nhìn tổng quát về cách quản lý, sử dụng thực tế và hệ thống của ta sẽ thiết kế.
Trong ứng dụng “quản lý công việc cá nhân” thiết bị android chỉ có tác dụng
lưu trữ thông tin một cách cơ bản để sử dụng. Còn lại thông tin lưu chính thức sẽ
được đồng bộ lên database cua hệ thống.
3.4.1. Hoạt động của hệ thống
Giới thiệu hoạt động của hệ thống
Công tác quản lý công việc được coi là ai cũng có và mất khá nhiều thời gian,
công sức với mục đích phục vụ bản thân một cách cơ bản với các nhu cầu thường
ngày một các có sự liên kết logic. Hoạt động cơ bản bao gồm:
Nhập công việc:
Khi chủ sở hữu có một công việc cần hoàn thành trong một thời gian đã biết
trước. Theo thông tin đã có người nhập thông tin sẽ kiểm tra tính đúng đắn của
thông tin trước khi nhập, sau đó nhập vào hệ thống để lưu trữ và đánh dấu thời gian
cần thực hiện.
Xóa công việc:
Khi chủ sở hữu đã nhập vào một công việc trước đó nhưng đã hoàn thành
trước đó hoăc không còn cần thực hiện công việc đó nữa khi đó người dùng sẽ xóa
đi thông tin đã nhập. Người dùng cần kiểm tra tính đúng đắn trước khi xóa, sau khi
xóa dữ liệu sẽ bị loại khỏi hệ thống.
Sửa công việc.
Vì một lý do nào đó mà người dùng có sự thay đổi trong công việc thì người
dùng sẽ thay đổi thông tin mà người dùng đã nhập vào trước đó. Người dùng cần
tìm tới thông tin đã nhập trước đó và kiểm tra tính đúng đắn của thông tin trước khi
muốn lưu thay đổi.
Phân loại công việc.
Để hỗ trợ cho việc tìm kiếm hệ thống sẽ có phần phần loại theo khu vực để

người dùng có thể dễ dàng sử dụng và tìm kiếm khi cần
3.4.2. Các chức năng của hệ thống
-

Quản lý công việc
Quản lý thông tin công việc
Tìm kiếm
Thêm công việc
Sửa công việc
20


- Xóa công việc
- Sao lưu công việc
3.4.3. Phân tích chức năng
Để diễn tả tập hợp các chức năng xử lý trong mối quan hệ theo một tiến trình
của hệ thống, chúng ta sử dụng các yếu tố hợp thành sau để giúp quá trình phân
tích, thiết kế, trao đổi dữ liệu có hiệu quả
3.4.4. Sơ đồ phân cấp chức năng

3.4.5. Phân tích chức năng chính
Chức năng quản lý thông tin công việc:

21


Chức năng quản lý thông tin công việc gồm:
-

Xem công việc: xem thông tin của các công việc đã nhập vào hệ thống.

Sửa công việc: sửa thông tin của công việc đã nhập vào hệ thống.
Xóa công việc: xáo thông tin của công việc đã nhập vào hệ thống.
Đồng bộ: Đồng bộ hóa dữ liệu công việc trên máy và dự liệu trên database
hệ thống

Chức năng tài khoản:

Chức năng tài khoản gồm:
- Đăng ký: Đăng ký và thêm mưới tài khoản vào hệ thồng
- Đăng nhập: Đăng nhập vào hệ thống với tài khoản đã tồn tại
- Quên mật khẩu: Cấp lại mật khẩu với tài khoản đã tồn tại bằng cách xác
thực email
Chức năng quản lý công việc:

Chức năng quản lý công việc gồm:
- Thêm công việc: thêm công việc cần thực hiện vào hệ thống.
- Sửa công việc: sửa thông tin của công việc đã nhập vào hệ thống.
- Xóa công việc: xáo thông tin của công việc đã nhập vào hệ thống.
22


CHƯƠNG 4. CÀI ĐẶT CÔNG CỤ VÀ XÂY DỰNG ỨNG DỤNG
4.1 Giới thiệu công cụ.

Android Studio là môi trường phát triển tích hợp (IDE) chính thức dành cho
phát triển nền tảng Android
Nó được ra mắt vào ngày 16 tháng 5 năm 2013 tại hội nghị Google I/O.
Android Studio được phát hành miễn phí theo giấy phép Apache Licence 2.0.
Android Studio ở giai đoạn truy cập xem trước sớm bắt đầu từ phiên bản 0.1
vào tháng 5/2013, sau đó bước vào giai đoạn beta từ phiên bản 0.8 được phát hành

vào tháng 6 năm 2014.Phiên bản ổn định đầu tiên được ra mắt vào tháng 12 năm
2014, bắt đầu từ phiên bản 1.0.
Dựa trên phần mềm intellij IDEA của JetBrains, Android Studio được thiết kế
đặc biệt để phát triển ứng dụng Android. Nó hỗ trợ các hệ điều hành Windows.
Mac OS X, linux và là IDE chính thức của Google để phát triển ứng dụng Android
gốc để thay thế cho Android Development Tools (ADT) dựa trên Eclipse.

Hình 4.9. Biểu tượng ứng dụng android studio.
4.2 Giới thiệu sơ lược về ngôn ngữ sử dụng.

Lịch sử phát triển:
-

1990: Ngôn ngữ Oak được tạo ra bởi James Gosling trong dự án Green của
Sun MicroSystems nhằm phát triển phần mềm cho các thiết bị dân dụng.

-

1995: Oak đổi tên thành Java.

-

1996: trở thành chuẩn công nghiệp cho Internet.

Đặc điểm:
23


-


Ngôn ngữ hoàn toàn hướng đối tượng (Pure OOP).

-

Ngôn ngữ đa nền: "Viết một lần , Chạy trên nhiều nền”.

-

Ngôn ngữ đa luồng (multi-threading): xử lý và tính toán song song.

-

Ngôn ngữ phân tán (distributed): cho phép các đối tượng của một ứng dụng
được phân bố và thực thi trên các máy tính khác nhau.

-

Ngôn ngữ động: cho phép mã lệnh của một chương trình được tải từ một
máy tính về máy của người yêu cầu thực thi chương trình.

-

Ngôn ngữ an toàn: hạn chế các thao tác nguy hiểm cho máy tính thật.

-

Ngôn ngữ đơn giản, dễ học, kiến trúc chương trình đơn giản, trong sáng.

Khả năng:
- Ngôn ngữ bậc cao.

- Có thể được dùng để tạo ra các loại ứng dụng để giải quyết các vấn đề về số,
xử lý văn bản, tạo ra trò chơi, và nhiều thứ khác.
- Có các thư viện hàm hỗ trợ xây dựng giao diện (GUI) như AWT, Swing, …
- Có các môi trường lập trình đồ họa như JBuilder, NetBeans, Eclipse, …
- Có khả năng truy cập dữ liệu từ xa thông qua cầu nối JDBC
- Hỗ trợ các lớp hữu ích, tiện lợi trong lập trình các ứng dụng mạng (Socket)
cũng như truy xuất Web hay nhúng vào trong trang Web (Applet).
- Hỗ trợ lập trình phân tán (Remote Method Invocation) cho phép một ứng
dụng có thể được xử lý phân tán trên các máy tính khác nhau.
- Lập trình trên thiết bị cầm tay (J2ME).
- Xây dựng các ứng dụng trong môi trường xí nghiệp (J2EE) ...
4.3 Hướng dẫn cài đặt

1- Download Android Studio

24


Hình 4.10. Link download Android Studio

2- Các cài đặt đòi hỏi

Hình 4.11. Cài đặt môi trường java
3- Cài đặt Android Studio

25


×