1. Trang chủ
  2. » Luận Văn - Báo Cáo

Đề tài tìm hiể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

44 1,1K 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 44
Dung lượng 5,55 MB

Nội dung

Mục tiêu và nhiệm vụMục tiêu: Tìm hiểu được các công nghệ lập trình cần thiết trên nền Android để hoàn thành được ứng dụng có thể tìm kiếm nhanh và chính xác vị trí máy ATM..  Tìm hiểu

Trang 1

MỤC LỤC



LỜI CẢM ƠN 1

PHẦN A - GIỚI THIỆU ĐƠN VỊ THỰC TẬP 4

I Chức năng: 4

II Tổ chức 4

III Lĩnh vực hoạt động 5

PHẦN B - NỘI DUNG THỰC TẬP 6

I GIỚI THIỆU CHUNG 6

1 Chủ đề thực tập 6

2 Phương pháp thực hiện 6

3 Mục tiêu và nhiệm vụ 7

4 Kết quả đạt được 7

II NỘI DUNG 8

LỜI MỞ ĐẦU 8

CHƯƠNG I : TỔNG QUAN VỀ ANDROID 9

I Lịch sử Android 9

II Khái niệm Android 10

III Kiến trúc Android 11

1 Applications 11

2 Application Framwork 11

3 Libraries 12

4 Android Runtime 13

5 Linux Kernel 13

6 Các thành phần cơ bản của ứng dụng Android 14

IV HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆUS SQLite 18

1 SQLite là gì? 18

2 Đặc trưng của SQLite 18

V TỔNG QUAN VỀ DỊCH VỤ Google Maps API 19

1 Google Maps 19

Trang 2

2 Google Places API 20

3 Google Directions API 22

4 Google Geocoding API 22

CHƯƠNG II – XÂY DỰNG ỨNG DỤNG TÌM KIẾM ATM 23

I Biểu đồ phân cấp chức năng 23

1 Use Case tổng quát 23

2 Use Case Tab hiển thị vị trí người dùng 23

3 Use Case Tab hiển thị danh sách các tỉnh, thành phố 24

4 Use Case Tab hiển thị danh sách các ngân hàng 24

5 Use Case Tab hiển thị tìm kiếm ATM 25

II Chức năng của hệ thống 26

1 Hiển thị vị trí người dùng qua GPS 26

2 Tìm kiếm ATM với bán kính nhập vào từ bàn phím 26

3 Hiển thị các ngân hàng theo Tình/Thành phố 26

4 Hiển thị các ATM theo Ngân hàng và theo Tỉnh/Thành phố 27

5 Hiển thị 1 vị trí lên google maps 27

6 Chức năng tìm kiếm 27

III Thiết kế cơ sở dữ liệu 27

IV Giao diên chương trình 29

1 Tab “Home” 29

2 Tab “City” 30

3 Tab “Bank” 35

4 Tab “ More” 40

III KẾT LUẬN 43

IV TÀI LIỆU THAM KHẢO 45

Trang 3

PHẦN A - GIỚI THIỆU ĐƠN VỊ THỰC TẬPĐơn vị: Học Viện Công Nghệ Bưu Chính Viễn Thông

Địa chỉ: Km10, Đường Nguyễn Trãi, Q.Hà Đông, Hà Nội

- Tư vấn chuyển giao công nghệ và các dịch vụ khoa học kỹ thuật khác

- Thực hiện hợp tác đào tạo, nghiên cứu khoa học và chuyển giao công nghệ vớicác đối tác trong nước và nước ngoài theo quy định của pháp luật và của Học Viện CôngNghệ Bưu Chính Viễn Thông

II Tổ chức

