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

Nghiên cứu thiết kế chế tạo bộ điều khiển led ma trận bằng smartphone chạy hệ điều hành 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 (3.03 MB, 112 trang )

TRƯỜNG ĐẠI HỌC NHA TRANG
KHOA ĐIỆN - ĐIỆN TỬ

NGUYỄN KHẮC HUY
NGHIÊN CỨU THIẾT KẾ CHẾ TẠO BỘ ĐIỀU
KHIỂN LED MA TRẬN BẰNG SMARTPHONE CHẠY
HỆ ĐIỀU HÀNH ANDROID

ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
Ngành: Công Nghệ Kỹ Thuật Điện – Điện Tử

Khánh Hòa, năm 2015


TRƯỜNG ĐẠI HỌC NHA TRANG
KHOA ĐIỆN - ĐIỆN TỬ

NGUYỄN KHẮC HUY
NGHIÊN CỨU THIẾT KẾ CHẾ TẠO BỘ ĐIỀU
KHIỂN LED MA TRẬN BẰNG SMARTPHONE CHẠY
HỆ ĐIỀU HÀNH ANDROID

ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
Ngành: Công Nghệ Kỹ Thuật Điện – Điện Tử
CÁN BỘ HƯỚNG DẪN

TH.S NHỮ KHẢI HOÀN

Khánh Hòa, năm 2015



Đồ án tốt nghiệp

Khoa Điện – Điện Tử

i

LỜI CẢM ƠN
Trong quá trình thực hiện đề tài: “Nghiên cứu thiết kế chế tạo bộ điều khiển
Led ma trận bằng Smartphone chạy hệ điều hành Android” em xin chân thành
cảm ơn đến quý Thầy, Cô giáo trong bộ môn, khoa Điện – Điện tử đã tận tình giảng
dạy, cung cấp cho em nhiều kiến thức trong suốt quá trình học tập tại trường đại học
Nha Trang.
Xin gửi lời cảm ơn sâu sắc đến Thầy giáo Nhữ Khải Hoàn đã trực tiếp hướng
dẫn đồ án cho em. Cảm ơn Thầy đã tận tình chỉ bảo, hướng dẫn, cung cấp những tài
liệu, kinh nghiệm, bài học quý giá và tạo điều kiện thuận lợi cho em hoàn thành đồ
án này.
Em cũng xin chân thành cảm ơn gia đình và bạn bè đã giúp đỡ về mặt tinh thần
cũng như vật chất để em có thể hoàn thành tốt đồ án này.
Một lần nữa em xin kính chúc quý Thầy, Cô và mọi người luôn mạnh khỏe,
hạnh phúc và ngày càng thành công trong cuộc sống.
Xin chân thành cảm ơn!
Nha Trang, tháng 06 năm 2015.
Sinh viên
Nguyễn Khắc Huy

GVHD: Th.s Nhữ Khải Hoàn

SVTH: Nguyễn Khắc Huy



Đồ án tốt nghiệp

ii

Khoa Điện – Điện Tử

LỜI MỞ ĐẦU
 Lý do chọn đề tài
Ngày nay với sự phát triển mạnh của khoa học – công nghệ, đời sống con người
ngày càng được nâng cao rõ rệt nhờ ứng dụng các thành tựu của khoa học – công
nghệ. Nó cũng thúc đẩy sự phát triển mạnh mẽ nhiều lĩnh vực trong đó có lĩnh vực
Điện – Điện tử.
Những chiếc điện thoại thông minh Smartphone ngày càng được cải tiến không
chỉ phục vụ nhu cầu nghe, gọi, xem phim… mà nó còn thay thế được các chức năng
của một chiếc máy tính (PC). Ưu điểm của những chiếc điện thoại này là nhỏ gọn, bộ
vi xử lý tốc độ ngày càng cao, bộ nhớ trong lớn, tích hợp đầy đủ các ứng dụng cơ
bản, kết nối không dây Bluetooth, Wifi, 3G, sử dụng được nhiều giờ liên tục… Chính
vì vậy, Smartphone rất được ưa chuộng và dần dần được thay thế cho máy tính phục
vụ các ứng dụng cơ bản. Hầu hết các thiết bị di động đều tích hợp chuẩn truyền thông
Bluetooth. Nếu như USB giúp chuẩn hóa các kết nối giữa các thiết bị ngoại vi với
máy tính (PC), thì Bluetooth có thể coi như chuẩn không dây tiêu chuẩn giúp kết nối
hầu hết các thiết bị phụ trợ thông qua giao tiếp không dây như tai nghe, chuột, bàn
phím, máy in, loa ... Sử dụng Bluetooth trong các thiết bị nhúng có thể giúp chúng ta
kết nối không dây dễ dàng với máy tính, điện thoại di động, máy tính bảng, laptop...
Từ đó mở ra rất nhiều ứng dụng điều khiển, giao tiếp, kết nối giữa các hệ thống nhúng
và thiết bị di động.
Trong đề tài này em sử dụng Smartphone chạy hệ điều hành Android để điều
khiển Led ma trận thông qua vi điều khiển AVR bằng Bluetooth. Điều khiển Led ma
trận bằng Smartphone rất thuận tiện trong việc cập nhật dữ liệu, tiết kiệm được thời
gian, tính thẩm mỹ cao, không cần sử dụng máy tính.

 Mục tiêu của đề tài
 Thiết kế được bảng quang báo Led ma trận qua Bluetooth.


Phải hiển thị được các thông tin cần thiết,...



Bảng quang báo Led ma trận cập nhật được nội dung mỗi khi truyền dữ liệu từ

Smartphone chạy hệ điều hành Android qua Bluetooth.

GVHD: Th.s Nhữ Khải Hoàn

SVTH: Nguyễn Khắc Huy


Đồ án tốt nghiệp

Khoa Điện – Điện Tử

iii

 Xây dựng giao diện điều khiển Led ma trận trên Smartphone Android truyền
dữ liệu cho vi điều khiển thông qua mô đun Bluetooth HC-06.
 Đối tượng và phạm vi nghiên cứu
– Đối tượng nghiên cứu.
Nghiên cứu mô đun Led ma trận P10 màu đỏ, mô đun Bluetooth HC-06, vi điều
khiển AVR, hệ điều hành Android.
– Phạm vi nghiên cứu

Tìm hiểu, thiết kế bo mạch điều khiển Led ma trận, ứng dụng mô đun Bluetooth
HC-06, mô đun Led ma trận P10 để thiết kế bảng quang báo ma trận 32 x 128 màu
đỏ, hiển thị được số và chữ cái tiếng việt có dấu truyền thông qua Bluetooth.
 Phương pháp nghiên cứu
– Phương pháp lý thuyết: Cách cấp nguồn và nguyên lý hoạt động của mô
đun Led ma trận, kỹ thuật điều khển Led ma trận, kỹ thuật lập trình Android.
– Phương pháp thực nghiệm: Thiết kế, chế tạo mạch điều khiển, bảng quang
báo Led ma trận, xây dựng giao diện trên Android cho Smartphone. Kết nối, chạy
thử, kiểm tra, sửa chữa hoàn thiện.
 Nội dung nghiên cứu


Nghiên cứu các mô đun Led ma trận, mô đun Bluetooth HC-06.



Tìm hiểu Smartphone, nghiên cứu ứng dụng hệ điều hành Android và viết giao

diện điều khiển Led ma trận dựa trên Android.


Thiết kế bảng quang báo bằng mô đun Led ma trận.



Thiết kế bộ điều khiển Led ma trận.



Đánh giá kết quả đạt được và phương hướng phát triển của đề tài.

Sản phẩm này không chỉ phục vụ cho đào tạo mà còn được ứng dụng vào thực

tiễn xã hội. Vì hiện nay quang báo bằng Led rất phổ biến, nó đáp ứng được các nhu
cầu phát triển xã hội, bởi tính thẩm mỹ, độ bắt mắt cao, dễ dàng cập nhật nội dung,
tiện ích mà Led mang lại.
 Bố cục đồ án

-

Chương 1: Tổng quan về hệ điều hành Android và Led trong quang báo.

GVHD: Th.s Nhữ Khải Hoàn

SVTH: Nguyễn Khắc Huy


Đồ án tốt nghiệp

iv

-

Chương 2: Thiết kế phần cứng hệ thống.

-

Chương 3: Phần mềm lập trình hệ thống.

-


Kết luận và phương hướng phát triển đề tài.

Khoa Điện – Điện Tử

Mặc dù đã hết sức nỗ lực, cố gắng trong quá trình thực hiện đồ án nhưng với
trình độ, kiến thức, kinh nghiệm thực tế còn hạn chế và thời gian có hạn nên không
thể tránh khỏi những sai sót nhất định. Do đó, em rất mong muốn nhận được sự góp
ý, chỉ bảo của quý Thầy, Cô và ý kiến đóng góp của bạn bè để đồ án được hoàn thiện
hơn.
Em xin chân thành cảm ơn!

GVHD: Th.s Nhữ Khải Hoàn

SVTH: Nguyễn Khắc Huy


Đồ án tốt nghiệp

v

Khoa Điện – Điện Tử

MỤC LỤC
LỜI CẢM ƠN ............................................................................................................. i
LỜI MỞ ĐẦU ............................................................................................................ ii
MỤC LỤC ...................................................................................................................v
DANH SÁCH CÁC HÌNH VẼ ............................................................................... viii
DANH SÁCH CÁC BẢNG BIỂU..............................................................................x
DANH SÁCH CÁC LƯU ĐỒ .................................................................................. xi
DANH SÁCH CÁC TỪ VIẾT TẮT ........................................................................ xii

CHƯƠNG 1: TỔNG QUAN VỀ HỆ ĐIỀU HÀNH ANDROID VÀ LED TRONG
QUANG BÁO .............................................................................................................1
1.1 Tổng quan về hệ điều hành Android..................................................................1
1.1.1 Giới thiệu về hệ điều hành Android ............................................................1
1.1.2 Đặc điểm của hệ điều hành Android ...........................................................2
1.1.3 So sánh giữa các hệ điều hành Smartphone ................................................4
1.2 Kiến trúc hệ điều hành Android.........................................................................5
1.2.1 Lớp ứng dụng ..............................................................................................6
1.2.2 Lớp khung tổ chức ứng dụng ......................................................................6
1.2.3 Lớp thư viện ................................................................................................7
1.2.3.1 Library...................................................................................................7
1.2.3.2 Android runtime ....................................................................................8
1.2.4 Lớp nhân Linux phiên bản 2.6 ....................................................................8
1.3 Các thành phần của ứng dụng Android .............................................................9
1.3.1 Activity ......................................................................................................10
1.3.1.1 Khái niệm Activity ..............................................................................10
1.3.1.2 Vòng đời của Activity .........................................................................10
1.3.2 Service .......................................................................................................13
1.3.2.1 Khái niệm Service ...............................................................................13
1.3.2.2 Vòng đời của một Service ...................................................................13
1.3.3 Inten ...........................................................................................................15

GVHD: Th.s Nhữ Khải Hoàn

SVTH: Nguyễn Khắc Huy


Đồ án tốt nghiệp

vi


Khoa Điện – Điện Tử

1.3.4 Broadcast Receivers ..................................................................................16
1.3.5 Content Provider........................................................................................17
1.3.6 Notification ................................................................................................18
1.4 Cấu trúc một Project Android ..........................................................................18
1.4.1 Cấu trúc một Project Android trong Eclipse .............................................18
1.4.2 Một số tập tin quan trọng của Android .....................................................20
1.4.2.1 MainActivity.java ...............................................................................20
1.4.2.2 AndroidManifest.xml ..........................................................................21
1.4.2.3 Strings.xml ..........................................................................................23
1.4.2.4 R.java ..................................................................................................23
1.4.2.5 Activity_main.xml ..............................................................................25
1.5 Tổng quan về Led ............................................................................................26
1.5.1 Khái niệm về Led ......................................................................................26
1.5.2 Lịch sử hình thành Led ..............................................................................26
1.5.3 Cấu tạo và nguyên lý hoạt động của đèn Led ...........................................27
1.5.3.1 Cấu tạo của đèn Led ............................................................................27
1.5.3.2 Nguyên lý hoạt động của đèn Led ......................................................27
1.5.4 Ưu nhược điểm và ứng dụng của đèn Led ................................................28
1.5.4.1 Ưu nhược điểm của đèn Led ...............................................................28
1.5.4.2 Ứng dụng của đèn Led ........................................................................29
CHƯƠNG 2: THIẾT KẾ PHẦN CỨNG HỆ THỐNG.............................................31
2.1 Tổng quát về phần cứng...................................................................................31
2.1.1 Sơ đồ tổng quát phần cứng ........................................................................31
2.1.2 Chức năng của các khối.............................................................................31
2.2 Một số linh kiện sử dụng trong mạch ..............................................................33
2.2.1 Vi điều khiển Atmega 32...........................................................................33
2.2.1.1 Giới thiệu chung về Atmega 32 ..........................................................33

2.2.1.2 Cấu trúc Atmega 32 ............................................................................34
2.2.1.3 Cấu trúc bộ nhớ ...................................................................................36

GVHD: Th.s Nhữ Khải Hoàn

SVTH: Nguyễn Khắc Huy


Đồ án tốt nghiệp

vii

Khoa Điện – Điện Tử

2.2.1.4 Thanh ghi trạng thái của AVR ............................................................38
2.2.1.5 Các cổng vào ra ...................................................................................39
2.2.2 IC chốt dịch 74HC595 ...............................................................................41
2.2.3 IC giải mã địa chỉ 74HC138 ......................................................................43
2.3 Phân tích hệ thống ...........................................................................................45
2.3.1 Nguyên lý hoạt động của bảng quang báo Led ma trận ............................45
2.3.2 Phân tích hệ thống .....................................................................................45
2.4 Thiết kế phần cứng ..........................................................................................46
2.4.1 Khối hiển thị ..............................................................................................46
2.4.2 Khối điều khiển trung tâm .........................................................................50
2.4.3 Khối giao tiếp giữa vi điều khiển và Smartphone .....................................51
CHƯƠNG 3: PHẦN MỀM LẬP TRÌNH HỆ THỐNG ............................................54
3.1 Các phần mềm lập trình sử dụng cho vi điều khiển ........................................54
3.1.1 Phần mềm Proteus 8.0 ...............................................................................54
3.1.2 Phần mềm Codevision AVR V2.05.0 .......................................................55
3.2 Công cụ hỗ trợ lập trình Android.....................................................................56

3.2.1 Java SE Development Kit..........................................................................56
3.2.1.1 Tổng quát về Java SE Development Kit .............................................56
3.2.1.2 Cài đặt Java SE Development Kit .......................................................56
3.2.2 Eclipse IDE ................................................................................................58
3.2.2.1 Tổng quát Eclipse IDE ........................................................................58
3.2.2.2 Tích hợp Android SDK Manager vào Eclipse .......................................59
3.2.3 Android Virtual Device .............................................................................61
3.3 Lưu đồ thuật toán điều khiển bảng Led ma trận ..................................................
...............................................................................................................................65
3.4 Giao diện trên Smartphone Android giao tiếp với vi điều khiển.....................68
KẾT LUẬN VÀ PHƯƠNG HƯỚNG PHÁT TRIỂN ĐỀ TÀI ................................69
TÀI LIỆU THAM KHẢO .........................................................................................71
PHỤ LỤC ..................................................................................................................72

GVHD: Th.s Nhữ Khải Hoàn

SVTH: Nguyễn Khắc Huy


Đồ án tốt nghiệp

Khoa Điện – Điện Tử

viii

DANH SÁCH CÁC HÌNH VẼ
Hình 1.1: Mô hình kiến trúc nền tảng Android. ........................................................ 5
Hình 1.2: Vòng đời của một Activity...................................................................... 12
Hình 1.3: Sơ đồ chuyển đổi trạng thái của Service. ................................................ 14
Hình 1.4: Chức năng của Intent. ............................................................................. 15

Hình 1.5: Ví dụ về Notification............................................................................... 18
Hình 1.6: Cấu trúc hình cây của Project Android. .................................................. 19
Hình 1.7: Hình ảnh Led thực tế ............................................................................... 26
Hình 1.8: Cấu tạo và nguyên lý hoạt động của Led ................................................ 27
Hình 1.9: Ứng dụng của đèn Led trong thực tế....................................................... 29
Hình 2.1: Sơ đồ khối tổng quát hệ thống phần cứng .............................................. 31
Hình 2.2: Atmega 32 loại chân cắm ........................................................................ 33
Hình 2.3: Atmega 32 loại chân dán ......................................................................... 33
Hình 2.4: Cấu trúc bên trong của vi điều khiển AVR ............................................. 35
Hình 2.5: Cấu trúc bộ nhớ vi điều khiển Atmega 32. ............................................. 36
Hình 2.6: Thanh ghi 8 bit của vi điều khiển Atmega 32 ......................................... 37
Hình 2.7: Cấu trúc thanh ghi trạng thái của AVR ................................................... 38
Hình 2.8: Hình ảnh thực tế IC 74HC595 ................................................................ 41
Hình 2.9: Sơ đồ chân IC 74HC595. ........................................................................ 41
Hình 2.10: Ghép nối tiếp các IC 74HC595 ............................................................. 43
Hình 2.11: Hình ảnh thực tế IC 74HC138. ............................................................. 43
Hình 2.12: Sơ đồ chân IC 74HC138. ...................................................................... 43
Hình 2.13: Nguyên tắc tạo ảnh cho Led ma trận. ................................................... 45
Hình 2.14: Mô đun Led ma trận P10. ..................................................................... 47
Hình 2.15: Sơ đồ chân mô đun Led P10. ................................................................ 47
Hình 2.16: Sơ đồ nguyên lý kết nối mô đun Led P10 với vi điều khiển Atmega32 ...
................................................................................................................................. 48
Hình 2.17: Sơ đồ mạch in kết nối mô đun Led P10 với vi điều khiển Atmega32.. 48
Hình 2.18: Nguyên lý đưa dữ liệu vào IC 74HC595 của Led ma trận P10. ........... 48

GVHD: Th.s Nhữ Khải Hoàn

SVTH: Nguyễn Khắc Huy



Đồ án tốt nghiệp

ix

Khoa Điện – Điện Tử

Hình 2.19: Nguyên lý quét mô đun Led ma trận P10. ............................................ 49
Hình 2.20: Hình ảnh thực tế IC 74HC254. ............................................................. 49
Hình 2.21: Sơ đồ chân IC 74HC254. ...................................................................... 49
Hình 2.22: Sơ đồ nguyên lý mạch điều khiển trung tâm Atmega 32. ..................... 50
Hình 2.23: Sơ đồ mạch in khối điều khiển trung tâm Atmega 32. ......................... 50
Hình 2.24: Mô đun Bluetooth HC06. ...................................................................... 51
Hình 2.25: Cấu trúc của một khung truyền phổ biến. ............................................. 52
Hình 2.26: Mô hình sản phẩm thực tế. .................................................................... 53
Hình 3.1: Giao diện chính của phần mềm Proteus 8.0. ........................................... 54
Hình 3.2: Giao diện của phần mềm Codevision AVR V2.05.0. ............................. 55
Hình 3.3: Lựa chọn Java Platform .......................................................................... 57
Hình 3.4: Chọn phiên bản JDK phù hợp với Windowns ........................................ 57
Hình 3.5: Chọn Workspace cho việc phát triển ứng dụng trên Android. ............... 58
Hình 3.6: Giao diện Eclipse. ............................................................................................ 59
Hình 3.7: Tham chiếu đến Android SDK. .............................................................. 60
Hình 3.8: Lựa chọn các gói Android SDK (API).................................................... 60
Hình 3.9: Cài đặt Android SDK Manager. .............................................................. 61
Hình 3.10: Chọn cài đặt Android Virtual Device ................................................... 61
Hình 3.11: Cài đặt thông số cho Android Virtual Device ....................................... 62
Hình 3.12: Khởi động Android Virtual Device ...................................................... 62
Hình 3.13: Thiết lập kích thước màn hình cho Android Virtual Device ................ 63
Hình 3.14: Android Virtual Device được khởi tạo ................................................. 63
Hình 3.15: Giao diện trên Smartphone Android giao tiếp với vi điều khiển .......... 68


GVHD: Th.s Nhữ Khải Hoàn

SVTH: Nguyễn Khắc Huy


Đồ án tốt nghiệp

Khoa Điện – Điện Tử

x

DANH SÁCH CÁC BẢNG BIỂU
Bảng 1.1: So sánh giữa các hệ điều hành Smartphone. ............................................ 4
Bảng 2.1: Chức năng hoạt động của 74HC595. ...................................................... 41
Bảng 2.2: Bảng giá trị logic của IC 74HC138. ....................................................... 44

GVHD: Th.s Nhữ Khải Hoàn

SVTH: Nguyễn Khắc Huy


Đồ án tốt nghiệp

Khoa Điện – Điện Tử

xi

DANH SÁCH CÁC LƯU ĐỒ
Lưu đồ 3.1: Lưu đồ thuật toán tổng quát quét Led ma trận .................................... 65
Lưu đồ 3.2: Lưu đồ thuật toán quét hàng và cột của Led ma trận .......................... 66

Lưu đồ 3.3: Lưu đồ thuật toán dịch chữ từ trái sang phải ....................................... 67

GVHD: Th.s Nhữ Khải Hoàn

SVTH: Nguyễn Khắc Huy


Đồ án tốt nghiệp

Khoa Điện – Điện Tử

xii

DANH SÁCH CÁC TỪ VIẾT TẮT
PC: Máy vi tính.
JDK: Java Development Kit.
OHA: Open Handset Alliance.

GVHD: Th.s Nhữ Khải Hoàn

SVTH: Nguyễn Khắc Huy


Đồ án tốt nghiệp

1

Khoa Điện – Điện Tử

CHƯƠNG 1: TỔNG QUAN VỀ HỆ ĐIỀU HÀNH ANDROID VÀ LED

TRONG QUANG BÁO
1.1 Tổng quan về hệ điều hành Android
1.1.1 Giới thiệu về hệ điều hành Android
Android là một hệ điều hành dành cho thiết bị di động như điện thoại, máy tính
bảng và netbooks. Android được phát triển bởi Google, dựa trên nền tảng Linux
kernel và các phần mềm nguồn mở khác. Ban đầu nó đuợc phát triển bởi Android Inc
sau đó được Google mua lại và gần đây nó trở thành một trong những phần mềm
đứng đầu của liên minh OHA (với khoảng 78 thành viên bao gồm cả nhà sản xuất,
nhà phát triển ứng dụng... cho thiết bị di động mà dẫn đầu là Google).[7]
Tháng 11 năm 2007, OHA – Liên minh thiết bị cầm tay mở rộng ra đời với các
thành viên Texas Instruments, Tập đoàn Broadcom, Google, HTC, Intel, LG, Tập
đoàn Marvell Technology, Motorola, Nvidia, Qualcomm, Samsung Electronics,
Sprint Nextel và T-Mobile.
Tháng 10 năm 2008, hệ điều hành Android đã chính thức trở thành phần mềm
mã nguồn mở.
Tháng 12 năm 2008, có thêm 14 thành viên mới gia nhập dự án Android được
công bố, gồm có ARM Holdings, Atheros Communications, Asustek Computer Inc,
Garmin Ltd, Softbank, Sony Ericsson, Toshiba Corp, và Vodafone Group Plc.
Andorid được phát triển nhằm cạnh tranh với các hệ điều hành di động khác
như iOS (Apple), BlackBerry OS, Windows Mobile (Microsoft), Symbian (Nokia),
Samsung (Bada), WebOS (Palm)... Android chiếm 75% thị phần điện thoại thông
minh trên toàn thế giới vào thời điểm quý 3 năm 2012, với tổng cộng 500 triệu thiết
bị đã được kích hoạt và 1,3 triệu lượt kích hoạt mỗi ngày. Sự thành công của hệ điều
hành cũng khiến nó trở thành mục tiêu trong các vụ kiện liên quan đến bằng phát
minh, góp mặt trong cái gọi là “cuộc chiến điện thoại thông minh” giữa các công ty
công nghệ.[8],[9]
Android có một cộng đồng phát triển ứng dụng rất lớn, hiện có khoảng hơn
70.000 ứng dụng có sẵn cho Android và đang liên tục đuợc cập nhật. Ứng dụng được

GVHD: Th.s Nhữ Khải Hoàn


SVTH: Nguyễn Khắc Huy


Đồ án tốt nghiệp

2

Khoa Điện – Điện Tử

phát triển bằng ngôn ngữ Java kết hợp với thư viện Java có sẵn của Google. Các nhà
phát triển ứng dụng có thể sử dụng máy tính chạy hệ điều hành Windows hoặc MacOS
hoặc Linux kết hợp với Android SDK để phát triển ứng dụng cho Android. Hệ điều
hành Android bao gồm 12.000.000 dòng mã trong đó có 3.000.000 dòng XML,
2.800.000 dòng C, 2.100.000 dòng Java, và 1.750.000 dòng C++.
Ðể phát triển phần mềm trên Android, các lập trình viên có thể tải về bộ công
cụ phát triển (Android SDK). Bộ công cụ bao gồm các công cụ và các API cần thiết,
sử dụng ngôn ngữ Java dễ lập trình.
1.1.2 Đặc điểm của hệ điều hành Android
 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. Android được xây
dựng trên nhân Linux mở. Thêm nữa, nó sử dụng một máy ảo mà đã được tối ưu hóa
bộ nhớ và phần cứng với môi trường di động. Android là một mã nguồn mở, nó có
thể được mở rộng để kết hợp tự do giữa các công nghệ nổi trội. 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, thậm chí có thể cài
đặt điện thoại chỉ xem những hình ảnh mình thích.
 Phá vỡ rào cản phát triển ứng dụng
Android phá vỡ rào cản để tạo ứng dụng mới và cải tiến. Một người phát triển
có thể kết hợp thông tin từ trang Web với dữ liệu trên điện thoại cá nhân. Ví dụ như

GVHD: Th.s Nhữ Khải Hoàn

SVTH: Nguyễn Khắc Huy


Đồ án tốt nghiệp

Khoa Điện – Điện Tử

3

danh bạ, lịch hay vị trí trên bản đồ để cung cấp chính xác hơn cho người khác. Với
Android, người phát triển có thể xây dựng một ứng dụng mà cho phép người dùng
xem vị trí của những người bạn và thông báo khi họ đang ở vị trí lân cận. Tất cả được
lập trình dễ dàng thông qua sự hỗ trợ của MapView và dịch vụ định vị toàn cầu GPS.
 Tất cả các ứng dụng có thể được tạo ra cho Android
Android không phân biệt giữa các ứng dụng lõi của điện thoại và các ứng dụng
của bên thứ ba. Họ tất cả có thể được xây dựng để có thể truy cập bằng khả năng của
một người cung cấp cho người sử dụng điện thoại với một dải rộng các ứng dụng và
dịch vụ. Với các thiết bị xây dựng trên hệ điều hành Android, người dùng có thể hoàn

toàn thích ứng với điện thoại đến lợi ích của họ. Họ có thể trao đổi trên màn hình của
điện thoại, những phong cách của dialog hoặc bất kỳ ứng dụng nào. Họ thậm chí có
thể hướng dẫn điện thoại của họ để sử dụng hình ảnh ưa thích của họ xem các ứng
dụng để xử lý xem tất cả các hình ảnh.
 Dễ dàng và nhanh chóng 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 thế giới. Thêm nữa, Android còn bao
gồm một bộ công cụ đầy đủ giúp cho việc phát triển trở nên dễ dàng.
 Dễ dàng và nhanh chóng xây dựng ứng dụng
Rất nhiều nhà phát triển hệ điều hành Android đã vào cuộc và các Rom cho
Android độc đáo được ra đời với nhiều tích năng nổi trội được tích hợp và đầy sáng
tạo. Danh sách các nhà phát triển Rom nổi bật:
-

Ahmgsk.

-

HTCClay.

-

Amon_RA.

-

eViL_D.


-

Benbuchacher.

-

Domenukk.

-

BH_MAN.

-

