1. Trang chủ
  2. » Giáo án - Bài giảng

Bài giảng lập trình Android

172 555 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 172
Dung lượng 8,9 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

CHƯƠNG 1. BẮT ĐẦU VỚI LẬP TRÌNH ANDROID ................................................................... 4 1.1. Android là gì? .......................................................................................................................... 4 1.2. Phiên bản Android ................................................................................................................... 5 1.3. Nét đặc trưng của Android ...................................................................................................... 6 1.4. Cấu trúc của Android............................................................................................................... 7 1.5. Android Devices in the Market ................................................................................................ 8 1.6. The Android Market .............................................................................................................. 11 1.7. Cộng đồng lập trình viên Android. ........................................................................................ 12 1.8. Thu thập các công cụ cần thiết .............................................................................................. 13 1.9. Tạo ứng dụng Android đầu tiên. ............................................................................................ 15 1.10. Sử dụng máy ảo AVD ......................................................................................................... 21 1.11. Phân tích một ứng dụng Android ........................................................................................ 23 CHƯƠNG 2: ACTIVITIES, FRAGMENTS, INTENTS ................................................................. 28 2.1. Tìm hiểu về Activities. .......................................................................................................... 29 2.3. Sử dụng style và themes trong Activity ................................................................................. 34 2.4. Ẩn tiêu đề của Activity .......................................................................................................... 35 2.5. Hiện thị Dialog Window ........................................................................................................ 36 2.6. Phân tích hoạt động của ứng dụng. ........................................................................................ 39 2.7. Hiển thị một ProcessDialog ................................................................................................... 41 2.8. Trả về result từ một Intent ..................................................................................................... 46 2.9. Fragments .............................................................................................................................. 51 CHƯƠNG 3: ANDROID USER INTERFACE ................................................................................ 57 3.1. Views và ViewGroups. .......................................................................................................... 58 3.2. LinearLayout ......................................................................................................................... 58 3.3. AbsoluteLayout ..................................................................................................................... 68 3.4. Table Layout .......................................................................................................................... 69 3.5. RelaytiveLayout ..................................................................................................................... 71 3.6. FrameLayout .......................................................................................................................... 72 3.8. ScrollView ............................................................................................................................. 74 3.8. Thích ứng để hiển thị khi xoay màn hình .............................................................................. 76 3.9. Anchoring Views ................................................................................................................... 77 3.10. Lắng nghe Notifications ...................................................................................................... 80 CHƯƠNG 4: THIẾT KẾ UI VỚI VIEWS ....................................................................................... 86 3 4.1. BasicView .............................................................................................................................. 86 4.2. Progress Bar ........................................................................................................................... 89 4.3. AutoCompleteTextView ........................................................................................................ 94 4.4. Sử dụng Picker Views ........................................................................................................... 95 4.5. ListView .............................................................................................................................. 102 4.6. Spinner View ....................................................................................................................... 107 CHƯƠNG 5: LƯU TRỮ DỮ LIỆU ............................................................................................... 110 5.1. Saving and Loading User Preferences. ................................................................................ 110 5.2. Lưu trữ dữ liệu vào file ........................................................................................................ 117 5.3. Tạo và sử dụng SQLite Database ........................................................................................ 124 5.4. Công cụ giao diện giúp tạo cơ sở dữ liệu ............................................................................ 132 CHƯƠNG 6: MESSAGING ........................................................................................................... 133 6.1. SMS Messaging ................................................................................................................... 133 6.1. Gửi SMS .............................................................................................................................. 133 6.2. Lấy Feedback sau khi đã gửi SMS ...................................................................................... 135 6.3. Gửi SMS sử dụng Intent ...................................................................................................... 137 6.4. Nhận về SMS Messages ...................................................................................................... 138 6.5. Ứng dụng chặn tin nhắn đến ................................................................................................ 141 6.6. Updating một Activity từ BroadcastReceiver..................................................................... 142 6.7. Invoking Activity từ BroadcastReceiver. ............................................................................ 147 CHƯƠNG 7: ANDROID SERVICES ............................................................................................ 152 7.1. Tạo một service đơn giản .................................................................................................... 152 7.2. Thực hiện những công việc trong một Service .................................................................... 155 7.3. Thực hiện những tác vụ lặp lại trong một Service .............................................................. 159 7.4. Giao tiếp giữa một Service và một Activity ........................................................................ 161 7.5. Binding Activities to Services. ............................................................................................ 163 7.6. Threading ............................................................................................................................. 167

Trang 1

TRƯỜNG CAO ĐẲNG CÔNG NGHỆ THÔNG TIN

KHOA CÔNG NGHỆ THÔNG TIN

- -

BÀI GIẢNG

LẬP TRÌNH MOBILE

(Tài liệu lưu hành nội bộ)

Biên soạn: Nguyễn Anh Tuấn

tuanna@ud.edu.vn

Đà Nẵng, 06/2014

Trang 2

MỤC LỤC

CHƯƠNG 1 BẮT ĐẦU VỚI LẬP TRÌNH ANDROID 4

1.1 Android là gì? 4

1.2 Phiên bản Android 5

1.3 Nét đặc trưng của Android 6

1.4 Cấu trúc của Android 7

1.5 Android Devices in the Market 8

1.6 The Android Market 11

1.7 Cộng đồng lập trình viên Android 12

1.8 Thu thập các công cụ cần thiết 13

1.9 Tạo ứng dụng Android đầu tiên 15