Được thành lập năm 1999 trong xu thế cạnh tranh và hội nhập toàn cầu Trung tâmCông Nghệ Thông Tin CDIT với vai trò là đơn vị nghiên cứu phát triển hàng đầu tronglĩnh vực công nghệ thông tin, xác định: Việc lĩnh hội, đúc kết và phát huy tiềm năng, nộilực, làm chủ công nghệ là mục tiêu chiến lược nhằm thực hiện thành công định hướng gắnkết Nghiên cứu – Đào tạo - Sản xuất Kinh doanh CDIT đã duy trì, phát triển và chiễmlĩnh thị trường trong nước với các sản phẩm đáp ứng tiêu chí: Tiên tiến – Tương thích –toàn cầu, thay thế các sản phẩm nhập khẩu, nỗ lực đóng góp cho sự phát triển của mạnglưới bưu chính viễn thông và công nghệ thông tin Việt Nam, vươn mình hòa nhập vớicộng động CNTT trong khu vực và thế giới

Trang 4

Trung tâm Công nghệ Thông tin CDIT được Tổng giám đốc Tổng công ty Bưu chínhViễn Thông Việt Nam ký quyết định thành lập số 636/QĐ.TCCB-LĐ ngày 22 tháng 3năm 1999, trên cơ sở sắp xếp lại hai đơn vị thành viên của các đơn vị trực thuộc Học việnCông nghệ Bưu Chính Viễn thông:

1 Trung tâm Nghiên cứu Phát triển Phần mềm thuộc Viên khoa học kỹ thuật BưuĐiện;

2 Trung tâm Đào tạo phát triển phần mềm thuộc Trung tâm Đào tạo BCVT1(cũ).Cùng với sự phát triển của nghành Công nghệ thông tin trong xu hướng hội nhập vớiTruyền thông, theo định hướng phát triển của Học viện trong giai đoạn mới, ngày 07tháng 12 năm 2011 Tập đoàn BCVT Việt Nam đã có quyết định số 1973/QĐ-VNPT-TCCB, đổi tên Trung tâm Công nghệ thông tin thành Viện Thông và Truyền thông CDIT

từ 01/01/2012 Viện công nghệ Thông tin và truyền thông CDIT là tổ chức đào tạo,nghiên cứu trực thuộc Học viện, có nhiệm vụ: đào tạo, nghiên cứu khoa học và chuyểngiao công nghệ trong lĩnh vực Công nghệ thông tin và Truyền thông

III. Lĩnh vực hoạt động

Trung tâm công nghệ thông tin hoạt động trên 5 lĩnh vực chính:

1 Nghiên cứu khoa học công nghệ

2 Phát triển, triển khai công nghệ và sản phẩm

3 Sản xuất phần mềm và thiết bị

4 Tiếp nhận và triển khai công nghệ

5 Đào tạo và bồi dưỡng nhân lực

Trang 5

PHẦN B - NỘI DUNG THỰC TẬP

1 Chủ đề thực tập : “Tìm hiểu hệ điều hành Android và xây dựng ứng dụng tìmkiếm máy rút tiền ATM”

CSDL cho ứngdụng

2 Thiết kế giao diệnvà bắt sự kiện của

hệ thống

- Viết code thiết kế giao diện trênXML của ngôn ngữ lập trìnhAndroid

- Viết code bắt sự kiện cho từngđối tượng thao tác

- Xây dụng cácgiao diện cầnthiết cho ứngdụng và các xử

lý bên trongcủa ứng dụng

3 Tìm hiểu và kết nốivị trí trên bản đồ

qua google map

- Tìm hiểu các tài liệu chuyênngành của Android liên quan tớigoogle map API

- Viết code cho ứng dụng hiển thị

vị trí của người dùng trên googlemap

2 Phương pháp thực hiện

Đọc các tài liệu và tham khảo các giáo trình, sách hướng dẫn lập trình android,tham khảo các demo trên mạng để phục vụ cho bài làm…

Trang 6

3 Mục tiêu và nhiệm vụ

Mục tiêu: Tìm hiểu được các công nghệ lập trình cần thiết trên nền Android để

