Andorid basic

216 547 6
Andorid basic

Đ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

Cẩm Nang Android Nguyễn Công Tuệ Page 1 of 216 Bài 1: WHAT IS ANDROID 6 I. Features 6 II. Android Architecture 7 III. Applications 7 IV. Application Framework 7 V. Libraries 8 VI. Android Runtime 8 VII. Linux Kernel 9 Bài 2: Application Fundamentals 10 I. Application Components 10 1. Activities 10 2. Services 11 3. Broadcast Receivers 11 4. Content Providers 12 5. Activating components: intents 12 6. Shutting down components 13 7. The manifest file 13 8. Intent filters 14 II. Processes And Threads 15 1. Processes 15 2. Threads 15 3. Remote procedure calls 16 III. Component Lifecycles 17 1. Activity lifecycle 17 2. Service lifecycle 22 3. Broadcast receiver lifecylce 23 4. Processes and lifecycles 24 Bài 3: Activities 26 I. Creating An Activity 26 1. Implementing a user interface 27 2. Declairing the activity in the manifest 27 II. Starting an Activity 28 1. Starting an activity for a result 29 III. Shutting Down an Activity 30 IV. Managing the Activity Lifecycle 30 1. Implementing the lifecycle callbacks 31 2. Saving activity state 35 3. Handing configuration changes 37 4. Coordinating activities 37 Bài 4: Task And Back Stack 39 I. Saving activity state 42 II. Managing Tasks 42 1. Defining launch modes 43 2. Handling affinities 46 3. Clearing the back stack 48 4. Starting a task 48 Cẩm Nang Android Nguyễn Công Tuệ Page 2 of 216 Bài 5: Processes And Threads 50 I. Processes 50 1. Process lifecycle 51 II. Threads 53 1. Worker threads 54 2. Thread-safe modes 63 III. Interprocess Communication 64 Bài 6: User Interface 65 1. View hierarchy 65 2. Layout 66 3. Widgets 66 4. UI events 66 5. Menus 67 6. Advanced topics 67 Bài 7: Declaring Layout 69 I. Write the XML 69 II. Load the XML resource 70 III. Attributes 70 1. ID 70 2. Layout Parameters 71 IV. Layout Position 72 V. Size, Padding and Margin 72 1. Size 72 2. Padding 72 3. Margin 72 Bài 8: Creating Menus 73 I. Defining Menus 73 II. Inflating a Menu Resource 74 III. Creating an Options Menu 74 1. Changing the menu when it opens 75 IV. Creating a Context Menu 75 V. Creating Submenus 76 VI. Other Menu Features 77 1. Menu groups 77 2. Checkable menu items 77 3. Shortcut keys 79 4. Intents for menu items 79 Bài 9: Creating Dialogs 82 I. Showing a Dialog 82 II. Dismissing a Dialog 83 1. Using dismiss listeners 83 III. Creating an AlertDialog 84 1. Adding buttons 84 2. Adding a list 85 3. Adding checkboxes and radio buttons 85 IV. Creating a ProcessDialog 86 Cẩm Nang Android Nguyễn Công Tuệ Page 3 of 216 1. Showing a process bar 87 V. Creating a Custom Dialog 89 Bài 10: Handling UI Events 92 I. Event Listeners 92 II. Event Handlers 94 III. Handling Focus 95 Bài 11: Notifying The User 96 I. Creating Toast Notification 96 1. The Basics 97 2. Positioning your Toast 97 3. Creating a Custom Toast View 97 II. Creating Status Bar Notification 98 1. The basics 99 2. Managing your Notifications 100 3. Creating a Notification 100 4. Creating a Custom Expanded View 103 III. Creating Dialog Notification 105 Bài 12: Applying Styles And Themes 106 I. Defining Styles 106 1. Inheritance 107 2. Style Properties 108 3. Applying Styles and Themes to the UI 108 II. Using Platform Styles and Themes 110 Bài 13: Building Custom Components 111 I. The Basic Approach 111 II. Fully Customized Components 111 1. Extend onDraw() and onMeasure() 111 2. Bạn có thể tìm hiểu các ví dụ: 113 Bài 14: Binding To Data With AdapterView 114 I. Filling The Layout With Data 114 II. Handling User Selections 115 Bài 15: Common Layout Objects 116 I. FrameLayout 116 II. LinearLayout 116 III. TableLayout 117 IV. RelativeLayout 118 V. Summary of Important View Groups 119 VI. How Android Draws Views 121 Bài 16: Application Resources 123 I. Providing Resources 124 1. Grouping Resource Types 124 2. Providing Alternative Resources 126 3. Providing the Best Device Compatibility with Resources 133 4. How Android finds the Best-matching Resource 135 II. Accessing Resources 137 1. Accessing Resources in Code 138 Cẩm Nang Android Nguyễn Công Tuệ Page 4 of 216 2. Accessing Resources from XML 139 3. Accessing Platform Resources 141 III. Handling Runtime Changes 142 1. Retaining an Object During a Configuration Change 142 2. Handling the Configuration Change Yourself 143 IV. Localization 145 1. Overview: Resource-Switching in Android 145 2. Using Resources for Localization 146 3. Localization Strateies 149 4. Testing Localized Applications 150 5. Publishing Localized Applications 151 6. Localization Checklists 151 V. Resource Types 153 Bài 17: Intents And Intent Filters 154 I. Intent Objects 154 1. Component name 154 2. Action 155 3. Data 155 4. Category 156 5. Extras 156 6. Flags 157 II. Intent Resolution 157 1. Intent Filters 157 2. Common cases 160 3. Using intent matching 161 4. Note Pad Example 161 Bài 18: Data Storage 162 I. Using Shared Preferences 162 II. Using the Internal Storage 163 1. Saving cache files 164 2. Other useful methods 164 III. Using the External Storage 164 1. Checking media availability 165 2. Accessing files on external storage 165 3. Saving files that should be shared 166 4. Saving cache files 166 IV. Using Databases 167 1. Database debugging 167 V. Using a Network Connection 168 Bài 19: Data Backup 169 I. The Basics 170 II. Declaring the Backup Agent in Your Manifest 170 III. Registering for Android Backup Service 171 IV. Extending BackupAgent 172 1. Required Methods 172 2. Performing backup 173 Cẩm Nang Android Nguyễn Công Tuệ Page 5 of 216 3. Performing restore 175 V. Extending BackupAgentHelper 177 1. Backing up SharedPreferences 177 2. Backing up other files 178 VI. Cheking the Restore Data Version 179 VII. Requesting Backup 180 VIII. Requesting Restore 181 IX. Testing Your Backup Agent 181 1. Cài đặt ứng dụng trên Android system image phù hợp 181 2. Đảm bảo backup là enable 181 3. Mở ứng dụng và khởi tạo dữ liệu 181 4. Khởi tạo một hoạt động backup 181 5. Uninstall ứng dụng 182 6. Re-install ứng dụng 182 Bài 20: Content Providers 183 I. Content Provider Basics 183 1. The data model 183 2. URIs 184 II. Querying a Content Provider 184 1. Making the query 185 2. What a query return 186 3. Reading retrieved data 187 III. Modifying data 188 1. Adding records 188 2. Adding new values 189 3. Batch updating records 190 4. Deleting a record 190 IV. Creating a Content Provider 191 1. Extending the ContentProvider class 191 2. Delairing the content provider 193 V. Content URI Summary 194 Bài 21: Security And Permission 195 I. Security Architecture 195 II. Application Signing 195 III. User IDs and File Access 196 IV. Using Permissions 196 V. Declaring and Enforcing Permissions 197 1. Enforcing Permissions in AndroidManifest.xml 198 2. Enforcing Permission when Sending Broadcasts 199 3. Other Permission Enforcement 199 VI. URI Permissions 200 Bài 22: Graphics 201 I. Consider your Options 201 II. Simple Graphics Inside a View 201 III. Draw with a Canvas 202 1. On a View 202 Cẩm Nang Android Nguyễn Công Tuệ Page 6 of 216 2. On a Surface 203 Bài 23: 2D Graphics 205 I. Drawables 205 1. Creating from resource images 205 2. Creating from resource XML 207 II. Shape Drawable 208 III. Nine-patch 209 1. Example XML 210 Bài 24: 3D With OpenGL 212 I. Using The API 212 II. Links To Additional Information 212 Bài 25: View Animation 213 I. Tween Animation 213 II. Frame Animation 215 Bài 1: WHAT IS ANDROID Android là một sofware stack cho các thiết bị di động bao gồm: một hệ điều hành, midleware và key application. Android SDK cung cấp các công cụ (tool) và APIs cần thiết để phát triển ứng dụng trên Android platform. Android platform sử dụng ngôn ngữ lập trình Java. I.Features  Application framework cho phép tái sử dụng và thay thế (replacement) các component.  Dalvik virtual machine optimize các thiết bị di động.  Integrated browser dựa trên mã nguồn mở WebKit engine.  Optimized graphics xử lý đồ họa mạnh mẽ với thư viện 2D graphics, 3D dựa trên đặc tả OpenGL ES 1.0 (hardware acceleration optional).  SQLite lưu trữ cơ sở dữ liệu.  Media support hỗ trợ các media như: audio, video, và các định dạng hình ảnh như: MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF.  GSM Telephony phụ thuộc vào phần cứng của thiết bị.  Bluetooth, EDGE, 3G, and WiFi phụ thuộc vào phần cứng của thiết bị. Cẩm Nang Android Nguyễn Công Tuệ Page 7 of 216  Camera, GPS, compass, and accelerometer phụ thuộc vào phần cứng của thiết bị.  Rich development environment bao gồm một emulator thiết bị , các tool phục vụ cho debug, memory và performance profiling, và plugin cho Eclipse IDE. II.Android Architecture Sơ đồ dưới đây mô tả cấu trúc của hệ điều hành Android. III.Applications Các ứng dụng core của Android bao gồm: mail client, SMS program, calendar, maps, browser, contacts… Tất cả các ứng dụng được viết bằng ngôn ngữ Java. IV.Application Framework Bằng cách cung cấp một nền tảng phát triển mở, Android cung cấp cho developers khả năng xây dựng các ứng dụng vô cùng phong phú và sáng tạo. Developers có thể tự do tận dụng các thiết bị phần cứng, thông tin vị trí GPS, chạy các dịch vụ background, thiết lập hẹn giờ alarm, thêm các thông báo vào status bar Cẩm Nang Android Nguyễn Công Tuệ Page 8 of 216 Các nhà phát triển có thể truy cập vào cùng framework API được sử dụng bởi các ứng dụng core. Kiến trúc ứng dụng được thiết kế đơn giản nhằm tái sử dụng các thành phần; bất kỳ ứng dụng nào cũng có thể công bố capability của mình để các ứng dụng khác có thể sử dụng những capability đó tùy thuộc vào sự giới hạn về bảo mật được thực thi bởi framework. Các thành phần chạy bên dưới của ứng dụng là một tập hợp các service và hệ thống bao gồm: o Views sử dụng để xây dựng các thành phần của ứng dụng, gồm có: list, grid, text box, button và web browser. o Content Providers cho phép truy cập vào dữ liệu của các ứng dụng khác (như Contacts) và chia sẽ dữ liệu giữa chúng. o Resource Manager cho phép truy cập vào các tài nguyên non-code như localized strings, graphics và các file layout. o Notification Manager cho phép tất cả các ứng dụng hiển thị các cảnh báo(alert) được custom trong status bar. o Activity Manager quản lý tất cả các vòng đời của ứng dụng và cung cấp một backstack chung. V.Libraries Android bao gồm một tập các thư viện C/C++ sử dụng bởi nhiều thành phần khác nhau của hệ điều hành Android. Những khả năng này được liên lạc(expose) với developers thông qua các framework của Android. Một số thư viện core như sau:  System C library - a BSD-derived implementation of the standard C system library (libc), tuned for embedded Linux-based devices.  Media Libraries - based on PacketVideo's OpenCORE; the libraries support playback and recording of many popular audio and video formats, as well as static image files, including MPEG4, H.264, MP3, AAC, AMR, JPG, and PNG  Surface Manager - manages access to the display subsystem and seamlessly composites 2D and 3D graphic layers from multiple applications.  LibWebCore - a modern web browser engine which powers both the Android browser and an embeddable web view.  SGL - the underlying 2D graphics engine.  3D libraries - an implementation based on OpenGL ES 1.0 APIs; the libraries use either hardware 3D acceleration (where available) or the included, highly optimized 3D software rasterizer.  FreeType - bitmap and vector font rendering.  SQLite - a powerful and lightweight relational database engine available to all applications. VI.Android Runtime Android bao gồm một tập các thư viện cơ bản để cung cấp hầu hết các chức năng sẵn có trong các thư viện core của ngôn ngữ lập trình JAVA. Cẩm Nang Android Nguyễn Công Tuệ Page 9 of 216 Tất cả các ứng dụng Android đều chạy trong tiến trình(process) riêng của nó, với thể hiện (instance) riêng của nó của máy ảo Dalvik. Dalvik đã được viết để một thiết bị có thể chạy nhiều máy ảo một cách hiệu quả. Máy ảo Dalvik thực thi các file định dạng Dalvik Executable (.dex) được tối ưu hóa cho bộ nhớ tối thiểu. Máy ảo VM được đăng ký, và chạy các class được biên dịch bởi trình biên dịch ngôn ngữ Java đã được chuyển đổi thành các định dạng .dex bởi tool "dx". Máy ảo Dalvik dựa trên Linux Kernel cho các chức năng cơ bản như thread và quản lý bộ nhớ ở mức độ thấp. VII.Linux Kernel Android dựa trên Linux phiên bản 2.6 cho các dịch vụ hệ thống như: bảo mật, quản lý bộ nhớ, quản lý process, network stack và driver model. Kernel cũng hoạt động như là một tầng trừu tượng hóa(abstraction layer) giữa phần cứng và rest của software stack. Cẩm Nang Android Nguyễn Công Tuệ Page 10 of 216 Bài 2: Application Fundamentals Các ứng dụng Android được viết bởi ngôn ngữ JAVA. Mã Java đã được biên dịch cùng với các dữ liệu và các file tài nguyên được yêu cầu bởi ứng dụng được đóng gói bởi tool aapt trong Android package, một file archive .apk. File này được sử dụng để phân phối các ứng dụng và cài đặt nó lên thiết bị, nó là file mà người dùng download nó vào ứng dụng. Tất cả code trong một file .apk được xem là một ứng dụng. Theo mặc định, mỗi ứng dụng Android chạy trên tiến trình Linux của chính nó. Android bắt đầu tiến trình khi code của ứng dụng cần được thực thi và kết thúc tiến trình khi nó không còn cần thiết và các tài nguyên của ứng dụng được yêu cầu bởi các ứng dụng khác. Mỗi một tiến trình đều có một máy ảo VM của riêng nó, vì vậy code của mỗi ứng dụng chạy độc lập với các ứng dụng khác. Theo mặc định, mỗi ứng dụng được chỉ định một ID người dùng Linux duy nhất. Permission được thiết lập để các file của ứng dụng chỉ hiển thị cho người dùng đó và chỉ cho ứng dụng đó - mặc dù có nhiều cách để export chúng vào các ứng dụng khác. Có thể sắp xếp cho hai ứng dụng chia sẻ cùng một ID người dùng, trong trường hợp chúng có thể xem các file của nhau. Để tiết kiệm tài nguyên hệ thống, các ứng dụng với cùng một ID cũng có thể sắp xếp để chạy trong cùng tiến trình Linux, chia sẻ cùng một máy ảo. I.Application Components Một tính năng nổi bật của Android là một ứng dụng có thể sử dụng các thành phần của các ứng dụng khác. Ví dụ, nếu ứng dụng của bạn cần hiển thị một danh sách các image, và các ứng dụng khác đã phát triển danh sách này phù hợp với yêu cầu của bạn, thì bạn chỉ cần gọi nó lên để sử dụng thay vì phát triển lại. Ứng dụng của bạn không kết hợp mã nguồn của ứng dụng khác hay liên kết với nó, thay vào đó nó chỉ đơn giãn start một mẫu của các ứng dụng khác khi nhu cầu phát sinh. Đối làm được điều này, hệ thống phải có khả năng start một tiến trình ứng dụng khi bất kỳ thành phần nào của nó cần thiết, và khởi tạo các đối tượng Java cho thành phần đó. Vì vậy, không giống như các ứng dụng trên các hệ thống khác, các ứng dụng Android không có một entry point duy nhất cho ứng dụng (chẳng hạn như không có phương thức main()). Thay vào đó, chúng có các thành phần mà hệ thống có thể khởi tạo và chạy khi cần thiết. Có bốn loại thành phần: 1.Activities Một Activity đại diện cho một giao diện người dùng trực quan mà người dùng có thể thực hiện. Ví dụ, một Activity có thể là một danh sách các menu item mà người dùng có thể lựa chọn. Một ứng dụng gửi tin nhắn văn bản có thể có một . Creating Toast Notification 96 1. The Basics 97 2. Positioning your Toast 97 3. Creating a Custom Toast View 97 II. Creating Status Bar Notification 98 1. The basics 99 2. Managing your Notifications. UI 108 II. Using Platform Styles and Themes 110 Bài 13: Building Custom Components 111 I. The Basic Approach 111 II. Fully Customized Components 111 1. Extend onDraw() and onMeasure() 111. 1. Database debugging 167 V. Using a Network Connection 168 Bài 19: Data Backup 169 I. The Basics 170 II. Declaring the Backup Agent in Your Manifest 170 III. Registering for Android Backup

Ngày đăng: 01/06/2014, 12:09

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan