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

tìm hiểu hệ điều hành android và xây dựng ứng dụng minh họa

56 563 2

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

Nội dung

tìm hiểu hệ điều hành android và xây dựng ứng dụng minh họa

Trang 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI Viện Công nghệ Thông tin và Truyền thông

BÁO CÁO ĐỒ ÁN 2

Đề tài:

Tìm hiểu hệ điều hành Android và xây dựng ứng dụng

minh họa

Giáo viên hướng dẫn: ThS Lương Mạnh Bá

Sinh viên thực hiện:

1 Lê Đức Anh SHSV: 20109202

2 Nguyễn Văn Bảo SHSV: 20109209

3 Bùi Văn Chiến SHSV: 20109214

HÀ NỘI – 11/2012

Trang 2

MỤC LỤC

I- MỞ ĐẦU 4

II- HỆ ĐIỀU HÀNH ANDROID 4

1 Giới thiệu chung 4

2 Kiến trúc hệ điều hành Android 4

III- PHÁT TRIỂN ỨNG DỤNG CHO HỆ ĐIỀU HÀNH ANDROID 6

1 Tổng quan ứng dụng Android 6

2 Môi trường, công cụ hỗ trợ phát triển 6

2.1 Môi trường phát triển 6

2.2 Cài đặt plugin ADT cho Eclipse 7

2.3 Cài đặt Android SDK 8

2.4 Cài đặt SDK APIs 9

2.5 Cài đặt AVD sử dụng AVD Manager 10

2.6 Công cụ gỡ rối DDMS (Dalvik Debug Monitor Server) 12

2.7 Cài đặt AVD sử dụng dòng lệnh 13

2.8 Sử dụng Android Emulator 14

2.8.1 Cài đặt ứng dụng vào Emulator 14

2.8.2 Làm việc với Disk images trong Emulator 16

2.8.3 Emulator Networking 16

2.8.4 Sử dụng Emulator Console 18

3 Phát triển ứng dụng trên Android 23

3.1 Tạo chương trình Hello World 24

3.2 Thành phần giao diện trong Android 30

3.2.1 View: 30

3.2.2 ViewGroup : 30

3.2.3 Một số thành phần giao diện thông dụng 30

3.2.3.1 Button: 30

3.2.3.2 ImageButton: 31

3.2.3.3 ImageView: 31

3.2.3.4 TextView: 31

3.2.3.5 EditText: 32

3.2.3.6 CheckBox: 32

3.2.3.7 RadioButton và RadioGroup: 33

Trang 3

3.2.3.8 ListView: 34

3.2.3.9 AutoCompleteTextView: 35

3.2.3.10 Menu Options: 36

3.2.3.11 ProgressBar: 37

3.3 Thao tác với luồng 39

3.4 Thao tác cơ sở dữ liệu sử dụng SQLite 41

3.5 Activity và Intent 43

3.6 Bộ nhớ chia sẻ 45

3.6.1 Shared Preferences 45

3.6.2 Internal Storeage: 47

3.6.3 External Storeage 48

IV- ỨNG DỤNG MINH HỌA 49

V- KẾT LUẬN 55

VI- TÀI LIỆU THAM KHẢO 56

Trang 4

I- MỞ ĐẦU

Hiện nay, nhu cầu sử dụng các thiết bị di động ngày càng lớn, kéo theo sự phát triển của các nền tảng di động Trên thị trường đã có rất nhiều hệ điều hành di động như iOS, Window Phone, BlackBerry, Symbian, LiMo, Trong đó, nổi bật phải kể đến là hệ điều hành Android Với đặc tính là nền tảng mã nguồn mở và hoàn toàn miễn phí, Android tạo nhiều thuận lợi cho các nhà phát triển thiết kế ứng dụng di động của mình, giúp nền tảng này ngày càng phát triển hơn nữa

1 Giới thiệu chung

Android là bộ công cụ phần mềm mã nguồn mở dựa trên nhân Linux 2.6 dành cho nền tảng di động được phát triển bởi Google và Open Handset Alliance (tổ chức đa quốc gia

do Google lập, nhằm xây dựng một chiếc điện thoại tốt hơn dựa trên Android) Hàng trăm triệu thiết bị Android trên toàn cầu hiện nay đã minh chứng cho sự phát triển mạnh

mẽ của nền tảng này

Những đặc tính nổi trội của hệ điều hành Android so với các hệ điều hành di động khác:

 Android thực sự mở, một nền tảng phát triển dựa trên Linux và mã nguồn mở: Các nhà sản xuất thiết bị và các nhà phát triển yêu thích Android do họ có thể sử dụng và tùy chỉnh nó mà không phải trả tiền bản quyền

 Hỗ trợ ngôn ngữ lập trình Java, C/C++