hoàn thành được ứng dụng có thể tìm kiếm nhanh và chính xác vị trí máy ATM

 Hiểu về nguyên lý hoạt động của Android, các thành phần của hệ thống cũng nhưcủa một ứng dụng thực thi trên nền android

 Tìm hiểu và áp dụng được các công nghệ lập trình trên nền Android như ngôn ngữJAVA, tương tác với các tài nguyên của hệ thống (GPS, Internet, TouchScreen), sửdụng các dịch vụ của Google như Google Map, Google Places API, GoogleDirections API, Google Geocoding API

Nhiệm vụ: Đọc các tài liệu liên quan về bộ thư viện lập trình trên nền Android.

Tìm hiểu các dịch vụ liên quan đến ứng dụng

4 Kết quả đạt được

4.1 Về tìm hiểu hệ điều hành Android

- Hiểu và nắm rõ các bước tạo ra 1 Project trong android

- Hiểu và nắm được các thành phần cơ bản của Android như: Vòng đời của 1 ứngdụng, các thành phần cơ bản cấu thành nên 1 ứng dụng TabHost, Button, TextView,Activity…

- Hiểu và biết cách giao tiếp với Google maps API để hiện các vị trí trên maps và

vẽ đường đi thông qua các dịch vụ của google Google Directions API và Google Geocoding API

4.2 Về xây dựng ứng dụng

Trong thời gian ngắn chương trình Tìm kiếm ATM đã đạt được một số kết quả như sau:

- Tìm và hiện vị trí hiện tại của người sử dụng trên Google maps bằng việc sử

dụng GPS

- Tìm kiếm các vị trí ATM gần nhất thông qua bán kính mà người dùng nhập vào

từ bàn phím

- Từ 1 cơ sở dữ liệu có sẵn đã lưu trữ vị trí của các ATM của các ngân hàng ta có

thể tìm kiếm các vị trí ATM này thông qua việc chọn Tỉnh/Thành phố hoặcchọn Ngân các ngân hàng mà người dùng sử dụng

- Vẽ đường đi và tính khoảng cách từ vị trí hiện tại đến vị trí ATM gần nhất trên

Google maps

Trang 7

II NỘI DUNG

LỜI MỞ ĐẦU

***

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ụngtrong các thiết bị đó là hệ điều hành thông minh Android của Google Do vậy đi cùng việcphá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át triển các ứngdụ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ện dụngvớ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ềntảng hấp dẫn cho các ứng dụng di động đột phá Trong khi việc phát triển nền tả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ụngcủ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ển mạnh mẽcủa phần cứng cho điện thoại di động Android nhanh chóng trở thành hệ điều hành thuhú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

Trang 8

CHƯƠNG I : TỔNG QUAN VỀ ANDROID

I Lịch sử Android

Tháng 7/2005, Google mua lại công ty phát triển phần mềm điện thoại Android,nhưng chưa công bố sẽ sử dụng cho mục đích gì Để trả lời cho câu hỏi đó, tháng11/2007, sau 2 năm phát triển, Google công bố hệ điều hành điện thoại di động mã nguồn

mở Android, cùng với sự thành lập “Liên minh di động mở” (Open Handset Alliance) baogồm hơn 65 nhà sản xuất phần cứng điện thoại lớn trên thế giới như Intel, HTC, ChinaMobile, T-Mobile,

Trang 9

Hình 1 - Các thành viên của "Liên minh di động mở"

Tứ năm 2007, hệ điều hành Android đã trải qua nhiều lần cập nhật, với phiên bảngần đây nhất là Gingerbread 2.3, ra ngày 06/12/2010 Tính đến tháng 6/2010, đã cókhoảng 70 mẫu điện thoại di động sử dụng hệ điều hành Android, chưa kể các thiết bịđiện tử khác như máy tính bảng (tablet computers), ebook readers, Google TV,

II Khái niệm Android

Android là hệ điều hành điện thoại di động mở nguồn mở miễn phí do Google pháttriển dựa trên nền tảng của Linux Bất kỳ một hãng sản xuất phần cứng nào cũ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 (có cảm ứng chạm, GPS, 3G, )

