Với sự phát triển nhanh chóng của khoa học công nghệ và đặc biệt là ngành công nghệ thông tin, làm từng bước thay đổi cuộc sống của con người bởi các ứng dụng sản phẩm của công nghệ. Đi cùng với sự phát triển của ngành công nghệ thông tin là sự ra đời ngày càng nhiều thiết bị cầm tay, smartphone. Nhu cầu của con người về việc sử dụng và giải trí trên các thiết bị di động cũng ngày càng cao và đa dạng. Một trong những bộ phận ứng dụng công nghệ thông tin chính là thay đổi và giúp đỡ việc sinh hoạt hàng ngày của mọi người trong cuộc sống. Vì vậy em đã lựa chọn đề tài “APP TEST trắc nghiệm” để làm đồ án với ý nghĩa mang tính thực tế. Với mong muốn người dùng có thể ôn lại những kiến thức mình đã học một cách tốt nhất, những kiến thức quan trọng và sẽ làm bài đạt kết quả cao trong các kỳ thi…vv Trong thời gian làm đồ án em đã gặp không ít khó khăn nhưng được sự giúp đỡ hướng dẫn tận tình của các thầy giáo,cô giáo trong bộ môn. Em xin chân thành cảm ơn thầy giáo Hồ Ngọc Vinh – người trực tiếp hướng dẫn đã tận tình hướng dẫn và giúp đỡ em hoàn thành đồ án.
Trang 1TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT VINH
KHOA CÔNG NGHỆ THÔNG TIN
BỘ MÔN KHOA HỌC MÁY TÍNH
Sinh viên (nhóm SV): Lương Thị Hương
Nguyễn Văn Diện
Trang 2TRƯỜNG ĐẠI HỌC SPKT VINH
KHOA CÔNG NGHỆ THÔNG TIN
BỘ MÔN: KHOA HỌC MÁY TÍNH
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập - Tự do - Hạnh phúc
PHIẾU GIAO ĐỒ ÁN MÔN HỌC MÔN HỌC: PHÁT TRIỂN ỨNG DỤNG DI ĐỘNG
Nhóm sinh viên:
1 Lương Thị Hương 0905140249 0972662401 luongthihuong2401@gmail.com
2 Nguyễn Văn Diện 0905140768 0164400174
8
nguyensydien853@gmail.com
Lớp: DHCTTCK09Z: Đại học Công nghệ Thông tin K9
Ngày giao đồ án: ./ /2017 Ngày hoàn thành: / /2017
1 Tên đề tài: Cài đặt ứng dụng app test trắc ngiệm ( các câu hỏi kiểm tra) trên hệ điều
hành android
2 Nhiệm vụ đồ án:
Yêu cầu 1: Ngôn ngữ sử dụng: JAVA, máy ảo genimotion, phần mềm Android Studio, csdl có thể là firefox hoặc sqlite.
Yêu cầu 2: Phân tích yêu cầu và xây dựng phần mềm bao gồm:
o Mục đích, yêu cầu của ứng dụng
o Phân tích và xây dựng CSDL
o Phân tích và xây dựng hệ thống chức năng
Yêu cầu 3: Giao diên người dùng và mỹ thuật:
o Giao diện dễ sử dụng, có tính khoa học, thân thiện với người dùng
o Phối màu sắc, font chữ phù hợp
3 Báo cáo và chương trình:
- Báo cáo thuyết minh trình bày bằng Slide (5-10 slide)
- Chương trình: ghi vào đĩa CD để nạp
4 Theo dõi quá trình thực hiện đồ án
Ngày Tiến độ công việc (yêu cầu ghi rõ Nhận xét của GVHD Chữ ký của
Trang 3kiểm tra các nội dung đã hoàn thành) GVHD / /
TỔ TRƯỞNG BỘ MÔN GIÁO VIÊN HƯỚNG DẪN SINH VIÊN THỰC HIỆN
ThS Vũ Thị Thu Hiền TS Hồ Ngọc Vinh SV.Lương Thị Hương
Nguyễn Văn Diện
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
Trang 4
TP.Vinh, ngày tháng năm 2017 GIÁO VIÊN HƯỚNG DẪN (Ký, ghi rõ họ tên) TS.Hồ Ngọc Vinh NHẬN XÉT CỦA GIÁO VIÊN CHẤM ĐIỂM
TP.Vinh, ngày tháng năm 2017
GIÁO VIÊN CHẤM ĐIỂM
(Ký, ghi rõ họ tên)
Mục lục
Trang 5LỜI CẢM ƠN 6
CHƯƠNG 1: KHẢO SÁT HỆ THỐNG 7
1.1.Mô tả hệ thống 7
1.1.1.Nhiệm vụ cơ bản 7
1.1.2.Cơ cấu tổ chức 8
1.1.3.Quy trình xử lý 8
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 9
2.1 Tổng quan về UML 9
2.1.1 UML là gì? 9
2.1.2 Các sơ đồ lớp 9
2.1.3 Kiến trúc của hệ thống 10
2.1.4 Sơ đồ Use Case ( Use Case diagram) 11
2.1.5 Sơ đồ lớp 12
2.1.6 Sơ đồ tuần tự 14
2.2 Môi trường phát triển 14
2.2.1 Lịch sử về hệ điều hành Android 14
2.2.2.Tổng quan cấu trúc của Android 15
2.2.3 Dalvik delving với máy ảo 17
2.2.4 Các thành phần trong ứng dụng Android 17
2.4.5 Lệnh trong sqlite 22
CHƯƠNG 3: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 24
3.1.Phân tích hệ thống về chức năng 24
3.1.1 Biều đồ lớp 24
3.1.2.Biều đồ ca sử dụng 25
3.1.3.Biểu đồ tuần tự 27
3.1.4.Biểu đồ trạng thái 28
3.1.5.Biểu đồ hoạt động 28
3.1.6.Đặc tả ca sử dụng 30
3.2.Phân tích hệ thống về dữ liệu 30
3.3.Thiết kế tiến trình hệ thống 31
CHƯƠNG 4: CÀI ĐẶT HỆ THỐNG 32
4.1 Giao diện chính 32
4.2 Chọn đề thi 33
Trang 64.3 Làm bài 34
4.4 Danh sách câu trả lời và chưa trả lời 34
4.5 Kết thúc bài làm 35
4.6 Lưu điểm 35
4.7 Danh sách điểm 35
4.8 Tìm kiếm 36
4.9 Thoát 36
KẾT LUẬN 37
5.1 Đề tài đạt được một số kết quả sau: 37
5.2.Hạn chế 37
5.3.Hướng phát triển 37
TÀI LIỆU THAM KHẢO 38
LỜI CẢM ƠN
Trang 7Với sự phát triển nhanh chóng của khoa học công nghệ và đặc biệt là ngành công nghệ thông tin, làm từng bước thay đổi cuộc sống của con người bởi các ứng dụng sản phẩm của công nghệ Đi cùng với sự phát triển của ngành công nghệ thông tin là sự ra đời ngày càng nhiều thiết bị cầm tay, smartphone Nhu cầu của con người về việc sử dụng và giải trí trên các thiết bị di động cũng ngày càng cao và đa dạng Một trong những bộ phận ứng dụng công nghệ thông tin chính là thay đổi và giúp đỡ việc sinh hoạt hàng ngày của mọi người trong cuộc sống Vì vậy em đã lựa chọn đề tài “APP TEST trắc nghiệm” để làm đồ án với ý nghĩa mang tính thực tế.
Với mong muốn người dùng có thể ôn lại những kiến thức mình đã học một cách tốtnhất, những kiến thức quan trọng và sẽ làm bài đạt kết quả cao trong các kỳ thi…vv! Trong thời gian làm đồ án em đã gặp không ít khó khăn nhưng được sự giúp đỡ hướng dẫn tận tình của các thầy giáo,cô giáo trong bộ môn Em xin chân thành cảm ơnthầy giáo Hồ Ngọc Vinh – người trực tiếp hướng dẫn đã tận tình hướng dẫn và giúp đỡ
Trang 8CHƯƠNG 1: KHẢO SÁT HỆ THỐNG 1.1.Mô tả hệ thống
1.1.1.Nhiệm vụ cơ bản
- Xây dựng giao diện Menu, giao diện test bài trắc nghiệm
- Thiết kế giao diện cho phép xử lý các chức năng chính
- Thiết kế giao diện chương trình chính thực hiện các công việc:
+ Tổng hợp các câu hỏi (chia ra làm nhiều đề với từng môn cụ thể như:Toán, Sinh, english….) với các mốc thời gian 30 -45 phút…
+ Kiểm tra những câu đã trả lời – chưa trả lời
+ Tự chấm điểm khi thời gian kết thúc -> Hiển thị kết quả
+ Người làm bài xem bài mình làm, thay đổi đáp án nếu mình thấy là sai -> Xem kết quả -> Lưu điểm -> Xóa điểm -> Thoát
+ Xem danh sách điểm những người làm bài có lưu điểm lại (các bài Test qua)
+ Tìm kiếm câu hỏi
1.1.2.Cơ cấu tổ chức
Hệ thống
Đăng nhập vào hệ thống sử dụng chương trình
Quản lý các đề thi các môn học, thêm các đề thi, sửa, xóa, thay đổi các câu hỏi trong từng đề thi
Xem danh sách điểm
Thoát khỏi người dùng hiện tại: Thoát khỏi hệ thống chương trình
Giao diện với người dùng:
Hiển thị tất cả các môn học
Hiển thị tất cả các đề thi của từng môn học
Hiển thị các câu hỏi cho từng đề thi: Có kết thúc giờ làm bài, kiểm tra kết quả cho từng đề thi
Có chức năng tìm kiếm các câu trong trong đề thi
Hiển thị danh sách điểm (nếu lưu điểm làm bài)
1.1.3.Quy trình xử lý
Làm bài test
Bước 1: Vào giao diện chính
Bước 2: Tìm đến môn học mình cần kiểm tra, chọn đề thi làm bài test
Bước 3: Làm bài kiểm tra và kiểm tra kết qủa
Bước 4: Có thể lưu kết quả (điểm) hoặc không
Trang 9CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 Tổng quan về UML
2.1.1 UML là gì?
UML là ngôn ngữ mô hình hóa,ngôn ngữ đặc tả và ngôn ngữ xây dựng mô hình trong quá trình phát triển phần mềm- đặc biệt là phân tích,thiết kế hệ thống hướng đối tượng
2.1.2 Các sơ đồ lớp
Sơ đồ lớp ( Class Diagram)
Mô tả cấu trúc tĩnh, mô tả mô hình khái niệm bao gồm các lớp đối tượng và cácmối quan hệ của chúng trong hệ thống hướng đối tượng Nó được sử dụng để hiện thị các lớp và gói các lớp cùng các mối quan hệ của chúng Sơ đồ lớp giúp người phát triển phần mềm quan sát và lập kế hoạch cấu trúc hệ thống trước khi lập trình
Nó đảm bảo rằng hệ thống được thiết kế tốt ngay từ đầu
Sơ đồ lớp có thể chứa nhiều loại lớp khác nhau, chúng có thể là những lớp thông thường, lớp tham số hóa, lớp hiện thực, lớp tiện ích, và lớp metaclass ( siêu lớp)
Sơ đồ đối tượng (Object Diagram)
Bao gồm một tập hợp các đối tượng và mối quan hệ giữa chúng Đối tượng là một thể hiện của lớp, sơ đồ đối tượng là một thể hiện của sơ đồ lớp
Sơ đồ Use Case ( Use Case Diagram)
Khái niệm actor: là những người dùng(tác nhân) hay hệ thống khác ở bên ngoài phạm vi của hệ thống mà có tương tác với hệ thống
Sơ đồ Use case bao gồm một tập hợp các Use case, các actor và thể hiện mối quan hệ tương tác giữa actor và Use case Nó rất quan trọng trong việc tổ chức và mô hình hóa hành vi của hệ thống
Sơ đồ tuần tự (Sequence Diagram)
Là một dạng biểu đồ tương tác (interaction), biểu diễn sự tương tác giữa các đối tượng theo thứ tự thời gian Nó mô tả các đối tượng liên quan trong một tình huống cụ thể và các bước tuần tự trong việc trao đổi các thông báo(message) giữa các đối tượng
đó để thực hiện một chức năng nào đó của hệ thống
Sơ đồ cộng tác (Collaboration)
Gần giống như sơ đồ Sequence, sơ đồ hợp tác là một cách khác để thể hiện một tình huống có thể xảy ra trong hệ thống Nhưng nó tập trung vào việc thể hiện việc trao
Trang 10đổi qua lại các thông báo giữa các đối tượng chứ không quan tâm đến thứ tự của các thông báo đó Có nghĩa là qua đó chúng ta sẽ biết được nhanh chóng giữa 2 đối tượng
cụ thể nào đó có trao đổi những thông báo gì cho nhau
Sơ đồ trạng thái (Statechart)
Chỉ ra một máy chuyển trạng thái, bao gồm các trạng thái, các bước chuyển trạngthái và các hoạt động Nó đặc biệt quan trọng trong việc mô hình hóa hành vi của một lớp giao diện(interface class) hay hợp tác và nó nhấn mạnh vào các đáp ứng theo sự kiện của một đối tượng, điều này rất hữu ích khi mô hình hóa một hệ thống phản ứng(reactive)
Sơ đồ triển khai
Chỉ ra cách bố trí vật lý các thành phần theo kiến trúc được thiết kế của hệ thống
2.1.3 Kiến trúc của hệ thống
Khi xem xét một hệ thống, chúng ta cần xây dựng các mô hình từ những khía cạnh khác nhau, xuất phát từ thực tế là những người làm việc với hệ thống với những vai trò khác nhau sẽ nhìn hệ thống từ những khía cạnh khác nhau
UML xét hệ thống trên 5 khía cạnh:
Trang 11Hình : Kiến trúc hệ thống
Use Case view: Mô tả cách ứng xử của hệ thống.
Logical view: Mô tả các đối tượng.
Process view: Mô tả việc đồng bộ hoá và các xử lý đồng thời.
Implementation view: Mô tả sự phụ thuộc và kết hợp giữa các
component
Deployment view: Chỉ ra cấu hình phần cứng.
2.1.4 Sơ đồ Use Case ( Use Case diagram)
Mô tả toàn cảnh hệ thống, đơn giản và ít ký hiệu
Mục đích của sơ đồ Use Case
a Mô hình hoá chuỗi hành động
b Cung cấp tổng thể hệ thống
c Đưa ra cơ sở để xác định giao tiếp giữa người, máy đối với hệ thống
d Mô hình hoá cho một Use Case
e Cho người dùng hiểu và giao tiếp với hệ thống
f Làm cơ sở cho phát thảo các đặc tả kiểm tra
Các ký hiệu cơ bản
Trang 12Khái niệm Ký hiệu Ý nghĩa
Actor Người dùng hệ thống, một hệ thống khác hoặc một
sự kiện thời gian
Actor có thể: Chỉ cung cấp thông tin cho hệ thống, chỉ lấy thông tin từ hệ thống, hoặc nhận thông tin từ
hệ thống và cung cấp thông tin cho hệ thống
Use Case Là một khối chức năng được thực hiện bởi hệ thống
để mang lại một kết quả có giá trị đối với một Actor nào đó
Quy ước đặt tên Use Case: động từ đi trước, danh từ hoặc cụm từ theo sau
Relationship Quan hệ giữa các phần tử trong mô hình, bao gồm
kết hợp (association), tổng quát hoá (generalization)
Include Một Use Case có thể có chức năng của một Use Case
khác
Extend Dùng để chỉ các hành vi tự chọn (có thể hoặc không),
các hành vi theo điều kiện nhất định
2.1.5 Sơ đồ lớp
Khái niệm
Đối tượng (Object)
Mô hình hoá một vật hoặc một khái niệm trong thế giớithực
Một đối tượng có các đặc điểm như: Trạng thái (state), ứng
xử (behavior), định danh (indentity)
Lớp (class)
Là tập hợp các đối tượng có chung các thuộc tính, các ứng xử
và ngữ nghĩa
Là một khuôn mẫu để tạo ra đối tượng
Đối tượng là một thể hiện của một lớp
Gói ( package)
Là tập hợp các lớp hay các gói có liên quan với nhau
Sơ đồ lớp ( Class diagram)
Cung cấp một bức tranh mô tả một số hoặc tất cả các lớp trong
mô hình
Trang 13 Thể hiện cấu trúc và ứng xử của một hay nhiều lớp.
Thể hiện mối quan hệ thừa kế giữa các lớp
Các thuộc tính Tên lớp
Các thao tác
Trang 14 Lập mô hình tương tác đối tượng.
Hiện thực hoá Use Case
Lập mô hình các kịch bản sử dụng của Use Case
Khám phá tính logic của một phép toán, hàm hay thủ tục phứctạp
Thông tin
điệp
Thủ tục
Đường sinh
Trang 15Hiện tại có khoảng 250,000 ứng dụng cho Android OS và vào khoảng 375,000 ứngdụng đã được đệ trình, điều này khiến Android trở thành hệ điều hành di động có môi trường phát triển lớn thứ 2 Các nhà phát triển viết ứng dụng cho Android dựa trên ngôn ngữ Java Sự ra mắt của Android vào ngày 5 tháng 11 năm 2007 gắn với sự thành lập của liên minh thiết bị cầm tay mã nguồn mở, bao gồm 78 công ty phần cứng,phần mềm và viễn thông nhằm mục đích tạo nên một chuẩn mở cho điện thoại di độngtrong tương lai Google công bố hầu hết các mã nguồn của Android theo bản cấp phép Apache Hệ điều hành Android bao gồm 12 triệu dòng mã; 3 triệu dòng XML, 2.8 triệu dòng mã C, 2.1 triệu mã Java và 1.75 triệu dòng mã C++.
Các nhà sản xuất liên tục cho ra những mẫu điện thoại cực kỳ tối tân, mạnh mẽ TuySymbian chỉ mới được biết đến từ cuối thập niên 90, nhưng tuổi đời phát triển chẳngthua kém vòng đời phát triển của hệ điều hành Windows đang sử dụng là bao Tháng6/1998, Symbian ra đời tại London (Anh), tiền thân của sản phẩm này là một phầnmềm của Psion Sau đó, lần lượt Nokia, Motorola, Ericsson đều mua cổ phần chung sởhữu sử dụng nền tảng này
a Windows Phone 7
Windows Phone 7 là một hệ điều hành di động được phát triển bởi Microsoft, và
là sự kế thừa để bởi nền tảng Windows Mobile Ra mắt tại châu Âu, Singapore và Úcvào ngày 21 Tháng Mười năm 2010, tại Mỹ và Canada vào ngày 08 Tháng Mười Mộtnăm 2010, với châu Á có thể trong năm 2011.Với Windows Phone 7, Microsoft cungcấp một Metro giao diện người dùng mới, tích hợp các hệ điều hành với các dịch vụkhác của Microsoft và kế hoạch kiểm soát chặt chẽ phần cứng mà chạy trên nền tảngnày
b IOS
IOS là hệ điều hành của Apple Ban đầu được cài trên điện thoại Iphone, sau đóphát triển và trở thành hệ điều hành trên ipod touch, ipad và Apple tv Apple không cóphép hệ điều hành này chạy trên phần cứng của bên thứ 3
c BlackBerry
Giống như Windows Mobile, những chiếc BlackBerry của RIM được chỉ định làthiết bị dành cho doanh nhân, nhưng gần đây đã có những thay đổi để hướng tới ngườidùng bình dân Nền tảng này tương đối trực quan và dễ sử dụng, cung cấp cho ngườidùng một server e-mail, hỗ trợ việc gửi và nhận tin nhắn nhanh
2.2.2.Tổng quan cấu trúc của Android
Nói một cách đơn giản thì Android bao gồm ba thành phần:
1.Một hệ điều hành mở, miễn phí cho các thiết bị di động
2.Một nền tảng mã nguồn mở cho phát triển các ứng dụng
3.Thiết bị chạy hệ điều hành Android và các ứng dụng Adroid
Android software development kit (SDK):
Trang 16Bộ SDK của Android bao gồm mọi thứ cần thiết để có thể lập trình, debug, test ứng dụng Android.
Android API: Cốt lõi của bộ SDK là thư viện các hàm API và Google cũng chỉ sử
dụng bộ API này để xây dựng các ứng dụng có sẵn cho Android
Development tool: SDK bao gồm rất nhiều công cụ để giúp biên dịch, sửa lỗi và hỗ
trợ trong việc lập trình ứng dụng
Android Emulator: Trình giả lập thiết bị chạy Android thực sự với nhiều Skin thay
thế, cực kì tiện lợi cho việc test ứng dụng Android ngay trên máy tính mà không cần phải thông qua một thiết bị chạy Android thực
Tài liệu: SDK bao gồm một bộ tài liệu rất chi tiết, giải thích cặn kẽ chính xác những gì
bao gồm trong mỗi page, class cùng với cách sử dụng Ngoài tài liệu về “code”, còn cónhững tài liệu dùng để “getting started” và giải thích các nguyên tắc và cơ chế hoạt động của ứng dụng trong Android
Code mẫu: SDK bao gồm các ứng dụng mẫu đơn giản minh họa cho các tính năng nổi
bật trên android, cũng như các ứng dụng demo cách sử dụng các tính năng của bộ API
Kiến trúc ứng dụng:
Ý tưởng của Android là việc khuyến khích tái sử dụng lại các thành phần đã có,cho phép ứng dụng có thể chia sẻ Activity, Service, dữ liệu với các ứng dụng khác nhau trong giới hạn đặt ra
Sau đây là kiến trúc của mọi ứng dụng Android:
Activity Manager: Kiểm soát vòng đời của Activity.
View: Xây dựng giao diện người dùng cho Activity.
Notification Manager: Cung cấp một cơ chế thống nhất và an toàn để ứng dụng có thể
đưa ra các thông báo cho người dùng
Content Provider: Giúp trao đổi và chia sẽ dữ liệu giữa các ứng dụng với nhau.
Resource Manager: Hỗ trợ quản lý các tài nguyên không là code như các chuỗi, hình
ảnh, và âm thanh…
Các thư viện của Android:
Android cung cấp các gói API để phát triển ứng dụng Sau đây là các API mà tất cả các thiết bị Android đều tối thiểu phải hỗ trợ để giúp cho chúng ta một cái nhìn tổng quát về thư viện này
Android.util: Gói API lõi, chứa các class cấp thấp như container, string formatter, XML parsing
Android.os: Truy cập tới chức năng của hệ điều hành như gửi và nhận tin nhắn, giao tiếp nội bộ giữa các ứng dụng, thời gian…
Android.graphics: Cung cấp các lớp liên quan tới xử lý đồ họa ở mức thấp Hỗ trợ các hàm cơ bản như vẽ điểm, vẽ miền, tô màu, trên khung canvas
Trang 17Android.text: Cung cấp các hàm phân tích và xử lý chuỗi.
Android.database: Cung cấp các lớp cấp thấp cần thiết để làm việc với database
Android.content: Dùng để quản lý các tài nguyên, các nội dung và các gói
Android.view: Views là lớp cha của mọi lớp giao diện người dùng
Android.widget: Được thừa kế từ lớp View, bao gồm các lớp cơ bản để xây dựng giao diện widget như: list, button, layout
Android.map: Gói API cấp cao, dùng để truy cập tới các chức năng của GoogleMap.Android.app: Gói API cấp cao, bao gồm các Activity và Service – hai lớp cơ sở cho mọi ứng dụng Android
Android.telephony: Cung cấp khả năng tương tác trực tiếp với các chức năng cơ bản của một điện thoại như nghe, gọi, tin nhắn
Android.webkit: Cung cấp một webView control trên nền webkit để có thể nhúng ứng dụng, cùng với các API điều khiển cơ bản như stop, refresh, cookieManager…
2.2.3 Dalvik delving với máy ảo
Dalvik là máy ảo giúp các ứng dụng Java chạy được trên các thiết bị di động Android 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 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à tổ tiên của ông sinh sống
Từ góc nhìn của một nhà phát triển thì Dalvik trông giống như máy ảo java (Java Virtual Machine) nhưng thực tế thì hoàn toàn khác Khi nhà phát triển viết một ứng dụng dành cho android, sẽ thực hiện các đoạn mã trong môi trường Java Sau đó,
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à dex Đâ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ắc của “Dalvik executable” đóng vai trò như cơ chế thực thi các ứng dụng Java
2.2.4 Các thành phần trong ứng dụng Android
Android project là một hệ thống thư mục file chứa toàn bộ source code, tài nguyên… mà mục đích cuối cùng là để đóng gói thành một file apk duy nhất
Trong một thư mục project, có một số thành phần (file, thư mục con) được tạo
ra mặc định, còn lại phần lớn sẽ được tạo ra sau nếu cần trong phát triển ứng dụng
Trang 18Các thành phần trong một Android project
Src/: Chứa toàn bộ source code (file java hoặc aidl)
Bin/: Thư mục chứa file Output sau khi build Đây là nơi có thể tìm thấy file apk
Gen/: Chứa file java tạo ra bởi ADT plug-in, như là file R.java hoặc các giao diện
tạo ra từ file AIDL
Res/: Chứa các tài nguyên (resource) cho ứng dụng chẳng hạn như file hình ảnh,
file layout, các chuỗi (string)…Dưới đây là các thư mục con của nó
- Anim/: Chứa các file xml dùng cho việc thiết lập các hiệu ứng động (animation).
- Color/: Chứa các file xml dùng định nghĩa màu sắc.
- Drawable/: Chứa hình ảnh (png, jpeg, gif), file xml định nghĩa cách vẽ các loại
hình dạng khác nhau (shape)
- Layout/: Chứa file xml dùng để xây dựng giao diện người dùng.
- Menu/: Chứa file xml quy định application menu.
- Raw/: Chứa các file media, chẳng hạn như mp3, ogg
Trang 19- Values/: Chứa file xml định nghĩa các giá trị Khác với các resource trong thư mục
khác, resource ở thư mục này khi định danh trong lớp R thì sẽ không sử dụng filename để định danh mà sẽ được định danh theo quy định bên trong file xml đó
- Xml/: Dùng chứa các file xml khác, chẳng hạn như file xml quy định app widget,
search metadata,…
Libs/: Chứa các thư viện riêng.
AndroidManifest.xml/: File kiểm soát các thành phần trong ứng dụng như: activity,
service, intent, receiver… tương tác với nhau, cách ứng dụng tương tác với ứng dụngkhác, cũng như đăng kí các quyền hạn về sử dụng tài nguyên trong máy
Build.properties/: Tùy chỉnh các thiết lập cho hệ thống build, nếu bạn sử dụng
Eclipse thì file này không cần thiết
Build.xml/: Chỉ sử dụng khi dùng dòng lệnh để kiến tạo project.
Default.properties/: File này chứa các thiết lập cho project, chẳng hạn như build
target, min SDK
2.3 Ngôn ngữ lập trình java
2.3.1 Giới thiệu
Java là một ngôn ngữ lập trình dạng lập trình hướng đối tượng(OOP) Khác với
phần lớn ngôn ngữ lập trình thông thường, thay vì biên dịch mã nguồn thành mã máy hoặc thông dịch mã nguồn khi chạy, Java được thiết kế để biên dịch mã nguồn thành bytecode, bytecode sau đó sẽ được môi trường thực thi chạy Bằng cách này, Java thường chạy chậm hơn những ngôn ngữ lập trình thông dịch khác như C++, PHP, C# Vào năm 1991, một nhóm các kỹ sư của Sun Microsystems có ý định thiết kế một ngôn ngữ lập trình để điều khiển các thiết bị điện tử như tivi, máy giặt, lò nướng Mặc
dù C và C++ có khả năng làm việc này nhưng trình biên dịch lại phụ thuộc vào từng loại CPU
Trình biên dịch thường phải tốn nhiều thời gian để xây dựng nên rất đắt, vì vậy để mỗi loại CPU có một trình biên dịch riêng là rất tốn kém Do đó nhu cầu thực tế đòi hỏi một ngôn ngữ chạy nhanh, gọn, hiệu quả và độc lập thiết bị tức là có thể chạy trên nhiều loại CPU khác nhau, dưới các môi trường khác nhau “Oak” đã ra đời và vào năm 1995 được đổi tên thành Java