Với sự phát triển nhanh chóng của khoa học công nghệ và đặc biệt là ngành công nghệ thông tin, làm từng bước thay đổi cuộc sống của con người bởi các ứng dụng sản phẩm của công nghệ. Một trong những bộ phận ứng dụng công nghệ thông tin chính là thay đổi và giúp đỡ việc sinh hoạt hàng ngày của mọi người trong cuộc sống. Vì vậy em đã lựa chọn đề tài “Nghiên cứu hệ điều hành Android và xây dựng ứng dụng tìm kiếm máy rút tiền ATM” để làm đồ án với ý nghĩa mang tính thực tế.
Trang 1MỤC LỤC
MỤC LỤC 1
LỜI NÓI ĐẦU 3
CHƯƠNG 1 – MỞ ĐẦU 4
1.1.Lý do chọn đề tài 4
1.2 Đối tượng nghiên cứu 4
1.3 Mục đích nghiên cứu 5
1.4 Ý nghĩa lý luận và thực tiễn của đề tài 5
CHƯƠNG 2 – CƠ SỞ LÝ THUYẾT 6
2.1.Giới thiệu hệ điều hành Android 6
2.1.1.Tổng quan cấu trúc của Android 6
2.1.2.Sơ lược các phiên bản Android 7
2.1.3.Các thành phần cơ bản của ứng dụng Android 9
2.1.4 Các dịch vụ của google với lập trình MapView 10
2.1.4.1 Google Maps 10
2.1.4.2 Google Places API 11
2.1.4.3 Google Directions API 12
2.1.4.4 Google Geocoding API 12
2.1.5 Tích hợp google map vào ứng dụng android – Download Google Play services 12
2.2.Lập trình trên hệ điều hành Android 17
2.2.1.Ngôn ngữ JAVA 17
2.2.1.1.Tổng quan về ngôn ngữ JAVA 17
2.2.1.2.Một số tính chất ngôn ngữ JAVA 18
2.2.2.Ngôn ngữ JSON 21
2.2.3.Ngôn ngữ XML 22
CHƯƠNG 3: THIẾT KẾ HỆ THỐNG VÀ PHẦN MỀM ỨNG DỤNG 24
3.1 Thiết kế hệ thống 24
3.1.1 Đặc tả bài toán 24
3.1.2 Đặc tả các chức năng của chương trình 24
3.2 Biểu đồ trạng thái hoạt động 24
3.3 Phần mềm ứng dụng 25
Trang 23.3.1 Truyền dữ liệu qua các form 25
3.3.2 Hiển thị MapView 25
3.3.3 Sử dụng tài nguyên GPS và Internet của hệ thống 26
3.3.4 Đánh dấu vị trí trên MapView 26
3.3.5 Truy vấn và lấy dữ liệu từ hệ thống Services của Google 26
3.3.6 Đọc dữ liệu từ file JSON 26
3.4 Một số giao diện chương trình 26
3.4.1 MainActivity 26
3.4.2 Kết quả tìm kiếm 26
KẾT LUẬN 26
TÀI LIỆU THAM KHẢO 26
Trang 3LỜI NÓI ĐẦU
Với sự phát triển nhanh chóng của khoa học công nghệ và đặc biệt là ngành côngnghệ thông tin, làm từng bước thay đổi cuộc sống của con người bởi các ứng dụng sảnphẩm của công nghệ Một trong những bộ phận ứng dụng công nghệ thông tin chính làthay đổi và giúp đỡ việc sinh hoạt hàng ngày của mọi người trong cuộc sống Vì vậy em
đã lựa chọn đề tài “Nghiên cứu hệ điều hành Android và xây dựng ứng dụng tìm kiếmmáy rút tiền ATM” để làm đồ án với ý nghĩa mang tính thực tế
Trong thời gian làm đồ án em đã gặp không ít khó khăn nhưng được sự giúp đỡhướng dẫn tận tình của các thầy giáo, cô giáo trong bộ môn lập trình – Khoa Học MáyTính –Trường đại học sư phạm kỹ thuật Vinh đã giúp em hoàn thành được đồ án này
Em xin chân thành cảm ơn giảng viên ths.Trần Thanh Phong – người trực tiếphướng dẫn đã tận tình hướng dẫn và giúp đỡ em hoàn thành cuốn đồ án này Một lời cảm
ơn sâu sắc nữa em muốn gửi tới toàn thể thầy cô giáo đã trang bị cho em những kiến thức
cơ bản cần thiết trong những năm học vừa qua để em có thể thực hiện tốt cuốn đồ án nàycũng như đủ tự tin để làm việc sau này
Em xin chân thành cảm ơn!
Trang 4CHƯƠNG 1 – MỞ ĐẦU 1.1 Lý do chọn đề tài
Ngày nay các thiết bị số cầm tay như điện thoại di động, điện thoại thông minh,máy tính bảng có rất nhiều trên thị trường Với giá thành ngày càng rẻ và các lợi ích đemlại, các thiết bị đó ngày càng được sử dụng nhiều và phổ biến Một nền tảng được sửdụng trong các thiết bị đó là hệ điều hành thông minh Android của Google Do vậy đicùng việc phát triển và sử dụng các thiết bị phần cứng một cách hiệu quả thì việc pháttriển các ứng dụng phần mềm chạy trên nền Android càng lúc càng tăng cao
Các thiết bị di động ngày càng mạnh mẽ với khả năng xử lí các tác vụ mà chúng takhó có thể tưởng tượng trước đây vài năm Những chiếc điện thoại thời trang và tiệndụng với những tính năng về phần cứng như GPS, gia tốc kế và màn hình cảm ứng làmột nền tảng hấp dẫn cho các ứng dụng di động đột phá Trong khi việc phát triển nềntảng di động hiện nay chủ yếu xây dựng trên các hệ điều hành độc quyền, hạn chế cácứng dụng của bên thứ ba, sự ra đời của Android đã mang lại một giải pháp mở Không bịhạn chế, các lập trình viên Android tự do viết các ứng dụng tận dụng tối đa sự phát triểnmạnh mẽ của phần cứng cho điện thoại di động Android nhanh chóng trở thành hệ điềuhành thu hút nhiều lập trình viên và chiếm một thị phần lớn trong thị trường di động
Việc sử dụng các thiết bị số ngoài khả năng hỗ trợ con người trong công việc, giảitrí mà còn giúp con người tiết kiệm thời gian hơn vào nhiều công việc thực tiễn trong đờisống hằng ngày Hiện nay một hình thức lưu giữ tiền khá phổ biến trong cuộc sống đó làthẻ rút tiền ATM, nó được dùng để chi trả lương cho nhiều nhân viên của các công ty,doanh nghiệp, hay dùng để gởi tiền cho sinh viên ở xa nhà Vì vậy việc tìm kiếm các địađiểm để sử dụng thẻ là điều khá hữu dụng trong cuộc sống, khi mà trong một số trườnghợp chúng ta rất khó có thể xác định cột thẻ trong hàng ngàn địa điểm trong thành phốhay các khu vực khác
1.2 Đối tượng nghiên cứu
Với đề tài này, em tập trung vào các nội dung :
- Cách cài đặt các chương trình để có thể chạy android
- Tìm hiểu về Activity trong Android
- Tìm hiểu về Service trong Android
Trang 5- Tìm hiểu Google Map API.
- Cách tạo giao diện trong Android
- Cách lưu trữ dữ liệu trong Android
- Xây dựng ứng dụng tìm kiếm máy ATM
1.3 Mục đích nghiên cứu
- Nghiên cứu kiến trúc Android
- Nghiên cứu các thành phần cơ bản trong Android
- Nghiên cứu cách phát triển ứng dụng trên Android
- Xây dựng ứng dụng “Tìm kiếm máy ATM” trên nền tảng Android
1.4 Ý nghĩa lý luận và thực tiễn của đề tài
- Ý nghĩa luận: Đề tài là tài liệu tham khảo rất hữu ích cho những ai muốn tìm hiểu về
Android Bên cạnh đó, chưa có nhiều tài liệu tham khảo về Android bằng tiếng việt,
do đó em muốn nghiên cứu muốn đóng góp hiểu biết của mình để làm giàu thêm tài liệu tham khảo cho chủ đề này
- Ý nghĩa thực tiễn: Hiện tại, hệ điều hành Android đang được sử dụng rộng rãi trên
các thiết bị di động Nhu cầu học của người dùng trên điện thoại rất cao Chính vì vậychương trình “tìm kiếm máy ATM” là một ứng dụng và học tập rất hữu ích cho những ai sử dụng điện thoại cài hệ điều hành Android
Trang 6CHƯƠNG 2 – CƠ SỞ LÝ THUYẾT 2.1 Giới thiệu hệ điều hành Android
Android là hệ điều hành trên các thiết bị số di động như smartphone và tablet (vàhiện nay là cả trên một số đầu phát HD, HD Player) phát triển bởi Google và dựa trênnền tảng Linux Trước đây, Android được phát triển bởi công ty liên hợp Android Vàonăm 2005, Google đã mua lại Android nằm trong chiến lược tiến vào thị trường di động.Google muốn Android trở thành nền tảng “mở” và miễn phí Do vậy hầu hết mã nguồncủa Android được phát hành theo giấy phép mã nguồn mở Apache nên bất cứ ai muốn sửdụng Android có thể download toàn bộ mã nguồn Hơn nữa các nhà sản xuất phần cứng
có thể thêm các thành phần mở rộng độc quyền của hãng để tạo ra các sản phẩm khácnhau Chính mô hình phát triển đơn giản này khiến Android trở nên rất hấp dẫn Android
có một cộng đồng những nhà phát triển rất lớn viết các ứng dụng cho hệ điều hành củamình
Hiện tại có khoảng hơn 250,000 ứng dụng cho Android OS và vào khoảng hơn375,000 ứng dụng đã được đệ trình, điều này khiến Android trở thành hệ điều hành diđộng có môi trường phát triển lớn thứ 2 Các nhà phát triển viết ứng dụng cho Androiddự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ầncứng, phần mềm và viễn thông nhằm mục đính tạo nên một chuẩn mở cho điện thoại diđộng trong tương lai Google công bố hầu hết các mã nguồn của Android theo bản cấpphép Apache Hệ điều hành Android bao gồm 12 triệu dòng mã; 3 triệu dòng XML, 2.8triệu dòng mã C, 2.1 triệu mã Java và 1.75 triệu dòng mã C++
2.1.1 Tổng quan cấu trúc của Android
Nói một cách đơn giản thì Android bao gồm ba thành phần:
1 Một hệ điều hành mở, miễn phí cho các thiết bị di động
2 Một nền tảng mã nguồn mở cho phát triển các ứng dụng
3 Thiết bị chạy hệ điều hành Android và các ứng dụng Android
Chi tiết hơn thì Android gồm các thành phần quan trọng sau:
1 Một thiết kế phần cứng cho thiết bị di động hỗ trợ bộ phần mềm
Trang 72 Một nhân hệ điều hành Linux cung cấp giao diện mức thấp với phần cứng,quản lý bộ nhớ và kiểm soát tiến trình Tất cả đều tối ưu hoá cho thiết bị di động.
3 Thư viện mã nguồn mở cho phát triển ứng dụng bao gồm SQLite, Webkit,OpenGL và quản lí đa phương tiện
4 Một hệ thống thực thi và lưu trữ cho ứng dụng Android bao gồm máy ảoDalvik và các thư viện cơ bản cung cấp chức năng đặc thù cho Android Hệ thốngthực thi được thiết kế nhỏ gọn và hiệu quả khi sử dụng trên các thiết bị di động
5 Một kiến trúc ứng dụng cung cấp các dịch vụ hệ thống cho tầng ứng dụng baogồm quản lí cửa sổ, quản lí vị trí, cung cấp nội dung và các cảm biến
6 Một kiến trúc giao diện người dùng để lưu trữ và chạy các ứng dụng
7 Một số ứng dụng được cài đặt sẵn được coi như một phần của bộ ứng dụng
8 Một bộ phát triển ứng dụng bao gồm các công cụ và tài liệu
Hình 1: Các thành phần của hệ điều hành Android
2.1.2 Sơ lược các phiên bản Android
Android là một nền tảng mới và phát triển nhanh Các phiên bản thông thườngđược phát hành sau khoảng 6 tháng Sau đây là danh sách các phiên bản chính và sự thayđổi lớn trong mỗi phiên bản Android
Trang 8 OHA giới thiệu Android (5-11-2007).
Trang 9Hình 2: Logo và tên các phiên bản Android
2.1.3 Các thành phần cơ bản của ứng dụng Android
Ứng dụng Android bao gồm nhiều thành phần liên kết với nhau được giới hạntrong kiến trúc ứng dụng Kiến trúc ứng dụng mô tả chi tiết mỗi thành phần và sự tươngtác giữa các thành phần này cũng như siêu dữ liệu về yêu cầu phần cứng
Các thành phần sau đây tạo nên một ứng dụng Android:
Activity: là lớp thể hiện ứng dụng Mỗi màn hình trong ứng dụng là một mở rộng
của lớp Activity Các Activity sử dụng các View tạo thành giao diện đồ họa tươngtác người dùng để thể hiện thông tin và phản hồi hành động của người dùng
Service: là thành phần chạy ẩn, cập nhật nguồn dữ liệu và thể hiện các Activity,
kích hoạt các Notification Các Service thường thực hiện các xử lí thông thườngnhư tiếp tục Activity sau khi các Activity này không hoạt động hoặc hiển thị
Content Provider: là thành phần lưu trữ dữ liệu chia sẻ Content Provider quản lí
và chia sẻ cơ sở dữ liệu của ứng dụng Chúng được coi như là phương tiện chia sẻ
dữ liệu giữa các ứng dụng
Intent: là cấu trúc truyền thông điệp giữa các ứng dụng Chúng ta có thể sử dụng
Intent để truyền một thông tin tới toàn hệ thống hay tới Activity hay Service định
Trang 10trước để thực thi một hoạt động Hệ thống sau đó sẽ xác định đối tượng nào sẽthực hiện các hoạt động phù hợp.
Broadcast Receiver: là nơi nhận các Intent Chúng ta có thể tự tạo một Broadcast
Receiver để ứng dụng có thể nhận được các Intent phù hợp với bộ lọc đặt trước.Broadcast Receiver tự động bắt đầu khi ứng dụng phản hồi với Intent nhận được
và biến ứng dụng trở thành hướng sự kiện một cách hoàn hảo
Widget: thành phần trực quan của ứng dụng có thể thêm vào màn hình chính Là
một dạng Broadcast Receiver, Widget cho phép người dùng tạo ra các ứng dụngđộng, tương tác được nhúng ngay trên màn hình chính
Notification: là thành phần thông báo cho người dùng Hộp thoại thông báo cho
người dùng mà không gián đoạn các Activity hiện thời Đây là kĩ thuật thông báocho người dùng năm trong một Service hay một Broadcast Receiver Ví dụ nhưkhi nhận được một tin nhắn hay cuộc gọi đến có thể thông báo cho người dùngbằng nhấp nháy đèn hay bằng âm thanh…
Một ứng dụng không nhất thiết phải gồm tất cả các thành phần trên nhưng để cómột giao diện với người dùng thì ít nhất ứng dụng đó phải có một Activity Mã đã đượcbiên dịch của các thành phần của ứng dụng, tài nguyên liên quan như thư viện, hình ảnh
và các dữ liệu cần thiết khác được đóng gói trong một file apk duy nhất chính là dạng filethực thi của ứng dụng Android
Như đã trình bày ở trên, Activity là thành phần quan trọng nhất và đóng vai tròchính trong việc xây dựng ứng dụng Android Hệ điều hành Android quản lí ứng dụngdưới dạng stack : khi một Activity mới được khởi tạo, nó được xếp lên đầu stack và trởthành running activity, các Actitivy trước đó sẽ bị tạm dừng vả chỉ hoạt động trở lại khi
Activity mới được giải phóng
2.1.4 Các dịch vụ của google với lập trình MapView
Để làm việc tốt với hệ thống bản đồ của google, thì cần sử dụng một số các dịch
vụ cần thiết để lập trình Điểm chung của các dịch vụ này là đều chạy trên môi trườngweb và đều trả kết quả qua định dạng file JSON hoặc là XML
2.1.4.1 Google Maps
Google Maps (thời gian trước còn gọi là Google Local) là một dịch vụ ứng dụng
và công nghệ bản đồ trực tuyến trên web miễn phí được cung cấp bởi Google và hỗ trợ
Trang 11nhiều dịch vụ dựa vào bản đồ như Google Ride Finder và một số có thể dùng để nhúngvào các trang web của bên thứ ba thông qua Google Maps API Nó cho phép thấy bản đồđường sá, đường đi cho xe đạp, cho người đi bộ (những đường đi ngắn hơn 6.2 dặm) và
xe hơi, và những địa điểm kinh doanh trong khu vực cũng như khắp nơi trên thế giới
Hình 3: Một ví dụ về Google Maps 2.1.4.2 Google Places API
Google Places API là một dịch vụ của Google INC mà khi sử dụng chúng ta sẽnhận được các thông tin về các địa điểm đã được đánh dấu trên bản đổ Google Maps bởicác tổ chức, công ty và cá nhân ở khắp nơi trên thế giới Để sử dụng được dịch vụ nàychúng ta phải đăng ký API key dịch vụ Google Places với google (Sử dụng miễn phí cógiới hạn số lần request/day)
Trang 12Hình 4: Một ví dụ về Google Places API 2.1.4.3 Google Directions API
Google Directions API là một dịch vụ của Google INC mà khi sử dụng chúng ta
sẽ đưa vào tọa độ 2 địa điểm đầu cuối rồi sau đó sẽ được nhận thông tin về khoảng cáchgiữa 2 địa điểm, tọa độ GPS, thời gian đi lại dự kiến với các phương tiên như xe máy, otohay là đi bộ
2.1.4.4 Google Geocoding API
Đây là một dịch vụ nữa của google cho phép chúng ta xác định các địa điểm điqua trên đường đi giữa 2 vị trí xác định
2.1.5 Tích hợp google map vào ứng dụng android – Download Google Play services
Trước khi chúng ta bắt đầu tích hợp google map, chúng ta cần download Google Play services từ SDK manager Bạn có thể mở SDK manager từ Android Studio bằng cách chọnTools -> Android -> SDK Manager -> Launch Standalone SDK Manager
Trang 13Tiếp theo chúng ta phải tạo SHA1 key cho việc đăng ký ứng dụng với Google’s
Developer Console
Đối với hệ điều hành Windows (Run -> CMD -> Nhấn Enter)
keytool -list -v -keystore "%USERPROFILE%\.android\debug.keystore" -alias
androiddebugkey -storepass android -keypass android
Lưu ý nếu bạn không tìm thấy keytool, nó nằm trong thư mục bin của thư mục JDK Bên dưới là kết quả sau khi thực thi lệnh keytool
Đối với hệ điều hành Linux hoặc Mac OS
keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android
Trang 14Sau khi chúng ta đã tạo SHA1 key, bước tiếp theo là đăng ký API key cho ứng dụng Đăng ký tại Google APIs Console Để có thể đăng ký API, bạn phải sử dụng tài khoản gmail và đăng nhập vào Google API Console Sau khi đăng nhập thành công, chọn
“CREATE PROJECT“
Nhập tên project là google map -> chọn “Create“
Kích hoạt “Google Maps Android API”: chọn Google Maps Android API
Chọn “ENABLE“
Trang 15Chọn “Go to Credentials“
Tại màn hình “Credentials” chọn API key
Tại màn hình “API key“, chọn “Android apps” và click “Add package name and
fingerprint“
Trang 16Nhập package name, SHA1 key và chọn “Create“
Sau khi click “Create“, API key sẽ được tạo và chúng ta sẽ sử dụng key này trong ứng dụng Android
Hướng dẫn tích hợp google map vào ứng dụng android – Tạo mới project
1 Mở Android Studio, chọn File -> New -> New Project
2 Mở Gradle Scripts/build.gradle (Module:app) và thêm đoạn code sau vào
trong dependencies, sau đó chọn “Sync Now“