Các nhà sản xuất có thể tự do thay đổi phiên bản Android trên máy của mình mộtcách tự do mà không cần phải xin phép hay trả bất kì khoản phí nào nhưng phải đảm bảotính tương thích ngược (backward compatibility) của phiên bản chế riêng đó

Android là nền tảng cho thiết bị di động bao gồm một hệ điều hành, midware vàmột số ứng dụng chủ đạo Bộ công cụ Android SDK cung cấp các công cụ và bộ thư viêncác hàm API cần thiết để phát triển ứng dụng cho nền tảng Android sử dụng ngôn ngữ lậptrình java

Intergrated browser: Trình duyệt web tích hợp được xây dựng dựa

trên WebKit engine

Optimized graphics: Hổ trợ bộ thư viện 2D và 3D dự vào đặc tả

OpenGL ES 1.0

SQLite: DBMS dùng để lưu trữ dữ liệu có cấu trúc.

 Hổ trở các định dạng media phổ biến như: MPEG4, H.264, MP3,AAC, ARM, JPG, PNG, GIF

 Hổ trợ thoại trên nền tảng GSM (Phụ thuộc vài phần cứng thiết bị)

 Bluetooth, EDGE, 3G và WiFi (Phụ thuộc vài phần cứng thiết bị)

 Camera, GPS, la bàn và cảm biến (Phụ thuộc vài phần cứng thiết bị)

Trang 10

 Bộ công cụ phát triển ứng dụng mạnh mẽ.

III Kiến trúc Android

Lược đồ sau thể hiện các thành phần của hệ điều hành Android :

Hình 2 – Mô hình kiến trúc nền tảng Android

1 Applications

Hệ điều hành Android tích hợp sẳn một số ứng dụng cơ bản như email client,SMS, lịch điện tử, bản đồ, trình duyệt web, sổ liên lạc và một số ứng dụng khác Ngoài ratầng này cũng chính là tầng chứa các ứng dụng được phát triển bằng ngôn ngữ Java

2 Application Framwork

Tầng này của hệ điều hành Android cung cấp một nền tảng phát triển ứng dụng mởqua đó cho phép nhà phát triển ứng dụng có khả năng tạo ra các ứng dụng vô cùng sángtạo và phong phú Các nhà phát triển ứng dụng được tự do sử dụng các tính năng cao cấp

Trang 11

của thiết bị phần cứng như: thông tin định vị địa lý, khả năng chạy dịch vụ dưới nền, thiếtlập đồng hồ báo thức, thêm notification vào status bar của màn hình thiết bị…

Người phát triển ứng dụng được phép sử dụng đầy đủ bộ API được dùng trong cácứng dụng tích hợp sẳn của Android Kiến trúc ứng dụng của Android được thiết kế nhằmmục đích đơn giản hóa việc tái sử dụng các component Qua đó bất kì ứng dụng nào cũng

có thể công bố các tính năng mà nó muốn chia sẻ cho các ứng dụng khác (VD: Ứng dụngemail có muốn các ứng dụng khác có thể sử dụng tính năng gởi mail của nó) Phươngpháp tương tự cho phép các thành phần có thể được thay thế bởi người sử dụng

Tầng này bao gồm một tập các services và thành phần sau:

 Một tập phong phú và có thể mở rộng bao gồm các đối tượng Viewđược dùng để xây dựng ứng dụng như: list, grid, text box, button vàthậm chí là một trình duyệt web có thể nhúng vào ứng dụng

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

các ứng dụng khác hoặc chia sẽ dữ liệu của chúng

Resource Manager: Cung cấp khả năng truy xuất các tài nguyên

non-code như hình ảnh hoặc file layout

Notification Manager: Cung cấp khả năng hiển thị custom alert trên

thanh status bar

Activity Manager: Giúp quản lý vòng đời của một ứng dụng.

3 Libraries

System C library: một thể hiện được xây dựng từ BSD của bộ thư