OpenTeam.

Ngoài ra có hàng trăm nhà phát triển Rom đang ngày đêm làm việc cật lực để đưa ra
sản phẩm của chính mình.

GVHD: Th.s Nhữ Khải Hoàn

SVTH: Nguyễn Khắc Huy


Đồ án tốt nghiệp

Khoa Điện – Điện Tử

4


1.1.3 So sánh giữa các hệ điều hành Smartphone
Bảng 1.1: So sánh giữa các hệ điều hành Smartphone.
Đặc điểm

ANDROID
- Tùy biến màn hình

WINDOWS PHONE

- Tích hợp liền

- Tùy biến màn hình

và cập nhật thời

mạch phần mềm

và cập nhật thời

gian thực (real

và phần cứng.

gian thực (real

time).
- Hệ thống thông
báo nhanh.
- Chia sẻ mạng với
các thiết bị tương

thích khác.
- Chức năng xem

Ưu điểm

IOS

- Hỗ trợ nhiều

time).

trang web thông

- Tích hợp với các

qua trình duyệt

ứng dụng kinh

safari.

doanh phổ biến có

- Thống nhất về

trên Microsoft.

giao diện người

- Phù hợp với giao


dùng ngay cả

diện đồ họa người

Google Maps là

khi nâng cấp lên

dùng (GUI) và

tiêu chuẩn vàng

iOS 6.

nhiều API trên tất

của nhiều ứng

- Hỗ trợ truy cập

dụng điều hướng.

email thông qua

- Tích hợp một vài

nhiều tài khoản.

mạng xã hội rất

tốt.

- Tích hợp với
mạng xã hội.

- Hỗ trợ tìm kiếm

- Thích hợp với

bằng giọng nói.

nhiều API trên

- Chia sẻ nội dụng
bằng NFC.

cả các nền tảng di
động.
- Hiệu suất điện
năng tốt thông qua
hệ điều hành đa
nền tảng.

nhiều nền tảng
khác.

- Phù hợp với nhiều
API trên nhiều nền
tảng.


GVHD: Th.s Nhữ Khải Hoàn

SVTH: Nguyễn Khắc Huy


Đồ án tốt nghiệp

- Tách rời hệ điều

- Màn hình chủ

hành và phần

khá lạc hậu,

cứng.

không sinh

- Tốn chi phí phát
triển.
Nhược
điểm

Khoa Điện – Điện Tử

5

- Dễ phát sinh các
vấn đề an ninh do

nguồn mở.
- Đồng bộ hóa với
PC kém.
- Yêu cầu tài khoản
Google.

- Phần cứng phân
mảnh.
- Cảm ứng màn hình

động, lỗi tương

có trực quan kém

tác thời gian

hơn so với iOS và

thực (khi nâng

Android.

cấp lên iOS 6).

- Tích hợp mạng xã

- Không hỗ trợ

hội không tốt.


Flash, có một

- Giao diện thay đổi

vài trang web

lớn so với trước

không xem

đó.

được.

1.2 Kiến trúc hệ điều hành Android
Kiến trúc của hệ điều hành Android gồm 4 thành phần:
-

Lớp ứng dụng (Applications).

-

Lớp khung tổ chức ứng dụng (Applications Framework).

-

Lớp thư viện (Librabries – Runtime).

-


Lớp nhân Linux phiên bản 2.6 (Linux kernel).

Hình 1.1: Mô hình kiến trúc nền tảng Android.
GVHD: Th.s Nhữ Khải Hoàn

SVTH: Nguyễn Khắc Huy


Đồ án tốt nghiệp

Khoa Điện – Điện Tử

6

1.2.1 Lớp ứng dụng
Đây là lớp ứng dụng giao tiếp với người dùng, bao gồm các ứng dụng như: Các
ứng dụng cơ bản được cài đặt đi liền với hệ điều hành như là gọi điện, quản lý danh
bạ, duyệt web, nhắn tin, lịch làm việc, Email, bản đồ, quay phim chụp ảnh (Camera)...
Các ứng dụng được cài thêm như các phần mềm chứng khoán (Stock), các trò chơi,
từ điển, các ứng dụng của bên thứ ba…Các ứng dụng viết sẽ có những đặc tính sau:
-

Viết bằng Java, phần mở rộng là .apk.

-

Khi mỗi ứng dụng được chạy, nó có một phiên bản Virtual Machine (máy ảo)

được dựng lên để phục vụ cho nó. Nó có thể là một Active Program chương trình có
giao diện với người sử dụng hoặc là một Background chương trình chạy nền hay là

dịch vụ.
-

Android là hệ điều hành đa nhiệm, điều đó có nghĩa là trong cùng một thời điểm,

có thể có nhiều chương trình cùng chạy một lúc, tuy nhiên với mỗi ứng dụng thì có
duy nhất một thực thể (instance) được phép chạy mà thôi. Điều đó có tác dụng hạn
chế sự lạm dụng tài nguyên, giúp hệ thống hoạt động tốt hơn. Các ứng dụng được
phân quyền và tự hệ thống sẽ hủy nếu mức ưu tiên thấp.
-

Các ứng dụng được gán số ID của người sử dụng nhằm phân định quyền hạn

khi sử dụng tài nguyên, cấu hình phần cứng và hệ thống.
Android là một hệ điều hành có tính mở, khác với nhiều hệ điều hành di động
khác, Android cho phép một ứng dụng của bên thứ ba được phép chạy nền. Các ứng
dụng đó chỉ có một hạn chế nhỏ đó là nó không được phép sử dụng quá 5 ÷ 10% công
suất CPU, điều đó nhằm để tránh độc quyền trong việc sử dụng CPU.
1.2.2 Lớp khung tổ chức ứng dụng
Ở lớp này các nhà phát triển ứng dụng có thể truy cập vào phần cứng thiết bị,
thông tin định vị vị trí, chạy các dịch vụ nền, đặt các cảnh báo, thông báo vào thanh
trạng thái,... và quan trọng nhất đó là các API của framework.
Phía duới tất cả các ứng dụng là một tập các dịch vụ của hệ thống bao gồm:
-

