Tải bản đầy đủ (.pdf) (87 trang)

Xây dựng và phát triển ứng dụng thiết kế ảnh nghệ thuật kết hợp với sử dụng các câu danh ngôn trên nền tảng android

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.95 MB, 87 trang )

 LỜI CẢM ƠN

Lời đầu tiên, em xin gửi lời cảm ơn sâu sắc đến thầy giáo TS Nguyễn Văn
Núi – bộ môn công nghệ phần mềm đã định hướng và tận tình giúp đỡ, động viên
em trong quá trình thực hiện đồ án. Thầy luôn luôn theo sát chỉ bảo và định hướng
để em hoàn thành đề tài một cách tốt nhất. Em xin chân thành cảm ơn thầy!
Em xin cảm ơn những người bạn và gia đình đã động viên, giúp đỡ để em
phấn đấu vượt qua khó khăn trong quá trình học tập và rèn luyện tại Trường Đại
học Công nghệ Thông tin và Truyền thông.
Đồ án tốt nghiệp là cơ hội để em có thể áp dụng, tổng kết lại những kiến
thức mà mình được học. Đồng thời, em rút ra được những kinh nghiệm thực tế và
quý giá trong suốt quá trình thực hiện đồ án. Sau một thời gian khá dài, em tập
trung công sức cho đồ án và làm việc tích cực, đặc biệt nhờ sự chỉ đạo và hướng
dẫn tận tình của thầy Nguyễn Văn Núi cùng với các thầy cô trong trường Đại học
Công nghệ thông tin và truyền thông – Đại học Thái Nguyên, đã giúp em hoàn
thành đồ án một cách thuận lợi và gặt hái được những kết quả như mong muốn.
Cuối cùng, em xin cảm ơn tất cả thầy cô giáo Trường Đại học Công nghệ
Thông tin và Truyền thông đã dạy dỗ, chỉ bảo những kiến thức, tri thức khoa học
và những bài học kinh nghiệm trong suốt quá trình học tập, rèn luyện tại trường, đề
em chuẩn bị thật tốt kiến thức và hành trang trong cuộc sống.
Kính chúc quý thầy cô mạnh khỏe, tiếp tục đạt được nhiều thắng lợi trong
nghiên cứu khoa học và sự nghiệp trồng người.

 Em xin chân thành cảm ơn!
 Sinh viên
 Hoàng Văn Lục

1


LỜI CAM ĐOAN


Em xin cam đoan toàn bộ nội dung trong đồ án này là do tự em đọc và
nghiên cứu các tài liệu, khảo sát các phần mềm hiện nay. Từ đó viết ra cơ sở lý
thuyết và xây dựng chương trình “Xây dựng và phát triển ứng dụng thiết kế ảnh
nghệ thuật kết hợp với sử dụng các câu danh ngôn trên nền tảng android”.
Mọi nguồn tham khảo, trích dẫn trong đồ án đều được ghi rõ nguồn gốc.
Người cam đoan

Hoàng Văn Lục

2


MỤC LỤC
LỜI CẢM ƠN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
LỜI CAM ĐOAN. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
MỤC LỤC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
DANH MỤC HÌNH. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
MỞ ĐẦU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.1 Tổng quan về hệ điều hành android. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.1.1 Lịch sử Android. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.1.2 Các phiên bản HĐH Android . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.1.3 Đặc điểm. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.1.4 Kiến trúc tổng quát của hệ điều hành Android . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.1.5 Chu kỳ ứng dụng android. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.2. Các thành phần giao diện trong android . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.2.1 View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.2.2 ViewGroup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.2.3 LinearLayout. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.2.4 FrameLayout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

1.2.5 AbsoluteLayout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.2.6 RetaliveLayout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.2.7 TableLayout. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.2.8 ImageView. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.2.9 ListView . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.2.10 TextView . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
1.2.11 EditText . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
1.2.12 MenuOptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3


1.3 Activity & Intend. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
1.3.1 Activity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
1.3.2 Intent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
1.4 Bitmap trong Android. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
1.5 Màu sắc trong Android . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
1.6 Thao tác với điểm ảnh trong bitmap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
1.7 Một số thuật toán xử lý ảnh trong android . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
1.7.1 Convolution matrix. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
1.7.2 Neon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
1.7.3 Emboss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
1.7.4 TV Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
1.7.5 Sketch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
1.7.6 Invert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
1.7.7 Smoothing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
1.7.8 Gaussian blue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
1.7.9 Grayscale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
1.7.10 Sharpen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
1.7.11 Color lighten. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
CHƯƠNG 2: KHẢO SÁT VÀ PHÂN TÍCH THIẾT KẾ HỆ THỐNG . . . . . . . . . 40

2.1 Khảo sát thực tế . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.2 Đặc tả bài toán . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.3 Đặc tả chức năng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
2.3.1 Chức năng load ảnh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
2.3.2 Chức năng xử lý ảnh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
2.3.3 Chức năng ghép danh ngôn hay, câu nói ý nghĩa vào ảnh . . . . . . . . . . . . . . 43
2.3.4 Xem ảnh nghệ thuật kết hợp danh ngôn hay, câu nói ý nghĩa từ server . 44
2.4 Luồng sự kiện . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
2.4.1 Luồng sự kiện cho chức năng load ảnh.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4


2.4.2 Luồng sự kiện chức năng edit.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.4.3 Luồng sự kiện chức năng styles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.4.4 Luồng sự kiện chức năng text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.4.5 Luồng sự kiện chức năng stickers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
2.4.6 Luồng sự kiện cho các chức năng share, save, wallpaper. . . . . . . . . . . . . . . 46
2.5 Các biểu đồ hệ thống . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
2.5.1 Biểu đồ use case . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
2.5.2 Biểu đồ trình tự . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
2.5.3 Biểu đồ hoạt động . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
2.5.4 Biểu đồ class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
CHƯƠNG 3: DEMO ỨNG DỤNG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
3.1 Một vài hình ảnh của ứng dụng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
3.2 Danh sách các màn hình. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
KẾT LUẬN. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
TÀI LIỆU THAM KHẢO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

5



DANH MỤC HÌNH
Hình 1.1: Hệ điều hành Android. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Hình 1.2: Logo các phiên bản hệ điều hành Android. . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Hình 1.3: Biểu tượng Robot Android . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Hình 1.4: Kiến trúc tổng quát . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Hình 1.5: Tầng ứng dụng. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Hình 1.6: Application Framework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Hình 1.7: Libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Hình 1.8: Android Runtime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Hình 1.9: Linux kernel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Hình 1.10: Chu kỳ sống thành phần.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Hình 1.11: Chu kỳ sống của Activity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Hình 1.12: Bố trí các widget sử dụng LinearLayout. . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Hình 1.13: Bố trí widget trong RetaliveLayout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Hình 1.14: Bố trí widget trong TableLayout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Hình 1.15: ImageView và ImageButton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Hình 1.16: Minh hoạ option menu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Hình 1.17: Truyền dữ liệu giữa 2 Activity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Hình 1.18: Các thuộc tính của Intend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Hình 1.19: Các Action đã được định nghĩa sẵn trong Intend . . . . . . . . . . . . . . . . . . . 30
Hình 1.20: Công thức xử lý ảnh ma trận nhân chập . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Hình 1.21 Công thức ma trận nhân chập . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Hình 1.22 Mô tả ảnh neon. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Hình 1.23 Mô tả ảnh Emboss. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Hình 2.1: biểu đồ use case tổng quát. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Hình 2.2: Biểu đồ use case edit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Hình 2.3: Biểu đồ use case Styles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
6



Hình 2.4: Biểu đồ uscase Stickers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Hình 2.5: Biểu đồ use case text. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Hình 2.6: Biểu đồ trình tự chức năng load ảnh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Hình 2.7: Biểu đồ trình tự chức năng xử lý ảnh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Hình 2.8: Biểu đồ hoạt động cho chức năng load ảnh . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Hình 2.9: Biểu đồ hoạt động cho chức năng xử lý ảnh. . . . . . . . . . . . . . . . . . . . . . . . . 53
Hình 2.10: Biểu đồ class LoadImage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Hình 2.11: Biểu đồ class Xử lý ảnh. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Hình 2.12: Biểu đồ class edit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Hình 2.13: Biểu đồ class Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Hình 2.14 Biểu đồ class Sticker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Hình 2.15 Biểu đồ class Style . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Hình 3.1 Màn hình chính của chương trình . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Hình 3.2 Màn hình hiển thị status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Hình 3.3 Tạo hiệu làm mờ ảnh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Hình 3.4 Tạo hiệu ứng Sepia bằng blur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Hình 3.5 ghép câu nói ý nghĩa vào ảnh nghệ thuật . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Hình 3.6 Tạo ảnh tâm trạng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Hình 3.7-8 xem ảnh nghệ thuật từ sever . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Hình 3.9-10 Nhập văn bản và chọn màu chữ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Hình 3.11-12 Share và save ảnh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

7


 MỞ ĐẦU
Ngày nay, hệ điều hành Android ra đời và trở thành nền tảng điện thoại
thông minh phổ biến nhất thế giới, với sự kế thừa những ưu việt của các hệ điều
hành ra đời trước và sự kết hợp của nhiều công nghệ tiên tiến nhất hiện nay.

Những ưu điểm dễ thấy nhất của Android chính là khả năng tùy biến nhanh chóng,
dễ làm quen, ứng dụng hỗ trợ phong phú, tương thích với đa cấu hình phần cứng
của các nhà sản xuất. Dù đã hay chưa từng sử dụng smartphone Android thì ta
cũng không cần quá lo lắng về việc thay đổi. Hầu như tất cả những smartphone sử
dụng hệ điều hành Android đều rất dễ sử dụng, đơn giản trong tùy biến theo sở
thích cá nhân, cũng như có rất nhiều ứng dụng để thỏa mãn nhu cầu của từng
người dùng. Đồng thời Android có mã nguồn mở đã cho phép các nhà phát triển
thiết bị, mạng di động và các lập trình viên được điều chỉnh và phân phối Android
một cách tự do.
Cùng với sự phát triển không ngừng của công nghệ thông tin, các siêu
phẩm điện thoại thông minh ra đời, với nhiều chức năng thông minh. Bên cạnh
những chức năng quan trong của một chiếc smartphone, một chức năng cũng
không thể thiếu đó là chiếc camera chụp ảnh, để lưu trữ lại những kỷ niệm đẹp,
những khoảnh khắc ý nghĩa... Những chiếc smartphone ngày càng được cải
thiện cả về tính năng lẫn chất lượng phần cứng, camera trên điện thoại cũng
ngày được nâng cấp để đáp ứng nhu cầu chụp ảnh, selfie với chất lượng hình
ảnh cao. Tuy nhiên, những chiếc camera mặc định của điện thoại thường chỉ
cho ra những hình ảnh thô và không làm hài lòng người sử dụng, họ cần một
ứng dụng có thể biến những bức ảnh kém nổi bật trở nên lung linh và sắc nét
hơn.
Bởi vậy trước nhu cầu và lợi thế đó, em quyết định nghiên cứu và xây dựng
ứng dụng: “Xây dựng và phát triển ứng dụng thiết kế ảnh nghệ thuật kết hợp
với sử dụng các câu danh ngôn trên nền tảng android.”
8


9


 CHƯƠNG 1:

 CƠ SỞ LÝ THUYẾT
 Tổng quan về hệ điều hành android.

Hình 1.1: Hệ điều hành Android
Android là nền tảng phần mềm dựa trên mã nguồn mở Linux OS (Kernel
2.6) được thiết kế dành riêng cho các thiết bị di động có màn hình cảm ứng như
điện thoại thông minh hay máy tính bảng, nhằm xây dựng các ứng dụng hỗ trợ
mà người sử dụng cần đến.
10


Được xây dựng trên một nền tảng mở, và một bộ thư viện đa năng, mạnh
mẽ với nguyên lý mở, Android đã nhanh chóng được cộng đồng lập trình viên di
động hưởng ứng mạnh mẽ. Nền tảng Android tích hợp nhiều tính năng nổi bật:
 Android là một hệ điều hành nhân Linux, đảm bảo sự tương tác với các
phần cứng, quản lý bộ nhớ, điều khiển các tiến trình tối ưu cho các thiết bị di động.
 Bộ ứng dụng khung cho phép sử dụng lại và thay thế các thành phần