viện hệ thống C chuẩn (libc), được điều chỉnh để tối ưu hóa cho cácthiết bị chạy trên nền Linux

Media libraries: Bộ thư viện hổ trợ trình diễn và ghi các định dạng

âm than và hình ảnh phổ biến

Surface manager: Quản lý hiển thị nội dung 2D và 3D.

LibWebCore: Một web browser engine hiện đại được sử dụng trong

trình duyệt của Android lần trong trình duyệt nhúng web view được

sử dụng trong ứng dụng

SGL: Engine hổ trợ đồ họa 2D.

Trang 12

3D libraries: Một thể hiện được xây dựng dựa trên các APIs của

OpenGL ES 1.0 Những thư viện này sử dụng các tăng tốc 3D bằngphần cứng lẫn phần mềm để tối ưu hóa hiển thị 3D

FreeType: Bitmap and vector font rendering.

SQLite: Một DBMS nhỏ gọn và mạnh mẽ.

4 Android Runtime

Hệ điều hành Android tích hợp sẳn một tập hợp các thư viện cốt lõi cung cấp hầuhết các chức năng có sẵn trong các thư viện lõi của ngôn ngữ lập trình Java Mọi ứngdụng của Android chạy trên một tiến trình của riêng nó cùng với một thể hiện của máy ảoDalvik Máy ảo Dalvik thực tế là một biến thể của máy ảo Java được sửa đổi, bổ sung cáccông nghệ đặc trưng của thiết bị di động Nó được xây dựng với mục đích làm cho cácthiết bị di động có thể chạy nhiều máy ảo một cách hiệu quả Trước khi thực thi, bất kìứng dụng Android nào cũng được convert thành file thực thi với định dạng nén DalvikExecutable (.dex) Định dạng này được thiết kế để phù hợp với các thiết bị hạn chế về bộnhớ cũng như tốc độ xử lý Ngoài ra máy ảo Dalvik sử dụng bộ nhân Linux để cung cấpcác tính năng như thread, low-level memory management

5 Linux Kernel

Hệ điều hành Android được xây dựng trên bộ nhân Linux 2.6 cho những dịch vụ

hệ thống cốt lõi như: security, memory management, process management, network stack,driver model Bộ nhân này làm nhiệm vụ như một lớp trung gian kết nối phần cứng thiết

bị và phần ứng dụng

Trang 13

Dưới đây là mô hinh hợp tác giữa máy ảo Dalvik và Navite code:

Hình 3 - Mô hình hợp tác giữa máy ảo Dalvik và Navite code

JNI: Java Native Interface (Tương tự khái niệm Application ProgrammingInterface)

Java Native Interface: là một bộ framework cho phép mã lệnh viết bằng Java chạy

trên máy ảo java có thể gọi hoặc được gọi bởi một ứng dụng viết bằng native code (Ứng

dụng được viết cho một phần cứng cụ thể và trên một hệ điều hành cụ thể) hoặc những bộthư viện viết bằng C, C++ hoặc Assembly

Bằng cách sử dụng JNI, Android cho phép các ứng dụng chạy trên máy ảo Dalvik

có thể sử dụng những phương thức được viết bằng các ngôn ngữ cấp thấp như: C, C++,Assembly Qua đó các nhà phát triển ứng dụng có thể xây dựng ứng dụng dựa trên các bộthư viện viết bằng C, C++, Assembly nhằm tăng tốc độ thực thi của ứng dụng hoặc sửdụng những tính năng mức thấp mà ngôn ngữ Java không hổ trợ Tuy nhiên người pháttriển ứng dụng cần phải cân nhắc sự gia tăng độ phức tạp của ứng dụng khi quyết định sửdụng các bộ thư viện này

Trang 14

6 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 địnhtrước để thực thi một hoạt động Hệ thống sau đó sẽ xác định đối tượng nào sẽ thựchiệ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ư khinhận được một tin nhắn hay cuộc gọi đến có thể thông báo cho người dùng bằngnhấ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

