LỜI CẢM ƠN Trải qua một thời gian dài tìm hiểu và nỗ lực, nhóm em đã hoàn thành đồ án 5 với đề tài : “ TÌM HIỂU VỀ HỆ ĐIỀU HÀNH ANDROID VÀ XÂY DỰNG ỨNG DỤNG ĐO TỐC ĐỘ CHO ANDROID” Để h
Trang 1Luận văn
Đề tài: Tìm hiểu về Android
và xây dựng ứng dụng đo tốc độ bằng GPS cho Android
Trang 2Nhận xét của giáo viên hướng dẫn
Nhận xét của giáo viên phản biện 1
Trang 3
Nhận xét của giáo viên phản biện 2
Trang 4
LỜI CẢM ƠN
Trải qua một thời gian dài tìm hiểu và nỗ lực, nhóm em đã hoàn thành đồ án
5 với đề tài : “ TÌM HIỂU VỀ HỆ ĐIỀU HÀNH ANDROID VÀ XÂY DỰNG
ỨNG DỤNG ĐO TỐC ĐỘ CHO ANDROID”
Để hoàn thành đồ án trên, lời đầu tiên chúng em xin chân thành cảm ơn quý thầy/cô khoa Công nghệ thông tin trường Đại học SPKT Hưng Yên – những người
Trang 5đã trực tiếp giảng dạy, truyền đạt những kiến thức bổ ích cho chúng em, đó chính
là những nền tảng cơ bản, là những hành trang vô cùng quý giá, là bước đầu tiêncho chúng em bước vào tương lai Và đặc biệt - một lời cảm ơn sâu sắc- chúng em
muốn gửi đến thầy Trần Trung Kiên, thầylà người trực tiếp hướng dẫn chúng em
trong quá trình học tập và nghiên cứu Chúng em cám ơn thầy đã tận tình quantâm, giúp đỡ chúng em trong quá trình học tập, giải đáp những thắc mắc trong quátrình làm đồ án của chúng em Nhờ đó chúng em mới có thể hoàn thành được đềtài này
Chúng em cũng xin chân thành cám ơn quý thầy/cô khoa Công nghệ thông tintrường Đại học Lao Động – Xã Hội, các thầy/cô đã tạo điều kiện tốt nhất để chúng
em có thể học tập và hoàn thành đồ án của mình
Trong quá trình tìm hiểu và làm báo cáo, vì chưa có kinh nghiêm thực tế, chỉdựa vào những ý kiến chủ quan nên bài báo cáo chắc chắn sẽ không tránh khỏinhững sai sót Chúng em kính mong nhận được sự góp ý, nhận xét từ phía quýthầy/cô để kiến thức của chúng em ngày càng hoàn thiện hơn và rút ra được kinhnghiệm bổ ích có thể áp dụng vào đồ án tốt nghiệp sau này một cách hiệu quả nhất Chúng em kính chúc các thầy/cô luôn vui vẻ, hạnh phúc, dồi dào sức khỏe vàthành công trong công việc
Chúng em xin chân thành cảm ơn quý thầy/cô !
MỤC LỤCPHẦN 1: MỞĐẦU
7
1 Lý do chọn đề tài
Trang 62 Khách thể và đối tượng nghiên cứu
7
3 Giới hạn và phạm vi nghiên cứu
7
4 Mục đích nghiên cứu
7
5 Nhiệm vụ nghiên cứu
7
6 Phương pháp nghiên cứu
8
7 Ý nghĩa lý luận và thực tiễn của đề tài
8
I.1 Giới thiệu về hiệu điều hành Android
9
I.2 Các ứng dụng có sẵn trong Android
10
I.3 Các thư viện của Android
Trang 711
I.4 Ba ứng dụng trong Android
12
1.5 Các thành phần trong một ứng dụng Android
12
1.5.1 Android Project
13
1.5.2 Android Manifest
15
1.5.3 Activity
17
Tạo mộtActivity
17
CHƯƠNG 2 CÀI ĐẶT MÔI TRƯỜNG CHO LẬP TRÌNH ANDROID
20
2.1 Cài đặt
20
2.1.1 Tải và cài đặt Android SDK
20
2.2.2 Cài đặt ADT Plugin cho Eclipse
29
2.2 Tạo mới một Android project.
37
Trang 8PHẦN 3: MỘT SỐ ĐIỀU KHIỂNTRONG ECLIPSE 42
1 Cách tạo giao diện cho ứng dụng 42
2 Các layout 43
3 Các control cơ bản trongEclipse 43
3.1TextView 43
3.2EditText 44
3.3Button 45
PHẦN 4 XÂY DỰNG ỨNG DỤNGĐO TỐC ĐỘ BẰNG GPS CHO ANDROID
47 1 Mục tiêu
47 2 Xây dựng
47 2.1 Yêu cầu về giao diện
47 2.2 Thiết kế giao diện người dùng cho ứng dụng
48 2.3 Viết code cho ứng dụng
49 PHẦN 5: KẾT LUẬN 53
Trang 9PHẦN 1: MỞ ĐẦU
1 Lý do chọn đề tài
Cùng với sự phát triển như vũ bão của Công nghệ thông tin và các hệ điều hànhtrên máy tính, các hệ điều hành trên di động ngày nay đang trở nên rất đượcquan tâm Các hệ điều hành tiêu biểu như Windows Phone của Microsoft;Symbian của Motorola, Nokia và Ericsson; iOs của Apple… và đặc biệt hệ điềuhành chúng em muốn nói tới là Android của Google – một trong những hệ điềuhành phổ biến nhất trên thế giới Android là một hệ điều hành mã nguồn mở,chỉ cần nắm được lập trình java và một số khái niệm trong Android là chúng ta
có thể làm chủ được nó Chính vì lý do đó, chúng em đã lựa chọn đề tài “TÌM
HIỂU VỀ HỆ ĐIỀU HÀNH ANDROID VÀ XÂY DỰNG ỨNG DỤNG ĐO TỐC ĐỘ CHO ANDROID”
2 Khách thể và đối tượng nghiên cứu
- Khách thể: Hệ điều hành Android
- Đối tượng nghiên cứu: Ứng dụng GPS trong Android
3 Giới hạn và phạm vi nghiên cứu
Hệ điều hành Android là hệ điều hành hiện đại với rất nhiều các ứng dụng và tiện ích Tuy nhiên, trong phạm vi đề tài này, chúng em chỉ đi đến các vấn đề sau đây:
- Nghiên cứu về kiến trúc hệ điều hành Android
Trang 10- Cài đặt các gói cần thiết để lập trình cho hệ điều hành Android
- Nghiên cứu xây dựng ứng dụng đo tốc độ bằng GPS cho Android
4 Mục đích nghiên cứu
- Hiểu được kiến trúc của hệ điều hành Android
- Biết được cách cài đặt và tạo 1 project trong Android
- Xây dựng được ứng dụng đo tốc độ bằng GPS cho Android
5 Nhiệm vụ nghiên cứu
- Tìm hiểu chung về hệ điều hành Android
- Tìm hiểu về các cài đặt cần thiết cho lập trình Android
- Tìm hiểu để xây dựng ứng dụng đo tốc độ bằng GPS cho Android
6 Phương pháp nghiên cứu
- Nghiên cứu và tìm hiểu qua internet…
- Tham khảo ý kiến của các bạn cùng học lập trình
- Tham khảo ý kiến của thầy giáo, bạn bè…
- Tham khảo các tài liệu về Android cơ bản
7 Ý nghĩa lý luận và thực tiễn của đề tài
- Ý nghĩa lý luận: Đề tài được hoàn thành về mặt tài liệu sẽ là nguồn thamkhảo dễ hiểu, thiết thực cho những ai thích nghiên cứu, lập trình các phần mềmứng dụng cho hệ điều hành Android
- Ý nghĩa thực tiễn: Xây dựng được một ứng dụng đo tốc độ bằng GPS choAndroid Ứng dụng này rất hữu ích khi lái xe hoặc đi trên đường vì ứng dụng
sẽ báo động khi tốc độ vượt quá mức cho phép, giúp chúng ta tránh đượcnhững rủi ro không đáng có trong quá trình giao thông trên đường
Trang 11PHẦN 2: NỘI DUNGCHƯƠNG 1: TÌM HIỂU VỀ LẬP TRÌNH ANDROID
1.1 Giới thiệu về hệ điều hành Android
Android là hệ điều hành chạy trên điện thoại di động được phát triển từ nhânLinux, mang nhiều đặc tính đặc trưng của một hệ điều hành di động nhưng vẫnmang các tính chất chung của các hệ điều hành Là một hệ điều hành hiện đại,tuy ra đời muộn nhưng lại được phát triển từ Linux, rút kinh nghiệm từ những
hệ điều hành đi trước, được tích hợp nhiều công nghệ tiên tiến và đặc biệt làđược phát triển từ một “ông trùm công nghệ” tầm cỡ thế giới là Google nênAndroid đã sớm tìm được chỗ đứng của mình
Trang 12Giao diện màn hình khoá(Android 2.3) Giao diện màn hình chính(Android 2.3)
C1- Hình 1: Giao diện màn hình Android
Không giống như Windows Mobile và Apple Iphone, tuy cả hai đều cungcấp một môi trường phát triển ứng dụng phong phú và dễ tiếp cận nhưng luôn
có sự ưu tiên cho các ứng dụng mặc định có sẵn của hệ điều hành(nativeapplication) Với Android, mọi ứng dụng đều được viết trên cùng một tập API,thế nên không có sự phân biệt giữa các ứng dụng mặc định và các ứng dụng củabên thứ ba Người dùng hoàn toàn có thể thay thế mọi ứng dụng mặc định bằngcác ứng dụng yêu thích của mình, thậm chí ngay cả màn hành thực hiện cuộcgọi và màn hình nhà (home screen)
Các nhà phát triển viết ứng dụng cho Android dựa trên ngôn ngữ Java Sự ramắt của Android vào ngày 5 tháng 11 năm 2007 gắn với sự thành lập của liênminh thiết bị cầm tay mã nguồn mở, bao gồm 78 công ty phần cứng, phần mềm
và viễn thông nhằm mục đích tạo nên một chuẩn mở cho điện thoại di độngtrong tương lai
Trang 131.2 Các ứng dụng có sẵn trong Android
Một điện thoại Android thông thường sẽ đi kèm với một vài ứng dụng đãđược cài đặt sẵn, bao gồm:
- Một trình email tương thích với Gmail
- Chương trình quản lý tin nhắn SMS
- Chương trình quản lý thông tin cá nhân, bao gồm cả lịch làm việc, danh bạ,
và được đồng bộ hoá với dịch vụ của Google
- Phiên bản thu gọn của Google Map cho điện thoại, bao gồm StreetView, tìmkiếm địa điểm, chỉ đường, tình trạng giao thông,…
- Trình duyệt web dựa trên nhân WebKit
- Chương trình tán gẫu (chat)
- Trình đa phương tiện (chơi nhạc, xem ảnh,…)
- Android Marketplace – cho phép người dùng tải về và cài đặt các ứng dụngmới
- Tất cả các ứng dụng có sẵn đều được viết bằng ngôn ngữ Java và sử dụngAndroid SDK
- Các dữ liệu về thông tin người dùng được các ứng dụng có sẵn sử dụng – nhưthông tin về danh bạ - vẫn hoàn toàn có thể được sử dụng bởi các ứng dụngcủa bên thứ ba
- Tương tự vậy, ứng dụng của bạn hoàn toàn có thể xử lý các sự kiện như cócuộc gọi đến, nhận một tin nhắn mới,… thay cho các ứng dụng có sẵn
1.3 Các thư viện của Android
Android cung cấp các gói API để phát triển ứng dụng Danh sách các gói core API dưới đây giúp cho chúng ta có cái nhìn tổng quát về những gì được hỗ trợ sẵn,tất cả các thiết bị chạy Android đều phải hỗ trợ được tối thiểu các API này
Trang 14C1 – Hình 2: Các thư viện của Android
Trang 15Gói API cấp cao, bao gồm lớp Activity và Service - hai lớp cơ sở cho mọi ứng dụng Android
Background Service
android.util
Ứng dụng không đòi hỏi nhiều đến tương tác của người dùng Trừ khiđược cấu hình, còn phần lớn thời gian là ứng dụng chạy ngầm Ví dụthuộc loại này chẳng hạn như: ứng dụng trả lời tin nhắn tự động
Intermittent Activity
android.util
Ứng dụng loại này vừa nhận tương tác của người dùng, và vẫn có thểtiếp tục hoạt động ngầm khi bị ẩn đi Có thể đưa ra các thông báo chongười dùng khi cần thiết trong lúc đang bị ẩn Các ứng dụng loại này cóthể kể đến như: ứng dụng nghe nhạc, ứng dụng tán gẫu (chat),…
Trang 16C1 – Hình 3: Android Project cơ bản
Trong một thư mục project, có một số thành phần (file, thư mục con) được tạo
ra mặc định, còn lại phần lớn thì sẽ được tạo ra sau nếu cần trong quá trình pháttriển ứng dụng Dưới đây liệt kê cấu trúc đầy đủ của một thư mục project:
android.util src/
Chứa toàn bộ source code (file java hoặc aidl) bin/
android.util
Trang 17Thư mục chức file Output sau khi build Đây là nơi ta có thể tìmfile apk
Trang 181.5.2 Android Manifest
Mỗi một Android project thì luôn phải có một file AndroidManifest.xml(xem bên trên) Manifest dùng để định nghĩa cấu trúc cũng như các metadatacủa ứng dụng và các thành phần con Manifest bắt đầu bằng thẻ root <manifest>với thuộc tính package để quy ước package của project và thuộc tínhxmlns:android như là một quy định để chuẩn hóa cấu trúc file manifest Dướiđây là một file Manifest sau khi project được tạo ra:
C1- Hình 4: File AndroidManifest mặc định khi tạo một project
Manifest bao gồm nhiều thẻ định nghĩa các thành phần của ứng dụng, cácthiết lập về bảo mật, các lớp test,… Dưới đây là danh sách các thẻ có thể xuất hiệntrong file manifest:
android.util <application>
Một file manifest chỉ có thể chứa một thẻ application Thẻ này dùng
để chỉ định các metadata (bao gồm title, icon, theme,…) và các thành phần
Trang 19cho ứng dụng Nó đồng thời cũng là thẻ cha của các thẻ Activity, Service, Content Provider, và Broadcast Receiver
<service android:enabled="true" android:name=".MyService">
</service>
<uses-permission>
android.util
Quy định các quyền hạn mà ứng dụng muốn sử dụng trên hệ thống
Và người dùng sẽ phải xác nhận các quyền này trong khi cài ứng dụng Điềunày đảm bảo cho việc ứng dụng không thể toàn quyền sử dụng các tàinguyên của hệ thống (tin nhắn, danh bạ, thông tin cá nhân, camera, định vị,mạng,…) Đây là một điểm bảo mật cần lưu ý
Trang 20Activity hiểu một cách đơn giản là một nền của ứng dụng, khi khởi động mộtứng dụng Android nào đó thì bao giờ cũng có một Main Activity được gọi, hiển thịmàn hình giao diện của ứng dụng cho phép người dùng tương tác.
C1 - Hình 5: Activity mặc định khi tạo project
Một ứng dụng thường bao gồm nhiều activity liên kết với nhau Thông thườngmột activity của ứng dụng đóng vai trò activity chính và được hiển thị cho người
sử dụng trong lần đầu tiên chạy ứng dụng Mỗi activity có thể khởi chạy mộtactivity khác
Tạo một Activity
Để tạo một activity, bạn phải tạo một subclass cho Activity (hoặc cho chính nó).Trong subclass, bạn cần phải xác định cách thức callback mà hệ thống sẽ sử dụngkhi có sự chuyển đổi trạng thái của activity chẳng hạn như khi activity được tạo,dừng lại, resume hoặc bị hủy Có 2 phương thức callback quan trọng:
onCreate()
android.util
Ta cần phải hiện thực hóa phương thức này, vì hệ thống sẽ gọi tới methodnày mỗi khi activity được khởi động Và quan trọng, đây chính là nơi cầngọi phương thức setContentView() để xác định bố cục cho giao diện ngườidùng
Trang 21onPause()
android.util
Hệ thống sẽ gọi tới phương thức này khi người dùng rời khỏi ứng dụng (nókhông đồng nghĩa với việc activity sẽ bị hủy) Đây là nơi ta sẽ thực hiện lưulại trạng thái, hoặc không làm gì cả (vì người dùng có thể không trở lại)
Dưới đây là danh sách các phương thức có thể được gọi cùng với giải thích cụ thể:
onCreate()
android.util
Gọi khi Activity lần đầu tiên được tạo Đây là nơi bạn thực hiện mọicác khai báo cũng như thiết lập giao diện Luôn được theo sau bởi phươngthức onStart()
onStop()
android.util
Gọi khi Activity không còn được sử dụng nữa Nó có thể sẽ bị hủy bỏ,hoặc có thể sẽ lại được kích hoạt lại từ một Activity khác Theo sau bởionRestart() nếu nó được kích hoạt lại, hoặc onDestroy() nếu nó bị hủy bỏbởi hệ thống
onDestroy()
android.util
Gọi trước khi Activity thật sự bị hủy bỏ, đây là lời gọi cuối cùng màActivity có thể thực hiện Phương thức này có thể được gọi bởi vì ở đâu đó
Trang 22có lời gọi finish() hoặc finishActivity(), cũng có thể vì hệ thống cần phải hủy
bỏ để giải phóng bộ nhớ Không được theo sau bởi phương thức nào
C1 – Hình 6: Sơ đồ minh hoạ vòng đời Activity
CHƯƠNG 2: CÀI ĐẶT MÔI TRƯỜNG LẬP TRÌNH CHO
Trang 23+ Eclipse với ADT plug-in
2.1.1 Tải và cài đặt Android SDK
Để tải về và cài đặt,chúng ta truy cập vào trang web:
Trang 24Sau đó ta tiến hành cài đặt như những phần mềm thông dụng.
Một cửa sổ hiện ra,ta chọn Finish để hoàn tất cài đặt.
Trang 25- Sau khi cài đặt,ta khởi động SDK Manager:
C2 – Hình 4
Vào Start - All Program – Android SDK Tools – SDK Manager
C2 – Hình 5
Trang 26Ta tiến hành cài đặt gói SDK chính(phiên bản mới nhất là Android 4.2.2) Chúng
ta chọn nền tảng phù hợp cho điện thoại chúng ta sử dụng rồi click đánh dấu.Và
đánh dấu mục Tools để cài đặt các công cụ cho SDK Tiếp theo, chọn Install
packages.
C2 – Hình 6
Chọn Install để bắt đầu quá trình cài đặt.
Trang 27C2 – Hình 7
Cài đặt sẽ download các file cần thiết về(ta cần có kết nối Internet),quá trình này lâu hay chậm tuỳ thuộc vào tốc độ download của mạng
- Sau khi cài đặt xong,ta vào ADV Manager
Chúng ta vào ADV Manager để tạo ra 1 thiết bị chạy Android ảo ADV là 1 máy
ảo với cấu hình phần cứng tuỳ chỉnh,nơi có thể chạy Android cũng như các ứng dụng trên Android
Trang 29C2 – Hình 10
- Name :Tùy ý (nhưng chỉ được sử dụng các ký tự "a-z", "A-Z", ".-_", nghĩa
là cả khoảng trắng cũng không được)
- Target: Chọn nền tảng phù hợp mà ta muốn thiết bị sẽ chạy, chúng ta chọn
nền tảng phù hợp với điện thoại mà chúng ta ứng dụng Tất cả các nền tảng chúng ta vừa Install ở SDK Manager sẽ hiển thị ở đây
- CPU/ABI: Ta chọn AMR
- SD Card:Gõ vào Size SD card ảo cho AVD, hoặc chỉnh tới file đã có sẵn
Nhiều AVD có thể dùng chung 1 SDCard (chỉ cần tạo lần đầu, các lần sau chỉnh đường dẫn tới file đó)
- Skin:Có thể để Default hoặc chọn kích cỡ màn hình chúng ta muốn.
- Còn những mục khác ta có thể để mặc định
Sau đó chọn Create ADV