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

Xây dựng ứng dụng từ điển và trắc nghiệm trên android

75 1,4K 4

Đ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 75
Dung lượng 3,56 MB

Nội dung

Android được phát triển nhằm cạnh tranh với các hệ điều hành di động khác như iOS Apple, Window Mobile Microsoft, Symbian Nokia, BlackBerry OS … Mục tiêu của Liên minh này là nhanh chón

Trang 1

TRƯỜNG CAO ĐẲNG CÔNG THƯƠNG TP.HCM

KHOA: CÔNG NGHỆ THÔNG TIN

KHÓA LUẬN TỐT NGHIỆP

XÂY DỰNG ỨNG DỤNG TỪ ĐIỂN

VÀ TRẮC NGHIỆM TRÊN ANDROID

Sinh viên: Nguyễn Hoàng Bảo MSSV: 2112110291

Lớp: CCQ1211LA GVHD: Nguyễn Xuân Nhựt

Tp.HCM, ngày 12 tháng 06 năm 2015

Trang 2

TỔNG QUAN ĐỀ TÀI

Hiện nay, công nghệ thông tin đang phát triển hết sức mạnh mẽ Điều này

đồng nghĩa với việc nhu cầu về công nghệ của con người cũng ngày càng cao

Từ việc phải làm việc và giải trí trên máy tính, giờ đây các thiết bị di dộng cũng đang dần đáp ứng được các nhu cầu của con người và càng được sử dụng nhiều hơn do tính linh hoạt, tiện lợi và di động cao

Có rất nhiều nền tảng di động phổ biến như IOS, Android, Symbia, WindowPhone, Bada… nhưng Android của Google đang là hệ điều hành có hướng phát triển mạnh nhất Do Android là một hệ điều hành mở nên nhận được rất nhiều sự hỗ trợ từ cộng động mạng trên khắp thế giới Lập trình di động đã phát triển khá lâu trên thế giới nhưng vẫn còn khá mới mẻ ở Việt Nam, đặc biệt

là lập trình ứng dụng trên Android

Xã hội ngày càng phát triển, đòi hỏi về trình độ học vấn, hiểu biết càng cao thì việc chúng ta luôn có tư liệu và trao dồi kiến thức là điều cần thiết Tuy nhiên, việc tra cứu từ điển hoặc thi thử trắc nghiệm trên giấy, máy tính vẫn còn hạn chế Với một chiếc di động chạy hệ điều hành Android thì điều đó sẽ vô cùng tiện lợi, có thể tra cứu từ điển hoặc thi trắc nghiệm mọi lúc mọi nơi Từ những lý do trên, em đã suy nghĩ và quyết định lựa chọn đề tài tìm hiểu và xây dựng ra ứng dụng tra cứu Từ điển và trắc nghiệm chạy trên hệ điều hành

Android, tên đề tài là “XÂY DỰNG ỨNG DỤNG TỪ ĐIỂN VÀ TRẮC NGHIỆM TRÊN HỆ ĐIỀU HÀNH ANDROID”

Trang 3

II ĐỐI TƯỢNG NGHIÊN CỨU

Đối tượng nghiên cứu: Nghiên cứu, ứng dụng công cụ Android Studio để xây dựng ứng dụng từ điển và trắc nghiệm trên hệ điều hành Android

Phạm vi nghiên cứu: Ứng dụng tra cứu từ điển và ứng dụng thi thử trắc nghiệm trên hệ điều hành Android

III MỤC ĐÍCH NGHIÊN CỨU

Xây dựng ứng dụng từ điển và trắc nghiệm, với giao diện đơn giản, thân thiện và dễ sử dụng Cung cấp một cách đầy đủ và chính xác các thông tin và

dữ liệu mà người dùng cần

Mục tiêu cụ thể như sau:

 Ứng dụng từ điển: người dùng có khả năng tra từ bằng phương pháp lọc từ, đánh dấu từ yêu thích, tra trực tuyến trên website,…

 Ứng dụng trắc nghiệm: xây dựng được ứng dụng sát hạch bằng láy xe, xây dựng nhiều bộ đề khác nhau, quản lý thời gian khi sát hạch của từng bộ đề, khả năng chọn nhiều đáp án với mỗi câu, tính điểm sau khi sát hạch

IV PHƯƠNG PHÁP NGHIÊN CỨU

+ Về lý thuyết:

 Tìm hiểu về hệ điều hành Android

 Tìm hiểu về ngôn ngữ Anroid

 Cách sử dụng các control cơ bản và các thuật toán

Trang 4

LỜI CẢM ƠN

- -