Trang 15

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 khiActivity mới được giải phóng.

Activity có 4 trạng thái:

Active (running): Activity đang hiển thị trên màn hình (foreground).

Pause: Activity vẫn hiển thị (visible) nhưng không thể tương tác VD: một activity

mới xuất hiện hiển thị giao diện đè lên trên activity cũ, nhưng giao diện này vẫnnhỏ hơn giao diện activity cũ Do đó ta vẫn thấy được một phần giao diện củaactivity cũ nhưng không tương tác được với nó

Stop: Activity bị thay thế hoàn toàn bởi Activity mới sẽ tiến đến trạng thái stop.

Killed: Khi hệ thống thiếu bộ nhớ, nó sẽ giải phóng các tiến trình theo nguyên tắc

ưu tiên ở trên Các Activity ở trạng thái stop hoặc paused cũng có thể bị giải phóng

và khi nó được hiển thị lại thì các Activity này phải khởi động lại hoàn toàn vàphục hồi trạng thái trước đó

Tuỳ từng sự kiện mà các phương thức được gọi để đảm bảo trạng thái các Activityđược hoạt động đúng Chi tiết từng phương thức và sự kiện thay đổi trạng thái tương ứng:

onCreate(): Phương thức này khởi tạo Activity Nó có thể bỏ qua trạng thái cũ để

trở lại hoạt động Phương thức tiếp theo luôn là onStart()

onRestart(): Được gọi sau khi một Activity dừng và muốn bắt đầu lại.

onStart(): Được gọi khi ứng dụng chuyển sang visible nhưng chưa tương tác được

với người dùng

onResume(): Activity có tương tác với người sử dụng và có thể nhận thông tin đầu

vào Kiểu tiến trình của ứng dụng được chuyển sang dạng hiển thị (foreground)

onPause(): Nếu ứng dụng không còn tương tác hay thiết bị không hoạt động,

phương thức này được gọi và kiểu tiến trình ứng dụng sẽ được chuyển sang dạngvisible Sau khi thực hiện phương thức này, hệ thống cho phép giải phóng ứngdụng bất cứ lúc nào Các thao tác sử dụng CPU và dữ liệu đều được lưu lại.Activity sẽ có thể được hoạt động trở lại hoặc dừng lại

onStop(): Khi Activity không còn tương tác nữa thì kiểu tiến trình được chuyển

sang chạy nền (background) và ứng dụng có thể bị giải phóng bất cứ lúc nào bởi hệthống để lấy lại bộ nhớ Activity sẽ bị giải phóng hoặc khởi động lại

onDestroy(): Phương thức cuối cùng này được hệ thống gọi trước khi giải phóng

ứng dụng hay ứng dụng loại bỏ Activity Tiến trình của ứng dụng có thể chuyển

Trang 16

sang kiểu rỗng nếu hệ thống muốn giữ lại ứng dụng để tiếp tục lại ứng dụng cholần sau.

Hình 4: Mô hình hoạt động của Activity

Trang 17

IV. HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆUS SQLite

1 SQLite là gì?

Khi lập trình trên di động hay các thiết bị có dung lượng bộ nhớ hạn chế, người tathường dùng SQLite SQLite là một hệ quản trị cơ sở dữ liệu nhúng được hiện thực từchuẩn SQL-92 Giống với cái tên của nó, SQLite chiếm dung lượng nhỏ (khoảng 275KB)nên việc truy xuất dữ liệu được nhanh chóng, không chiếm dụng quá nhiều tài nguyên hệthống Do SQLIte là phần mềm mã nguồn mở nên nó không bị giới hạn tác quyền Vì lý

do đó mà SQLite được nhiều hãng sử dụng (Adobe, Apple, Google, Sun, Symbian) vàcác dự án mã nguồn mở (Mozila, PHP, Python)

Đặc biệt, đối với Android, SQLite rất thích hợp để tạo cơ sở dữ liệu cho các ứng dụngtrên nền Android Từ khi SQLite có giao diện SQL thì nó càng được sử dụng dễ dàng vàthông dụng hơn

