Bài giảng 5. Software platforms
•
Giới thiệu
•
Mobile software platforms
–
Java ME
–
Python
–
Symbian OS
–
Windows Mobile
–
Maemo
–
Android
–
Bada
–
Other
Nội dung
•
Những thế hệ di động đầu tiên không hỗ trợ cho
việc phát triển phần mềm
•
Ngày nay hầu hết các thiết bị di động hỗ trợ cả 3
ngôn ngữ để phát triển phần mềm (native C++,
java ME, Python)
•
Mobile szoftware platform
–
Ngôn ngữ lập trình
–
Thư viện code
–
Công cụ phát triển (SDK, emulator)
Giới thiệu
•
Giới thiệu
•
Mobile software platforms
–
Java ME
–
Python
–
Symbian OS
–
Windows Mobile
–
Maemo
–
Android
–
Bada
–
Other
Nội dung
•
Java Mobile Edition
•
J2ME (Java 2 Micro Edition)
•
Hầu hết các thiết bị di động ngày nay có hỗ trợ
java
•
Đặc điểm cơ bản của java
–
Hướng đối tượng
–
Từ “program code” -> “object code” (không phải
machine code)
–
“object code” được chạy bởi JVM (Java virtual
machine)
Java ME - Giới thiệu
Các phiên bản Java 1/2
Các phiên bản Java 2/2
Kiến trúc J2ME 1/2
Kiến trúc J2ME 2/2
• Mỗi linh kiện sử dụng cấu hình khác nhau
•
Thành phần của cấu hình
–
Virtual machine
– Hàm API cơ bản (vd: Java SE API-k)
•
2 lọai cấu hình của J2ME
– CLDC (Connected Limited Device Configuration)
•
UI đơn giản, bộ nhớ nhỏ, Procesor yếu
•
Vd: mobile telephone, PDA đơn giản
–
CDC(Connected Device Configuration)
•
UI đa dạng, nhiều bộ nhớ hơn, hỗ trợ giao thức mạng
•
Vd: Internet TV, PDA
Cấu hình (Configuration)
•
Cung cấp các hàm API hữu dụng hơn cho việc
lập trình
•
Mobile Information Device Profile (MIDP)
–
bổ sung các tính năng như hỗ trợ kết nối, các thành
phần hỗ trợ giao diện người dùng … vào CLDC
–
cung cấp một giao diện người dùng đơn giản và các
tính năng mạng đơn giản dựa trên HTTP
–
Phiên bản hiện nay: MIDP 2.0
•
PDA Profile:
•
Foundation Profile:
Hiện trạng (Profile)
•
Giới thiệu
•
Mobile software platforms
–
Java ME
–
Python
–
Symbian OS
–
Windows Mobile
–
Maemo
–
Android
–
Bada
–
Other
Nội dung
•
Lập trình cấp cao, hướng đối tượng
•
cơ chế cấp phát bộ nhớ tự động
•
ngôn ngữ có hình thức rất sáng sủa, cấu trúc rõ
ràng, thuận tiện cho người mới học lập trình
•
ngôn ngữ lập trình dạng thông dịch (script)
•
không cần phải thực hiện biên dịch và liên kết
•
Chạy trên nhiều hệ điều hành:
–
Windows
–
Linux
–
Mobil platformok (S60, Windows CE, iPhone, )
Python – giới thiệu
•
Ưu điểm
–
Miễn phí (phát triển trên mã nguồn mở)
–
ổn định, trưởng thành (có trước cả java)
–
Có tính kế thừa (đối tượng, module)
–
Dễ dàng tích hợp với code C/C++/Java
•
Nhược điểm
–
Ít người sử dụng, phát triển, ít tài liệu, ví dụ,
–
Không có sẵn những tính năng cấp thấp
–
Cần cài đặt trình biên dịch, không được tích hợp sẵn
trong HĐH
Phát triển trên Python
•
S60 Là nền tảng điện thọai Symbian
•
Ngòai các thư viên Python chuẩn còn có cá API:
–
Quản lý tin nhắn
–
Chức năng thọai
–
Quản lý camera
–
Đồ họa 3D (OpenGL ES)
–
Python trên S60
• Để chạy Python
–
Viết script trên PC
– Copy script vào điện thọai
–
Khởi động trình biên dịch Python, load, chạy script
• Sử dụng Python trong việc:
– Tạo ra nguyên mẫu (prototype)
– Phát triển những mobile client đơn giản
–
testing
–
Python trên S60
•
Giới thiệu
•
Mobile software platforms
–
Java ME
–
Python
–
Symbian OS
–
Windows Mobile
–
Maemo
–
Android
–
Bada
–
Other
Nội dung
•
Hệ điều hành cho điện thọai di động
•
Những thiết bị có phần cứng hạn chế:
–
Bộ vi xử lý yếu
–
Bộ nhớ ít
–
Pin hạn chế
•
Được thiết kế có tính sẵn sàng cao
–
Rất hiếm khi cần phải reboot lại máy
•
Hỗ trợ chức năng quản lý thông tin cá nhân(địa chỉ
liên lạc, lịch)
•
Hỗ trợ các giao thức truyền tin
•
Hiện tại vẫn đứng đầu trong điện thọai thông minh
Symbian OS – Giới thiệu
•
lớp giao diện người dùng đồ họa cung cấp
những thành phần bổ sung cho nhân hệ
điều hành
•
UI platforms:
–
S60 (formerly Series 60 User Interface)
–
UIQ (User Interface Quartz)
•
Những ứng dụng viết cho các platform
khác nhau không tương thích với nhau.
Symbian OS – UI platforms
• phổ biến nhất (trước đây là Series 60)
•
Sử dụng bàn phím hoặc màn hình cảm ứng
• Có 4 phiên bản chính
•
Phiên bản hiện nay: S60 5th edition
–
Hỗ trợ kích cỡ màn hình và sự bố trí khác nhau
– Tích hợp C/C++ APIs và Adobe Flash Lite 3.0
S60 platform
• Các ứng dụng nền tảng có thể được viết bằng
C++
•
Hỗ trợ ứng dụng Java
•
UIQ 2, chỉ giành cho màn hình cảm ứng
•
UIQ 3.x
–
Sofkey style (Motorola Z8)
–
Pen style
UIQ platform
• Java ME
•
Python
•
Open C/C++
•
Native C++
–
Bản thân HĐH được viết trên C++
–
Có sẵn API cấp thấp
– Ngôn ngữ C++ có những hạn chế:
•
Học trong thời gian dài
•
Cần thiết phương pháp mới
Symbian OS – Phát triển phần mềm
•
Giới thiệu
•
Mobile software platforms
–
Java ME
–
Python
–
Symbian OS
–
Windows Mobile
–
Maemo
–
Android
–
Bada
–
Other
Nội dung
•
Sự đột biến trong Windows Mobile
–
Điện thọai thông minh (Windows Mobile Standard)
–
PDA (Windows Mobile Professional, Classic)
•
Xây dựng trên Windows CE
•
HĐH kèm theo nhiều ứng dụng có sẵn (Excel
Mobile, Word Mobile, )
•
Phiên bản thông dụng hiện tại: Windows Mobile
6
–
Phiên bản 7 (Multi-touch, )
Giới thiệu
•
Java ME
•
Embedded Visual C++
•
.NET Compact Framework (CF.NET)
–
Ngôn ngữ C# hoặc Visual Basic .NET (hướng
đối tượng, ngôn ngữ cấp cao)
–
Intermediate Language (IL) code: đựơc tạo ra
trong giai đọan đầu của quá trình biên dịch
–
Just In Time Compilation (JIT):Một mã nhị
phân được tao ra trước khi chạy ứng dụng
Phát triển