2 Kiến trúc hệ điều hành Android

Trang 5

Linux Kernel: Android được xây dựng dựa trên nhân Linux và là một hệ điều hành đa nhiệm

thực sự Nhân Linux cung cấp tầng ảo hóa phần cứng cho Android, giúp Android có thể thích hợp với đa dạng nền tảng phần cứng

Libraries: Các thư viện chia sẻ toàn bộ được viết bằng C/C++, được biên dịch phù hợp với

đặc thù kiến trúc phần cứng sử dụng bởi các thiết bị di động, được cài đặt sẵn bởi nhà sản xuất Một số thư viện quan trọng như:

 Surface Manager: Quản lý cửa sổ, hiển thị, hiệu ứng

nhanh (nếu không)

 Media codecs: Android chơi được nhiều định dạng video và âm thanh như: AAC, AVC, H.263, MP3, MP4

libraries

Android Runtime: gồm thư viện lõi Java, máy ảo Dalvik (tối ưu hóa cho bộ nhớ hạn chế, cho

phép nhiều VM chạy đồng thời và tạo thuận lợi cho hệ điều hành lõi (Linux) trong bảo mật

và độc lập giữa các tiến trình)

Application Framework: tầng này cung cấp thành phần cấp cao để tạo ứng dụng, mặc định được cài sẵn, nhưng nhà phát triển có thể kế thừa bằng những thành phần của mình Một số

Trang 6

 Activity manager: điều khiển vòng đời ứng dụng

các ứng dụng (ví dụ như là danh bạ)

như xâu kí tự, hình ảnh, âm thanh )

 Notification manager: quản lý thông báo đến người dùng (ví dụ như: có tin nhắn, lịch, cảnh báo )

Application: Android cung cấp một số các ứng dụng tiêu chuẩn đi kèm thiết bị như: ứng

dụng gọi điện, danh bạ, SMS, Email, bản đồ, trình duyệt, danh bạ, cho nhà phát triển

1 Tổng quan ứng dụng Android

Trong Android, chỉ có một ứng dụng tiền cảnh (foreground application) chiếm toàn bộ màn hình và chờ đợi để người dùng tương tác (ví dụ như ứng dụng Home mỗi khi người dùng mở máy)

Khi người dùng chạy một ứng dụng, Android khởi động và đưa nó ra tiền cảnh Từ ứng dụng này, người dùng có thể đi đến ứng dụng khác, màn hình khác v.v Tất cả chương trình và

màn hình được ghi vào application stack bởi Activity manager Người dùng có thể dùng nút

Back để trở lại màn hình trước đó

Một ứng dụng là một hoặc nhiều activity cộng thêm một tiến trình Linux chứa nó

Các ứng dụng được quản lý chặt chẽ việc sử dụng tài nguyên nhằm tránh lãng phí, xung đột, đảm bảo hiệu năng hệ thống

Ứng dụng Android có phần mở rộng là Apk

Thành phần chính được dùng trong ứng dụng Android

Services: Thành phần chạy ngầm, không có giao diện, dùng để chạy các tác vụ lâu

dài

Content providers: quản lý dữ liệu chia sẻ, truy vẫn dữ liệu Ví dụ việc lấy dữ liệu

trong danh bạ

Broadcast receiver: thành phần thông báo của hệ thống, đón bắt các sự kiện

2 Môi trường, công cụ hỗ trợ phát triển

2.1.Môi trường phát triển

- Eclipse IDE

- Plugin cho Eclipse – ADT

Trang 7

- Android SDK

2.2.Cài đặt plugin ADT cho Eclipse

Cách 1:

1 Mở Eclipse, vào help > Install New Software… > chọn Add và điền

https://dl-ssl.google.com/android/eclipse/ vào ô Location

2 Chọn thành phần Deverloper Tool và cài đặt

Cách 2:

1 Tải ADT-20.0.3.zip mới nhất trên http://developer.android.com/tools/sdk/eclipse-adt.html

2 Giải nén, copy toàn bộ file trong thư mục features và plugins vào thư mục tương ứng của thư mục cài đặt Eclipse

Trang 8

2.3.Cài đặt Android SDK

1 Tải Android SDK dạng file zip tại http://developer.android.com/sdk/index.html

2 Giải nén ra thư mục bất kỳ

3 Mở Eclipse, chọn Window > Preferences, chọn mục Android