riêng lẻ.
 Máy ảo Dalvik được tối ưu cho các thiết bị di động, chạy các ứng dụng
lập trình trên ngôn ngữ Java.
 Các thư viện cho phát triển ứng dụng mã nguồn mở bao gồm SQLite,
WebKit, OpenGL và trình quản lý đa phương tiện.
 Hỗ trợ các chuẩn đa phương tiện phổ biến, thoại trên nền GSM,
Bluetooth EDGE, 3G và Wifi.
 Hỗ trợ Camera, GPS, la bàn, máy đo gia tốc…
 Bộ phát triển ứng dụng SDK đầy đủ gồm thiết bị giả lập, công cụ sửa
lỗi, tích hợp với Eclipse SDK.

 Lịch sử Android
Android là 1 nền tảng phần mềm dựa trên mã nguồn mở Linux OS (Kernel

2.6) cho máy di động, máy tính bảng và những phần mềm trung gian (middleware).
Nó không đơn thuần là 1 hệ điều hành, 1 công cụ lập trình hay 1 phần mềm trung
gian mà nó gồm tất cả.
Phiên bản SDK (Software Development Kit) lần đầu tiên phát hành vào
tháng 11 năm 2007, hãng T-Mobile cũng công bố chiếc điện thoại Android đầu
tiên đó là chiếc T-Mobile G1, chiếc smartphone đầu tiên dựa trên nền tảng
Android. Một vài ngày sau đó, Google lại tiếp tục công bố sự ra mắt phiên bản
Android SDK release Candidate 1.0. Trong tháng 10 năm 2008, Google được cấp
giấy phép mã nguồn mở cho Android Platform.

11


Vào cuối năm 2008, Google cho phát hành một thiết bị cầm tay được gọi là
Android Dev Phone 1 có thể chạy được các ứng dụng Android mà không bị ràng
buộc vào các nhà cung cấp mạng điện thoại di động. Mục tiêu của thiết bị này là
cho phép các nhà phát triển thực hiện các cuộc thí nghiệm trên một thiết bị thực có
thể chạy hệ điều hành Android mà không phải ký một bản hợp đồng nào. Vào
khoảng cùng thời gian đó thì Google cũng cho phát hành một phiên vản vá lỗi 1.1
của hệ điều hành này.Ở cả hai phiên bản 1.0 và 1.1 Android chưa hỗ trợ softkeyboard mà đòi hỏi các thiết bị phải sử dụng bàn phím vật lý. Android cố định
vấn đề này bằng cách phát hành SDK 1.5 vào tháng 4 năm 2009, cùng với một số
tính năng khác. Chẳng hạn như nâng cao khả năng ghi âm truyền thông, vật dụng,
và các live folder.

 Các phiên bản HĐH Android
Android đã trải qua một số các cấp nhật kể từ lần đầu phát hành. Những cập
nhật này nhìn chung có nhiệm vụ vá các lỗ hổng và thêm các tính năng mới vào hệ
điều hành.

Hình 1.2: Logo các phiên bản hệ điều hành Android

12


Android những thế hệ đầu tiên 1.0 ( 9/2008) và 1.1 ( 2/2009) chưa có tên
gọi chính thức. Từ thế hệ tiếp theo, mỗi bản nâng cấp đều được đặt với những mã
tên riêng dựa theo các món ăn hấp dẫn theo thứ tự bảng chữ cái từ “C-D-E-F-G-HI”. Hiện tại các phiên bản chính của Android bao gồm:
Android 1.5 (Cupcake): Ra mắt tháng 4/2009: Phiên bản này có một số
tính năng đáng chú ý như: khả năng ghi lại và xem video thông qua chế độ máy ghi
hình, tải video lên YouTube và ảnh lên Picasa trực tiếp từ điện thoại, tích hợp bàn
phím ảo với khả năng đoán trước văn bản, tự động kết nối với một thiết bị
Bluetooth trong một khoảng cách nhấtđịnh, các widget và thư mục mới có thể cài
đặt linh động trên màn hình chủ.
Android 1.6 (Donut): Ra mắt tháng 9/2009: Phiên bản này giúp nâng cao
trải nghiệm trên kho ứng dụng Android Market, tích hợp giao diện tùy biến cho
phép người dùng xóa nhiều ảnh cùng lúc, nâng cấp Voice Search, nâng cấp khả
năng tìm kiếm bookmarks, history, contacts và web trên màn hình chủ, bước đầu
hỗ trợ màn hình độ phân giải WVGA.
Android 2.0/2.1 (Eclair): Ra mắt tháng 10/2009: Phiên bản này có sự cải
thiện rõ rệt trong giao diện người dùng, tối ưu hóa tốc độ phần cứng, hỗ trợ nhiều
kích cỡ và độ phân giải màn hình hơn, thay đổi giao diện duyệt web và hỗ trợ
chuẩn HTML5, Exchange ActiveSync 2.5, nâng cấp Google Maps 3.1.2, camera
zoom kĩ thuật số tích hợp đèn flash, nâng cấp bàn phím ảo và kết nối Bluetooth
2.1.
Android 2.2 (Froyo): Ra mắt tháng 5/2010: Phiên bản này chú trọng nâng
cấp tốc độ xử lí, giới thiệu engine Chrome V8 JavaScript, hỗ trợ Adobe Flash10.1,
thêm tính năng tạo điểm truy cập Wi-Fi. Một tính năng đáng chú ý khác hỗ trợ
chuyển đổi nhanh chóng giữa các ngôn ngữ và từ điển trên bàn phím đồng thời cho
phép cài đặt và cập nhật ứng dụng ở các thiết bị mở rộng bộ nhớ. Một trong những
smartphone đầu tiên chạy phiên bản Android 2.2 Froyo là LG Optimus One.
Android 2.3 (Gingerbread): Ra mắt tháng 12/2010: Phiên bản này được

13


nâng cấp đáng kể giao diện người dùng, cải thiện bàn phím ảo, thêm tính năng
copy/paste, hỗ trợ công nghệ giao tiếp tầm sóng ngắn NFC, hỗ trợ chuẩn video
WebM và nâng cao tính năng copy–paste. Cùng với phiên bản Gingerbread,
Google cũng ra mắt điện thoại đầu tiên của hãng sử dụng nền tảng này là Google
Nexus S.
Android 3.2 (Honeycomb): Ra mắt tháng 2/2011: Đây là phiên bản hệ điều
hành dành riêng cho máy tính bảng tablet với giao diện mới tối ưu hóa cho tablet,
từ các thao tác đều phụ thuộc màn hình cảm ứng (như lướt web, duyệt mail..).
Honeycomb hỗ trợ bộ xử lí đa nhân và xử lý đồ họa đồng thời hỗ trợ nhiều màn
hình home khác nhau, cho phép người d ng dễ dàng t y biến giao diện nếu muốn.
Android 4.0 (Ice-cream sandwich): Ra mắt tháng 10/2011, là sự kết hợp
giữa Gingerbread và Honeycomb và sẽ chạy trên tất cả các thiết bị như điện thoại,
máy tính bảng, máy tính xách tay…
Android 4.1 (Jelly Bean): Ra mắt 9-7-2012: Máy tính bảng Nexus 7, sản
phẩm hợp tác giữa Google và Asus, là thiết bị dùng Jelly Bean đầu tiên ra mắt.
Android 4.1 nâng tầm hoạt động cho hệ điều hành của Google, trở thành hệ điều
hành cho thiết bị di động hàng đầu hiện nay, đe dọa cả "ông lớn" Windows.
Khả năng sắp xếp giao diện chủ và widget trong Jelly Bean rất tùy biến và
linh hoạt. Hệ thống hỗ trợ dịch vụ ví điện tử Google Wallet, đặc biệt trình duyệt
web mặc định trong Android được thay thế bởi đại diện tên tuổi: Chrome, với khả
năng đồng bộ dữ liệu theo tài khoản với bản Chrome trên máy tính.

14


Hình 1.3: Biểu tượng Robot Android
Jelly Bean giới thiệu Google Now, dịch vụ trực tuyến mới hiện chỉ dành

cho Android, một phụ tá ảo đắc lực cho công việc sắp xếp lịch trình, tìm kiếm
thông tin, xác định vị trí... Rất đa năng và được xem như lời đáp trả của Google
với "phụ tá ảo" Apple Siri trong iOS.
Android 4.2 (vẫn là Jelly Bean): Ra mắt tháng 11-2012: Chỉ sau gần năm
tháng ra mắt Android 4.1, Google tiếp tục bồi thêm sức nặng cho Android với
phiên bản 4.2 và vẫn mang tên mã Jelly Bean.
Android 4.2 tiếp tục mang đến những cải tiến hấp dẫn cho ứng dụng chụp
ảnh (Camera) như HDR, Photo Sphere, hiệu ứng ảnh, Google Now, đưa tính năng
lướt chọn từ rất hay trong bàn phím ảo. Chức năng "bom tấn" hỗ trợ nhiều tài
khoản người dùng (multi-user profile) lần đầu tiên được áp dụng trong Android 4.2
nhưng chỉ có người dùng máy tính bảng thừa hưởng chức năng này.
Android 4.3 (vẫn là Jelly Bean): Ra mắt vào ngày 24-7-2013, không có
thay đổi lớn về cả giao diện lẫn cấu trúc so với Android 4.1 và 4.2 trước đó, phiên
bản 4.3 có thể coi là một bản nâng cấp nhỏ mà Google dành cho hệ điều hành của
hãng.
Android 4.4 (Kitkat): Ra mắt vào 1-11-2013, chấm dứt chuỗi ngày “nhàm
15


chán” với 3 phiên bản khách nhau của Android Jelly Bean. KitKat được coi là
phiên bản Android “dễ tính” nhất từ trước đến nay khi nó được thiết kế cho tất cả
các thiết bị có bộ nhớ RAM 512MB trở lên

 Đặc điểm
 Tính mở
Android được xây dựng từ dưới đi lên cho phép người phát triển tạo các
ứng dụng di động hấp dẫn với đầy đủ các điểm mạnh của các thiết bị cầm tay hiện
có. Android hoàn toàn mở, một ứng dụng có thể gọi tới bất kể một chức năng lõi
của điện thoại như tạo cuộc gọi, gửi tin nhắn hay sử dụng máy ảnh, cho phép
người phát triển tạo phong phú hơn, liên kết hơn các tính năng cho người dùng.

Nền tảng này sẽ tiếp tục phát triển bởi cộng đồng phát triển để tạo ra các ứng dụng
di động hoàn hảo.
 Tính ngang hàng của các ứng dụng
Với Android, không có sự khác nhau giữa các ứng dụng điện thoại cơ bản
với ứng dụng của bên thứ ba. Chúng được xây dựng để truy cập như nhau tới một
loạt các ứng dụng và dịch vụ của điện thoại. Với các thiết bị được xây dựng trên
nền tảng Android, người dùng có thể đáp ứng đầy đủ các nhu cầu mà họ thích.
Chúng ta có thể đổi màn hình nền, kiểu gọi điện thoại, hay bất kể ứng dụng nào.
Chúng ta thậm chí có thể hướng dẫn điện thoại chỉ xem những ảnh mình thích.
 Dễ xây dựng ứng dụng
Android cung cấp bộ thư viện giao diện lập trình ứng dụng đồ sộ và các
công cụ để viết các ứng dụng phức tạp. Ví dụ, Android có thể cho phép người phát
triển biết được vị trí của thiết bị và cho phép các thiết bị giao tiếp với nhau để có
thể tạo nên mạng xã hội chia sẻ ngang hàng rộng khắp.
So sánh với các hệ điều hành cùng loại khác:

16


Bảng 1.1 So Sánh Các Hệ Điều Hành Điện Thoại Thông Minh
HDH
Android

Ưu điểm

Nhược điểm

Google Android là nền tảng mở, cho Hệ

điều


hành

phân

phép người dùng có thể tùy biến nền mảnh, không thống nhất
tảng theo ý thích, hơn nữa lại có một trên các thiết bị, giới
Liên minh thiết bị cầm tay mở hậu hạn về độ 'mở' và nhiều
thuẫn, Google Android đang là đối thủ lỗ hổng bảo mật là
xứng tầm của iPhone của Apple. những yếu điểm của
Google đang tích cực mở rộng cộng Android OS.
đồng phát triển các ứng dụng cho
Android. Bộ công cụ phát triển phần
mềm (SDK) đầy đủ, hỗ trợ đa nền
(Linux, Windows hay Mac OS) do
chạy trên máy ảo Java. Thư viện ngày
càng hoàn thiện, dễ dàng cho người
lập trình.
Windows