1.10 Sử dụng máy ảo AVD 21

1.11 Phân tích một ứng dụng Android 23

CHƯƠNG 2: ACTIVITIES, FRAGMENTS, INTENTS 28

2.1 Tìm hiểu về Activities 29

2.3 Sử dụng style và themes trong Activity 34

2.4 Ẩn tiêu đề của Activity 35

2.5 Hiện thị Dialog Window 36

2.6 Phân tích hoạt động của ứng dụng 39

2.7 Hiển thị một ProcessDialog 41

2.8 Trả về result từ một Intent 46

2.9 Fragments 51

CHƯƠNG 3: ANDROID USER INTERFACE 57

3.1 Views và ViewGroups 58

3.2 LinearLayout 58

3.3 AbsoluteLayout 68

3.4 Table Layout 69

3.5 RelaytiveLayout 71

3.6 FrameLayout 72

3.8 ScrollView 74

3.8 Thích ứng để hiển thị khi xoay màn hình 76

3.9 Anchoring Views 77

3.10 Lắng nghe Notifications 80

Trang 3

3

4.1 BasicView 86

4.2 Progress Bar 89

4.3 AutoCompleteTextView 94

4.4 Sử dụng Picker Views 95

4.5 ListView 102

4.6 Spinner View 107

CHƯƠNG 5: LƯU TRỮ DỮ LIỆU 110

5.1 Saving and Loading User Preferences 110

5.2 Lưu trữ dữ liệu vào file 117

5.3 Tạo và sử dụng SQLite Database 124

5.4 Công cụ giao diện giúp tạo cơ sở dữ liệu 132

CHƯƠNG 6: MESSAGING 133

6.1 SMS Messaging 133

6.1 Gửi SMS 133

6.2 Lấy Feedback sau khi đã gửi SMS 135

6.3 Gửi SMS sử dụng Intent 137

6.4 Nhận về SMS Messages 138

6.5 Ứng dụng chặn tin nhắn đến 141

6.6 Updating một Activity từ BroadcastReceiver 142

6.7 Invoking Activity từ BroadcastReceiver 147

CHƯƠNG 7: ANDROID SERVICES 152

7.1 Tạo một service đơn giản 152

7.2 Thực hiện những công việc trong một Service 155

7.3 Thực hiện những tác vụ lặp lại trong một Service 159

7.4 Giao tiếp giữa một Service và một Activity 161

7.5 Binding Activities to Services 163

7.6 Threading 167

Trang 4

CHƯƠNG 1 BẮT ĐẦU VỚI LẬP TRÌNH ANDROID

Những điều bạn sẽ học trong chương này:

- Android là gì?

- Android version và tính năng của nó

- Kiến trúc của android

- Các thiết bị Android

- Android Market application store

- Cài đặt tools và SDK

- Tạo ứng dụng Android đầu tiên

Trong chương này, chúng ta tìm hiểu xem Android là gì, và điều gì đã hấp dẫn cả lập trình viên và nhà sản xuất Bạn sẽ học cách lập trình ứng dụng Android đầu tiên, và làm cách nào

để nhận được những tools cần thiết và cài đặt chúng để có thể test ứng dụng của bạn trong

bộ mô phỏng Android 4.0

1.1 Android là gì?

Android là một hệ điều hành trên mobile, được phát triển trên cơ sở của hệ điều hành Linux Ban đầu nó được phát triển bời một công ty có cùng tên là : Android Vào năm 2005, như một phần chiến lược của việc gia nhập vào thị trường mobile, Google đã mua lại Android và tiếp quản công việc phát triển đó (cũng như là đội ngũ phát triển đi kèm)

Google muốn Android trở nên mở và miễn phí Vì lí do đo, hầu hết code của Android đều được phát hành dưới dạng Open Source Apache License, điều đó có nghĩa là bất kì người nào muốn sử dụng android chỉ việc tải về bộ cài đặt Android Hơn nữa, các nhà cung cấp( thương là các nhà sản xuất phần cứng ) có thể thêm nhưng phần mở rộng độc quyền vào Android và tùy chỉnh Android để tạo nên những sự khác biệt so với các sản phẩm khác Mô hình phát triển đơn giản làm cho Android rất hấp dẫn và thu hút sự quan tâm của rất nhiều nhà cung cấp Điều này đặc biệt đúng với các công ty bị ảnh hưởng bởi hiện tượng iPhonecủa Apple, một sản phẩm cực kì thành công đã tạo nên cuộc cách mạng của nền công nghiệp di động Trong các công ty ấy bao gồm cả Motorola và Sony Erricson , các công ty mà trong

Trang 5

5

hành, các nhà sản xuất còn lại phải tranh giành để tim ra cách để tái sinh sản phẩm của họ

Và họ thấy Android như là một giải pháp – họ sẽ tiếp tục design phần cứng và sử dụng Android làm hệ điều hành Ưu điểm chính của việc sử dụng Android là nó sẽ cung cấp một cách tiếp cận thống nhất để lập trình một ứng dụng Lập trình viên chỉ cần lập trình với Android, và những ứng dụng của họ có thể chạy trên nhiều thiết bị khác nhau miễn là các thiết bị đó sử dụng Android Trong thế giới smartphone, phần mềm là thành phần quan trọng nhất của chuỗi thành công Các nhà sản xuất thiết bị vì thế nhận thấy Android là hi vọng lớn nhất để thách thức lại sự tấn công của iPhone

1.2 Phiên bản Android

Android đã trải qua khá nhiều phiên bản update từ khi nó được phát hành Bảng 1-1 hiển thị các phiên bản khác nhau của Android

Bảng 1.1 Tóm tắt lịch sử của các phiên bản Android

Vào tháng hai năm 2011, Google phát hành Android 3.0, một phiên bản dành cho máy tính bảng, hỗ trợ những thiết bị màn hình rộng Những thay đổi quan trọng trong phiên bản Android 3.0 như sau:

- Giao diện người dùng được tối ưu cho máy tính bảng

- 3D desktop với các tiện ích mới

- Cải tiến multi-tasking

- Những tính năng mới của web browser, như là tabbed browsing, form fill, bookmark synchronization, and private browsing

Trang 6

auto Hỗ trợ multiauto core processors

Các application được viết bởi version trước 3.0 đều tương thích với các thiết bị đang sử dụng Android 3.0 Các ứng dụn Android 3.0 mà sử dụng các tính năng mới trong phiên bản 3.0 sẽ không chạy được trên các thiết bị dùng Android cũ hơn Để đảm bảo rằng các ứng dụng Android có thể chạy trên tất cả version của các thiết bị, bạn phải chắc chắn mình chỉ sử dụng những tính năng được hỗ trợ trên từng phiên bản Android cụ thể

Vào tháng 10 năm 2011, Google phát hành phiên bản 4.0, phiên bản đã mang tất cả các tính năng được giới thiệu trong Android 3.0 vào smartphone, cùng với một số những tính năng mới như nhận diện khuôn mặt, theo dõi và điều khiển data sử dụng Near Field Communication (NFC)

1.3 Nét đặc trưng của Android

Vì android là open source và miễn phí cho các nhà phát hành tùy biến, do đó không có phần cứng cố định hoặc sự thiết lập cấu hình phần mềm Tuy nhiên Android hỗ trợ các tính năng sau:

- Storage: Sử dụng SQLite, một cơ sở dữ liệu quan hệ rút gọn để lưu trữ

- Connectivity: hỗ trợ GSM/EDGE, IDEN, CDMA, EV-DO, UMTS, Bluetooth( bao gồm A2DP và AVRCP), Wifi, LTE, và WiMax Chương 8 sẽ thảo luận cụ thể về vấn

đề này

- Messaging: Hỗ trợ cả SMS và MMS Chương 8 sẽ thảo luận chi tiết

- Web Browser: Dựa trên open source WebKit, cùng với công nghệ Chrome; V8 JavaScript

- Media Support: Support H.263, H.264( trong 3GP và MP4), MPEG-4 SP, AMR, AMR-WB (in 3GP container), AAC, HE-AAC (in MP4 or 3GP container), MP3, MIDI, Ogg Vorbis, WAV, JPEG, PNG, GIF, and BMP

- Hardware support: Cảm biến gia tốc, Camera, Digital Compass, Proximity Sensor, and GPS

- Multi touch

- Multi tasking

Trang 7

7

- Tethering: Hỗ trợ chia sẻ kết nối Internet như là một wired/wireless hostpot

1.4 Cấu trúc của Android

Để hiểu cách hoạt động của Android, hãy xem hình 1-1, trong đó cho thấy các lớp khác nhau của hệ điều hành Android

Android OS được chia thành 5 section trong 4 layer

- Linux kernel: Đây là nhân của Android Lớp này có các trình điều khiển thiết bị cấp thấp cho các thành phần phần cứng khác nhau của một thiết bị Android

- Libraries: Lớp này bao gồm tất cả code cung cấp các tính năng chính của Android

OS Ví dụ như SQLite library cung cấp database hỗ trợ cho các ứng dụng có thể sử dụng nó đề lưu trữ dữ liệu Hay như là WebKit library cung cấp nhưng hàm dùng cho web browsing

- Android runtime: Tại cùng lớp với libraries, Android runtime cung cấp một tập các core library mà cho phép các lập trình viên viết ứng dụng Android sử dụng Java Android runtime cũng bao gồm các máy ảo Dalvik, cho phép mọi ứng dụng Android chạy trên proccess của nó, với instance của Dalvik(Các ứng dụng Android được biên dịch vào Dalvik để có thể chạy) (có nghĩa là Dalvik sẽ tạo ra máy ảo và chạy ứng dụng của bạn trên đó) Dalvik là một máy ảo đặc biệt được thiết kế đặc biệt cho Android và tối ưu hóa cho các thiết bị di động chạy bằng pin với bộ nhớ và CPU hạn chế

- Application framework: Đưa ra những khả năng khác nhau của Android OS cho developer mà họ có thể đưa vào app của họ

- Application: Là tầng ở trên cùng, bạn sẽ thấy những app liên quan đến thiết bị Android( như là Phone, Contact, Browser ), cũng như các ứng dụng mà bạn tải và cài đặt từ Android Market Bất kì một ứng dụng nào mà bạn viết đều được đặt ở vị trí này

Trang 8

Hình 1.1 Cấu trúc của Android 1.5 Android Devices in the Market

Các thiết bị sử dụng Android có rất nhiều hình dạng và kích thước Cho đến tháng 11 năm 2011, Android OS được cung cấp trên các thiết bị sau:

Trang 9

9

Hình 1.2: (trái qua phải) là Samsung Galaxy S II, Motorola Atrix 4G, HTC EVO 4G inch