View Manage: Một tập hợp rất nhiều các View có khả năng kế thừa lẫn nhau

dùng để thiết kế phần giao diện ứng dụng như: Gridview, tableview, linearlayout,

GVHD: Th.s Nhữ Khải Hoàn


SVTH: Nguyễn Khắc Huy


Đồ án tốt nghiệp

Khoa Điện – Điện Tử

7

relative layout, table layout,...
-

Activity Manager: Quản lý các chu kỳ sống của một ứng dụng cũng như cung

cấp công cụ điều khiển các Activity.
-

Telephony Manager: Cung cấp công cụ để thực hiện việc liên lạc như gọi điện

thoại.
-

Location Manager: Cho phép xác định vị trí của điện thoại thoại dựa vào hệ

thống định vị toàn cầu GPS và Google Maps.
-

Window Manager: Quản lý việc xây dựng và hiển thị các giao diện người dùng


cũng như tổ chức quản lý các giao diện giữa các ứng dụng.
-

Notication Manager: Quản lý việc hiển thị các thông báo (như báo có tin nhắn,

có Email mới,…).
-

Resource Manager: Quản lý tài nguyên tĩnh của các ứng dụng bao gồm các

tập tin hình ảnh, âm thanh, layout, string (những thành phần không được viết bởi
ngôn ngữ lập trình).
-

Content Provider: Cho phép các ứng dụng có thể truy xuất dữ liệu từ các ứng

dụng khác (chẳng hạn như Contacts) hoặc là chia sẻ dữ liệu giữa các ứng dụng đó.
1.2.3 Lớp thư viện
1.2.3.1 Library
Thành phần này có nhiều thư viện được viết bằng C/C++ để các phần mềm có
thể sử dụng, các thư viện đó được tập hợp thành một số nhóm như:
-

Thư viện hệ thống (System c Library)(Libc): Thư viện dựa trên chuẩn C, được

sử dụng chỉ bởi hệ điều hành.
-

Thư viện Media (Media Librarles): Có nhiều code C để hỗ trợ việc phát và ghi


các loại định dạng âm thanh, hình ảnh, video thông dụng.
-

Thư viện Web (LibWebCore): Đây là thành phần để xem nội dung trên Web,

được sử dụng để xây dựng phần mềm duyệt Web (Android Browse) cũng như để các
ứng dụng khác có thể nhúng vào. Nó cực kỳ mạnh, hỗ trợ được nhiều công nghệ mạnh
mẽ như HTML5, JavaScript, CSS, DOM, AJAX.
-

Surface Manage: Quản lý hiển thị 2D và 3D.

GVHD: Th.s Nhữ Khải Hoàn

SVTH: Nguyễn Khắc Huy


Đồ án tốt nghiệp

Khoa Điện – Điện Tử

8

-

SGL: Công nghệ 2D.

-

SQLite: Quản lý database của ứng dụng.


-

Free Type: Dùng cho hiển thị hình ảnh, font.

-

SSL(Secure Socket Layer): Tầng thiết lập giao dịch an toàn trên 2 ứng dụng

trên một cổng (socket).
-

Open GL/EL: Hỗ trợ thư viện tùy chọn 3D tĩnh và động.

1.2.3.2 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 gồm có 2 bộ phận tương tự như mô hình chạy Java trên máy
tính thông thường. Thứ nhất là các thư viện lõi (Core Library), chứa các lớp như
JAVA 10, Collections, File Access. Thứ hai là một máy ảo Java (Dalvik Virtual
Machine).
Mặc dù cũng được viết từ ngôn ngữ Java nhưng một ứng dụng Java của hệ điều
hành Android không được chạy bằng JRE (Java Runtime Environment) của Sun (nay
là Oracle) (JVM) mà chạy bằng máy ảo Dalvik (máy ảo Dalvik được đặt tên sau khi
một nhà phát triển phần mềm của Google tạo ra nó sau chuyến đi thăm một ngôi làng
ở nơi tổ tiên ông sinh sống), do Google phát triển. Máy ảo Davik thực thi các tập tin
davik (dex), khác với java là chuyển sang dạng bytecode. Định dạng này được tối ưu
hóa cho bộ nhớ tối thiểu.
1.2.4 Lớp nhân Linux phiên bản 2.6
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 dây,…). 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.
Tất cả mọi hoạt động của điện thoại muốn thi hành được thì đều được thực hiện
ở mức cấp thấp ở lớp này bao gồm quản lý bộ nhớ (Memory management), giao tiếp
với phần cứng (Driver model), thực hiện bảo mật (Security), quản lý tiến trình (Process).
Tuy được phát triển dựa vào nhân Linux nhưng thực ra nhân Linux đã được
nâng cấp và sửa đổi rất nhiều để phù hợp với tính chất của những thiết bị cầm tay

GVHD: Th.s Nhữ Khải Hoàn

SVTH: Nguyễn Khắc Huy


Đồ án tốt nghiệp

Khoa Điện – Điện Tử

9

như hạn chế về bộ vi xử lý, dung lượng bộ nhớ, kích thước màn hình, nhu cầu kết nối
mạng không dây,…
 Các thành phần của nhân Linux:
-

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 trả về.
-

Bluetooth Driver: Điều khiển thiết bị phát và thu sóng Bluetooth.

-

USB driver: Quản lý hoạt động của các cổng giao tiếp USB.

-

