Luận văn Tìm hiểu về Android và xây dựng ứng dụng đo tốc độ bằng GPS cho Android

- Ưu điểm: + Đã giải quyết được vấn đề đo tốc độ, giúp chúng ta khi lưu thông có thể đo được tốc độ di chuyển của mình. + Có hệ thống cảnh báo khi vượt quá tốc độ, nhờ đó người sử dụng được cảnh báo an toàn khi tham gia giao thông.

docx55 trang | Chia sẻ: hao_hao | Lượt xem: 4817 | Lượt tải: 2download
Bạn đang xem trước 20 trang tài liệu Luận văn Tìm hiểu về Android và xây dựng ứng dụng đo tốc độ bằng GPS cho Android, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Luậ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 Nhậ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 Nhận xét của giáo viên phản biện 2 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 đã 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ên cho 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 quan tâ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 tin trườ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ỏi nhữ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 kinh nghiệ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ỤC PHẦN 1: MỞĐẦU 7 1. Lý do chọn đề tài 7 2. 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 PHẦN 2: NỘI DUNG 9 CHƯƠNG 1: TÌM HIỂU VỀ LẬP TRÌNH ANDROID 9 Giới thiệu về hiệu điều hành Android 9 Các ứng dụng có sẵn trong Android 10 Các thư viện của Android 11 Ba ứng dụng trong Android 12 Các thành phần trong một ứng dụng Android 12 Android Project 13 Android Manifest 15 Activity 17 Tạo mộtActivity 17 CHƯƠNG 2. CÀI ĐẶT MÔI TRƯỜNG CHO LẬP TRÌNH ANDROID 20 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 Tạo mới một Android project. 37 PHẦN 3: MỘT SỐ ĐIỀU KHIỂNTRONG ECLIPSE 42 Cách tạo giao diện cho ứng dụng 42 Các layout 43 Các control cơ bản trongEclipse 43 TextView 43 EditText 44 Button 45 PHẦN 4 . XÂY DỰNG ỨNG DỤNGĐO TỐC ĐỘ BẰNG GPS CHO ANDROID 47 Mục tiêu 47 Xây dựng 47 Yêu cầu về giao diện 47 Thiết kế giao diện người dùng cho ứng dụng 48 Viết code cho ứng dụng 49 PHẦN 5: KẾT LUẬN 53 PHẦN 1: MỞ ĐẦU 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ành trê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 được quan 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ều hành chúng em muốn nói tới là Android của Google – một trong những hệ điều hà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”. 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 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 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. 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. 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. 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... Ý 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 tham khả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 cho Android. Ứ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 được những rủi ro không đáng có trong quá trình giao thông trên đường... PHẦN 2: NỘI DUNG CHƯƠNG 1: TÌM HIỂU VỀ LẬP TRÌNH ANDROID 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ân Linux, mang nhiều đặc tính đặc trưng của một hệ điều hành di động nhưng vẫn mang 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ên Android đã sớm tìm được chỗ đứng của mình. Giao 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 cung cấ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(native application). 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ủa bên thứ ba. Người dùng hoàn toàn có thể thay thế mọi ứng dụng mặc định bằng cá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ộc gọ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ự ra mắt của Android vào ngày 5 tháng 11 năm 2007 gắn với sự thành lập của liên minh thiết bị cầm tay mã nguồn mở, bao gồm 78 công ty phần cứng, phần mềm và viễn thông nhằm mục đích tạo nên một chuẩn mở cho điện thoại di động trong tương lai. 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ìm kiế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ụng mớ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ụng Android 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ụng củ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. 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. C1 – Hình 2: Các thư viện của Android · android.util Gói api lõi, chứa các class cấp thấp như containers, string formatters, XML parsing. · android.os Truy cập tới các chức năng của hệ điều hành chẳng hạn như: gửi nhận tin nhắn, giao tiếp nội bộ giữa các ứng dụng, thời gian,… · android.database Cung cấp các lớp cấp thấp cần thiết để làm việc với databases. · android.content Dùng để quản lý các tài nguyên, các nội dung, và các gói. · android.view Views là lớp cha của mọi lớp giao diện người dùng. · android.widget Được kế thừa từ lớp View, bao gồm các lớp để cơ bản để xây dựng giao diện widget như: lists, buttons, layouts. · android.app Gó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. Ba ứng dụng trong Android Hầu hết các ứng dụng trong Android sẽ thuộc vào một trong ba loại sau đây: · Foreground Activity Ứng dụng hữu dụng chỉ khi nó được tương tác với người dùng ở mặt tiền (foreground), ứng dụng mất tác dụng khi bị ẩn đi. Game, bản đồ, từ điển là các ví dụ điển hình. · Background Service Ứ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 Ứ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 cho ngườ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),… Các thành phần trong một ứng dụng Android Android Project Android project là một hệ thống thư mục và file chứa toàn bộ source code, tài nguyên,… mà mục đích cuối cùng là để đóng gói thành một file .apk duy nhất (file có đuôi .apk là file ứng dụng của Android ). C1 – 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át triển ứng dụng. Dưới đây liệt kê cấu trúc đầy đủ của một thư mục project: · src/ Chứa toàn bộ source code (file .java hoặc .aidl) · bin/ Thư mục chức file Output sau khi build. Đây là nơi ta có thể tìm file .apk. · gen/ Chứa các file .java tạo ra bởi ADT plug-in, như là file R.java hoặc các giao diện tạo ra từ file AIDL. · res/ Chứa các tài nguyên (resources) cho ứng dụng, chẳng hạn như file hình ảnh, file layout, các chuỗi (string),… Dưới đây là các thư mục con của nó: · color/ Chứa các file .xml dùng định nghĩa màu sắc. · drawable/ Chứa file hình ảnh (png, jpeg, gif), file .xml định nghĩa cách vẽ các loại hình dạng khác nhau (shape). · layout/ Chứa file .xml dùng để dựng giao diện người dùng. · menu/ Chứa file .xml quy định application menu. · raw/ Chứa các file media, chẳng hạn như .mp3 hay .ogg · values/ Chứa file .xml định nghĩa các giá trị. Khác với các resource trong các thư mục khác, resource ở thư mục này khi được định danh trong lớp R thì sẽ không sử dụng file name để định danh, mà sẽ được định danh theo quy định bên trong file .xml đó. · xml/ Dùng chứa các file .xml, chẳng hạn như file xml quy định app widget, search metadata,… · libs/ Chứa các thư viện riêng. · AndroidManifest.xml/ File kiểm soát cách các thành phần trong ứng dụng (activity, service, intent receiver,…) tương tác với nhau, cách ứng dụng tương tác với các ứng dụng khác, cũng như đăng ký các quyền hạn về sử dụng tài nguyên trong máy. 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 metadata của ứng dụng và các thành phần con. Manifest bắt đầu bằng thẻ root với thuộc tính package để quy ước package của project và thuộc tính xmlns: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ác thiế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ện trong file manifest: · 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 cho ứng dụng. Nó đồng thời cũng là thẻ cha của các thẻ Activity, Service, Content Provider, và Broadcast Receiver. <application android:icon="@drawable/icon" android:theme="@style/my_theme" android:title="@string/app_name" > [ ... application nodes ... ] · Thẻ activity được yêu cầu cho mỗi một Activity trong ứng dụng. Sử dụng thuộc tính android:name để chỉ định tên của lớp Activity tương ứng. · Cũng như activity, thẻ service được yêu cầu cho mỗi một Service trong ứng dụng. Sử dụng thuộc tính android:name để chỉ định tên của lớp Service tương ứng. Sử dụng thuộc tính android:enabled để chỉ định trạng thái mặc định của Service. · 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ều này đảm bảo cho việc ứng dụng không thể toàn quyền sử dụng các tài nguyê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 ý. Eclipse sẽ tự động tạo ra một file Manifest bao gồm lớp Activity mặc định khi bạn tạo mới một Android Project. Activity Activity 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ường mộ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ột activity 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ụng khi 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() 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 method này mỗi khi activity được khởi động. Và quan trọng, đây chính là nơi cần gọi phương thức setContentView() để xác định bố cục cho giao diện người dùng. · onPause() 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ưu lạ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() Gọi khi Activity lần đầu tiên được tạo. Đây là nơi bạn thực hiện mọi các khai báo cũng như thiết lập giao diện. Luôn được theo sau bởi phương thức onStart(). · onRestart() Gọi khi Activity đang ở trạng thái Stopped và được kích hoạt lại. Luôn được theo sau bởi phương thức onStart(). · onStart() Gọi khi Activity “restart” và đã sẵn sàng, nhưng chưa hiện ra với người dùng. Được theo sau bởi phương thức onResume() nếu Activity đi ra foreground, hoặc onStop() nếu nó ẩn đi. · onResume() Chỉ được gọi khi Activity bắt đầu các tương tác với người dùng. Luôn được theo sau bởi phương thức onPause(). · onPause() Gọi trước khi Activity bắt đầu vào trạng thái “paused”. Trong phương thức này ta thường sẽ giải phóng bộ nhớ, hoặc dừng các hành động nào đó có thể chiếm dụng nhiều RAM, CPU để cho Activity được kích hoạt tiếp theo làm việc trơn tru. Theo sau bởi phương thức onResume() nếu Activity được kích hoạt lại (quay về foreground), hoặc onStop() nếu nó ẩn đi. · onStop() 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ởi onRestart() 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() 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 đó có 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 ANDROID Cài đặt Trước khi xây dựng được ứng dụng đo tốc độ,ta cần phải hoàn thành các cài đặt sau: + Java Development Kit(JDK) + Android SDK + Eclipse với ADT plug-in 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: Sau khi tải về,chúng ta bắt đầu cài đặt như sau: C2 – Hình 1 Double-click vào biểu tượng SDK sau khi đã tải về để cài đặt. C2 – Hình 2 Cửa sổ hiện ra,chọn Next để cài đặt. C2 – Hình 3 Cài đặt sẽ tự động tìm xem trong máy đã cài đặt Java Development Kit(JDK) chưa,nếu chưa sẽ tự động tải về và cài đặt,nếu trong máy đã có ta chọn Next. Sau đó 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. 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 Ta 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. C2 – 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. C2 – Hình 8 Vào Start – All Program – Android SDK Tools – ADV Manager C2 – Hình 9 Cửa sổ hiện ra,chọn New…để tạo mới máy ảo. C2 – 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 C2 – Hình 11 Cửa sổ hiện lên báo kết quả của việc cài đặt và các thông số ta vừa lựa chọn: dung lượng RAM... Ta bấm OK để tiếp tục. C2 – Hình 12 Sau khi tạo xong AVD,ta sẽ thấy tên của AVD xuất hiện trong danh sách.Ta chọn vào AVD đó và chọn Start… C2 – Hình 13 Chọn Launch để tiếp tục. C2 – Hình 14 Cài đặt bắt đầu trình giả lập cho thiết bị. C2 – Hình 15 Cửa sổ này hiện ra nghĩa là ta đã cài đặt thành công cho thiết bị. 2.1.2 Cài đặt ADT Plugin cho Eclipse Trước khi cài đặt ADT,Eclipse phải được cài đặt sẵn. Chúng ta download eclipse ở trang web: C2 – Hình 16 Sau khi tải về,thư mục Eclipse sẽ có các mục như trên,chúng ta chọn file : eclipse C2 – Hình 17 Chọn nơi lưu project vào 1 thư mục bạn tuỳ chọn. Click OK để tiếp tục. C2 – Hình 18 Màn hình hiện ra,chúng ta đợi trong giây lát. C2 – Hình 19 Chúng ta chọn Menu Help – Install New Software…để cấu hình cài đặt ADT cho Eclipse. C2 – Hình 20 Chọn Add… để tiếp tục C2 – Hình 21 Name: Ta nhập ADT Plugin. Location : Ta nhập địa chỉ: Click OK để tiếp tục. C2 – Hình 22 Cửa sổ hiện ra,ta tích vào Developer Toolsđể tải các công cụ phát triển của ADT cho Eclipse và chọn Next để tiếp tục. Chọn Next để tiếp tục như cài đặt các phần mềm thông dụng khác. C2 – Hình 23 Một cửa sổ cảnh báo hiện ra,chúng ta chọn OK. C2 – Hình 24 Chúng ta chọn Yes để khởi động lại những cài đặt chúng ta vừa thiết lập. Như vậy chúng ta đã cài đặt xong Eclipse. Tiếp theo chúng ta cấu hình ADT Plug-in,việc cấu hình là bắt buộc để ADT có thể hoạt động được. Chúng ta làm như sau: C2 – Hình 25 Trong cửa sổ Eclipse,ta chọn Menu Window – Preferences C2 – Hình 26 Chọn Android và tiếp tục chọn Browse để tìm đến bộ cài đặt SDK lúc trước chúng ta đã cài. C2 – Hình 27 Chọn OK để tiếp tục. C2 – Hình 28 Cuối cùng chọn Apply – OK để kết thúc quá trình cấu hình Tạo mới một Android Project Trong Eclipse, vào Menu File → New → Project . C2 – Hình 29 Nếu như ADT plug-in được cài đặt thành công thì cửa sổ chọn loại project sẽ xuất hiện trông giống như sau: C2 – Hình 30 Chọn Android Application Project và nhấn Next. C2 – Hình 31 Ta điền tên Application Name và Project Name, Package Name là tên của package sẽ chứa source code. Minimum Required SDK: Phiên bản SDK thấp nhất có thể đáp ứng được. Target SDK: Phiên bản đích ta muốn hướng tới. Compile With: Phù hợp được với phiên bản nào. Theme: Chủ đề cho giao diện tạo ra. rồi nhấn Next. C2 – Hình 32 Create custom launcher icon: Cho phép tạo icon cho ứng dụng. Create activity: Cho phép tạo Activity. Mark this project as a library: Đánh dấu project như 1 thư viện. Create Project in Workspace: Chọn nơi lưu project. Chọn Next. C2 – Hình 33 Chúng ta cấu hình icon khi chạy project, chúng ta có thể chọn ảnh khác trong mục Browse ->Chọn Next. C2 – Hình 34 Chọn các kiểu activity với các thanh điều hướng khác nhau -> Chọn Nextđể tiếp tục. C2 – Hình 35 Activity Name: Tên của Activity chính mà chúng ta làm việc. Layout Name: Tên của layout mà chính ta tạo giao diện người dùng. Navigation Type: Loại thanh điều hướng trong project. Nếu tất cả hoạt động tốt, project của chúng ta giờ đây đã sẵn sàng. Ta sẽ chạy thử: vào menu Run>Run, chọn “Android Application”. ADT plug-in sẽ tự động làm mọi việc: khởi động Android Emulator, đóng gói ứng dụng, cài ứng dụng vào “thiết bị ảo”, sau cùng là chạy ứng dụng. Ta sẽ thấy giao diện ứng dụng Android đầu tiên của mình như sau: C2 – Hình 36 PHẦN 3: MỘT SỐ ĐIỀU KHIỂN TRONG ECLIPSE Cách tạo giao diện cho ứng dụng. Eclipse cho phép chúng ta tạo giao diện bằng 2 cách, đó là sử dụng đồ họa (Graphical Layout) và sử dụng code là file .xml. Hình 3.1 Sử dụng giao diện đồ họa trong Eclipse Hình 3.2 Sử dụng giao diện code trên Eclipse Các layout Hình 3.3: Các layout Layout được dùng để quản lý các thành phần giao diện khác theo 1 trật tự nhất định.  - FrameLayout: Layout đơn giản nhất, thêm các thành phần con vào góc trên bên trái của màn hình. - LinearLayout: Thêm các thành phần con theo 1 chiều nhất định (ngang hoặc dọc). Đây là layout được sử dụng nhiều nhất. - RelativeLayout: Thêm các thành phần con dựa trên mối quan hệ với các thành phần khác hoặc với biên của layout. - TableLayout: Thêm các thành phần con dựa trên 1 lưới các ô ngang và dọc. - AbsoluteLayout: Thêm các thành phần con dựa theo tọa độ x, y. Layout được sử dụng nhằm mục đích thiết kế giao diện cho nhiều độ phân giải. Thường khi lập trình nên kết hợp nhiều layout với nhau để tạo ra giao diện ta mong muốn. Các control cơ bản trong Eclipse TextView Cho phép hiển thị thông tin mà không cho phép người dùng chỉnh sửa thông tin. TextView tương tụ như Label bên C# mà chúng ta đã được học. TextView cơ bản: <TextView android:id="@+id/tv1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="0" android:textColor="#FF0000" android:textSize="190px"/> + Ta nên thiết lập id cho control để dễ xử lý. + layout_width, layout_height nên thiết lập cho control(bắt buộc) để định chiều rộng và chiều cao cho TextView. + Để thay đổi cỡ chữ dùng textSize, thay đổi màu chữ dùng textColor… Lấy control thông qua Id: TextView tv = (TextView)findViewById(R.id.tv1); Để hiển thị thông tin lên control TextView ta dùng lệnh: tv.setText("Xin chao"); EditText Control này kế thừa từ TextView và cho phép chỉnh sửa dữ liệu. Để sử dụng EditText, ta chỉ việc kéo thả control này vào giao diện và tiến hành thiết lập một số thuộc tính: Hình 3.4 Như hình bên trên, ta chỉ cần kéo loại EditText mà ta cần (vùng số 1) rồi thả vào giao diện (vùng số 2) Một số thuộc tính của EditText: <EditText android:id="@+id/editText1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:hint="Nhập họ tên:" android:textSize="18dp" android:ems="10"> + Thuộc tính hint: để hiển thị thông tin gợi ý trong vùng nhập dữ liệu khi bạn chưa nhập bất kỳ dữ liệu nào vào, chỉ cần có dữ liệu là phần hint sẽ tự động mất đi. + textSize: để thiết lập kích cỡ font chữ cho EditText.  Tương tự như TextView, ta cũng phải lấy được control thông qua Id, thao tác với dữ liệu bên trong EditText: EditText txt=(EditText) findViewById(R.id.ed1); Thiết lập giá trị cho EditText: txt.setText("Xin chao"); Button Dùng để thiết lập sự kiện khi người dùng chọn lựa. Cũng kế thừa từ TextView. Hình 3.5 Có 2 sự kiện mà người sử dụng thường xuyên thao tác: Button btn = (Button) findViewById(R.id.btn); btn.setOnClickListener(new View.OnClickListener() { @Override publicvoid onClick(View v) { // TODO Auto-generated method stub } }); btn.setOnLongClickListener(new View .OnLongClickListener() { @Override publicboolean onLongClick(View v) { // TODO Auto-generated method stub returnfalse; } }); } Sự kiệnsetOnClickListener: là sự kiện bấm vào button Sự kiệnsetOnLongClickListener: là sự kiện giữ lâu vào button. PHẦN 4: XÂY DỰNG ỨNG DỤNG ĐO TỐC ĐỘ BẰNG GPS CHO ANDROID Mục tiêu Xây dựng được chương trình đo tốc độ cho Android với chức năng hiển thị tốc độ khi thiết bị di chuyển. Phương thức hoạt động: Người dùng sử dụng GPS trên thiết bị Android của mình để đo tốc độ di chuyển. Nếu tốc độ vượt quá 60 km/h thì ứng dụng sẽ cảnh báo bằng cách phát một chuông cảnh báo và hiển thị màn hình màu đỏ, nếu tốc độ trên 50km thì hiển thị nền màu xanh và dưới 50 km sẽ hiển thị nền màu đen. Xây dựng Yêu cầu cơ bản Hình 4.1 Thiết kế giao diện người dùng cho ứng dụng Từ màn hình thiết kế project, ta kéo một TextView vào thiết lập các thuộc tính cho nó bên file .xml. <TextView android:id="@+id/tv1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:layout_marginTop="142dp" android:layout_span="2" android:gravity="center" android:text="0" android:textColor="#FF0000" android:textSize="190px" /> Ta kéo thêm một TextView nữa vào và lấy TextView này để làm tiêu đề cho ứng dụng, ta sẽ thiết lập thuộc tính của nó như sau: <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:layout_marginTop="24dp" android:ellipsize="marquee" // thiết lập chữ chạy android:singleLine="true" android:scrollHorizontally="true" android:marqueeRepeatLimit="marquee_forever" android:focusable="true" android:focusableInTouchMode="true" android:textSize="25dp" android:textColor="#00ff00" android:text="ỨNG DỤNG ĐO TỐC ĐỘ CHO ANDROID SỬ DỤNG GPS"/> Tiếp theo chúng ta thiết lập Id cho RelativeLayout: <RelativeLayoutxmlns:android="" android:id="@+id/Layoutchinh" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:stretchColumns="1"> Code trên sẽ cho chúng ta giao diện như ở phần 1. Viết code cho ứng dụng Vào file CanhbaoActivity.java trong thư mục src: Hình 4.2 Tạo một thư mục raw/ bên trong thư mục res/ và add 1 bài nhạc vào thư mục res. Hình 4.3 Trong file CanhbaoActivity.java, chúng em viết code như sau: Các thư viện sử dụng trong project: import android.app.Activity; import android.content.res.AssetFileDescriptor; import android.graphics.Color; import android.location.Location; import android.location.LocationManager; import android.media.AudioManager; import android.media.MediaPlayer; import android.os.Bundle; import android.util.Log; import android.view.ViewGroup; import android.widget.TextView; Tạo class Vitri trong class chính, chúng em thiết lập hàm LocationListener để bắt sự kiện Location. publicclass Vitri implements android.location.LocationListener { @Override publicvoid onLocationChanged(Location location) { // TODO Auto-generated method stub capnhat(location); Hàm cập nhật chúng ta vừa gọi trong class Vitri sẽ được viết như sau: publicvoid capnhat(Location location) { tocdo.setText(formatSpeed(location.getSpeed())); int speed = Math.round(location.getSpeed() * (float)3.6); if (speed > 60) { mainLayout.setBackgroundColor(Color.RED); tocdo.setTextColor(Color.BLACK); try { baodong(); } catch (Exception e) { e.printStackTrace(); } } elseif (speed > 50) { mainLayout.setBackgroundColor(Color.GREEN); tocdo.setTextColor(Color.BLACK); mp.stop(); } else { mainLayout.setBackgroundColor(Color.BLACK); tocdo.setTextColor(Color.RED); mp.stop(); Phân tích: Hàm location.getSpeed() sẽ gọi giá trị tốc độ từ GPS về sau đó gán vào textview tocdo, sau đó biến speed là biến chuyển đổi giá trị gọi về đó sang km/h( vì câu lệnh location.getSpeed()chỉ trả về đơn vị là m/s nên chúng ta nhân với 3.6 để đổi về km/h). Hàm Math.roundsẽ làm tròn số chúng ta nhận được. Câu lệnh if – else kiểm tra nếu tốc độ speed chúng ta nhận được về lớn hơn 60, thì sẽ thực hiện chuyển hình nền về màu đỏ và TextView hiển thị tốc độ sẽ chuyển sang màu đen. Tương tự như vậy, nếu tốc độ lớn hơn 50 thì hình nền sẽ chuyển sang màu xanh và chữ mà đen. Còn dưới 50 hình nền sẽ màu đen và chữ màu đỏ. Hàm baodong() chính là hàm phát nhạc khi tốc độ vượt quá 60 km/h. Chúng ta sẽ viết hàm baodong() như sau: privatevoid baodong() throws Exception{ AssetFileDescriptor Af = getResources().openRawResourceFd(R.raw.baodong); if(Af != null) { mp = new MediaPlayer(); mp = MediaPlayer.create(this, R.raw.baodong); mp.setAudioStreamType(AudioManager.STREAM_MUSIC); mp.start(); } } AssetFileDescriptor sẽ thực hiện lấy nguồn nhạc từ file raw về. Sau đó kiểm tra nếu nguồn nhạc đó tồn tại thì sẽ thực hiện khai báo MediaPlayer, sau đó tìm đến file nhạc đó và bắt đầu chạy (mp.start();). Chúng ta thực hiện đóng ứng dụng khi bấm nút thoát để không bị phát nhạc khi kết thúc, chúng em thực hiện như sau: @Override protectedvoid onDestroy() { super.onDestroy(); dongungdung(); } privatevoid dongungdung() { if(mp!=null) { try { mp.release(); } catch(Exception e) { e.printStackTrace(); } } } PHẦN 5: KẾT LUẬN Sau một thời gian làm việc nghiêm túc và với sự hướng dẫn của thầy Trần Trung Kiên, chúng 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 độ bằng GPS cho Android ”. Ưu điểm: + Đã giải quyết được vấn đề đo tốc độ, giúp chúng ta khi lưu thông có thể đo được tốc độ di chuyển của mình. + Có hệ thống cảnh báo khi vượt quá tốc độ, nhờ đó người sử dụng được cảnh báo an toàn khi tham gia giao thông. Nhược điểm: + Chỉ sử dụng cảnh báo khi tốc độ vượt quá 60 km, khi trong những đoạn đường yêu cầu tốc độ tối thiểu trên 60 km thì chưa đáp ứng được tức thời. Hướng phát triển: + Tạo ra giao diện người dùng có kim đo tốc độ. + Tạo ra một thanh điều chỉnh tốc độ cho phép để cảnh báo. Mặc dù đồ án đã hoàn thành nhưng chúng em không thể tránh khỏi những sai sót, chúng em mong được sự góp ý của thầy cô để bài báo cáo của chúng em được hoàn thiện hơn và tránh được những lỗi đã mắc phải trong đồ án tốt nghiệp sắp tới. Một lần nữa, chúng em cảm ơn thầy cô khoa Công nghệ thông tin trường Đại học SPKT Hưng Yên đã tận tình dạy dỗ chúng em trong suốt thời gian qua. Cảm ơn thầy cô khoa Công nghệ thông tin trường Đại học Lao Động – Xã Hội đã tạo những điều kiện tốt nhất cho chúng em được học tập và nghiên cứu tại trường... Chúng em xin chân thành cảm ơn quý thầy/ cô !!!

Các file đính kèm theo tài liệu này:

  • docxlthy_doan5_7546.docx