Một thiết bị phổ biến khác mà các nhà sản xuất tập trung vào là máy tính bảng Tables có 2 loại kích thước: 7 inchs và 10 inchs, đo theo đường chéo

Hình 1.3: Samsung Galaxy Tab 10.1 và Asus Eee Pad Transformer TF101, cả hai đều chạy

Android 3

Ngoài điện thoại thông minh và máy tính bảng, Android còn bắt đầu xuất hiện trong các thiết bị chuyên dụng như là sách điện tử

Trang 10

Hình 1.4 là Barnes and Noble’s NOOK Color (trái) và Amazon’s Kindle Fire(phải ), cả

hai đều là sách điện tử màu sử dụng Android OS Ngoài các thiết bị di động phổ biến, Android cũng dần dần tìm ra cách để vào phòng khách của bạn Lava, một công ty của Thụy Điển đang phát triển TV sử dụng Android, được gọi là Scandinavia Android TV( Hình 1.5) Google đang đánh cược vào smart TV độc quyền có nền tảng dựa trên Android và liên kết với các công ty như Intel, Sony, Logitech Hình 1-6 là Sony’s Google TV

Trang 11

11

Trong khi viết tài liệu này, Samsung Galaxy Nexus (Hình 1.7) là thiết bị duy nhất chạy Android 4.0 Tuy nhiên Google đã hứa rằng các thiết bị hiện có (ví dụ như Nexus S) có thể nâng cấp được lên Android 4.0 Và khi bạn đang đọc cuốn sách này, có thể đã có một loạt các thiết bị đã chạy Android 4.0

Hình 1.7: Samsung Galaxy Nexus

1.6 The Android Market

Giống như đã đề cập trước đó, một trong những yếu tố chính quyết định đến sự thành công của một nền tảng smartphone chính là những ứng dụng mà nó hỗ trợ Rõ ràng là từ sự thành công của iPhone cho thấy ứng dụng đóng vai trò sống còn cho một nền tảng mới thành công hay thất bại Thêm vào đó, việc làm cho các ứng dụng đến được với người dùng cũng là một việc vô cùng quan trọng Như vậy trong tháng 8 năm 2008, Google công bố Android Market, một chợ điện tử của ứng dụng cho thiết bị sử dụng Android, và nó sẵn sàng cho người dùng tải về vào tháng 11 năm 2008 Sử dụng Market application được cài đặt sẵn trên thiết bị Android, người dùng có thể dễ dàng dowload trực tiếp những ứng dụng của bên thứ 3 lên

Trang 12

thiết bị của họ Cả ứng dụng miễn phí và trả phí đều được hỗ trợ trên Android Market, mặc

dù các ứng dụng trả tiền chỉ có sẵn cho người dùng ở một số nước do các vấn đề pháp lý Giống như thế, tại một số các quốc gia, người dùng có thể mua những ứng dụng trả phí từ Android Market, nhưng lập trình viên không thể bán tại quốc gia đó Ví dụ như tại thời điểm viết tài liệu này, người dùng tại Ấn Độ có thể mua ứng dụng từ Android Market, nhưng lập trình viên tại Ấn Độ lại không thể bán apps của họ trên Android Market Điều ngược lại cũng

có thể đúng Như tại Hàn Quốc, người dùng không thể mua được ứng dụng, nhưng các lập trình viên tại đây lại có thể bán các ứng dụng trên Android Market

1.7 Cộng đồng lập trình viên Android

Vời Android version 4, có một cộng đồng lập trình viên rất lớn trên toàn thế giới Điều này làm cho việc tìm ra giải pháp cho các vấn đề gặp phải cũng như việc tìm kiếm các lập trình viên có cùng mục đích để chia sẻ í tưởng về ứng dụng và trao đổi kinh nghiệm trở nên dễ dàng hơn rất nhiều

Dưới đây là một vài cộng đồng mà bạn có thể tham gia để giúp bạn giải quyết những vấn đề khi làm việc với Android:

- Stack Overflow(www.stackoverflow.com): Stack Overflow là một site cho phép đặt câu hỏi và trả lời dành cho các lập trình viên Nếu bạn có câu hỏi về Android, rất có thể là một ai đó tại Stack Overflow có thể đã thảo luận với câu hỏi giống như thế và ai khác đã cung cấp câu trả lời “Ngon” nhất là các lập trình viên khác

có thể vote cho câu trả lời tốt nhất, vì thế bạn có thể biết câu trả lời nào là đáng tin cậy