Sqlite tuy nhẹ hơn so với các hệ cơ sở dữ liệu khác nhưng cũng không khác biệt nhiều.SQLite cũng sử dụng ngôn ngữ truy vấn SQL (SELECT, INSERT, DELETE…), thíchhợp cho các ứng dụng trên điện thoại, đặc biệt là ứng dụng trên hệ điều hành Android vìAndroid Runtime có thể chứa cả SQLite mà không cần phải chia nhỏ ra

SQLite có một hệ thống câulệnhSQL đầy đủ với các triggers, transactions Các câutruy vấn cũng như các hệ cơ sở dữ liệu khác SQLite như bản thu nhỏ của so với các hệCSDL khác, vì vậy nó không thể có đầy đủ các chứ năng trên chiếc điện thoại di động củabạn

SQLite là một lựa chọn thích hợp dành cho ứng dụng trên hệ điều hành Android.Ngoài dung lượng lưu trữ nhỏ gọn, SQLite còn cho phép sử dụng Unicode, kiểu dữ liệukhông được cài đặt trong một số phiên bản Android

2 Đặc trưng của SQLite

SQLite được hiện thực từ tiêu chuẩn SQL-92 của một ngôn ngữ SQL nhưng vẫn cònchứa một số khiếm khuyết

Tuy SQLite hỗ trợ triggers nhưng bạn không thể viết trigger cho view Hoặc SQLitekhông hỗ trợ lệnh ALTER TABLE, do đó, bạn không thể thực hiện chỉnh sửa hoặc xóacột trong bảng

SQLite không hỗ trợ ràng buộc khóa ngoại , các transactions lồng nhau, phép kết rightouter join, full outer join

SQLite sử dụng kiểu dữ liệu khác biệt so với hệ quản trị cơ sở dữ liệu tương ứng Bạn

có thể insert dữ liệu kiểu string vào cột kiểu integer mà không gặp phải bất kỳ lỗi nào

Trang 18

Vài tiến trình hoặc luồng có thể truy cập tới cùng một cơ sở dữ liệu Việc đọc dữ liệu

có thể chạy song song, còn việc ghi dữ liệu thì không được phép chạy đồng thời

Ngoài các khiếm khuyết trên thì Sqlite cung cấp cho người dùng gần như đầy đủ cácchưng năng mà một hệ cơ sở dữ liệu cần có như tạo database; tạo bảng; thêm, xóa, sửa dữliệu

V TỔNG QUAN VỀ DỊCH VỤ Google Maps API

Các dịch vụ của google với lập trình google maps API

Để 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ường web

và đều trả kết quả qua định dạng file JSON hoặc là XML

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ợnhiề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 5: Một ví dụ về Google Maps

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ởi

Trang 19

cá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).

Hình 6: Một ví dụ về Google Places API

Lấy API key dịch vụ Google Places

- Lấy mã SHA1 băng dòng lệnh trong CMD:

C:\Program Files\Java\jdk1.7.0_04\bin>keytool.exe V list alias androiddebugkey keystore "C:\Documents and Settings\IBM\.android\debug.keystore" -storepass android -keypass android

Sau đó ta có kết quả như sau:

Với mã SHA1 vào trang : https://code.google.com/apis/console/ để lấy API key

Lưu ý: Bạn cần có 1 tài khoản của Google mới có thể lấy được API key

* Thêm 1 điểm trên goole maps

Trang 20

