Kết hợp hai yếu tố trên, việc xây dựng một hệ thống điều khiển các thiết bịgia dụng bằng Smartphone Android thông qua giao tiếp Bluetooth là trọng tâm của đề tài nghiên cứu này để hướng
Trang 1ĐẠI HỌC HUẾ TRƯỜNG ĐẠI HỌC KHOA HỌC
KHOA ĐIỆN TỬ - VIỄN THÔNG
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
TÌM HIỂU HỆ ĐIỀU HÀNH ANDROID VÀ XÂY DỰNG
HỆ THỐNG ĐIỀU KHIỂN THIẾT BỊ QUA
BLUETOOTH
Sinh viên thực hiện Nguyễn Văn Ngọc
Trang 2Huế, tháng 5 năm 2014
Trang 3ĐẠI HỌC HUẾ TRƯỜNG ĐẠI HỌC KHOA HỌC
KHOA ĐIỆN TỬ - VIỄN THÔNG
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
TÌM HIỂU HỆ ĐIỀU HÀNH ANDROID VÀ XÂY DỰNG
HỆ THỐNG ĐIỀU KHIỂN THIẾT BỊ QUA
BLUETOOTH
Ngành: Điện Tử Viễn Thông.
Chuyên ngành: Thông Tin Quang.
Giảng viên hướng dẫn: Sinh viên thực hiện :Thạc sĩ: Lê Văn Thanh Vũ Nguyễn Văn Ngọc
Trang 4Huế, tháng 5 năm 2014
Trang 5LỜI CÁM ƠN
Em xin chân thành bày tỏ lòng biết ơn đến với các thầy cô trong trường ĐạiHọc Khoa Học, đặc biệt là các thầy cô trong Khoa Điện Tử - Viễn Thông đã tận tâmdạy dỗ, truyền đạt những kiến thức quý báu trong những năm học qua tại trường
Em xin gửi lời cám ơn chân thành nhất đến với Thầy Lê Văn Thanh Vũ,
giảng viên trường ĐH Khoa học đã tận tâm hướng dẫn, cung cấp tài liệu và tạo mọiđiều kiện thuận lợi để em hoàn thành tốt tập đồ án tốt nghiệp này
Và cuối cùng gửi lời cám ơn đến tất cả những người thân, ba mẹ, bạn bè đãquan tâm, giúp đỡ và động viên em trong quá trình học tập cũng như trong quá trìnhthực hiện đồ án này
Mặc dù đã cố gắng hết sức để thực hiện luận văn này nhưng chắc chắn sẽkhông tránh khỏi những thiếu sót Em rất mong nhận được sự chỉ bảo tận tình từ cácThầy cô và các bạn
Huế, tháng 5 năm 2014 Sinh viên thực hiện
Nguyễn Văn Ngọc
Trang 6MỤC LỤC
LỜI CÁM ƠN 3
MỤC LỤC I DANH MỤC HÌNH ẢNH III THUẬT NGỮ VIẾT TẮT V LỜI NÓI ĐẦU VI CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN 1
1.1 ĐẶT VẤN ĐỀ: 1
1.2 Ý TƯỞNG VÀ YÊU CẦU ĐẶT RA: 1
1.2.1 Ý tưởng thiết kế: 1
1.2.2 Các yêu cầu đặt ra: 3
CHƯƠNG 2: TÌM HIỂU HỆ ĐIỀU HÀNH ANDROID VÀ CÁC GIAO TIẾP NGOẠI VI 4
2.1 HỆ ĐIỀU HÀNH ANDROID: 4
2.1.1 Khái niệm: 4
2.1.2 Lịch sử phát triển: 4
2.1.3 Các phiên bản của hệ điều hành: 6
2.1.4 Kiến trúc hệ điều hành Android: 9
2.1.5 Chu kỳ ứng dụng trên Android: 12
2.2 PHÁT TRIỂN ỨNG DỤNG TRÊN NỀN TẢNG ANDROID: 17
2.2.1 Giới thiệu Java SE JDK, Android SDK, ADT, DDMS, Eclipse: 17
2.2.2 Thiết lập cài đặt để lập trình ứng dụng Android: 20
2.2.3 Tạo một project mới với ứng dụng Helloworld: 27
2.3 GIAO TIẾP KHÔNG DÂY BLUETOOTH: 28
2.3.1 Khái niệm Bluetooth: 28
2.3.2 Các đặc điểm của Bluetooth: 29
2.3.3 Các khái niệm dùng trong công nghệ Bluetooth: 30
2.3.4 Định nghĩa các liên kết vật lý trong Bluetooth: 32
2.3.5 Trạng thái của thiết bị Bluetooth: 32
2.3.6 Các chế độ kết nối: 33
2.3.7 Kĩ thuật trải phổ nhảy tần trong công nghệ Bluetooth: 33
2.3.8 Cách thức hoạt động của Bluetooth: 37
Trang 72.4 MODULE BLUETOOTH HC - 05: 40
2.4.1 Đặc điểm kỹ thuật: 40
2.4.2 Phần cứng: 41
2.4.3 Giao tiếp bằng lệnh AT để cài đặt Module Bluetooth Hc - 05: 43
CHƯƠNG 3: THIẾT KẾ HỆ THỐNG ĐIỀU KHIỂN THIẾT BỊ ĐIỆN BẰNG SMARTPHONE QUA BLUETOOTH 46
3.1 BÀI TOÁN ĐẶT RA: 46
3.1.1 Yêu cầu của hệ thống: 46
3.1.2 Mô hình hệ thống: 47
3.2 THIẾT KẾ MẠCH ĐIỆN ĐIỀU KHIỂN: 48
3.2.1 Sơ đồ khối và chức năng từng khối: 48
3.2.2 Sơ đồ nguyên lý của mạch điều khiển: 51
3.2.3 Hoàn thành mạch điện: 51
3.2.4 Chương trình cho vi điều khiển 8051: 53
3.3 THIẾT KẾ ỨNG DỤNG “SMARTCONTROL” TRÊN ĐIỆN THOẠI ANDROID: 57
3.3.1 Xây dựng ứng dụng Android sử dụng Bluetooth: 57
3.3.2 Lưu đồ thuật toán ứng dụng “SmartControl”: 58
3.3.3 Hoàn thành ứng dụng trên SmartPhone Android: 59
CHƯƠNG 4: KẾT LUẬN VÀ ĐỊNH HƯỚNG PHÁT TRIỂN CỦA ĐỒ ÁN 61
4.1 KẾT LUẬN: 61
4.2 ĐỊNH HƯỚNG PHÁT TRIỂN CỦA ĐỒ ÁN: 62
TÀI LIỆU THAM KHẢO 63
Trang 8DANH MỤC HÌNH ẢNH
Hình 1.1 Mô hình tổng quan của hệ thống 2
Hình 2.2 Sự phân chia các hệ điều hành trên Smartphone.(Nguồn TechZ) 5
Hình 2.3 Kiến trúc của hệ điều hành Android 9
Hình 2.4 Activity stack 13
Hình 2.5 Chu kỳ sống của Activity 14
Hình 2.6 Các sự kiện trong 1 chu kỳ ứng dụng 15
Hình 2.7 Mối quan hệ giữa Java SE, Android SDK, ADT và Eclipse 17
Hình 2.8 Tải trọn bộ công cụ phát triển ứng dụng Android 21
Hình 2.9 Thiết lập thông số phù hợp cho bản tải 21
Hình 2.10 Cài đặt máy ảo Java 22
Hình 2.11 Cài đặt Eclipse 22
Hình 2.12 Chọn Work space để làm việc khi khởi động Eclipse 23
Hình 2.13 Mục chọn để cập nhật thêm phần mềm mới vào Eclipse 23
Hình 2.14 Chọn đường dẫn để đồng bộ bản ADT từ Google 24
Hình 2.15 Lựa chọn các plug-in cần cài đặt vào Eclipse 24
Hình 2.16 Chọn cập nhật đường dẫn tới bộ Android SDK trên Eclipse 25
Hình 2.17 Cập nhật các gói hỗ trợ mới nhất từ Google 26
Hình 2.18 Thiết lập thông số máy ảo 27
Hình 2.19 Máy ảo Android 28
Hình 2.20 Thiết lập một project Android mới 28
Hình 2.21 Một Piconet trong thực tế 32
Hình 2.22 Một Scatternet gồm 2 Piconet 32
Hình 2.23 Kĩ thuật trải phổ nhảy tần số 34
Hình 2.24 Các Packet truyền trên các tần số khác nhau 35
Hình 2.25 Các Packet truyền trên khe thời gian 35
Hình 2.26 Cấu trúc gói tin Bluetooth 36
Hình 2.27 Cấu tạo một packet 36
Hình 2.28 Mô hình piconet 38
Trang 9Hình 2.29 Quá trình truy vấn tạo kết nối 39
Hình 2.30 Truy vấn tạo kết nối giữa các thiết bị trong thực tế.39 Hình 2.31 Module Bluetooth HC 05 40
Hình 2.32 Mô hình phần cứng của module 41
Hình 2.33 Sơ đồ mạch nguyên lý module Bluetooth HC 43
Hình 2.34 Giao diện phần mềm giao tiếp với module HC-05 44
Hình 3.1 Thiết kế mô hình hệ thống 47
Hình 3.2 Sơ đồ khối mạch điều khiển 48
Hình 3.3 Sơ đồ nguyên lý khối nguồn 48
Hình 3.4 Sơ đồ nguyên lý mạch Reset 49
Hình 3.5 Sơ đồ nguyên lý mạch dao động 49
Hình 3.6 Sơ đồ nguyên lý điều khiển rơle 50
Hình 3.7 Sơ đồ chân 8051 50
Hình 3.8 Sơ đồ nguyên lý mạch điều khiển 51
Hình 3.9 Mạch in hoàn thành 52
Hình 3.10 Mạch điện hoàn thành thực tế 52
Hình 3.11 Sơ đồ thuật toán của Vi điều khiển 53
Hình 3.12 Trình biên dịch Keil C uVision 4 54
Hình 3.13 Lưu đồ thuật toán ứng dụng "Smartcontrol" 58
Hình 3.14 Thiết kế giao diện 59
Hình 3.15 Khung nhìn code java 59
Hình 3.16 Mốt số hình ảnh của ứng dụng SmartControl 60
Trang 10THUẬT NGỮ VIẾT TẮT
Từ viết
tắt
ACL Asynchronous connectionless Kết nối không đồng bộADT Android Developer Tools Công cụ phát triển
Android
Interface
Giao diện lập trình ứngdụng
BEC Backward Error Control Kiểm soát lỗi ngược
CRC Cyclic Redundancy Check Mã kiểm lỗi
DDMS Dalvik Debug Monitor Server Máy chủ thực thi gỡ lỗiDSSS Direct Sequence Spread
Spectrum
Chuỗi lây lan phổ trực tiếp
EDR Enhanced Data Rate Tăng cường tốc độ dữ
liệu
FEC Forward Error Correction Sữa chữa lỗi về phía trướcFHSS Frequency Hopping Spread
Spectrum
Tần số nhảy lây lan phổ
IDE Integrated Development Environment Môi trường phát triển tích
hợpJDK Java Developer Kit Bộ công cụ phát triển JavaJRE Java Runtime Environment Ứng dụng nền trên JavaJVM Java Virtual Machine Máy ảo thực thi
LMP Link Manament Protocol Liên kết quản lí giao thứcMAC Media Access Control Điều khiển truyền thông
truy cậpPMA Packed Member Address Đóng gói phần địa chỉ
connection-oriented
Đồng bộ hướng kết nối
SDK Software Develoment Kit Phần mềm hỗ trợ phát
triểnUART Universal Asynchronous Bộ truyền nhận nối tiếp
Trang 11Receiver/Transmitter đồng bộ và không đồng
bộ
XML eXtensible Markup Language Ngôn ngữ đánh dấu mở rộng
Trang 12LỜI NÓI ĐẦU
Trong cuộc sống ngày càng hiện đại như ngày nay, các thiết bị di động cầmtay đang dần trở thành những thứ không thể thiếu cho mỗi người.Trong đó có các Smartphone, với những nền tảng hiện đại và tíchhợp nhiều công nghệ, nó không chỉ giúp giữ thông tin liên lạc vớinhau mà những chiếc Smartphone này trở nên thông minh và làmđược rất nhiều việc đem lại sự tiện lợi cho người dùng từ nhữngcông việc nhỏ nhất trong đời sống Với các nhu cầu đa dạng vàphức tạp của mỗi ứng dụng, kỹ thuật không dây đã đưa ra nhiềuchuẩn với các đặc điểm kỹ thuật khác nhau để có thể phù hợp vớitừng nhu cầu, mục đích và khả năng của người sử dụng như IrDA,WLAN với chuẩn 802.11, ZigBee, OpenAir, Bluetooth, NFC… Mỗichuẩn kỹ thuật đều có những ưu, khuyết điểm riêng của nó vàtrong đó Bluetooth đang dần nổi lên là kỹ thuật không dây tầmngắn có nhiều ưu điểm, rất thuận lợi cho những thiết bị di động.Bluetooth đang dần lan rộng ra khắp thế giới, xâm nhập vào mọilĩnh vực của thiết bị điện tử, đặc biệt là các thiết bị cầm tay
Từ những lý do trên, Em đã chọn đề tài “Tìm hiểu Hệ điều hành Android và xây dựng hệ thống điều khiển thiết bị qua Bluetooth” Trong đề tài này, em tìm hiểu về Hệ
điều hành Android và xây dựng một hệ thống điều khiển thiết bịthông qua Bluetooth Với những kiến thức về điện tử và vi điềukhiển đã được học tập tại trường, cùng với việc tìm hiều để xâydựng ứng dụng trên hệ điều hành Android, em đã hoàn thành tốt
đồ án của mình
Em xin gửi lời cám ơn chân thành đến với thầy giáo hướng
dẫn Lê Văn Thanh Vũ cùng với các thầy cô giáo trong Khoa đã
nhiệt tình giúp đỡ em trong quá trình thực hiện đồ án Do có sựhạn chế về thời gian cũng như kiến thức và kinh nghiệm nên khótránh khỏi những sai sót Em rất mong được sự đóng góp ý kiếncủa các Thầy Cô trong Khoa và các bạn về đồ án này Em xin chânthành cảm ơn
Trang 13CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN
1.1 Đặt vấn đề:
Trong vài năm trở lại, hệ điều hành Android đã xuất hiện như một điểm sángrồi dẫn trở thành vầng sao lớn trong lĩnh vực hệ điều hành cho thiết bị cầm taythông minh khi chiếm đến 78,1% thị phần (Theo IDC, Q4/2013) so vớiiOS và Windows Phone Nó đem lại cho người dùng các tiện ích thông minh
và sự tiện dụng cùng với một kho ứng dụng đồ sộ cho các thiết bị cầm tay Nhờ đặcđiểm mã nguồn mở của Linux tối ưu cho hoạt động của thiết bị cầm tay thông minh,Android cho phép người dùng và các nhà phát triển phát triển các ứng dụng linhhoạt hướng đến sự tiện lợi đa dạng trong nhiều lĩnh vực khác nhau Google còncung cấp các nền tảng phát triển cho phép bên thứ 3 tham gia phát triển các ứngdụng mới và tùy biến hệ điều hành một cách linh hoạt Chính điều này đã cho phépcác bên thứ 3 phát triển rất nhiều ứng dụng theo nhiều định hướng để góp phần làmphong phú hơn các kho ứng dụng của Android
Ngoài ra, hiện nay giao tiếp không dây của các thiết bị thông minh ngàycàng đa dạng và tiện dụng hơn, nếu trước đây các điện thoại chỉ có thể kế nối thôngqua cáp với giao diện riêng của nhà sản xuất thì ngày này có rất nhiều chuẩn giaotiếp rất tiện lợi như: giao tiếp USB, giao tiếp NFC, Wifi …Và đặc biệt giao tiếpkhông dây phổ biến và linh hoạt như Bluetooth cho phép các thiết bị dễ dàng kết nốitrao đổi dữ liệu trong khoảng cách ngắn một cách đơn giản nhất Nó cho phép việckết nối không dây với các thiết bị điện, điện tử trở nên tiện dụng và hiệu quả hơn
Kết hợp hai yếu tố trên, việc xây dựng một hệ thống điều khiển các thiết bịgia dụng bằng Smartphone Android thông qua giao tiếp Bluetooth là trọng tâm của
đề tài nghiên cứu này để hướng đến một cuộc sống tiện nghi, hiện đại trong cácngôi nhà thông minh
1.2 Ý tưởng và yêu cầu đặt ra:
1.2.1 Ý tưởng thiết kế:
* Về phía phần mềm điều khiển trên Android: Việc xây
dựng ứng dụng trên hệ điều hành Android tương đối thuận lợi, dễdàng bởi Android là một hệ điều hành mở, có một cộng đồng pháttriển đông đảo, nơi để mọi người học hỏi, tham khảo và chia sẻkinh nghiệm với nhau Và một ưu điểm nữa là hầu như các thiết bịAndroid là đều được tích hợp công nghệ Bluetooth, vì thế người
Trang 14dùng có thể dễ dàng kết nối được với mạch để điều khiển Việcđiều khiển trở lên thuận tiện và tiết kiệm chi phí so với làm bộ điềukhiển Nhờ vào tính mở của hệ điều hành Android chúng ta có thểphát triển ứng dụng một cách tối ưu, phù hợp cho bộ điều khiển
Từ những thuận lợi đó,việc tạo một ứng dụng trên chiếcMobile Android thật sự dễ dàng, ứng dụng này sẽ có chức năngchính là truyền , nhận dữ liệu qua Bluetooth để điều khiển bảngthiết bị Và việc này được thực hiện trên những chiếc điện thoại sửdụng hệ điều hành Android mà mọi người thường dùng hằng ngày
* Về phía thiết bị ngoại vi: Sử dụng 1 Module Bluetooth để truyền
nhận dữ liệu với Smartphone Android và việc truyền nhận này được điều khiển bởimột vi điều khiển Vi điều khiển này có 2 nhiệm vụ chính: xử lý dữ liệu và điềukhiển đóng tắt các Rơle để điều khiển dòng điện 220VAC cung cấp cho các thiết bịđiện
Mục tiêu đạt ra là kết nối các thiết bị điện gia dụng thông qua khối xử lýtrung tâm có sự điều khiển từ xa bởi thiết bị sử dụng hệ điều hành Android và cógiao tiếp không dây Bluetooth cơ bản Mô hình tổng thể hệ thống được trình bàynhư dưới đây (Hình 1 1)
Hình 1.1 Mô hình tổng quan của hệ thống.
Trang 16- Hệ thống mạch điện phải có độ ổn định cao, sử dụng đượctrong nhiều điều kiện khác nhau, và trong thời gian dài.
- Phần mềm điều khiển trên điện thoại Android phải linh hoạt,kết nối nhanh với mạch điều khiển, chính xác và an toàn tuyệt đối
- Đơn giản với nhiều người sử dụng, cài đặt phần mềm và lắpđặt phần cứng đơn giản nhất
- Hạn chế tối đa các can nhiễu khi sử dụng với các thiết bị điệnkhác nhau, đặc biệt là các thiết bị có nhiễu từ trường cao
- Khoảng cách điều khiển giữa điện thoại Android và mạchđiều khiển đảm bảo hợp lý trong khoảng cách dưới 100m
- Giá thành phải phù hợp với một hệ thống ổn định và có tínhứng dụng thực tiễn cao
Trang 17CHƯƠNG 2: TÌM HIỂU HỆ ĐIỀU HÀNH ANDROID
VÀ CÁC GIAO TIẾP NGOẠI VI
2.1 Hệ điều hành Android:
2.1.1 Khái niệm:
Android là một hệ điều hành mã nguồn mở dành cho thiết bị di động như
Smartphone, Tablet hay Netbook (thường gọi chung là thiết bị cầm tay thông minh).
Android do Google phát triển dựa trên nền tảng Linux kernel phiên bản 2.6 và cácphần mềm mã nguồn mở Bất kỳ một hãng sản xuất phần cứng nàocũng đều có thể tự do sử dụng hệ điều hành Android cho thiết bịcủa mình, miễn là các thiết bị ấy đáp ứng được các tiêu chuẩn cơbản do Google đặt ra ( như có cảm ứng chạm đa điểm, GPS, 3G,
…) Nhờ tính mở miễn phí và những ưu điểm của hệ điều hành này,ngày nay các thiết bị cầm tay sử dụng hệ điều hành này càngnhiều và phổ biến
2.1.2 Lịch sử phát triển:
Ban đầu, Android là hệ điều hành cho các thiết bị cầm taydựa trên lõi Linux do công ty Android Inc (California, Mỹ) thiết kế.Công ty này sau đó được Google mua lại vào năm 2005 và bắtđầu xây dựng Android Platform Các thành viên chủ chốt tại ởAndroid Inc gồm có: Andy Rubin, Rich Miner, Nick Sears, andChris White Quá trình phát triển ban đầu được minh họa trong
Hình 2.2 Dòng thời gian phát triển của android.
Trang 18Và sau tiếp, vào cuối năm 2007, thuộc về Liên minh Thiết
bị Cầm tay Mã Nguồn mở (Open Handset Alliance) gồm cácthành viên nổi bật trong ngành viễn thông và thiết bị cầm taynhư:
Texas Instruments, Broadcom Corporation, Google, HTC, Intel, LG, Marvell Technology Group, Motorola, Nvidia,Qualcomm, Samsung Electronics, Sprint Nextel, T- Mobile, ARM Holdings, Atheros Communications, Asustek Computer Inc, Garmin Ltd, Softbank, Sony Ericsson, Toshiba Corp, and Vodafone Group,…
Mục tiêu của Liên minh này là nhanh chóng đổi mới để đápứng tốt hơn cho nhu cầu người tiêu dùng và kết quả đầu tiêncủa nó chính là nền tảng Android Android được thiết kế để phục
vụ nhu cầu của các nhà sản xuất thiết, các nhà khai thác và cáclập trình viên thiết bị cầm tay
Phiên bản SDK 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 đầutiên đó là chiếc T-Mobile G1, chiếc smartphone đầu tiên dựa trênnề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
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ấpmạng điện thoại di động Mục tiêu của thiết bị này là cho phépcá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ộtbản hợp đồng nào
Trang 19Hình 2.3 Sự phân chia các hệ điều hành trên Smartphone.(Nguồn TechZ).
Hiện nay, hệ điều hành này trở nên phát triển và hội nhập hơn bao giờ hết,được các hãng sản xuất thiết bị sử dụng và được người dùng ngày càng yêu thích.Hình 2.2 biểu thị sự phân khúc thị trường của các hệ điều hành hiện nay, trong đó tacũng thấy rằng hệ điều hành Android chiếm vị trí cao nhất với 81% so với các hệđiều hành khác
Với các nhà phát triển ứng dụng (Developers), việc hệ điều
hành android được sử dụng phổ biến đồng nghĩa với việc họ có thểthoải mái phát triển ứng dụng trên nền android với sự tin tưởng làứng dụng đó sẽ có thể chạy được ngay trên nhiều dòng điện thoạicủa các hãng khác nhau Họ ít phải quan tâm là đang phát triểncho điện thoại nào, phiên bản bao nhiêu vì nền tảng android làchung cho nhiều dòng máy, máy ảo Java đã chịu trách nhiệm thựcthi những ứng dụng phù hợp với mỗi dòng điện thoại mà nó đangchạy Tất cả các chương trình ứng dụng được viết bằng ngôn ngữJava kết hợp với XML nên có khả năng khả chuyển cao
2.1.3 Các phiên bản của hệ điều hành:
Hệ điều hành android là một hệ điều hành rất mạnh, có bảomật cao, hỗ trợ được nhiều công nghệ tiên tiến như 3G, 4G, GPS,EDGE, Wifi tương thích với nhiều phần cứng, và hỗ trợ được vớinhiều loại thiết bị khác nhau Qua từng giai đoạn phát triển đã córất nhiều phiên bản ra mắt để sửa lỗi hoàn thiện hơn và thêm cáctính năng mới
Trang 20- Android 1.0: Ra mắt ngày 23-11-2008, Android 1.0 rất
nguyên sơ, tích hợp sẵn khả năng đồng bộ dữ liệu với các dịch vụtrực tuyến của Google như Gmail, Google Calendar và Contacts,một trình phát media, hỗ trợ Wi-Fi và Bluetooth, thanh trạng tháihiển thị các thông báo ứng dụng và một ứng dụng chụp ảnh(camera) tuy chưa cho phép thay đổi độ phân giải và chất lượngảnh
- Android 1.1: Ra mắt ngày 9-2-2009, bên cạnh con số,
Google rục rịch đưa hệ thống tên gọi (tên mã) vào các phiên bảnAndroid Tuy chưa chính thức áp dụng nhưng Android 1.1 đã có tênPetit Four Không bao gồm nhiều tính năng, phiên bản này bổ sungmột số chức năng mới cho Google Maps hiển thị chi tiết hơn, bànphím ảo gọi điện thoại đã có thể hiển thị hoặc ẩn khi gọi, chươngtrình SMS cho phép người dùng lưu tập tin đính kèm Android 1.1sửa một số lỗi trong Android 1.0
- Android 1.5 Cupcake: Ra mắt ngày 30-4-2009, Cupcake,
tên mã đầu tiên áp dụng cho phiên bản Android Cupcake mangnhiều tính năng mới như bàn phím ảo có khả năng dự đoán từđang gõ, từ điển từ ngữ do người dùng đặt ra, hỗ trợ widget trêngiao diện chủ, quay phim và phát lại video clip, lược sử thời giancuộc gọi, chế độ tự động xoay màn hình theo hướng sử dụng(screen rotation) Trình duyệt web trong Cupcake có thêm khảnăng sao chép/ dán (copy/paste)
- Android 1.6 Donut: Ra mắt ngày 30-9-2009, Donut khắc
phục các chức năng "lỏng lẻo" trong Cupcake, mở rộng chức năngtìm kiếm bằng giọng nói và ký tự đến bookmark và danh bạ.Android Market trở thành "chợ đầu mối" để người dùng tìm kiếm
và xem các ứng dụng Android Ứng dụng chụp ảnh và quay phimtrong Donut nhanh hơn Hệ điều hành hỗ trợ màn hình có độ phângiải lớn hơn, hướng đến các thế hệ smartphone màn hình lớn
- Android 2.0/2.1 Eclair: phiên bản chính 2.0 ra mắt vào
tháng 11 năm 2009, triển khai để hỗ trợ tốt hơn cho điện thoại diđộng Sau đó, phiên bản 2.1 với một vài tính năng nhỏ được nângcấp xuất hiện vào tháng 1 năm 2010 Phiên bản này nổi bật vớicác tính năng mới cho người dùng và các nhà phát triển, cũng nhưnâng cấp giao diện người dùng đồng thời hỗ trợ HTML5 vàExchange ActiveSync 2.5
Trang 21- Android 2.2 Froyo: Ra mắt ngày 20-5-2010, từ phiên
bản 2.0 trở đi, Android dần hoàn thiện hơn Phiên bản 2.2 (Froyo)mang Adobe Flash đến Android, kéo theo hàng loạt ứng dụng vàgame trên nền Flash Người dùng cũng có thể xem video clip nềnFlash như YouTube và "ra lệnh" thực hiện cuộc gọi qua Bluetooth
+ Một chức năng mới trong Froyo được nhóm người dùng lưuđộng yêu thích là USB Tethering và Wi-Fi Hotspot, biến chiếcsmartphone Android thành thiết bị phát sóng Wi-Fi từ kết nối 3G.Tính năng này được sử dụng rất phổ biến đến ngày nay
+ Lần đầu tiên Android cho phép cài đặt ứng dụng (app) lênthẻ nhớ SD thay vì mặc định cài ngay vào bộ nhớ trong của thiết
bị Điểm "đầu tiên" nữa trong Froyo bao gồm mật khẩu đã hỗ trợ
số và chữ số Thiết bị đầu tiên mang nhãn Froyo ra mắt thị trường
là HTC Nexus One
- Android 2.3 Gingerbread: ra ngày 06/12/2010,
Gingerbread đưa vào hệ thống một công cụ quản lý tải tập tin, chophép theo dõi và truy xuất đến các tập tin đã tải về máy Hệ thốngnày hỗ trợ nhiều camera cho các thiết bị có camera mặt sau vàtrước, quản lý nguồn pin hiệu quả hơn, tiết kiệm thời lượng pin.Phiên bản này khắc phục khá nhiều lỗi từ Froyo, kèm theo một sốđiều chỉnh trong giao diện người dùng (UI)
- Android 3.0/3.1 Honeycomb: Ra mắt ngày
22-2-2011.Đây không chỉ là một phiên bản, mà có thể xem là một thế
hệ Android đầu tiên dành riêng cho máy tính bảng (tablet), ra mắtcùng tablet Motorola XOOM
+ Mang những tính năng từ thế hệ Android 2.x, Android 3.0cải tiến giao diện phù hợp với cách sử dụng máy tính bảng, bànphím ảo thân thiện hơn, hỗ trợ xử lý đa tác vụ (multi-tasking), chophép chuyển đổi qua lại các ứng dụng đang cùng chạy Không chỉ
có bề mặt được trau chuốt, phần lõi hệ thống có các cải tiến tươngthích với phần cứng như hỗ trợ chip xử lý (CPU) đa lõi, tăng tốcphần cứng
+ Android 3.0 đặt nền móng quan trọng cho thế hệ Android4.x hợp nhất, khắc phục sự phân mảng của Android (có các phiên
bản riêng dành cho smartphone và tablet)
Trang 22- Android 4.0: Ice Cream Sandwich :Ra mắt ngày
19-10-2011."Bánh kem sandwich" (ICS) là thế hệ Android được mong đợinhất đến nay, ra đời cùng dòng smartphone "bom tấn" SamsungGalaxy Nexus, thế hệ smartphone đầu tiên trang bị ICS Android4.0 đưa chức năng truy xuất nhanh các ứng dụng thường dùng vàophần bên dưới giao diện chủ, tùy biến widget, dễ sắp xếp và duyệtdanh sách ứng dụng hơn Các ứng dụng đã có thể truy xuất nhanh
từ màn hình khóa thiết bị (Lock screen), hiện các hãng sản xuấtthiết bị chỉ mới cho phép Camera có thể chọn nhanh từ Lockscreen.Ice Cream Sandwich hoạt động mượt mà, nhanh và đẹphơn
- Android 4.1: Jelly Bean: Ra mắt 9-7-2012 Khả năng sắp
xếp giao diện chủ và widget trong Jelly Bean rất tùy biến và linhhoạt Hệ thống hỗ trợ dịch vụ ví điện tử Google Wallet, đặc biệttrình duyệt web mặc định trong Android được thay thế bởi đại diệntên tuổi: Chrome, với khả năng đồng bộ dữ liệu theo tài khoản vớibản Chrome trên máy tính
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ếplịch trình, tìm kiếm thông tin, xác định vị trí Rất đa năng và đượcxem như lời đáp trả của Google với "phụ tá ảo" Apple Siri trongiOS
- 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ồithê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ànphí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.2nhưng chỉ có người dùng máy tính bảng thừa hưởng chức năngnày
- Android 4.3 Jelly Bean : Ra mắt tháng 7 - 2013, Đây là
phiên bản Android mới nhất đi kèm những tính năng mới như hỗtrợ kết nối Bluetooth Smart, bộ API OpenGL ES 3.0, cho phép gán
hồ sơ cho từng người dùng trong hệ thống, bổ sung tính năng sử
Trang 23dụng Wi-Fi để định vị ngay cả khi người dùng tắt kết nối này đicùng nhiều thay đổi lớn nhỏ khác.
- Android 4.4 KitKat: Ra mắt tháng 11 - 2013, Mục tiêu của
Google đó là đem Android 4.4 lên mọi thiết bị, kể cả những dòngmáy có cấu hình rất thấp đi chăng nữa, đây cũng là dịp họ muốn
rũ bỏ cái danh “hệ điều hành ngốn cấu hình” hàng đầu thế giới Bổxung nhiều tính năng và các hàm API mới cho việc phát triển cácứng dụng hiện đại
2.1.4 Kiến trúc hệ điều hành Android:
Kiến trúc hệ điều hành Android gồm 4 tầng, từ dưới lên trên
là tầng hạt nhân Linux (v2.6), tầng Tầng Libraries & AndroidRuntime , Tầng Application Framework và trên cùng là tầngApplication Mô hình tổng thể của các thành phần bên trong hệthống sử dụng Android được mình họa trong (Hình 2 4)
Hình 2.4 Kiến trúc của hệ điều hành Android.
2.1.4.1 Tầng hạt nhân Linux (Linux Kernel layer):
Hệ điều hành Android được phát trển dựa trên hạt nhân LinuxKernel, cụ thể là hạt nhân Linux phiên bản 2.6, điều đó được thể
Trang 24hiện ở lớp dưới cùng này Tất cả mọi hoạt động của điện thoạimuốn thi hành được thì đều được thực hiện ở mức cấp thấp ở lớpnày bao gồm quản lý bộ nhớ (memory management), giao tiếp vớiphầ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ưngthự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 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ốimạng không dây
Tầng này có các thành phần chủ yếu:
- Display Driver : Điều khiển việc hiển thị lên màn hình cũngnhư thu nhận những điều khiển của người dùng lên màn hình (dichuyển, cảm ứng )
- Camera Driver : Điều kiển hoạt động của camera, nhậnluồng dữ liệu từ camera trả về
- Bluetooth Driver : Điều khiển thiết bị phát và thu sóngBluetooth
- 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
- Binder IPC Driver : Chịu trách nhiệm về việc kết nối và liênlạc với mạng vô tuyến như CDMA, GSM, 3G, 4G, E để đảm bảonhững chức năng truyền thông được thực hiện
- M-System Driver : Quản lý việc đọc ghi lên các thiết bịnhớ như thẻ SD, flash
- Power Madagement : Giám sát việc tiêu thụ điện năng
2.1.4.2 Tầng Library và Android runtime:
Tầng này có 2 thành phần là Library và Android runtime
Phần Library:
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ợpthành một số nhóm như :
Trang 25- Thư viện hệ thống (System C library) : thư viện dựatrên chuẩn C, được sử dụng chỉ bởi hệ điều hành.
- Thư viện Media (Media libraries): có nhiều codec để hổtrợ việc phát và ghi lại 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 để xemnội dung trên web, được sử dụng để xây dựng phầnmềm duyệt web (Android browse) cũng như các ứngdụng khác có thể nhúng vào Nó cực kỳ mạnh, hỗ trợnhiều công nghệ mạnh mẽ như HTML5, JavaScript, CSS,DOM, AJAX…
- Thư viện SQLite: hệ cơ sở dữ liệu cho các ứng dụng
Phần Android runtime:
Phần này chứa các thư viện mà một chương trình viết bằngngô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, FileAccess 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 RuntimeEnvironment) của Sun (nay là Oracle) (JVM - Java Virtual Machine)
mà là chạy bằng máy ảo Dalvik do Google phát triển
2.1.4.3 Tầng Application Framework:
Tầng này xây dựng bộ công cụ: các phần tử ở mức cao đểcác lập trình viên có thể nhanh chóng xây dựng ứng dụng Nó đượcviết bằng java có khả năng sử dụng chung để tiết kiệm tài nguyên
Đây là một nền tảng mở, điều đó có hai cái lợi:
- Với các hãng sản xuất điện thoại: Có thể tùy biến để phùhợp với cấu hình điện thoại mà họ sản xuất cũng như để có nhiềumẫu mà phù hợp với thị hiếu người tiêu dùng Vì thế nên dù làdùng chung hệ điều hành Android sáng điện thoại của các hãngMotorla, HTC, Samsung,… có thể hoàn toàn khác nhau
- Với lập trình viên: Cho phép lập trình viên có thể sử dụngcác API (Application Programming Interface ) ở tầng trên mà khôngcần phải hiểu rõ cấu trúc bên dưới, tạo điều kiện cho lập trình viên
tự do sáng tạo bởi vì chỉ cần quan tâm đến nội dung mà ứng dụng
Trang 26họ làm việc Một tập hợp API rất hữu ích được xây dựng sẵn như
hệ thống định vị, các dịch vụ chạy nền, liên lạc giữa các ứng dụng,các thành phần giao diện cấp cao
- Notication Manager : Quản lý việc hiển thị các thông báo(như báo có tin nhắn, có e-mail mới )
- Resource Manager : Quản lý tài nguyên tĩnh của các ứngdụng bao gồm các file hình ảnh, âm thanh, layout, string (Nhữngthành phần không được viết bởi ngôn ngữ lập trình)
2.1.4.4 Tầng Application:
Đây là tầng gồm các ứng dụng giao tiếp với người dùng như:Các ứng dụng cơ bản được cài đặt đi liền với hệ điều hànhnhư gọi điện (phone), quản lý danh bạ (Contacts), trình duyệt web(web browser), nhắn tin (SMS), lịch (Calendar), đọc E-mail (Email –client), bản đồ (Map), … Các ứng dụng được người dùng cài thêm:Stock, games, dictionary…
Các chương trình có đặc điểm là:
- Viết bằng java, có phần mở rộng là apk
- Khi mỗi ứng dụng được chạy, nó có một phiên bản VirtualMachine được dựng lên để phục vụ cho nó Nó có thể là một ActiveProgram: Chương trình có giao diện với người sử dụng hoặc là mộtbackground: chương trình chạy nền hay là dịch vụ
Trang 27- Android là hệ điều hành đa nhiệm, điều đó có nghĩa là trongcùng một thời điểm, có thể có nhiều chương trình cùng chạy mộtlú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 gán số ID của người sử dụng nhằn 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ênthứ 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ử dung quá 5~10% công suất CPU,điều đó nhằn để tránh độc quyền trong việc sử dụng CPU
- Ứng dụng không có điểm vào cố định, không có phương thứcmain để bắt đầu
2.1.5 Chu kỳ ứng dụng trên Android:
Một tiến trình Linux gói gọn một ứng dụng Android đã được tạo ra cho ứngdụng khi codes cần được run và sẽ còn chạy cho đến khi:
- Nó không phụ thuộc
- Hệ thống cần lấy lại bộ nhớ mà nó chiếm giữ cho các ứng dụng khác.Một sự khác thường và đặc tính cơ bản của Android là thời gian sống của tiếntrình ứng dụng không được điều khiển trực tiếp bới chính nó Thay vào đó, nóđược xác định bởi hệ thống qua một kết hợp của:
- Những phần của ứng dụng mà hệ thống biết đang chạy
- Những phần quan trọng như thế nào đối với người dùng
- Bao nhiêu vùng nhớ chiếm lĩnh trong hệ thống
2.1.5.1 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ỗithà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
2.1.5.2 Activity Stack:
Bên trong hệ thống các activity được quản lý như mộtactivity stack Khi một Activity mới được start, nó được đặt ở đỉnh
Trang 28của stack và trở thành activity đang chạy activity trước sẽ ở bêndưới activity mới và sẽ không thấy trong suốt quá trình activitymới tồn tại.
Nếu người dùng nhấn nút Back thì activity kết tiếp của stack
sẽ di duyển lên và trở thành active (Hình 2.4)
Hình 2.5 Activity stack
Trang 292.1.5.3 Các trạng thái của chu kỳ sống:
Các trạng thái của chu kỳ sống được mô tả như hình bên dưới (Hình 2 6):
Hình 2.6 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 này tập trung vào những thao tác của người dùngtrê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 Có nghĩa là một Activitymới ở trên nó nhưng không bao phủ đầy màn hình Một Activity
Trang 30tạm dừng là còn sống nhưng có thể bị kết thúc bởi hệ thốngtrong trường hợp thiếu vùng nhớ.
- 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ó Người dùngkhông thấy nó và thường bị loại bỏ trong trường hợp hệ thống cầnvùng nhớ cho tác vụ khác
2.1.5.4 Chu kỳ sống của ứng dụng:
Trong một ứng dụng Android có chứa nhiều thành phần vàmỗi thành phần đều có một chu trình sống riêng Và ứng dụng chỉđược gọi là kết thúc khi tất cả các thành phần trong ứng dụng kếtthúc Activity là một thành phần cho phép người dùng giao tiếpvới ứng dụng Tuy nhiên, khi tất cả các Activity kết thúc và ngườidùng không còn giao tiếp được với ứng dụng nữa nhưng không cónghĩa là ứng dụng đã kết thúc Bởi vì ngoài Activity là thành phần
có khả năng tương tác người dùng thì còn có các thành phầnkhông có khả năng tương tác với người dùng như là Service,Broadcast receiver Có nghĩa là những thành phần không tươngtác người dùng có thể chạy background dưới sự giám sát của hệđiều hành cho đến khi người dùng tự tắt chúng
2.1.5.5 Các sự kiện trong chu kỳ sống của ứng dụng:
Nếu một Activity được tạm dừng hoặc dừng hẳn, hệ thống
có thể bỏ thông tin khác của nó từ vùng nhớ bởi việc finish() (gọihàm finish() của nó), hoặc đơn giản giết tiến trình của nó Khi nóđược hiển thị lần nữa với người dùng, nó phải được hoàn toànrestart và phục hồi lại trạng thái trước Khi một Activity chuyểnqua chuyển lại giữa các trạng thái, nó phải báo việc chuyển của
nó bằng việc gọi hàm transition Các phương thức của ứng dụngđược nêu ra ở Hình 2 7
Hình 2.7 Các sự kiện trong 1 chu kỳ ứng dụng.
Tất cả các phương thức là những móc nối mà bạn có thểoverride để làm tương thích công việc trong ứng dụng khi thay
Trang 31đổi trạng thái Tất cả các Activity bắt buộc phải có onCreate() để khởi tạo ứng dụng Nhiều Activity sẽ cũng hiện thực onPause() để
xác nhận việc thay đổi dữ liệu và mặt khác chuẩn bị dừng hoạtđộng với người dùng
2.1.5.6 Thời gian sống của ứng dụng:
Bảy phương thức chuyển tiếp định nghĩa trong chu kỳ sốngcủa một Activity Thời gian sống của một Activity diễn ra giữa lần
đầu tiên gọi onCreate() đến trạng thái cuối cùng gọi onDestroy().
Một Activity khởi tạo toàn bộ trạng thái toàn cục trong
onCreate(), và giải phóng các tài nguyên đang tồn tại trong onDestroy().
2.1.5.7 Thời gian hiển thị của Activity:
Visible lifetime của một activity diễn ra giữa lần gọi một
onStart() cho đến khi gọi onStop() Trong suốt khoảng thời gian
này người dùng có thể thấy activity trên màn hình, có nghĩa là nókhông bị foreground hoặc đang tương tác với người dùng Giữa 2phương thức người dùng có thể duy trì tài nguyên để hiển thịactivity đến người dùng
2.1.5.8 Các phương thức của chu kỳ sống:
Phương thức: onCreate()
- Được gọi khi activity lần đầu tiên được tạo
- Ở đây bạn làm tất cả các cài đặt tĩnh (tạo các view, kếtnối dữ liệu đến list…)
- Phương thức này gửi qua một đối tượngBundle chứa
đựng từ trạng thái trược của Activity
- Luôn theo sau bởi onStart()
Trang 32- Theo sau bởi onResume() nếu activity đến trạng thái foreground hoặc onStop() nế nó trở nên ẩn.
Phương thức: onResume()
- Được gọi trước khi activity bắt đầu tương tác với ngườidùng
- Tại thời điểm này activity ở trên dỉnh của stack activity
- Luôn theo sau bởi onPause()
Phương thức: onPause()
- Được gọi khi hệ thống đang resuming activity khác
- Phương thức này là điển hình việc giữ lại không đổi dữ liệu
- Nó nên được diễn ra một cách nhanh chóng bởi vì activity
kế tiếp sẽ không được resumed ngay cho đến khi nó trở lại
- Theo sau bởi onResume nếu activity trở về từ ở trước, hoặc bởi onStop nếu nó trở nên visible với người dùng.
- Trạng thái của activity có thể bị giết bởi hệ thống
- Được theo sau bởi onRestart() nếu activity đang đở lại
để tương tác với người dùng, hoặc onDestroy() nếu activity đang
bỏ
- Trạng thái của activity có thể bị giết bởi hệ thống
Phương thức: onDestroy()
- Được gọi trước khi activity bị hủy
- Đó là lần gọi cuối cùng mà activity này được nhận
- Nó được gọi khác bởi vì activity đang hoàn thành, hoặc bởi
vì hệ thống tạm thời bị hủy diệt để tiết kiệm vùng nhớ
- Bạn có thể phân biệt giữa 2 kịch bản với phương
isFinshing().
Trang 33- Trạng thái của activity có thể được giết bởi hệ thống
2.2 Phát triển ứng dụng trên nền tảng Android:
2.2.1 Giới thiệu Java SE JDK, Android SDK, ADT,
DDMS, Eclipse:
2.2.1.1 Giới thiệu chung:
Để phát triển ứng dụng Android, chúng ta cần có Java SEDevelopment Kit (JDK), Gói Android SDK, môi trường phát triểnphần mềm (IDE) và các công cụ hỗ trợ phát triển phần mềmAndroid trên IDE đó Hình 2 8 mô tả mối quan hệ giữa chúng
Hình 2.8 Mối quan hệ giữa Java SE, Android SDK, ADT và
Eclipse
Một cách “đơn giản” mà nói, ta có thể lập trình trên bất cứtrình soạn thảo văn bản nào nhưng làm vậy sẽ mất rất nhiều thờigian trong khi lập trình ứng dụng Android với IDE và các công cụ
đi kèm có sự hỗ trợ cao về các công cụ hỗ trợ lập trình giao diện,kiểm lỗi, hỗ trợ biên dịch chương trình…
2.2.1.2 Giới thiệu Java SE Development Kit (JDK):
Java SE là hệ thống nền tảng Java và thường được cài đặt lêncác máy trạm, máy PC hay laptop để tiện lợi cho các nhà lập trìnhtiến hành phát triển các ứng dụng có nền tảng Java Cho nên dùmuốn dù không thì khi lập trình với ứng dụng Java trên máy trạmhay laptop hay PC thì trên máy phải có Java SE Development Kit(JDK)
Android SDK là bộ phát triển ứng dụng Android trên nềnJava và nó đòi hỏi Java SE JDK phiên bản 5 hay cao hơn Ta cóthể tải về Java SE JDK tại địa chỉ sau:http://Java.sun.com/Javase/downloads/widget/jdk6.jsp Hiệp hộicác thiết bị cầm tay mở và Google chọn Java là nền tảng để xâydựng Android không chỉ có lí do là nó là mã nguồn mở mà còn lí
Trang 34do quan trọng không kém là nó được hỗ trợ trên nhiều hệ điềuhành khác nhau từ Windows, Macintosh (x86), Solaris cho đếnLinux.
2.2.1.3 Giới thiệu Eclipse IDE:
Về nguyên tắc mà nói, chúng ta có thể dùng bất kì môitrường phát triển phần mềm Java nào mà mình thích để pháttriển ứng dụng Thậm chí bạn có thể dùng NotePad củaWindows để viết các mã lệnh nhưng làm thế sẽ tốn rất nhiều thờigian và khá phức tạp Đối với Android, thì theo như Google khuyếncáo dùng Eclipse để có sự hỗ trợ tối đa từ các công cụ lậptrình Android mà Google cung cấp Tổ chức OHA và Googlekhuyến cáo dùng Eclipse vì Eclipse có thể thực thi trên nhiều hệđiều hành khác nhau mà không cần cài đặt trên chúng Có thể tải
http://www.eclipse.org/downloads/ Phiên bản Eclipse IDE tối thiểu
là 3.4 (Ganymede) hay 3.5 (Galileo) nhưng theo tôi nên chọnphiên bản Eclipse mới nhất trên địa chỉ tải về Eclipse bên trên đểđạt được sự hỗ trợ tối đa từ Eclipse IDE
Như vậy có Eclipse và JDK ta có thể lập trình ứng dụng Javangay trên các máy trạm được Do chúng ta lập trình ứng dụngAndroid nên cần JDK để có nền tảng để lập trình Java, có IDEEclipse để lập trình ứng dụng trên đó, bây giờ ta cần thêm mộtAndroid SDK để hỗ trợ viết ứng dụng đặc thù Android với nhữngcông cụ hỗ trợ của nó cùng với Eclipse có thể viết ứng dụngAndroid hoàn chỉnh Để Eclipse và Android SDK hiểu nhau thì tacần có công cụ phát triển phần mềm Android có tác “mồi” đểEclipse và Android SDK hiểu nhau Mặc dù theo lí thuyết
mà nói, ADT là những công cụ nằm trong Android SDK nhưngADT phải được cài đặt hay đồng bộ hóa trước với Eclipse để “tạođà” để lấy tất cả các bảng cập nhật nền tảng Android về choAndroid SDK
2.2.1.4 Giới thiệu plugin ADT:
ADT là plugin mở rộng được tích hợp vào môi trường pháttriển phần mềm Eclipse Nó cho phép ta tạo và kiểm lỗi ứng dụngAndroid dễ dàng hơn và nhanh chóng hơn Nếu bạn dùng Eclipse.Plugin ADT sẽ giúp bạn được các công việc sau:
Trang 35- Truy xuất trực tiếp đến các công cụ phát triển Androidkhác bên trong Eclipse Ví dụ, ADT cho phép truy xuất đến chứcnăng của công cụ DDMS như: chụp màn hình, quản lý liên kết vớithiết bị, đặt điểm dừng để kiểm lỗi, và xem thông tin các luồng
và tiến trình trự tiếp từ Eclipse
- Nó cung cấp New Project Wizard, mà giúp ta tạo và thiếtlập tất cả các tập tin cơ bản cần thiết cho một ứng dụng Androidmới
- Nó tự động hóa và làm đơn giản hóa tiến trình xây dựngứng dụng Android
- Nó cung cấp trình biên tập mã lệnh Android mà giúpbạn viết lệnh XML cho tập tin AndroidManifest và các tập tin tàinguyên khác
- Xuất ra tập tin .apk “đã đăng ký” (signed) hoặc
“chưa đăng ký” (unsigned) để mà phân phối ứng dụng cho ngườidùng cuối
Nói chung, dùng Eclipse với plugin ADT, chúng ta có thể lợidụng tính năng cập nhật từ xa của Eclipse Bằng cách thiết lậpmột trang cập nhật từ xa, bạn có thể dễ dàng tải về, cài đặt, vàkiểm tra những cập nhật ADT Thật chất ADT không cài đặt riêng
lẻ hay chạy trên tập tin thực thi mà nó được “đính vào” Eclipsedưới dạng plugin Ta tải về ADT dưới dạng plugin dành choEclipse thông qua 2 hình thức là:
- Cập nhật về 2 công cụ thông dụng là DDMS và ADT lên
https://dl-ssl.google.com/android/eclipse/ thì sẽ có mục chọn như
đã nói là DDMS và ADT Hai phần này sẽ được đính kèm vàoAndroid và đây là hai plugin mồi để tải về nền tảng Androiddựa trên thư mục Android SDK mà ta thiết lập sau đó
- Hay tải tập tin ADT về tại địa chỉ :http://developer.Android.com/SDK/eclipseadt.html và sau đóđính kèm nó vào Eclipse cũng qua đường Help/Install NewSoftware có mục Add trên khung thoại Install thì ta sẽ Add achivecho nó Ngay lập tức Eclipse sẽ hỗ trợ các công cụ và trình đơncần thiết để thiết lập Android SDK với nền tảng hệ điều hànhcác các công cụ khác của Android SDK
Trang 36Một khi thiết lập ADT xong, ta sẽ tải về tập tin Android SDK
để nhờ ADT trên Eclipse để thiết lập giữa Eclipse IDE và AndroidSDK
2.2.1.5 Giới thiệu Android SDK :
Android SDK là nền tảng xây dựng ứng dụng Android trênnền Java và được cung cấp trên trang:http://developer.Android.com/SDK/index.html với 3 phiên bảndành cho ba hệ điều hành khác nhau gồm Windows, Mac và Linux
Android SDK là một tập tin dạng nén zip và khi giải nén rathì ta sẽ có một thư mục /android-sdk-windows cùng với các thưmục /tools với các công cụ đi kèm phía bên trong nhưng thưmục /platform thì vẫn còn trống chưa có gì Nhiệm vụ duy nhấtcủa ta hiện giờ là kết nối Eclipse và Android SDK hiểu nhau sau
đó cập nhật lại nền tảng và các công cụ cho Android SDK
Một khi thiết lập tham chiếu đến thư mục Android SDK choEclipse thì trên Eclipse có mục Android SDK and AVD Manager đểtải về các thành phần nền tảng mà chúng ta cần như là nền tảngAndroid, các SDK add-on, các công cụ, và tài liệu hướng dẫn
2.2.2 Thiết lập cài đặt để lập trình ứng dụng Android:
2.2.2.1 Tải các công cụ để lập trình Android:
Hiện nay, trang web phát triển ứng Androidhttp://developer.android.com cung cấp đầy đủ tất cả các phầnmềm liên quan, và các gói API, các ví dụ đầy đủ để các nhà pháttriển phát triển ứng dụng của mình được thuận lợi
Để tải trọn gói bộ công cụ phát triển ứng dụng Android gồm :Java SE Development Kit (JDK phiên bản mơi nhất), IDE Eclipse, vàAndroid SDK ta có thể tải theo link sau :http://developer.android.com/sdk/index.html Xem chi tiết ở hìnhbên dưới (Hình 2 9)
Trang 37Hình 2.9 Tải trọn bộ công cụ phát triển ứng dụng Android
- Kích chọn vào Download the SDK, sau đó đánh dấu vào
“Đồng ý các điều khoản" , Chọn Hệ điều hành phù hợp với máyđang sử dụng để phát triển Cuối cùng kích vào Download the SDKADT bundle for Windows để tải trọn bộ công cụ phát triển (Hình 2.10)
Hình 2.10 Thiết lập thông số phù hợp cho bản tải.
Sau khi tải trọn bộ công cụ phát triển về, tiến hành giản nénfile: adt-bundle-windows-x86-20131030.zip, lúc này ta đã có Java
SE Development Kit, IDE Eclipse và gói Android SDK
Trang 382.2.2.2 Cài đặt Java SE Development Kit (JDK) :
Kích chọn vào file jdk-7u45-windows-i86.exe (tùy vào phiênbản hiện tại) để tiến hành cài đặt Hình 2 11 mô tả cách cài Java
SE Development
Hình 2.11 Cài đặt máy ảo Java.
Tiến hành "Next" và cài đặt bình thường những phần mềmkhác rồi nhấn Fisnish để hoàn tất quá trình cài đặt máy ảo Java.Một trong những “nguyên liệu” bắt buộc phải có để phát triển ứngdụng Android
2.2.2.3 Cài đặt môi trường phát triển IDE Eclipse:
Kích chọn folder eclipse, trong đó đã có tập tin thực thichương trình Eclipse.exe Để tiện lợi trong việc sử dụng, chúng tanên copy ra Desktop để làm việc (Hình 2 12)
Trang 39Hình 2.12 Cài đặt Eclipse.
Khởi động Eclipse
Chọn Workspace thích hợp ( Như Hình 2 13 đường dẫn tới thư mục sẽchứa toàn bộ các project Android, ví dụ: C:\Documents and Settings\Admin\workspace) Nên chọn các ổ đĩa chứa dữ liệu, để tránh mất các Project khi cài đặtlại hệ điều hành máy tính
Hình 2.13 Chọn Work space để làm việc khi khởi động Eclipse
- Thiết lập thông số để cập nhật ADT vào Eclipse
Chọn Help => Install New Software (Hình 2 14)
Trang 40Hình 2.14 Mục chọn để cập nhật thêm phần mềm mới vào
Eclipse
- Cách thức để cập nhật plugin ADT vào Eclipse như sau:
- Cài đặt plugin ADT thông qua đồng bộ hóa với thưmục Eclipse trên Google khi ta chưa có tập tin ADT.zip(Hình 2 15)
+ Sau khi nhấn nút Add, ta sẽ nhập địa chỉhttp://dlssl.google.com/android/eclipse/ vào ô Location vànhấn OK
Hình 2.15 Chọn đường dẫn để đồng bộ bản ADT từ Google
+ Chương trình sẽ kiểm tra phiên bản ADT mớinhất và thông báo lại cho người dùng chọn như trong hìnhminh họa bên dưới (Hình 2 16)