Keypad 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á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 Madagement: 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.
1.3 Các thành phần của ứng dụng Android
Một ứng dụng trên Android được cấu thành từ các thành phần cơ bản sau:
 Activities (hoạt động).
 Services (dịch vụ).
 Broadcast Receivers (nhận quảng bá).
 Intent.
 Content Provider.
 Notification.
Các thành phần này không nhất thiết phải có mặt đầy đủ trong ứng dụng. Chúng
ta có thể xem các thành phần nào được sử dụng trong ứng dụng bằng việc xem khai
báo trong file AndroidManifest.xml.

GVHD: Th.s Nhữ Khải Hoàn

SVTH: Nguyễn Khắc Huy


Đồ án tốt nghiệp

10

Khoa Điện – Điện Tử


1.3.1 Activity
1.3.1.1 Khái niệm Activity
Một Activity là một giao diện đồ họa trực quan mà người dùng có thể thực hiện
trên đó mỗi khi được kích hoạt. Một ứng dụng có thể có nhiều Activity và chúng có
thể gọi qua lại lẫn nhau. Mỗi Activity là một dẫn xuất của lớp Android.app.activity.
Một ứng dụng gọi điện thoại có thể gồm các hoạt động như hiển thị một danh
sách các liên hệ để gọi tới, hoạt động thứ hai là gọi tới số điện thoại liên hệ được
chọn, ngoài ra còn có các hoạt động khác nữa như xem nhật ký cuộc gọi hay thay đổi
cài đặt. Mặc dù, chúng làm việc cùng nhau để tạo thành một giao diện người dùng
nhưng mỗi Activity độc lập với những cái khác. Mỗi Activity là một lớp con của lớp
cơ sở Activity.
Một ứng dụng có thể gồm chỉ một Activity hay nhiều Activity tùy theo yêu cầu
của mỗi ứng dụng. Thông thường, một trong số các Activity được đánh dấu là
Activity đầu tiên phải được chạy đầu tiên khi ứng dụng được khởi động. Để chuyển
từ một Activity hiện tại sang Activity khác bằng cách cho Activity hiện tại khởi động
Activity kế tiếp.
Mỗi Activity được đưa ra một cửa sổ mặc định để vẽ vào. Thông thường, cửa
sổ này sẽ lấp đầy màn hình, nhưng ta có thể tùy chọn để nó nhỏ hơn màn hình và nằm
trên các cửa sổ khác. Ngoài ra nó cũng có thể có thêm các cửa sổ con khác như là
hộp thoại,… Nội dung của cửa sổ của hoạt động được cung cấp bởi một hệ thống cấp
bậc các View (là đối tượng của lớp Views).
Android có một số View đã xây dựng sẵn mà người dùng có thể sử dụng. Gồm
có các: Buttons, text fields, scroll bars, menu items, check box, image view, image
view button, video view,... Một cây phân cấp View được đặt trong một cửa sổ của
Activity bằng phương thức Activity.setContentView(). ContentView là đối tượng
View ở gốc của cây phân cấp.
1.3.1.2 Vòng đời của Activity
Các Activity trong hệ thống được quản lý bởi một cấu trúc dữ liệu ngăn xếp.
Khi có một hoạt động được khởi tạo nó được đẩy vào trong ngăn xếp, chuyển sang


GVHD: Th.s Nhữ Khải Hoàn

SVTH: Nguyễn Khắc Huy


Đồ án tốt nghiệp

11

Khoa Điện – Điện Tử

trạng thái thực thi và hoạt trộng trước đó sẽ chuyển sang trạng thái chờ. Hoạt động
này chỉ trở lại trạng thái kích hoạt khi mà hoạt động vừa khởi tạo kết thúc việc thực
thi.
 Một Activity có 3 trạng thái chính:
-

Active hoặc running: Khi nó ở trên nhất màn hình và nhận tương tác với người

dùng.
-

Paused: Khi Activity không còn là trọng tâm trên màn hình nhưng vẫn hiện thị

trước người dùng.
-

Stopped: Khi một Activity hoàn toàn bị che khuất, nó sẽ rơi vào trạng thái

Stopped. Tuy nhiên, nó vẫn còn lưu trữ toàn bộ thông tin trạng thái và nó thường bị

hệ thống đóng lại khi có tình trạng thiếu bộ nhớ.
Khi chuyển giữa các trạng thái, ứng dụng sẽ gọi các hàm callback ứng với các
bước chuyển:
-

OnCreate(): Được gọi khi hoạt động được tạo ra lần đầu tiên.

-

OnStart(): Được gọi khi hoạt động trở nên hữu hình so với người dùng.

-

OnResume(): Được gọi khi hoạt động bắt đầu tương tác với người sử dụng.

-

OnPause(): Được gọi để dừng các hoạt động hiện tại và nối lại các hoạt động

trước đó.
-

OnStop(): Được gọi khi hoạt động không còn hiển thị với người dùng.

-

OnDestroy(): Được gọi trước khi hoạt động bị phá hủy bởi hệ thống (bằng tay

hoặc bằng hệ thống để bảo tồn bộ nhớ).
-


OnRestart(): Được gọi khi hệ thống đã được dừng lại và khởi động lại một lần

nữa.
Lưu đồ hình 1.2 mô tả trạng thái trong vòng đời của một Activity. Hình chữ
nhật thể hiện các phương thức Callback mà chúng ta có thể khai báo để gọi thực thi
một số thao tác khi hoạt động chuyển sang trạng thái khác (phương thức Callback là
phương thức được gọi lại bởi một phương thức khác khi có một sự kiện xảy ra). Các
trạng thái chính của một hoạt động được thể hiện bởi các hình viên thuốc.
Vòng đời của một Activity có thể được thể hiện trong những quá trình sau:

GVHD: Th.s Nhữ Khải Hoàn

SVTH: Nguyễn Khắc Huy


×