Xin chân thành cám ơn Ban giám hiệu cùng toàn thể quý thầy cô, đặc biệt là quý thầy cô Khoa Công nghệ Thông tin Trường Cao đẳng Công Thương Thành phố Hồ Chí Minh, những người đã truyền đạt cho tôi nhiều kiến thức quý báu trong quá trình học tập

Xin cám ơn thầy Nguyễn Xuân Nhựt – giảng viên Khoa Công nghệ Thông tin Trường Cao đẳng Công Thương là người đã tận tình hướng dẫn tôi trong suốt quá trình hoàn thành đề tài này

Xin trân trọng cảm ơn!

Tp.HCM, ngày 12 tháng 06 năm 2015

Sinh viên thực hiện

Nguyễn Hoàng Bảo

Trang 5

Mục Lục

TỔNG QUAN ĐỀ TÀI 1

LỜI CẢM ƠN 3

CHƯƠNG I: CƠ SỞ LÝ THUYẾT 7

1.1 Lịch sử Android 7

1.2 Kiến trúc của Android 9

1.2.1 Tầng ứng dụng 10

1.2.2 Application framework 10

1.2.3 Library 11

1.2.4 Android Runtime 11

1.2.5 Linux kernel 11

1.3 Cấp độ API (API Level) 12

CHƯƠNG II: LÀM QUEN VỚI MÔI TRƯỜNG PHÁT TRIỂN 14

2.1 Giới thiệu môi trường phát triển (IDE) 14

2.2 Yêu cầu cài đặt 15

2.3 Giả lập máy ảo hệ điều hành Android (Android Emulator) 17

2.4 Cấu trúc một Module (Project) 19

2.4.1 Cấu trúc chung 19

2.4.2 AndroidManifest.xml 20

2.4.3 File R.java 23

2.5 Vòng đời một ứng dụng 23

2.5.1 Các khái niệm 23

2.5.2 Vòng đời của một ứng dụng 26

CHƯƠNG III XỬ LÝ GIAO DIỆN NGƯỜI DÙNG 28

3.1 View và Viewgroup 28

3.2 Layout 29

3.3 Các control cơ bản 31

3.3.1 TextView, EditText: 31

Trang 6

3.3.2 Button 31

3.3.3 Listview 32

3.3.4 ImageView 33

3.3.5 Tab Selector 33

3.3.6 ContextMenu 34

CHƯƠNG IV CÁC THÀNH PHẦN KHÁC 35

4.1 Intent 35

4.2 Background Service 37

4.3 Telephony 40

4.4 Cơ sở dữ liệu SQLite 41

4.4.1 Tạo trực tiếp 41

4.4.2 Sử dụng câu lệnh trong Android Studio 42

CHƯƠNG V XÂY DỰNG ỨNG DỤNG TỪ ĐIỂN 45

5.1 Tổng quan về đề tài 45

5.1.1 Xác định yêu cầu bài toán 45

5.1.2 Mục đích nghiên cứu 45

5.2 Phân tích thiết kế hệ thống 46

5.2.1 Đặc tả chức năng 46

5.2.2 Biểu đồ Use Case 46

5.2.3 Biểu đồ trình tự 47

5.3 Xây dựng ứng dụng 48

5.3.1 Thiết kế cơ sở dữ liệu 48

5.3.2 Xây dựng lớp 49

5.3.2 Lập trình các chức năng chính 50

5.3.3 Màn hình giao diện ứng dụng 53

5.4 Kết luận 55

5.4.1 Kết quả đạt được 55

5.4.2 Hướng phát triển 55

Trang 7

CHƯƠNG VI XÂY DỰNG ỨNG DỤNG TRẮC NGHIỆM 56

6.1 Tổng quan về đề tài 56

6.1.1 Xác định yêu cầu bài toán 56

6.1.2 Mục đích nghiên cứu 56

6.2 Phân tích thiết kế hệ thống 57

6.2.1 Đặc tả chức năng 57

6.2.2 Biểu đồ Use Case 57

6.2.3 Biểu đồ trình tự 58

6.3 Xây dựng ứng dụng 59

6.3.1 Thiết kế cơ sở dữ liệu 59

6.3.2 Xây dựng lớp 61

6.3.2 Lập trình các chức năng chính 64

6.3.3 Giao diện ứng dụng 69

6.4 Kết luận 71

6.4.1 Kết quả đạt được 71

6.4.2 Hướng phát triển 71

TỔNG KẾT 72

TÀI LIỆU THAM KHẢO 73

DANH MỤC HÌNH ẢNH 73

Trang 8

CHƯƠNG I: CƠ SỞ LÝ THUYẾT

1.1 Lịch sử Android

Android là hệ điều hành cho các thiết bị di động dựa trên nhân Linux do công

ty Android Inc (California, Mỹ) thiết kế Công ty này sau đó được Google mua lại vào năm 2005 và bắt đầu xây dựng các nền tảng Android

Vào cuối năm 2007, Android thuộc về Liên minh Thiết bị Cầm tay Mã Nguồn mở (Open Handset Alliance) với khoảng 78 thành viên bao gồm cả nhà sản xuất, nhà phát triển ứng dụng…cho thiết bị di động mà dẫn đầu là Google Android được phát triển nhằm cạnh tranh với các hệ điều hành di động khác như iOS

(Apple), Window Mobile (Microsoft), Symbian (Nokia), BlackBerry OS …

Mục tiêu của Liên minh này là nhanh chóng đổi mới để đáp ứng tốt hơn cho nhu cầu người tiêu dùng và kết quả đầu tiên của nó chính là nền tảng Android Android được thiết kế để phục vụ nhu cầu của các nhà sản xuất, các nhà khai thác

và các lập trình viên thiết bị di động

Phiên bản SDK (Software Development Kit) lần đầu tiên phát hành vào tháng

11 năm 2007, hãng T-Mobile cũng công bố chiếc điện thoại Android đầu tiên đó là chiếc T-Mobile G1, chiếc smartphone đầu tiên dựa trên nền tảng Android Một vài ngày sau đó, Google lại tiếp tục công bố sự ra mắt phiên bản Android SDK release Candidate 1.0 Trong tháng 10 năm 2008, Google được cấp giấy phép mã nguồn mở cho Android Platform

Trang 9

Khi Android được phát hành thì một trong số các mục tiêu trong kiến trúc của nó là cho phép các ứng dụng có thể tương tác được với nhau và có thể sử dụng lại các thành phần từ những ứng dụng khác Việc tái sử dụng không chỉ được áp dụng cho các dịch vụ mà nó còn được áp dụng cho cả các thành phần dữ liệu và giao diện người dùng

Vào cuối năm 2008, Google cho phát hành một thiết bị cầm tay được gọi là Android Dev Phone 1 có thể chạy được các ứng dụng Android mà không bị ràng buộc vào các nhà cung cấp mạng điện thoại di động Mục tiêu của thiết bị này là cho phép các nhà phát triển thực hiện các cuộc thí nghiệm trên một thiết bị thực có thể chạy hệ điều hành Android mà không phải ký một bản hợp đồng nào Vào khoảng cùng thời gian đó thì Google cũng cho phát hành một phiên vản vá lỗi 1.1 của hệ điều hành này

Ở cả hai phiên bản 1.0 và 1.1 Android chưa hỗ trợ bàn phím ảo mà đòi hỏi các thiết bị phải sử dụng bàn phím vật lý Android cố định vấn đề này bằng cách phát hành SDK 1.5 vào tháng tư năm 2009 Phiên bản mới nhất hiện nay được Google cho ra mắt vào tháng 5 năm 2015 đó là Android M

Google đã chọn “người máy” Bugdroid – với dáng vẻ hiện đại và trẻ trung – được sáng tạo bởi Irina Blok, làm biểu tượng chính thức cho hệ điều hành di động của họ Bên cạnh đó, để khẳng định thương hiệu, cách đặt tên các phiên bản hệ điều hành Android theo các món ăn tráng miệng do Ryan PC Gibson đề xuất cũng đãđược Google áp dụng Tên của các phiên bản được đặt theo thứ tự của bảng chữ cái như [C]upcake, [D]onut, [E]clair, [F]royo, [G]ingerbread, [H]oneyComb…

Trang 10

Hình 1.1 Biểu tượng Android qua các thời kỳ

1.2 Kiến trúc của Android

Mô hình sau thể hiện một cách tổng quát các thành phần của hệ điều hành Android Mỗi một phần sẽ được đặc tả một cách chi tiết dưới đây

Hình 1.2 Cấu trúc stack hệ thống Android

Trang 11

1.2.1 Tầng ứng dụng

Android được tích hợp sẵn một số ứng dụng cần thiết cơ bản như: contacts, browser, camera, Phone,… Tất cả các ứng dụng chạy trên hệ điều hành Android đều được viết bằng Java

1.2.2 Application framework

Android cung cấp một nền tảng phát triển mở, giúp cho các nhà phát triển khả năng xây dựng các ứng dụng cực kỳ phong phú và sáng tạo Nhà phát triển được tự do tận dụng các thiết bị phần cứng, thông tin địa điểm truy cập, các dịch vụ chạy nền, thiết lập hệ thống báo động,…

Nhà phát triển có thể truy cập vào các API (Application Programming Interface) cùng một khuôn khổ được sử dụng bởi các ứng dụng lõi Các kiến trúc ứng dụng được thiết kế để đơn giản hóa việc sử dụng lại các thành phần; bất kỳ ứng dụng có thể xuất bản khả năng của mình và ứng dụng nào khác sau đó có thể sử dụng những khả năng (có thể hạn chế bảo mật được thực thi bởi khuôn khổ) Cơ chế này cho phép các thành phần tương tự sẽ được thay thế bởi người sử dụng

Cơ bản tất cả các ứng dụng là một bộ các dịch vụ và các hệ thống, bao gồm:

 Một tập hợp rất nhiều các View có khả năng kế thừa lẫn nhau dùng để thiết

kế phần giao diện ứng dụng như: gridview, tableview, linearlayout,…

 Một “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 (chẳng hạn như Contacts) hoặc là chia sẻ dữ liệu giữa các ứng dụng đó

 Một “Resource Manager” cung cấp truy xuất tới các tài nguyên không phải

là mã nguồn, chẳng hạn như: localized strings, graphics, and layout files

 Một “Notifycation Manager” cho phép tất cả các ứng dụng hiển thị các custom alerts trong status bar

Trang 12

Activity Manager được dùng để quản lý chu trình sống của ứng dụng và điều hướng các activity

1.2.3 Library

Android bao gồm một tập hợp các thư viện C/C++ được sử dụng bởi nhiều thành phần khác nhau trong hệ thống Android Điều này được thể hiện thông qua nền tảng ứng dụng Android

1.2.4 Android Runtime

Android bao gồm một tập hợp các thư viện cơ bản mà cung cấp hầu hế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 Tất cả các ứng dụng android đều chạy trong tiến trình riêng Máy ảo Dalvik đã được viết để cho một thiết bị có thể chạy nhiều máy ảo (Virtual Machine – VM ) hiệu quả Các VM Dalvik thực thi các tập tin thực thi Dalvik (dex) Định dạng được tối ưu hóa cho bộ nhớ tối thiểu VM là dựa trên register-based, và chạy các lớp đã được biên dịch bởi một trình biên dịch Java để chuyển đổi thành các định dạng dex Các VM Dalvik dựa vào nhân Linux cho các chức năng cơ bản như luồng và quản lý bộ nhớ thấp

1.2.5 Linux kernel

Android dựa trên nhân Linux phiên bản 2.6 cho hệ thống dịch vụ cốt lõi như security, memory management, process management, network stack, and driver model Kernel Linux hoạt động như một lớp trừu tượng hóa giữa phần cứng và phần còn lại của phần mềm stack

Trang 13

1.3 Cấp độ API (API Level)

Cấp độ API (Application Programming Interface – Giao diện chương trình ứng

dụng) là một giá trị số nguyên dùng để xác định sự sửa đổi khuôn khổ API được cung cấp bởi một phiên bản của nền tảng Android

Nền tảng Android cung cấp 1 khuôn khổ API để các ứng dụng có thể sử dụng để tương tác với hệ thống Android cơ bản Một khuôn khổ API bao gồm:

+ Các gói (packages) và lớp (classes)

+ Các yếu tố và thuộc tính XML để khai báo file manifest

+ Các yếu tố và thuộc tính XML để khai báo và tiếp cận nguồn tài nguyên + Các Intent

+ Các quyền mà ứng dụng yêu cầu

Mỗi phiên bản nền tảng Android hỗ trợ chính xác một cấp độ API, mặc dù

sự hỗ trợ bao hàm cho tất cả các cấp độ API trước đó (cho đến API cấp độ 1) Việc phát hành ban đầu của nền tảng Android cung cấp API cấp độ 1 và phiên bản tiếp theo đã tăng cấp độ API lên

Trang 14

Hình 1.3 Các cấp độ API được hỗ trợ bởi mỗi phiên bản của nền tảng Android

Trang 15

CHƯƠNG II: LÀM QUEN VỚI MÔI TRƯỜNG PHÁT TRIỂN

2.1 Giới thiệu môi trường phát triển (IDE)

Ngôn ngữ lập trình chính thức của Android là Java Mặc dù các ứng dụng trên Android được phát triển dựa trên nền tảng Java, nhưng Android không hỗ trợ J2ME và J2SE, là hai công nghệ lập trình phổ dụng cho các thiết bị di động