4 Tại SDK Location, điền đường dẫn đến thư mục Android SDK vừa giải nén, chọn

OK

Trang 9

2.4.Cài đặt SDK APIs

1 Trong Eclipse, vào Window > Android SDK Manager

2 Chọn nền tảng API và tiến hành cài đặt

Trang 10

2.5.Cài đặt AVD sử dụng AVD Manager

1 Trong Eclipse, vào Window > AVD Manager > New…

2 Điền tên máy tại ô Name, chọn nền tảng tại Target, dung lượng thẻ nhớ tại SD Card, kích thước màn hình tại Skin, cấu hình chi tiết tại Hardware,… sau đó ấn

Create AVD

3 Để khởi động AVD, chọn AVD trong list > Start…

Trang 11

Figure 1: Giao diện Emulator khi khởi động xong

Trang 12

2.6.Công cụ gỡ rối DDMS (Dalvik Debug Monitor Server)

DDMS cho phép theo dõi hoạt động trong Emulator, hỗ trợ sửa lỗi, xem, dừng các tiến trình, truy cập hệ thống file, giả lập gửi tin nhắn, gọi điện, GPS, …

Trang 13

2.7.Cài đặt AVD sử dụng dòng lệnh

Từ cửa sổ dòng lệnh đi vào <sdk>/tools

Hiển thị Target đã được cài đặt, sử dụng lệnh: “android list targets” Nó sẽ quét trong 2 thư mục

<sdk>/platforms/ và <sdk>/add-ons/ và hiển thị kết quả Ví dụ:

Để tạo AVD mới, sử dụng lệnh:

android create avd -n <name> -t <targetID> [-<option> <value>]

 name : tên AVD

 targetID: id của target trong hệ thống (như ví dụ trên)

 [-<option> <value>]: các tùy chọn khác

Ví dụ: android create avd –n my_android –t 2 skin WXGA800

Các file AVD sẽ được chứa mặc định ở ~/.android/avd/ (với Linux/Mac), <user>\.android\avd

(với Window) Để tùy biến ta có thể thêm tùy chọn –p <đường dẫn>

Để tạo SD Card thêm tùy chọn -c <size>[K|M]

Để xóa AVD, sử dụng lệnh: android delete avd -n <name>

Khởi động AVD: sử dụng lệnh emulator -avd <avd_name> [<options>]

Trang 14

2.8.Sử dụng Android Emulator

Android Emulator để thiết kế, phát triển, thử nghiệm, sửa lỗi ứng dụng Android mà không cần sử dụng thiết bị thật Nó mô phỏng hầu hết phần cứng cũng như phần mềm giống thiết bị thật ngoại trừ việc không thể gọi điện như máy thật

2.8.1 Cài đặt ứng dụng vào Emulator

Đối với môi trường Eclipse + ADT ứng dụng tự động được cài khi Build

Nếu không sử dụng môi trường Eclipse + ADT, ta dùng công cụ adb với cú pháp như sau:

adb install <đường dẫn đến file apk>

Trong trường hợp có nhiều Emulator đang chạy ta xác định Emulator thông qua số hiệu cổng của

nó Ví dụ để cài ứng dụng cho Emulator có số hiệu cổng 5554 ta làm như sau:

adb –s emulator-5554 install <đường dẫn đến file apk>

Nói thêm về quá trình tạo ra file apk

Trang 15

Figure 2: Quá trình tạo file apk

(như là các file xml), biên dịch chúng và đồng thời tạo ra file R.java (dùng để quản lý

các thuộc tính được khai báo trong file xml)

Trang 16

Công cụ aidl (Android Interface Definition Language) chuyển đổi aidl interfaces (nếu

có) vào trong Java interfaces

 R.java, mã nguồn, cùng với file aidl được biên dịch bởi Java complier cho ra class file

Dex tools sẽ chuyển các file class (kể cả của bên thứ 3) thành Dalvik bytecode

cùng với dex file được đóng gói thành file apk sử dụng apkbuilder

Release cần qua bộ zipalign giúp giảm bộ nhớ sử dụng khi chạy trên thiết bị

2.8.2 Làm việc với Disk images trong Emulator

++File ảnh mặc định (Default image files):

Nếu khi Emulator khởi động mà không tìm thấy file ảnh dữ liệu người dùng (user data image),

nó sẽ tạo mới từ một phiên bản mặc định trong SDK và file ảnh là file chỉ đọc