- Google Android Tranning (http://developer.android.com/training/index.html) Google đã đưa ra trang web Android Tranning bao gồm một số các lớp học hữu ích được nhóm theo chủ đề Tại thời điểm viết bài, các lớp học chủ yếu là chứa

mã nguồn hữu ích cho các lập trình viên Android khi họ bắt đầu với những điều

cơ bạn Khi bạn học những điều cơ bản trong cuốn sách này, tôi đề nghị bạn nên xem những lớp học đó

Trang 13

13

- Android Discuss ( http://groups.google.com/group/android-discuss ) Android Discuss là một group thảo luận được cung cấp bở Google sử dụng Google Group Tại đây, bạn có thể thảo luận về các khía cạnh khác nhau của việc lập trình Android Group này được giám sát chặt chẽ bởi Android team tại Google, vì thế nó là nơi rất tốt để làm rõ những nghi ngờ của bạn và học những mẹo và thủ thuật mới

1.8 Thu thập các công cụ cần thiết

Bây giờ bạn đã biết Android là gì và các tính của nó gồm những gì, bạn có lẽ rất nóng lòng muốn bắt đầu viết một vài ứng dụng Trước khi bạn viết ứng dụng đầu tiên, bạn cần phải download những công cụ cần thiết và SDKs

- Vào Help > Install New Software (hoặc Software Updates với các phiên bản cũ hơn)

- Chọn Tab Available software

- Chọn Add Site

- Có thể vào trực tiếp đây để download ADT

về: http://developer.android.com/tools/sdk/eclipse-adt.html#downloading (chọn Archive)

Trang 14

Hoặc nhập địa chỉ sau: https://dl-ssl.google.com/android/eclipse/

Kết nối Android SDK với Eclipse IDE

Hơi phức tạp chút so với develop trên BB là cần thực hiện việc kết nối SDK với Eclipse :

- Chọn Windows > Preference menu

- Chọn Android từ cây danh mục bên trái

- Nhập SDK Location: là thư mục giải nén SDK đã thực hiện được ở bước

Trang 15

15

Đến bước này có thể nói đã hoàn thiện các bước chính để cài đặt SDK và eclipse Để chọn

lựa API và Emulator, chúng ta vào thư mục android-sdk-windows (thư mục đã cài đặt ở step 1), chạy file SDK Manager.exe Chú ý: chạy file này bằng quyền Administrator trên

windows SDK Manager giúp chúng ta quản lý SDK Tools, SDK Platform Tools (Update,

Tại đây, chúng ta có thể chọn Android version để phát triển Xem chi tiết các android

API16, Android 4.0.3 – API15, Android2.2 - API8 Ở đây chúng ta có thể xem mô tả chi tiết cho End user hoặc cho Developer API guide chắc chắn sẽ là những kiến thức rất cần thiết với những bạn Developer

Sau khi đã thiết lập xong, vào Tools > Manager AVDs để tạo virtual device

1.9 Tạo ứng dụng Android đầu tiên

Với tất cả những công cụ đã tải về, bây giờ chúng ta sẽ bắt đầu làm việc với Android Giống như trong tất cả các sách lập trình, ví dụ đầu tiên sử dụng phổ biến là chương trình Hello Word

1 Sử dụng Elipse tạo một dự án mới bằng cách chọn File -> New -> Project …

Trang 16

2 Mở rộng thư mục Android và chọn Android Project Click Next

3 Tên của dự án Android là HelloWorld Click Next

4 Chọn Android 4.0 Click Next

5 Điền thông tin chi tiết vào Application Info Click Finish

Trang 17

17

Chú ý: Bạn cần có ít nhất một dấu chấm (.) trong package name Được đề nghị đặt theo tên miền với thứ tự ngược lại Nếu công ty của bạn có tên miền learn2develop.net thì backage name sẽ là net.learn2develop.HelloWord

6 Eclipse IDE sẽ hiện ra hình 1.27

7 Trong Package Explorer( phía bên trái) bạn tìm đến res/layout/ main.xml file

8 Main.xml file định nghĩa user interface(UI) (giao diện) của ứng dụng Default view

là Layout Để thay đổi UI bạn click vào tab main.xml như hình dưới

Trang 19

19

9 Thêm đoạn code đâm sau vào file main.xml

Trang 20

10 Lưu lại sự thay đổi

11 Right click vào tên project trong Eclipse và chọn “Run As” -> Android Application

Trang 21

21

13 Click vào nút Home sẽ thoát ra màn hình Home

1.10 Sử dụng máy ảo AVD

Bạn nên sử dụng máy ảo nào? Eclipse sẽ kiểm tra target mà bạn đã chọn ( khi bạn tạo project

nó với danh sách các AVD mà bạn đã tạo AVD đầu tiên phù hợp sẽ chạy ứng dụng của bạn Nếu bạn có nhiều hơn một AVD phù hợp đang chạy trước khi debug ứng dụng, Eclipse sẽ hiển thị để bạn chọn

Trang 22

Để tạo một Android Project sử dựng Eclipse, bạn cần cung cấp các thông tin sau:

Trang 23

23

Trong Android, một activity là một cửa sổ mà bao gồm các user interface của application Một application co thể không có hay một vài activities Trong ví dụ đơn giản này, bạn thay đổi file main.xml để hiển thị string “This is my first Android Application” và một button File main.xml bao gồm user interface của activity, được hiển thị khi HelloWorldActivity được load

Khi bạn debug application với máy ảo Android, ứng dụng được tự động cài đặt trên máy ảo

đó

1.11 Phân tích một ứng dụng Android

Bây giờ bạn đã có ứng dụng HelloWorld, bây giờ hãy chia cắt các bộ phận của một Android project và kiểm tra tất cả các thành phần đó Đầu tiên, hãy lưu í đến các các file khác nhau tạo nên một project Android trong Package Explore

- Src – Bao gồm các file source java cho project của bạn

Trong ví dụ này, chỉ có 1 file là HelloWorldActivity.java Đây là source file cho activity Bạn sẽ viết code cho ứng dụng của bạn trong file này File Java được liệt

kê bên trong tên của package

- Gen - Chứa file R.java , là một file complier-generated mà tham chiếu với tất cả

resource có trong project Bạn không nên sửa đổi file này Tất cả resource trong project tự động biên dịch vào lớp này để bạn có thể gọi chúng

- Android 4.0 library – chưa một file: android.jar File này chưa tất cả các class

libraries cần thiết cho một ứng dụng Android

- Assets – Chứa tất cả asset được sử dụng bởi applicate, ví dụ như HTML, text files,

database …

- Bin – Chứa các file đã được built bởi ADT trong quá trình build xảy ra Đặc biệt,

nó tạo ra apk file( Android Package) Một file apk là một application binary (đã đc chuyển sang nhị phân) của Android application Nó bao gồm tất cả mọi thứ cần thiết

để chạy một Android application

- Res – Chứa tất cả resource được sử dụng trong application Nó còn chứa một vài

những folder khác: drawable-<resolution>, layout, và values Chương 3 sẽ thảo

Trang 24

luận kĩ hơn về viêc làm cách nào bạn có thể hỗ trợ các thiết bị với độ phân giản và cấu hình khác nhau

- AndroidManifest.xml – đây là file manifest cho Android application Ở đây bạn

chỉ ra các permision cần thiết cho ứng dụng của bạn, cũng như các tính năng khác ( ví dụ như intent-filters, receivers) Chương 2 sẽ thảo luận về cách sử dụng AndroidManifest.xml một cách chi tiết hơn

File main.xml định nghĩa user interface cho activity Chú ý đoạn in đậm dưới đây

@string trong trường hợp này sẽ gọi đến file strings.xml được lưu trữ trong res/values Vì thế

@string/hello sẽ gọi ra hello string đã được định nghĩa trước trong file strings.xml

Bạn nên lưu trữ những hằng string tron file strings.xml và tham chiếu đến chúng sử dụng

@string Với cách này, nếu bạn cần localize (địa phương hóa) ứng dụng của bạn sang một ngôn ngữ khác, bạn chỉ cần tạo ra một bản copy và sửa giá trị của những string trong file strings.xml

Trang 25

25

Nếu người dùng tải những ứng dụng tương tự trên một điện thoại và cấu hình để hiển thị Frence là ngôn ngữ mặc định, ứng dụng của bạn sẽ tự đông hiển thị hellostring bằng tiếng French

Một file quan trọng tiếp theo trong Android projects là manifest file Hãy xem nối dung của AndroidManifest.xml :

File AndroidManifest.xml bao gồm các thông tin chi tiết về ứng dụng

- Nó xác định package name của application : net.learn2develop.HelloWorld

- Version code của application là 1 Giá trị này để người dùng xác định version của ứng dụng của bạn Nó cũng có thể sử dụng để bạn lập trình xác định khi nào một application cần phải được cập nhật

- Version name của ứng dụng là 1.0 Đây là string value chủ yếu dùng để hiển thị cho người dùng Bạn nên đặt theo dạng <major>.<minor>.<point> (từ lớn đến nhỏ, có lẽ các bạn cũng đã quen với kiểu đặt này rồi.)

- Thuộc tính Android:minSdkversion của thẻ <uses-sdk> xác định version nhỏ nhất

của OS mà có thể chạy được application

- Ứng dụng có ảnh ic_launcher.png ở trong folder drawable

- Tên của ứng dụng là string app_name được định nghĩa trong strings.xml

Trang 26

- Chỉ có 1 activity trong ứng dụng và được biểu diễn bởi HelloWorldActivity.java Label hiển thị cho activity chính là application name

- Trong activity có một element có tên là <intent-filter>

+ Action của intent filter có tên là android.intent.action.MAIN để chỉ ra rằng

activity này hoạt động như là điểm khởi đầu của ứng dụng

+ Category của intent-filter có tên là android.intent.category.LANUCHER để chỉ

ra rằng application có thể chạy từ device’s launcher icon Chapter 2 sẽ thảo luân thêm về intents

Khi bạn thêm file và folder vào prject của bạn, Eclipse sẽ tự động phát sinh nội dung của file R.java, nội dung của nó sẽ giống như dưới đây:

Bạn không được hỗ trợ để sửa chữa nội dung của file R.java Eclipse sẽ tự động sinh nội dung của file đó khi bạn thay đổi project của bạn

Note: Nếu bạn xóa file R.java, Eclipsce sẽ tạo lại cho bạn ngay lập tức Lưu í rằng để Eclipse

có thể tạo ra file R.java, project của bạn phải không có error Nếu bạn nhận ra rằng Eclipse

Trang 28

CHƯƠNG 2: ACTIVITIES, FRAGMENTS, INTENTS

Trong chương 2 bạn sẽ được tìm hiểu về:

- Vòng đời của activity

- Sử dụng fragment để customize (tùy biến) UI

- Sử dụng theme và style cho activities

- Làm cách nào để hiển thị activities như là một dialog windows

- Tìm hiểu định nghĩa về intents

- Sử dụng intent object để link activities

- Intent filter giúp bạn lựa chọn kết nối với các activities khác như thế nào

- Hiển thị alert để thông báo cho người dùng

Trong chương 1, bạn đã được tìm hiểu một activity là một màn hình chứa UI của application Một application có thể không có hoặc có một vài acitivities Thông thường, application có một hoặc một vài activities; và mục đích chính của một activity là tương tác với người dùng Từ thời điểm một activity xuất hiện trên màn hình đến thời điểm nó được ẩn đi, nó đã đi qua một số giai đoạn, được gọi là activity’s life cycle (chu kì sống của activity) Hiểu rõ chu kì sống của một activity là rất quan trọng để đảm bảo rằng ứng dụng của bạn hoạt động một cách chính xác Ngoài activities, Android 4.0 còn hỗ trợ một tính năng mà đã được giới thiệu ở Android 3.0 (cho máy tính bảng) đó chính là fragments Có thể cho rằng fragments là những activity thu nhỏ mà nếu nhóm chúng lại sẽ tạo thành một activity Trong chương này, ban sẽ được tìm hiểu activities và fragments hoạt động với nhau như thế nào

Ngoài activities, một khái niệm đặc biệt khác trong Android đó là intent Một intent cơ bản

là một chất keo (glue) mà cho phép nhưng activities khác từ một ứng dụng khác có thể làm việc cùng nhau một cách liền mạch, đảm bảo rằng nhiệm vụ có thể được thực hiện giống như chúng thuộc về cùng một application Sau chương này, bạn sẽ được tìm hiểu thêm về

Trang 30

Lớp Activity cơ bản xác định một loạt các events ảnh hưởng tới chu kì sống của activity Các event đó là:

- onCreate() – Được gọi khi activity được tạo ra lần đầu tiên

- onStart() – Được gọi khi activity được hiển thị với người dùng

- onResume() – Được gọi khi activity bắt đầu tương tác với người dùng

- onPause() – Được gọi khi activity hiện thời được tạm dùng và activity trước

được resumed

- onStop() – Được gọi khi activity không được hiển thị cho người dùng

- onDestroy() – Được gọi trước khi activity được destroyed bởi hệ thống( có thể

là do người dùng hay hệ thống để tiết kiệm bộ nhớ)

- onRestart() – Được gọi khi activity đã được stop và đang khởi động lại

Trang 31

31

Hình 2.1 Anh các sự kiện của một vòng đời Android

Theo mặc định, activity tạo ra đã bao gồm event onCreate() Cùng với code giúp bạn hiển thị UI lên màn hình của bạn Hình 2.1 là vòng đời của một activity và những trạng thái khác nhau mà nó đi qua – từ khi nó được start cho đến khi end Cách tốt nhất để hiểu các trạng thái khác nhau của một activity là tạo ra một project mới, implement các event khác nhau, và sau đó để cho activity tương tác với người dùng khác

1 Tạo ra một Android project mới với tên Activity101

2 Trong file Activity101Activity.java thêm như sau :

Trang 33

Khi một activity được start, các method onStart() và onResume() luôn luôn được gọi, bất kể

là activity được phục hồi /trong background hay được tạo mới Khi một activity được tạo trong lần đầu tiên, method onCreate() được gọi ra Từ những ví dụ trên, bạn có thể rút ra được những điều sau:

- Sử dụng method onCreate() để create và instantiate một object mà bạn sẽ sử dụng trong ứng dụng của bạn.(Tạo ra đối tượng)

- onStart() Khởi chạy đối tượng

- Sử dụng method onResume() để start bất kì services hoặc code nào mà

cần phải chạy khi activity đang nằm trong foreground.(Cho phép tương

tác với người dùng)

- Sử dụng method onPause() để stop bất kì service hoặc code nào mà không cần chạy khi activity không nằm trong foreground

Trang 34

- Sử dụng method onDestroy() để giải phóng bộ nhớ trước khi activity được destroys

Note: Ngay cả khi một ứng dụng chỉ có một activity và activity đó bị kill, thì ứng dụng vẫn

chạy trong bộ nhớ

2.3 Sử dụng style và themes trong Activity

Theo mặc định, một activity sẽ chiếm toàn bộ màn hình Tuy nhiên, bạn có thể sử dụng dialog theme cho activity để làm cho nó hiển thị như một floating dialog Ví dụ, bạn muốn tùy biến một activity để hiển thị như một pop-up, cách báo người dùng về một vài hành động mà họ đang thực hiện Trong trường hợp đó, hiển thị một activity như một dialog là cách tốt nhất để gây chú ý cho người dùng

Để dùng một dialog theme cho một activity, bạn chỉ cần thay đổi thẻ <Activity> trong file

AndroidManifest.xml và thêm thuộc tính android:theme:

Trang 35

35

2.4 Ẩn tiêu đề của Activity

Bạn có thể ẩn tiêu đềcủa một activity nếu cần thiết ( giống như bạn chỉ muốn hiển thị trạng thái update đến người dùng) Để làm điều đó, bạn sử dụng method requestWindowFeature()

và truyền vào nó Window.FEATURE_NO_TITLE

Trang 36

2.5 Hiện thị Dialog Window

Có những trường hợp bạn cần hiển thị một dialog window để có được sự xác nhận của người

dùng Trong trường hợp này, bạn có thể override một phương thức protected onCreateDialog()

được định nghĩa trong Activity base class Sử dụng Eclipse, tạo một dự án Androif mới và đặt

tên là Dialog Thêm đoạn code sau vào file main.xml

Thêm đoạn code sau vào file DialogActivity.java

Trang 37

37

Trang 39

39

Lưu ý: Trong file main.xml thì android:onclick=”onClick” sẽ gọi ra method onClick bạn viết

trong DialogActivity.java khi bạn click vào button Chạy thử ứng dụng bạn sẽ thấy có hình như trên Sau khi check vào các check box bạn sẽ thấy các Toast Class hiển thị ra text thông báo là checked/unchecked

2.6 Phân tích hoạt động của ứng dụng

Để hiển thị một dialog, điều đầu tiên bạn phải implement onCreateDialog() trong class Activity

Đầu tiên button( được định nghĩa trong activity_main.xml) được click, sẽ gọi đến method onClick(), sau đó method showDialog(0) được chạy và gọi ra phương thức onCreateDialog(int id) đã đc override ở trên

Trang 40

Method onCreateDialog() là một callback để tạo ra một dialog mà được quản lý bởi activity

Khi bạn gọi method showDialog(), callback này sẽ được yêu cầu (Tức là ở đây bình thường

thì bạn phải onCreateDialog() rồi mới showDialog Nhưng do thằng onCreateDialog là callback, nên bạn gọi showDialog() là nó gọi cho bạn onCreateDialog()).Phương thức

showDialog() truyền vào một tham số kiểu int mà xác định dialog loại nào được hiển thị Ở

đây, chúng ta đã sử dụng switch để xác định xem cần phải tạo dialog có type nào, mặc dù

trong ví dụ này chỉ tạo một type of dialog Chúng ta sẽ có những bài tập để tạo nhiều loại dialog khác nhau

Để tạo một dialog, bạn sử dụng Builder Constructor của class AlertDialog Bạn set các thuộc tính như icon, titile, buttons giống như checkbox Ta đã tạo 2 button, OK và Cancel, sử dụng

2 method là setPositiveButton() và setNegativeButton() Sau đó là tạo một list of checkbox cho người dùng chọn bằng cách dùng phương thức setMultiChoiceItems() Trong method này bạn phải truyền vào 2 array: Một dùng để chứa list item để hiện thị, cái còn lại dùng để chưa giá trị của mỗi item, để chứng tỏ rằng nó đã được chọn Khi mỗi item được check, bạn sẽ sử dụng lớp Toast để hiển thị một message để xác nhận rằng item đã được check

Trong Android, bạn thường gặp Context Class và Instances của nó Instances của Context class thường được sử dụng để cung cấp các references cho ứng dụng của bạn Ví dụ trong đoạn code sau, tham số đầu tiên của lớp Toast được lấy ở Context object

Ngày đăng: 19/05/2015, 09:01

HÌNH ẢNH LIÊN QUAN

Bảng 1.1. Tóm tắt lịch sử của các phiên bản Android - Bài giảng lập trình Android
Bảng 1.1. Tóm tắt lịch sử của các phiên bản Android (Trang 5)
Hình 1.1. Cấu trúc của Android  1.5. Android Devices in the Market - Bài giảng lập trình Android
Hình 1.1. Cấu trúc của Android 1.5. Android Devices in the Market (Trang 8)
Hình 1.2: (trái qua phải) là Samsung Galaxy S II, Motorola Atrix 4G, HTC EVO 4G inch - Bài giảng lập trình Android
Hình 1.2 (trái qua phải) là Samsung Galaxy S II, Motorola Atrix 4G, HTC EVO 4G inch (Trang 9)
Hình 1.3:  Samsung Galaxy Tab 10.1 và Asus Eee Pad Transformer TF101, cả hai đều chạy - Bài giảng lập trình Android
Hình 1.3 Samsung Galaxy Tab 10.1 và Asus Eee Pad Transformer TF101, cả hai đều chạy (Trang 9)
Hình 1.4. là Barnes and Noble’s NOOK Color (trái) và Amazon’s Kindle Fire(phải ), cả - Bài giảng lập trình Android
Hình 1.4. là Barnes and Noble’s NOOK Color (trái) và Amazon’s Kindle Fire(phải ), cả (Trang 10)
Hình 1.7: Samsung Galaxy Nexus - Bài giảng lập trình Android
Hình 1.7 Samsung Galaxy Nexus (Trang 11)
Hình 2.1. Anh các sự kiện của một vòng đời Android - Bài giảng lập trình Android
Hình 2.1. Anh các sự kiện của một vòng đời Android (Trang 31)
Hình trên cho thấy màn hình của Nexus S. Nó có màn hình 4 inch( theo đường chéo),  với chiều rộng màn hình là 2.04 inchs - Bài giảng lập trình Android
Hình tr ên cho thấy màn hình của Nexus S. Nó có màn hình 4 inch( theo đường chéo), với chiều rộng màn hình là 2.04 inchs (Trang 61)
Hình  trên  cho  thấy  vị  trí  của  views  cũng  như  chiều  cao  của  nó.  Thuộc  tính  layout_gravity xác định vị trí căn lề của views, còn layout_weight xác định sự phân bổ không  gian còn trống - Bài giảng lập trình Android
nh trên cho thấy vị trí của views cũng như chiều cao của nó. Thuộc tính layout_gravity xác định vị trí căn lề của views, còn layout_weight xác định sự phân bổ không gian còn trống (Trang 67)
Hình dưới Button views (được test trên 180dpi AVD) có vị trí được xác định chính xác sử  dụng 2 method android_layout_x và android_layout_y atrributes - Bài giảng lập trình Android
Hình d ưới Button views (được test trên 180dpi AVD) có vị trí được xác định chính xác sử dụng 2 method android_layout_x và android_layout_y atrributes (Trang 69)
Hình dưới cho bạn thấy ví dụ trên được hiển thị như thế nào trên màn hình. Chú ý rằng trong - Bài giảng lập trình Android
Hình d ưới cho bạn thấy ví dụ trên được hiển thị như thế nào trên màn hình. Chú ý rằng trong (Trang 70)

TỪ KHÓA LIÊN QUAN

w