Dựa trên máy ảo Java của Sun, Google đã tinh chỉnh và phát triển nên máy ảo Dalvik để biên dịch mã Java với tốc độ biên dịch nhanh hơn và nhẹ hơn Đến phiên bản Froyo 2.2, Android đã hỗ trợ Just-in-time Compiler (JIT) làm tăng tốc độ biên dịch Java lên gấp 2-5 lần so với các phiên bản trước

Môi trường phát triển (IDE) Android thường dùng trước đây là Eclipse, tích thợp thêm bộ công cụ SDK để hỗ trợ lập trình Vào khoảng cuối năm 2014, Android cho ra mắt một công cụ lập trình Android chính thức tên là Android Studio Android Studio bao gồm các thành phần:

 Android Studio IDE

 Android SDK tools

 Android 5.0 (Lollipop) Platform

 Android 5.0 emulator system image with Google APIs

Trong Eclipse, bạn sẽ quen thuộc với khái niệm không gian làm việc (Workspace) với những project con nằm trong đấy, tuy nhiên trong Android Studio không còn khái niệm Workspace và mỗi cửa sổ bạn chỉ làm việc với một project Những project trong Android Studio được thay thế với một khái niệm mới gọi là

"Modules" và "Library Modules"

Với Android Studio, bạn sẽ được tiếp xúc nhiều với Gradle Gradle là một công cụ tự động build project dựa trên các khái niệm của Apache Ant, Apache Maven và giới thiệu Groovy dựa ngôn ngữ (DSL) thay cho hình thức khai báo cấu hình truyền thống (XML) của project

Trang 16

Hình 2.1 Cấu trúc JDK

Hình 2.2 Thiết lập

Environment Variables

2.2 Yêu cầu cài đặt

- Java JDK (Java Development Kit) là một ứng dụng nền tảng để chạy các

ứng dụng Java Nó bao gồm các thư viện và công cụ debug của Java

Tải về tại: http://java.sun.com/javase/downloads/index.jsp

- Thiết lập Environment Variables: Ở một số hệ thống Windows, lệnh khởi

chạy của Android Studio sẽ không tìm được nơi mà Java được cài Vì vậy, chúng ta cần phải thiết lập một biến môi trường để cho biết vị trí chính xác của thư mục Java

Chọn theo đường dẫn: Start menu > Computer > System Properties

> Advanced System Properties Kế đến mở tab Advanced tab >

Trang 17

- Android Studio: Tải Android Studio và cài đặt thông thường theo địa chỉ:

http://developer.android.com/sdk/index.html

Yêu cầu cấu hình:

Windows

 Microsoft® Windows® 8/7/Vista/2003 (32 or 64-bit)

 2 GB RAM minimum, 4 GB RAM recommended

 400 MB hard disk space + at least 1 G for Android SDK, emulator system images, and caches

 1280 x 800 minimum screen resolution

 Java Development Kit (JDK) 7

 Optional for accelerated emulator: Intel® processor with support for Intel® VT-x, Intel® EM64T (Intel® 64), and Execute Disable (XD) Bit functionality

Mac OS X

 Mac® OS X® 10.8.5 or higher, up to 10.9 (Mavericks)

 2 GB RAM minimum, 4 GB RAM recommended

 400 MB hard disk space

 At least 1 GB for Android SDK, emulator system images, and caches

 1280 x 800 minimum screen resolution

 Java Runtime Environment (JRE) 6

 Java Development Kit (JDK) 7

 Optional for accelerated emulator: Intel® processor with support for Intel® VT-x, Intel® EM64T (Intel® 64), and Execute Disable (XD) Bit functionality

On Mac OS, run Android Studio with Java Runtime Environment (JRE) 6 for optimized font rendering You can then configure your project to use Java Development Kit (JDK) 6 or JDK 7

Linux

 GNOME or KDE desktop

 GNU C Library (glibc) 2.11 or later

 2 GB RAM minimum, 4 GB RAM recommended

 400 MB hard disk space

 At least 1 GB for Android SDK, emulator system images, and caches

 1280 x 800 minimum screen resolution

 Oracle® Java Development Kit (JDK) 7

Trang 18

2.3 Giả lập máy ảo hệ điều hành Android (Android Emulator)

Emulator hay hệ máy giả lập là máy điện thoại ảo chạy trên nền tảng của

máy vi tính Nó cho phép bạn phát triển và kiểm tra ứng dụng Android mà không cần sử dụng một máy thật Máy ảo này được thiết kế bắt chước gần như tất cả các chi tiết phần cứng và phần mềm của một chiếc máy thật, ngoại trừ việc bạn không thể gọi đến một số nào đó để tạo một cuộc hội thoại thật Giao diện của nó gồm 1 màn hình cảm ứng (thao tác bằng mouse máy tính) và một bàn phím Qwerty đầy đủ chức năng Android Emulator được quản lý bằng AVD (Android Virtual Device)