Marker marker = googleMap.addMarker(new MarkerOptions()

.position(latLng).title("Vị trí hiện tại của bạn").snippet(atm_address)

Trang 21

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ách giữ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, oto hay

là đi bộ

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 đi quatrên đường đi giữa 2 vị trí xác định

Cách sử dụng: ta cần có tọa độ 2 điểm đầu và cuối, với 2 điểm này ta sẽ gửi lên dịch vụ

của google là: Google Geocoding API, Google Directions API để lấy tập các điểm giữa 2

điểm đó rồi hiển thị lên maps

Ví dụ:

Hình 8: Ví dụ Vẽ đường đi trên google maps

Trang 22

CHƯƠNG II – XÂY DỰNG ỨNG DỤNG TÌM KIẾM ATM

I Biểu đồ phân cấp chức năng

1 Use Case tổng quát

Hình 9: Biểu đồ chức năng dạng tổng quát

2 Use Case Tab hiển thị vị trí người dùng

Ngày đăng: 23/03/2015, 01:33

HÌNH ẢNH LIÊN QUAN

Hình 2 – Mô hình kiến trúc nền tảng Android - Đề tài tìm hiể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
Hình 2 – Mô hình kiến trúc nền tảng Android (Trang 9)
Hình 3 - Mô hình hợp tác giữa máy ảo Dalvik và Navite code - Đề tài tìm hiể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
Hình 3 Mô hình hợp tác giữa máy ảo Dalvik và Navite code (Trang 12)
Hình 4: Mô hình hoạt động của Activity - Đề tài tìm hiể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
Hình 4 Mô hình hoạt động của Activity (Trang 15)
Hình 5: Một ví dụ về Google Maps - Đề tài tìm hiể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
Hình 5 Một ví dụ về Google Maps (Trang 17)
Hình 7: Ví dụ thêm 1 điểm trên google maps - Đề tài tìm hiể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
Hình 7 Ví dụ thêm 1 điểm trên google maps (Trang 19)
Hình 8: Ví dụ Vẽ đường đi trên google maps - Đề tài tìm hiể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
Hình 8 Ví dụ Vẽ đường đi trên google maps (Trang 20)
Hình 9: Biểu đồ chức năng dạng tổng quát - Đề tài tìm hiể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
Hình 9 Biểu đồ chức năng dạng tổng quát (Trang 21)
Hình 10: Giao diện Tab ”Home” hiện vị trí và địa chỉ hiện tại - Đề tài tìm hiể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
Hình 10 Giao diện Tab ”Home” hiện vị trí và địa chỉ hiện tại (Trang 27)
Hình 11: Giao diện Tab ”City” hiện danh sách các Tỉnh/Thành phố - Đề tài tìm hiể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
Hình 11 Giao diện Tab ”City” hiện danh sách các Tỉnh/Thành phố (Trang 28)
Hình 12: Giao diện Tab ”City” hiện DS các Ngân hàng ứng với Tỉnh/Thành phố - Đề tài tìm hiể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
Hình 12 Giao diện Tab ”City” hiện DS các Ngân hàng ứng với Tỉnh/Thành phố (Trang 29)
Hình 13: Giao diện hiện DS ATM ứng với Tỉnh/Thành phố và Ngân hàng - Đề tài tìm hiể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
Hình 13 Giao diện hiện DS ATM ứng với Tỉnh/Thành phố và Ngân hàng (Trang 30)
Hình 14: Giao diện hiển thị 1 điểm ATM trên google maps - Đề tài tìm hiể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
Hình 14 Giao diện hiển thị 1 điểm ATM trên google maps (Trang 31)
Hình 15: Giao diện hiển thị danh sách các điểm ATM trên google maps - Đề tài tìm hiể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
Hình 15 Giao diện hiển thị danh sách các điểm ATM trên google maps (Trang 32)
Hình 16: Giao diện Tab ”Bank” hiển thị danh sách các Ngân hàng - Đề tài tìm hiể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
Hình 16 Giao diện Tab ”Bank” hiển thị danh sách các Ngân hàng (Trang 33)
Hình 17: Giao diện Tab ”Bank” hiển thị danh sách các Tỉnh/Thành phố theo Ngân hàng - Đề tài tìm hiể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
Hình 17 Giao diện Tab ”Bank” hiển thị danh sách các Tỉnh/Thành phố theo Ngân hàng (Trang 34)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w