Có thư viện API khá giống với API Sự có mặt của iPhone

Phone

trên Win32, các công cụ hỗ trợ lập và Android là hai trở
trình đầy đủ với Visual Studio, điều ngại lớn với Windows
này làm cho những người phát triển Mobile. Hai nền tảng
trên Win32 không mất công tìm hiểu này đang hoàn thiện và
lại các API và các công cụ lập trình.


được người dùng rất ưa
chuộng.

17


iOS

Màn hình cảm ứng đa điểm: iPhone Việc lập trình trên cho
sử dụng hoàn toàn bằng cảm ứng và iPhone phải thực hiện
không sử dụng các nút. Với iPhone ta trên hệ điều hành Mac,
có thể điều khiển trên màn hình kể cả do đó không phải ai
việc trượt của các ngón tay. Ta có thể cũng có thể lập trình
phóng to ảnh bằng cách trượt hai ngón cho iPhone. Hơn thế,
tay ra xa và thu nhỏ bằng cách ngược nếu muốn đưa chương
trình ra máy thật người

lại.

Bộ cảm nhận gia tốc: Những phản lập trình phải trả một
ứng nhanh chóng của bộ cảm nhận gia khoản phí lập trình, điều
tốc thay đổi độ phân giải màn hình từ này làm giảm tính cạnh
dọc sang ngang tự động khi ta đặt điện tranh so với các đối thủ
thoại nằm ngang. Điều này làm sinh khác.
động thêm cho các trò chơi. Âm thanh,
hình ảnh hoàn hảo.


 1.1.4 Kiến trúc tổng quát của hệ điều hành Android
Mô hình sau thể hiện môt cách tổng quát các thành phần của hệ điều hành

Android.

18


Hình 1.4: Kiến trúc tổng quát

 . Tầng ứng dụng (Applications).

Hình 1.5: Tầng ứng dụng
Android được tích hợp sẵn một số ứng dụng cần thiết cơ bản như: contacts,
browser, camera, Phone,… Tất cả các ứng dụng chạy trên hệ điều hành Android
đều được viết bằng Java.
1.1.4.2. Application Framework.

19


Hình 1.6: Application Framework
Kiến trúc của Android khuyến khích khái niệm thành phần sử dụng lại, cho
phép công bố và chia sẻ các Activity, Service, dữ liệu, với các ứng dụng khác với
quyền truy cập được quản lý bởi khai báo.
1.1.4.3. Library:

Hình 1.7: Libraries
Android cung cấp một số các APIs cho phát triển ứng dụng. Danh sách các
API cơ bản sau được cung cấp bởi tất cả các thiết bị trên nền Android:
 android.util: Gói tiện ích cơ bản bao gồm nhiều lớp mức thấp như là các
lớp quản lý (List, Stack…) lớp xử lý chuỗi, lớp xử lý XML.
 android.graphics: Cung cấp các lớp đồ họa mức thấp thực hiện các chức

năng đồ họa, màu, vẽ cơ bản.
 android.database: Cung cấp các lớp mức thấp bắt buộc cho việc điều
khiển cursor khi làm việc với các cơ sở dữ liệu.
20


 android.content: Các giao tiếp lập trình nội dung được dùng để quản lý
truy cập dữ liệu và xuất bản bằng cách cung cấp các dịch vụ thao tác với tài
nguyên, Content Provider, và các gói.
 android.view: View là lớp giao diện người dùng cơ bản nhất. Tất cả giao
diện người dùng được tạo ra đều phải sử dụng một tập các View để cung cấp cho
các thành phần tương tác người dùng.
 android.widget: Xây dựng dựa trên gói View. Những lớp widget những
thành phần giao diện được tạo sẵn được sử dụng để tạo nên giao diện người dùng.
 com.google.android.maps: Bộ API mức cao cung cấp truy cập đến điều