Android Virtual Device (AVD) là một cấu hình giả lập thiết bị di động

Android để có thể chạy và debug các ứng dụng Android Studio cung cấp sẵn cho người dùng một công cụ để tạo và quản lý các thiết bị ảo này

Hình 2.3 Máy ảo của Android Studio

Trang 19

Tuy nhiên, đối với những máy có cấu hình yếu thì việc khởi động và debug các ứng dụng trên các thiết bị ảo của AVD cực kỳ chậm và lâu Vì thế mình xin

giới thiệu thêm một phần mềm tạo máy ảo trên Android đó là Genymotion

Genymotion thực chất sử dụng VirtualBox để tạo ra các máy ảo, tuy nhiên nó

sẽ giúp chúng ta đơn giản được nhiều bước thiết lập Download ứng dụng tại đường dẫn:

https://www.genymotion.com/#!/download

Hình 2.4 Màn hình Genymotion

Trang 20

2.4 Cấu trúc một Module (Project)

Hình 2.5 Giao diện khi mở một project

build/: chứa các thư mục cho các biến thể đặc trưng

libs/: chứa các thư viện riêng

src/main/java: lưu trữ các tập tin mã nguồn java

src/main/res: chứa tài nguyên của ứng dụng, ví dụ như file ảnh, file

Trang 21

build.gradle: chứa các đặc tính tùy biến

Hình 2.6 Cấu trúc cây của một Project trong Android Stuido

2.4.2 AndroidManifest.xml

Trong bất kì một Module (project) Android nào khi tạo ra đều có một file AndroidManifest.xml, file này được dùng để định nghĩa các màn hình (activity) được sử dụng, các permission cũng như các theme cho ứng dụng Đồng thời nó cũng chứa thông tin về phiên bản SDK cũng như activity chính sẽ chạy đầu tiên

File này được tự động sinh ra khi tạo một Android project Trong file

manifest bao giờ cũng có 3 thành phần chính đó là: application, permission và

version

Trang 22

 android:theme = “drawable theme”: thuộc tính này để đặt theme cho ứng dụng Các theme là các cách để hiển thị giao diện ứng dụng

Ngoài ra còn nhiều thuộc tính khác…

Trang 23

2.4.1.2 Permission

Bao gồm các thuộc tính chỉ định quyền truy xuất và sử dụng tài nguyên của ứng dụng Khi cần sử dụng một loại tài nguyên nào đó thì trong file manifest của ứng dụng cần phải khai báo các quyền truy xuất, ví dụ:

Trang 24

2.4.3 File R.java

File R.java là một file tự động sinh ra ngay khi tạo ứng dụng, file này được

sử dụng để quản lý các thuộc tính được khai báo trong file XML của ứng dụng

và các tài nguyên hình ảnh

Mã nguồn của file R.java được tự động sinh khi có bất kì một sự kiện nào xảy xa làm thay đổi các thuộc tính trong ứng dụng Chẳng hạn như, bạn kéo và thả một file hình ảnh từ bên ngoài vào project thì ngay lập tức thuộc tính đường dẫn đến file đó cũng sẽ được hình thành trong file R.java hoặc xoá một file hình ảnh thì đường dẫn tương ứng đến hình ảnh đó cũng tự động bị xoá

Có thể nói file R.java hoàn toàn không cần phải đụng chạm gì đến trong cả quá trình xây dựng ứng dụng

2.5 Vòng đời một ứng dụng

2.5.1 Các khái niệm

Applications: Mỗi Android Project khi biên dịch thành công thì sẽ được

đóng gói thành tập tin apk, tập tin apk được gọi là một Application (Ứng dụng cụ thể nào đó – Ví dụ như ứng dụng chống tin nhắn rác, ứng dụng tìm đường đi ngắn nhất, ứng dụng đăng ký học phần bằng sms … )

Activities: Mỗi ứng dụng sẽ có một hoặc nhiều Activity, nó tương tự các

màn mình tương tác giống như Form trong Net hoặc JFrame trong Java Mỗi một Activity này phải được khai báo trong Manifest và sẽ có một vòng đời riêng độc lập hoàn toàn với các Activity khác

Mỗi Activity gồm 3 trạng thái sau:

Trang 25

Hình 2.8 Vòng đời của một Activity

- Running (Đang hoạt động): Khi màn hình là Foreground (Activity nằm

trên cùng ứng dụng và cho phép người

sử dụng tương tác)

- Paused (Tạm dừng): Activity bị mất

