Nguyễn Văn Dương – K51CB Bộ môn Khoa học máy tính
Nguyễn Văn Dương - K51CB - KHMT
TỔNG QUAN1.Open Handset Alliance
2.Giới thiệu về Android
3.Giới thiệu về nền
4.Kiến trúc Android
5.Anatomy Of An Android Application
6.Android Building Blocks
7.Các công cụ phát triển
8.Vòng đời của một ứng dụng Android
9.Tổng kết
Est. 2007, dẫn bởi Google,nguồn mở
Sản phẩm chính: AndroidPlatform
Hăng hái hỗ trợ từ cộng đồng: both equipmentmakers and network operators
HTC phân phối các thiết bị Android sớm!
Open Handset Alliance
Nguyễn Văn Dương - K51CB - KHMT
Nguyễn Văn Dương - K51CB - KHMT
Open Handset Alliance Members
Nguyễn Văn Dương - K51CB - KHMT
GIỚI THIỆUVỀ
ANDROID
ANDROID là gì?
oMột hệ điều hành nhúng hoàn thiện và hiện đại
o A cutting-edge mobile user experience
o A world-class software stack for building applications
oMột nền mở cho các nhà phát triển, người dùng và công nghiệp máy tính
Nguyễn Văn Dương - K51CB - KHMT
Tại sao ANDROID được tạo ra?
Full phone software stack including applications
Được thế kế như một nền cho phát triển phần mềm
Android là mã nguồn mở
Android là miễn phí
Cộng đồng hỗ trợ
Được viết bằng Java
Nguyễn Văn Dương - K51CB - KHMT
LỊCH SỬ
July 2005
Google mua được Android Inc. 5 Nov 2007
Open HandSet Alliance formed-
Google, HTC, Intel, Motorola, Qualcomm,T-MobileAndroid là sản phẩm OHA đầu tiên12 Nov 2007
OHA ra bản thử nghiệm của Android OHA
Nguyễn Văn Dương - K51CB - KHMT
GIỚI THIỆUVỀ
NỀN TẢNG : ANDROID
Nguyễn Văn Dương - K51CB - KHMT
Nguyễn Văn Dương - K51CB - KHMT
Cellular networking : GSM, EDGE, 3G (hardware dependent)
LAN : Bluetooth, and Wi-Fi (hardware dependent)
Graphics Hardware Acceleration
Camera, GPS and Compass (hardware dependent)
Touch screen and accelerometer for motion sensing
Integrated browser based on the open source WebKit engine
SQLite for relational data storage
Media support for common audio, video, and still image formats
(MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)
Dalvik Virtual Machine optimized for mobile devices
Các tính năng của ANDROID
ANDROID ARCHITECTURE
Nguyễn Văn Dương - K51CB - KHMT
Cho phép các ứng dụng truy cập dữ liệu từ các ứng dụng chia sẻ khác
Cho phép truy nhập các tài nguyên không phải là code
Cho phép các ứng dụng gửi thông báo lên thanh trạng thái
Quản lí vòng đời của các ứng dụng
Nguyễn Văn Dương - K51CB - KHMT
Application Framework
Được biết bằng C/C++ - System C Library(libc)
Display/Graphics(SGL)
Media Libraries
SQLite –RDB engine-light weight
LibWebCore–web browser engine–embeddable web view
Nguyễn Văn Dương - K51CB - KHMT
Các thư viện
Linux Version 2.6
Security, Memory & Process Management
Proven driver model
Efficient computing resource management
Stable and proven OS for mobile platform
Nguyễn Văn Dương - K51CB - KHMT
Nhân Linux
Bao gồm một tập các thư viện lõi, cung cấp hầu hết các chức năng - JAVA
Mọi ứng dụng Android chạy trên tiến trình của chính nó
Dalvik VM thực thi các file định dạng .dex
Thiết bị có thể chạy nhiều máy ảo một cách hiệu quả
Nguyễn Văn Dương - K51CB - KHMT
Android Runtime
Nguyễn Văn Dương - K51CB - KHMT
Anatomy of an Android Application
Có bốn thành phần chính cho một ứng dụng Android:
Activity - một màn hình đơn
Intent Receiver- thực hiện một hành động khi có sự kiện ngoài(ví dụ: Phone Ring)
Service - đoạn mã chạy liên tục không cần có UI(Media Player)
Content Provider - dữ liệu của một chương trình có thể chia sẻ với chương trình khác
Nguyễn Văn Dương - K51CB - KHMT
Android Building BlocksĐây là những thành phần quan trọng nhất của Android APIs:
AndroidManifest.xml -file điều khiển-báo cho hệ thống biết cần làm gì với các thành phần top-level Activities -một đối tượng mà có vòng đời-1 đoạn code thực hiện việc gì đó
Views -một đối tượng biết nó cần phải vẽ gì lên màn hình
Intents -một đối tượng đơn giản biểu diễn một "intention" để làm gì đó
Notifications -một biểu tượng nhỏ xuất hiện trong thanh trạng thái(SMS messages)-thông báo với người dùng
Services -phần thân của đoạn mã chạy nền
Nguyễn Văn Dương - K51CB - KHMT
Các công cụ phát triểnAndroid SDK chứa nhiều công cụ tùy biến giúp bạn phát triển các ứng dụng di động trên nền Android. Ba công cụ quan trọng nhất là:
•Android Emulator –Một thiết bị di động ảo chạy trên máy tính – dùng để thiết kế, debug, và test các ứng dụng trong một máy Android chạy trong môi trường thật•Android Development Tools Plugin -cho Eclipse IDE – thêm các mở rộng mạnh mẽ vào môi trường tích hợp của Eclipse.
•Dalvik Debug Monitor Service (DDMS) –Được tích hợp với Dalvik –công cụ này cho phép ta quản lí tiến trình trên một emulatorvà hỗ trợ việc gỡ lỗi
Nguyễn Văn Dương - K51CB - KHMT
Vòng đời của một ứng dụng Android
An unusual and fundamental feature - thời gian sống của tiến trình is không được điều khiển trực tiếp bởi chính tiến trình
Các thành phần quyết định:Mức độ quan trọngTổng bộ nhớ hợp lệ
Để xác định tiến trình nào sẽ được kill khi bộ nhớ còn ít: "importance hierarchy“
Nguyễn Văn Dương - K51CB - KHMT
“Importance Hierarchy”(mức độ quan trọng)Foreground Process –cần cho những gì người dùng hiện tại đang làm
Visible Process –giữ một Activity – hiện với người dùng trên màn hình nhưng không trong foreground(on pause)
Service Process –giữ một Service – không hiện trực tiếp với người dùng- các nhiệm vụ liên quan
Background Process –giữ một Activity – không hiện với người dùng – có thể kill bất cứ khi nào(stopped)
Empty Process –không giữ một thành phần ứng dụng đang hoạt động nào(như cache để tăng thời gian khởi động)
Nguyễn Văn Dương - K51CB - KHMT
Các ứng dụng
Màn hình khởi động Trình duyệtBản đồ
Nguyễn Văn Dương - K51CB - KHMT
TỔNG KẾT
Android mở cho tất cả: công nghiệp, các nhà phát triển và người dùng.
Participating in many of the successful open source projects
Nhắm tới việc dễ xây dựng ứng dụng web.
Google Android đang bước vào một tầm cao mới của Mobile Internet
Nguyễn Văn Dương - K51CB - KHMT
THANK YOU
?
Nguyễn Văn Dương - K51CB - KHMT