Có thể thay đổi đường dẫn đến user data image (file userdata.img) bằng cách thêm tùy chọn lúc khởi động là –system <đường dẫn> Ta cũng có thể thay đổi tên của user data image bằng cách thêm tùy chọn khởi động –initdata <file>

++File ảnh khi chạy (Runtime images):

Tại thời điểm chạy, Emulator đọc và ghi dữ liệu vào hai đĩa ảnh userdata-qenu.img và

sdcard.img – mô phỏng phân vùng dữ liệu người dùng và thiết bị lưu trữ gắn ngoài (như SD

Card) trên máy thật Như file ảnh mặc định ở trên, ta cũng có thể thay đổi đường dẫn đến hai đĩa

ảnh này với tùy chọn khởi động –data <đường dẫn> và –sdcard <đường dẫn>, nếu đường dẫn

chỉ có tên file, Emulator sẽ tìm trong thư mục làm việc hiện tại

++File ảnh tạm (Temporary Images):

Emulator tạo hai file ảnh có thể ghi và xóa chúng khi tắt máy đó là:

Phân vùng /cache được khởi tạo rỗng sử dụng bởi trình duyệt để lưu trang web và ảnh Emulator cung cấp tùy chọn –cache <file> để lưu trữ /cache khi tắt máy

2.8.3 Emulator Networking

++Không gian địa chỉ:

Mỗi thực thể Emulator chạy sau một router/firewall ảo, cô lập với giao diện mạng của máy phát triển và với internet; nó không thể nhìn thấy máy của nhà phát triển và các Emulator khác Nó chỉ nhìn thấy các kết nối thông qua router/firewall

Trang 17

Router ảo của mỗi thực thể quản lý không gian địa chỉ 10.0.2/24 Địa chỉ trong không gian nay

đã được đặt trước bởi Emulator/router như sau:

Tất cả thực thể Emulator đều được gán giống nhau và giống như trên

++Sử dụng Network Redirection:

Để giao tiếp với Emulator cần phải thiết lập network redirection cho router của nó

Cài đặt sử dụng Emulator console:

1 telnet localhost <port number> : port number là số hiệu cổng của Emulator (thường thấy

trên góc trái cửa sổ Emulator), khi đã kết nối thành công thì đến bước 2

2 add <protocol> : <port> : <guest-port> (protocol có thể là TCP hoặc UDP,

host-port là cổng tại máy nhà phát triển, guest-host-port là cổng của hệ thống mô phỏng)

Ví dụ: redir add tcp:8080:80 sẽ tạo network redirection để mỗi khi thông tin TCP đến

127.0.0.1:8080 tại máy nhà phát triển nó sẽ tự động chuyển tiếp đến hệ thống mô phỏng tại địa chỉ 10.0.2.15:80;

Cài đặt sử dụng ADB

ADB (Android Debug Bridge) tool cung cấp việc chuyển tiếp cổng

Với ví dụ trên, cú pháp là: adb forward tcp:8080 tcp:80

++Cấu hình cài đặt Emulator DNS:

Lúc khởi động, Emulator đọc danh sách DNS server mà hệ thống của nhà phát triển đang dùng, sau đó ánh xạ tối đa 4 địa chỉ DNS server vào trong địa chỉ mô phỏng 10.0.2.3, 10.0.2.4,

10.0.2.5, 10.0.2.6

Trang 18

Nếu khởi động từ dòng lệnh, ta có thể thêm tùy chọn –dns-server <danh sách địa chỉ ngăn cách bởi dấu phẩy> để thiết lập DNS cho Emulator

++Kết nối giữa các Emulator:

Để làm được điều này, chúng ta sẽ sử dụng network redirection

Giả sử hai Emulator A và B cùng chạy trên máy nhà phát triển, giả sử A là server, B kết nối đến

A, ta sẽ làm như sau:

1 A sẽ nghe tại 10.0.2.15:<server_port>

2 redir add <protocol> : <local_port> : <server_port>

3 B sẽ kết nối đến 10.0.2.2:<local_port>

++Gọi điện, gửi tin SMS đến Emulator khác:

Emulator tự đông chuyển tiếp cuộc gọi hay SMS bằng số hiệu cổng Để gọi điện hay gửi SMS đến Emulator khác, ta bật ứng dụng gọi điên hoặc nhắn tin lên, thay số máy thật bằng số hiệu cổng của Emulator cần kết nối đến

2.8.4 Sử dụng Emulator Console