focus nhưng mà vẫn nhìn thấy được

Activity này (Ví dụ bạn mở một

Activity mới lên dưới dạng Dialog)

- Stopped (Dừng – không phải

Destroyed): Activity mất focus và không

nhìn thấy được (ví dụ bạn mở một

Activity mới lên mà Full màn hình)

hợp Paused hay Stopped, Activity đều

có khả năng bị Destroyed (hủy) khi bộ

nhớ cần cho việc khác ưu tiên hơn.

Activity Stack: Là một ngăn xếp chứa các Activity đang hoạt động Tương tự như các ngôn ngữ lập trình khác, Activity Stack hoạt động theo cơ chế LIFO

(LAST IN FIRST OUT)

Mỗi một Activity mới được mở lên nó sẽ ở bên trên Activity cũ, để trở về

Activity thì bạn chỉ cần nhấn nút “Back” để trở về hoặc viết lệnh Tuy nhiên nếu bạn nhấn nút Home rồi thì sẽ không thể dùng nút “Back” để quay lại màn hình

cũ được

Trang 26

 Tasks là khả năng tương tác để thực hiện một công việc nào đó giữa các ứng dụng với nhau

Ví dụ: Bạn đang mở chương trình quản lý BlackList, trong chương trình

này cho phép mở danh bạ để đưa vào danh sách đen Lúc đó chương trình bạn sẽ gọi Activity của ứng dụng danh bạ, sau khi lấy xong lại quay trở về ứng dụng của bạn

Hình 2.9 Activity Stack

Hình 2.10 Tương tác giữa các Activity

Trang 27

2.5.2 Vòng đời của một ứng dụng

Hình 2.11 Vòng đời của một ứng dụng

Một ứng dụng Adnroid được bắt đầu khi một trong các thành phần trong nó được bắt đầu Vòng đời của một ứng dụng được tính từ khi gọi phương thước onCreate() cho đến trước khi gọi phương thức onDestroy()

Một ứng dụng có thể được cung cấp các phương thức vòng đời chính như:

onCreate() – được gọi trước khi một thành phần đầu tiên của ứng dụng

khởi động

onLowMemory() – được gọi khi hệ điều hành Android yêu cầu dọn

dẹp bộ nhớ

onTerminate() – chỉ để kiểm tra, không được gọi lại

onConfigurationChanged() – được gọi khi cấu hình thay đổi

Trang 28

Hình 2.12 Vòng đời chi tiết của một ứng dụng

Khi ứng dụng hoạt động sẽ có các trạng thái khác nhau, dưới đây là thứ tự ưu tiên cho các trạng thái:

Foreground Xảy ra từ khi gọi onRemuse() đến khi gọi onPause()

Trong suốt thời gian này, Activity luôn nằm trên cùng

và người dùng có thể tương tác với nó

1

Visible Xảy ra từ khi gọi onStart() đên khi gọi onStop() Trong

suốt thời gian này, chúng ta có thể nhìn thấy Activity nhưng có thể tương tác hoặc không tương tác được với

2

Background Ứng dụng chỉ tạm dừng các Activity mà không chạy

một dịch vụ hay nhận một thực thi nào

4

Trang 29

CHƯƠNG III XỬ LÝ GIAO DIỆN NGƯỜI DÙNG

3.1 View và Viewgroup

Trong một ứng dụng Android, giao diện người dùng được xây dựng từ các đối tượng View và ViewGroup Có nhiều kiểu View và ViewGroup Mỗi một kiểu là một hậu duệ của class View và tất cả các kiểu đó được gọi là các Widget

Tất cả mọi widget đều có chung các thuộc tính cơ bản như là cách trình bày vị trí, background, kích thước, lề… Tất cả những thuộc tính chung này được thể hiện hết ở trong đối tượng View

Trong Android Platform, các screen luôn được bố trí theo một kiểu cấu trúc phân cấp như hình dưới Một screen là một tập hợp các Layout và các widget được bố trí có thứ tự Để thể hiện một screen thì trong hàm onCreate của mỗi Activity cần phải được gọi một hàm là setContentView(R.layout.main); hàm này sẽ load giao diện từ file XML lên để phân tích thành mã bytecode

Hình 3.1 Cấu trúc một giao diện ứng dụng Android

Trang 30

3.2 Layout

Layout dùng để xác định cấu trúc ứng dụng và chứa các control trong giao diện người dùng Để ứng dụng Android của bạn có giao diện phức tạp bạn phải biết kết hợp nhiều layout lại với nhau

Một số layout cơ bản trong Android:

a FrameLayout: là layout cơ bản nhất, đặc điểm là các control trong này