khiển bản đồ sẵn trong Android từ ứng dụng được xây dựng. Bao gồm cả lớp
MapView cũng như Overlay và MapController để tương tác với bản đồ bên trong
ứng dụng.
 android.provider: Để tạo thuận lợi cho người phát triển truy cập đến các
Content Provider tiêu chuẩn (như là dữ liệu danh bạ), gói cung cấp (Provider) bao
gồm các lớp cho phép truy cập đến cơ sở dữ liệu chuẩn trong tất cả các bản phân
phối Android.
 android.telephony: Các API điện đàm cung cấp khả năng tương tác trực
tiếp với tầng điện thoại trong các thiết bị, cho phép tạo, nhận, theo dõi các cuộc
gọi, tình trạng các cuộc gọi và tin nhắn SMS.
 android.webkit: Gói WebKit cung cấp các API để làm việc với các nội
dung Web-based bao gồm một lơp WebView để tạo ra giao diện web, nhúng trong
ứng dụng và một trình quản lý cookie.
1.1.4.4. Android Runtime


21


Hình 1.8: Android Runtime
Phần này chứa các thư viện mà một chương trình viết bằng ngôn ngữ Java
có thể hoạt động. Phần này có 2 bộ phận tương tự như mô hình chạy Java trên máy
tính thường. Thứ nhất là các thư viện lỗi (Core Library), chứa các lớp như JAVA
IO, Collections, File Access. Thứ hai là một máy ảo java(Dalvik Virtual Machine).
1.1.4.5. Linux Kernel
Android sử dụng nhân Linux 2.6 làm nhân cho các dịch vụ hệ thống như
bảo mật, quản lý bộ nhớ, quản lý tiến trình (xử lý tiến trình, đa luồng), ngăn xếp
mạng và trình điều khiển thiết bị (giao tiếp USB, giao tiếp hồng ngoại, không đây,
v.v…). Nhân Linux này cũng có vai trò như một lớp trừu tượng giữa phần cứng và
phần mềm.

Hình 1.9: Linux kernel
 Display Driver : Điều khiển việc hiển thị lên màn hình cũng như thu
nhận những điều khiển của người dùng lên màn hình ( di chuyển, cảm ứng…).
 Camera Driver : điều khiển hoạt động của camera, nhận luồng dữ liệu từ
camera về.
22


 Bluetooth Driver : Điều khiển thiết bị phát và thu sóng Bluetooth.
 USB Driver : Điều khiển bàn phím.
 Wifi Driver : Chịu trách nhiệm về việc thu phát sóng wifi.
 Audio Driver : Điều khiển các bộ thu phí phát âm thanh, giải mã các
tính hiệu dạng audio thành tín hiệu số và ngược lại.
 Power Management : Giám sát việc tiêu thụ điện năng.
 M-system Driver : Quản lý việc đọc ghi… lên các thiết bị nhớ như thẻ SD,

flash.
 Binder IPC Driver : Chịu trách nhiệm về việc kết nối và liên lạc với
mạng vô tuyến như CDMA, GSM, 3G, 4G, E để đảm bảo những chức năng truyền
thông được thực hiện.



23


 Chu kỳ ứng dụng android
 Chu kỳ sống thành phần
Các thành phần ứng dụng có một chu kỳ sống, tức là mỗi thành phần từ lúc
bắt đầu khởi tạo và đến thời điểm kết thúc. Giữa đó, đôi lúc chúng có thể là active
hoặc inactive, hoặc là trong trường hợp activies nó có thể visible hoặc invisible.

Hình 1.10: Chu kỳ sống thành phần.
Các trạng thái của chu kỳ sống

Hình 1.11: Chu kỳ sống của Activity
Một Activity chủ yếu có 3 chu kỳ chính sau:
 Active hoặc running: Khi Activity là được chạy trên màn hình. Activity
24


này tập trung vào những thao tác của người dùng trên ứng dụng.
 Paused: Activity là được tạm dừng (paused) khi mất focus nhưng người
dùng vẫn trông thấy.
 Stopped: Nếu nó hoàn toàn bao phủ bởi Activity khác. Nó vẫn còn trạng
thái và thông tin thành viên trong nó.




25


×