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
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 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 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 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 nhiều năm đã phát triển hệ điều hành trên mobile của riêng họ. Khi mà iPhone được phát 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 auto- fill, bookmark synchronization, and private browsing. 6 - Hỗ trợ multi-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 - Flash support 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. 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: - Smartphones - Tablets - E-reader devices - Netbook - MP4 players - Internet TVs 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ử. 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. Hình 1.5 Hình 1.6 [...]... 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... 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ở... 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 … 15 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... trong cuốn sách này, tôi đề nghị bạn nên xem những lớp học đó 12 - 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... 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 Cài đặt Tải về Android SDK (Software Development Kit) http://developer .android. com/sdk/index.html Bước cài đặt Android SDK sẽ giúp chúng ta cài đặt thiết bị giả lập Android trên máy tính Việc thiết lập. .. 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 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... http://developer .android. com/about/index.html Ví dụ: Android 4.1 tương ứng 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ụ đã... 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, New…), các API và các AVD (Android Virtual Device)… Tại đây, chúng ta có thể chọn Android version để phát triển Xem chi tiết các android version: http://developer .android. com/about/index.html... 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