sẽ được đặt ở góc trái trên cùng màn hình Các control đưa vào cùng một

vị trí sẽ đè lên và che khuất các control trước đó

b LinearLayout: cho phép ta đặt các control theo một đường thẳng theo 2

hướng trên giao diện là: từ trái qua phải và từ trên xuống dưới

Hình 3.2 Ví dụ về FrameLayout

Trang 31

c RelativeLayout: cho phép sắp xếp các control theo vị trí tương đối giữa

các control khác trên giao diện (kể cả control chứa nó)

Trang 32

3.3 Các control cơ bản

3.3.1 TextView, EditText:

TextView, EditorText là một thành phần đồ họa để chứa các văn bản trên giao diện Trong Android, EditorText được sử dụng như một TextField hoặc một TextBox TextView ngoài tác dụng là để hiển thị văn bản thì nó còn cho phép định dạng nội dung bằng thẻ html

Thuộc tính android:onClick="clickHere" được dùng để bắt sự kiện khi click vào button Thuộc tính này sẽ tạo ra một phương thức trong file mã nguồn

Trang 33

3.3.3 Listview

Được sử dụng để thể hiện một danh sách các thông tin theo từng cell Mỗi cell thông thường được load lên từ một file XML đã được cố định trên đó số lượng thong tin và loại thông tin cần được thể hiện

Để thể hiện được một list thông tin lên một screen thì cần phải có 3 yếu tố chính:

• Data Source: Data Source có thể là một ArrayList, HashMap hoặc bất kỳ

một cấu trúc dữ liệu kiểu danh sách nào

• Adapter: Adapter là một class trung gian giúp ánh xạ dữ liệu trong Data

Source vào đúng vị trí hiển thị trong ListView Chẳng hạn, trong Data Source có một trường name và trong ListView cũng có một TextView để thể hiện trường name này Tuy nhiên,

ListView sẽ không thể hiển thị dữ liệu

trong Data Source lên được nếu như

Adapter không gán dữ liệu vào cho đối

tượng hiển thị

• ListView: ListView là đối tượng để hiển

thị các thông tin trong Data Source ra

một cách trực quan và người dùng có thể

thao tác trực tiếp trên đó

Hình 3.6 Ví dụ về ListView

Trang 34

Tab Selector giống như Property Sheet trong Visual C, giống như Tab

Hình 3.7 Ví dụ về Tab Selector

Trang 35

3.3.6 ContextMenu

ContextMenu được sử dụng để hiển thị các tuỳ chọn khi người dùng nhấn

dài vào một cell nào đó trong ListView Để tạo một ContextMenu ta cũng có 2 cách giống như tạo MenuOptions ở trên chỉ khác tên phương thức

Khi nhấn dài vào một cell trong ListView thì phương thức:

public void onCreateContextMenu(ContextMenu menu, View v,

ContextMenuInfo menuInfo)

sẽ được gọi và truyền vào 3 tham số là:

 ContextMenu: đối tượng để add các context menu item

 View: Đối tượng nơi mà xảy ra sự kiện

ContextMenuInfo: Cho biết vị trí xảy ra sự kiện trong ListView Để biết được vị trí

xảy ra sự kiện ta làm như sau:

Trang 36

CHƯƠNG IV CÁC THÀNH PHẦN KHÁC

4.1 Intent

Intent là nền tảng để truyền tải các thông báo qua lại Intent được sử dụng

để gửi các thông báo đi nhằm khởi tạo 1 Activity hay Service để thực hiện công việc bạn mong muốn Ví dụ, khi mở 1 trang web, bạn gửi 1 intent đi để tạo 1 activity mới hiển thị trang web đó

Dữ liệu của Intent:

 Intent về cơ bản là một cấu trúc dữ liệu, được mô tả trong lớp android.content.Intent

 Các thuộc tính của một đối tượng Intend:

Hình 4.2 Các thuộc tính của intent Hình 4.1 Mô phỏng hoạt động của Intent

Trang 37

Cách khai báo: Cung cấp chính xác thông tin của activity cần gọi bằng cách

truyền vào tên class của Activity đó hoặc các action được khai báo sẵn

Ví dụ: Từ Activity A muốn chuyển qua Activity B ta khai báo một Intend trong

Activity A:

Intent intent = new Intent(this, B.class);

startActivity(intent);

Hình 4.3 Các action đã được định nghĩa sẵn trong Intent

Tính liên lạc giữa 2 activity: Khi chuyển sang một Activity khác ta có thể gửi kèm

dữ liệu trong intend đó như sau:

Ngày đăng: 21/04/2016, 19:32

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