• 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 •
Trang 1Bài giảng 5 Software platforms
Trang 3• 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
Trang 5• 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
Trang 6Các phiên bản Java 1/2
Trang 8Kiến trúc J2ME 1/2
Trang 10• 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)
Trang 11• 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)
Trang 13• 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
Trang 14• Ư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
Trang 15• 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:
Trang 16• Để 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
Trang 18• 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
Trang 19• 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
Trang 20• 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
Trang 21• Các ứng dụng nền tảng có thể được viết bằng C++
Trang 22• 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
Trang 24• 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
Trang 25• 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
Trang 26• NET CF xuất thân từ NET Framework
– Có sẵn các API cơ bản (dễ dàng thao tác, di động) – Cộng với những API về chức năng của điện thọai di động
• UI xây dựng trên Windows Forms
Phát triển
Trang 28• Hệ điều hành xây dựng trên nền Linux
– Được thiết kế cho internet
– WLAN, Bluetooth, GPS ( không thích hợp cho điện thọai
Trang 29• Chỉ có thể phát triển trên hệ điều hành Linux
• Những ứng dụng linux tương đối dễ dàng di
động
• Hiện nay đặc biệt được phát triển bởi các “linux hacker
Maemo
Trang 31• Nền tảng phần mềm được phát triển bởi Open Handset Alliance (nhân vật chính Của Google)
– Hệ điều hành (Linux kernel)
– Những ứng dụng cơ bản
• Phiên bản hiện tại SDK 1.1
• Thiết bị: HTC Dream (G1, DevPhone)
Giới thiệu
Trang 33• C/C++: hiện tại chưa có public SDK
– Chức năng cấp thấp
– Media library, 3D grafika, SQLite
• Java
– Code được chạy bởi Android Runtime
– Dalvik Virtual Machine
• Mọi ứng dụng sử dụng bộ vi sử lý và máy ảo riêng
• Tối ưu hóa sự tiêu thụ bộ nhớ nhỏ
– Ngôn ngữ cấp cao, tiện nghi (UI có thể được viết bằng XML)
Phát triển Android
Trang 34Hello Android 1/2
Trang 37• Palm OS
– HĐH cho hệ thống nhúng
– Giành cho PDA
– Không có sự hiện diện đáng kể trên thị trường
• OpenMoko
– Phát triển trên Linux
– Hòan tòan xây dựng trên nền mở
– Hiện tại sản phẩm chỉ được thương mại
hóa bởi 1 công ty: Neo (1973)
Còn lại
Trang 38• Apple iPhone
– Có sẵn SDK một thời gian
– MAC, Xcode, objective C
• Flash Lite
– Phiên bản được tối ưu hóa từ Flash Player
– Về cơ bản thiết kế cho UI, nhưng thiết bị có khả năng đạt được một số chức năng ở cấp thấp
– Chưa được phổ biến rộng rãi, và thường chậm do
vector đồ họa
Còn lại