Mỗi thực thể Emulator đang hoạt động cung cấp một Console cho phép truy vấn, điều khiển môi trường thiết bị mô phỏng Ví dụ: dùng Console để quản lý port redirection (đã nói đến ở phần trước), các sự kiện, … khi ứng dụng chạy trên Emulator Để truy cập Console ta dùng telnet để kết nối tới cổng của Emulator

Cú pháp: telnet localhost <console-port>

Minh họa:

Trang 19

Một thực thể Emulator có một cặp cổng kề nhau: console port và adb port, adb port sẽ lớn hơn

Ví dụ console port là 5554 thì adb port là 5555

Trang 20

Lưu ý: Emulator nghe kết nối từ cổng trong khoảng từ 5554-5587, và chỉ chấp nhận kết nối tư local host

++Post Redirection:

Cú pháp: redir <list | add | del>

Chi tiết:

add <protocol> : <host_port> : <guest_port> Thêm mới một port redirection

++Geo Location Provider Emulation (giả lập cung cấp vị trí):

Chúng ta có thể sử dụng Console để thiết lập vị trí địa lý cung cấp cho ứng dụng chạy trong

Emulator sử dụng lệnh geo Lệnh này gửi một thông số vị trí GPS đến Emulator có thể kèm hoặc

không định dạng NMEA 0183 (chuẩn để truyền dữ liệu giữa các thiết bị điện tử trong đó có GPS)

Cú pháp geo <fix | nmea>

Trang 21

Chi tiết:

fix <longitude> <latitude> [<altitude>] Cung cấp kinh độ, vĩ độ [độ cao (theo mét)]

được gửi từ một GPS modem mô phỏng (câu phải bắt đầu bằng ‘$GP’, hiện tại chỉ hỗ trợ

status

<unknown|charging|discharging|not-charging|full>

Thay đổi trạng thái của pin

health

<unknown|good|overheat|dead|overvoltage|failure>

Thiết lập sức khỏe pin

Cú pháp: network status

Cú pháp tùy chọn khi khởi động:

emulator -netdelay <giá trị>

Khi Emulator đang chạy, kết nối vào Console và dùng lệnh: network delay <giá trị>

Ví dụ: network delay gprs

Chi tiết:

Trang 22

Giá trị Mô tả (đơn vị mili giây)

Cú pháp tùy chọn khi khởi động:

emulator -netspeed <giá trị>

Khi Emulator đang chạy, kết nối vào Console và dùng lệnh: network speed <giá trị>

Trang 23

accept <phonenumber> Chấp nhận cuộc gọi từ phonenumber thay đổi

trạng thái sang “active” (nếu trạng thái hiện tại

là “waiting” hoặc “held”)

trạng thái thành “busy” (nếu trạng thái hiện tại

là “waiting”)

thái hiện tại là “active” hoặc “waiting”>

Cú pháp: sms send <senderPhoneNumber> <textmessage>

Cú pháp: vm <start|stop|status>

3 Phát triển ứng dụng trên Android

Trang 24

3.1.Tạo chương trình Hello World

1 Mở Eclipse > File > New > Project chọn Android Application Project

2 Điền tên ứng dụng…

3 Ấn next liên tiếp, đến phần đặt tên cho Activity, và Layout sau đó Finish

Trang 25

Cấu trúc chương trình Hello World

Trang 26

Các thư mục:

Src: chứa toàn bộ mã nguồn chương trình Gen: chứa file R.java khi biên dịch Assets: chứa các file âm thanh streaming…

Res: chứa các tài nguyên của chương trình

Drawable: các file ảnh Layout: chứa file xml, quyết định giao diện chương

trình

Menu: chứa file xml thiết kế cho menu Values: chứa các tài nguyên khác như xâu kí tự,

theme style …

File Manifest: định nghĩa cấu trúc, các thành phần

yêu cầu của ứng dụng

Trang 27

Ví dụ file manifest:

Một số thành phần trong file manifest:

Bluetooth, Camera, Location, …)

dụ: <uses-permission android:name=”android.permission BLUETOOTH”/>)

Applicaton: đặc tả dữ liệu cho ứng dụng (ví dụ: tiêu đề, icon, theme…)

Activity: mô tả cho Activity chính và các Activity khác

Hình ảnh file main.xml

Trang 28

File HelloWorld.java

Ngày đăng: 25/11/2014, 07:50

HÌNH ẢNH LIÊN QUAN

Hình ảnh file main.xml - tìm hiểu hệ điều hành android và xây dựng ứng dụng minh họa
nh ảnh file main.xml (Trang 27)
Hình minh họa: - tìm hiểu hệ điều hành android và xây dựng ứng dụng minh họa
Hình minh họa: (Trang 39)

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