2010-01-27 27 views
21

Tôi đang lên kế hoạch phát triển trên các hệ thống Symbian nhưng tôi không quen thuộc với nó. Tôi biết (có thể là) cách phổ biến nhất để phát triển trên Symbian là Symbian C++, và tôi cũng nghe nói về Qt. Sự khác nhau giữa chúng là gì? Nếu tôi muốn ứng dụng của mình chạy trên hầu hết các hệ thống Symbian, tôi nên chọn ứng dụng nào? Ai đó có thể cho tôi một số lời khuyên tổng thể không?Qt hoặc Symbian C++?

Cảm ơn bạn ~

Trả lời

33

Symbian C++ là phương ngữ C++, trong đó hệ điều hành được viết, tất cả các cách từ hạt nhân đến khung ứng dụng. Nó khác với tiêu chuẩn C++ theo một số cách, một số cách được liệt kê ở đây:

  • Ngoại lệ không được sử dụng; Symbian sử dụng phương pháp ngăn xếp riêng của nó gọi là 'lá'. Lý do chính cho điều này là tiêu chuẩn C++ vẫn đang được phát triển khi Symbian được tạo ra, và các ngoại lệ lúc đó không được hỗ trợ bởi các trình biên dịch.
  • Do thiếu sự hỗ trợ cho trường hợp ngoại lệ, việc quản lý bộ nhớ được cấp phát động sử dụng một cơ chế độc quyền được gọi là ngăn xếp dọn dẹp.
  • Mặc dù một cổng của STL là bây giờ đã có cho Symbian, đây là một sự phát triển gần đây, vì vậy hệ điều hành có các lớp tiện ích riêng của mình cho các chuỗi, mảng, băm, vv

Gộp chung lại, chúng có thể làm cho học tập Symbian C++ khá khó, ngay cả đối với các lập trình viên C++ dày dạn kinh nghiệm. Các ngăn xếp dọn dẹp và các lớp chuỗi (được gọi là các bộ mô tả) nói riêng thường được nhìn thấy để bổ sung khá nhiều chi phí cho sự phát triển Symbian C++.

Như với bất kỳ hệ điều hành nào, ngoài việc cần phải biết ngôn ngữ mẹ đẻ, bạn cũng cần phải biết cách của bạn xung quanh các thư viện có liên quan đến lĩnh vực phát triển của bạn. Symbian có rất nhiều thư viện bao gồm một lượng lớn chức năng (luồng, IPC, đồ họa, đa phương tiện, mạng, vị trí, nhắn tin, PIM, điện thoại, v.v.) Khi bạn quen với các thành ngữ Symbian C++, các thư viện này thường rất mạnh mẽ và cung cấp một bộ tính năng ít nhất bằng các nền tảng khác. Một ngoại lệ đáng chú ý là thư viện giao diện người dùng, được gọi là Avkon, hiện đã được cập nhật khi so sánh với các khung tương ứng trên các nền tảng khác.

Qt nhằm giải quyết một số vấn đề được liệt kê ở trên có xu hướng khiến mọi người không phát triển bản địa trên hệ điều hành Symbian. Cụ thể, nó cho phép một kiểu lập trình C++ hiện đại hơn nhiều, và bao gồm một bộ các thư viện đồ họa/giao diện người dùng rất tiên tiến. Hôm nay, Qt is available for installation trên các thiết bị Symbian mới nhất. Nhìn về phía trước, nó sẽ hình thành nền tảng của một khung ứng dụng hoàn toàn mới, sẽ được giới thiệu trong phiên bản S^4 của the platform (dự kiến ​​sẽ có trong các thiết bị vận chuyển từ năm 2011).

Một điều tôi nên chỉ ra là, tại thời điểm này, Qt không bao gồm tất cả các chức năng của thư viện gốc. Từ danh sách trên, trong khi Qt cung cấp trừu tượng các chủ đề, IPC, đồ họa, đa phương tiện và mạng, các thư viện lõi của nó không bao gồm vị trí, nhắn tin hoặc chức năng PIM. Vì vậy, trong khi bạn có thể sử dụng Qt để viết (ví dụ) một ứng dụng khách FTP, một chương trình vẽ hoặc trình phát đa phương tiện, bạn không thể sử dụng nó để viết một ứng dụng nhắn tin. Vì Qt là C++, bạn có thể kết hợp nó với Symbian C++ bản địa (thả xuống API nền tảng để truy cập nhắn tin chẳng hạn), nhưng điều này hơi phức tạp.

Khoảng cách chức năng này đang được giải quyết bởi một dự án có tên là Qt Mobility, sẽ giới thiệu các thư viện Qt bao gồm các khu vực như vị trí, nhắn tin và PIM.Tóm lại, nếu bạn là người mới sử dụng Symbian, Qt là môi trường phát triển ứng dụng để tìm hiểu, và làm như vậy có thêm lợi ích mà bạn cũng có thể phát triển các ứng dụng Qt trên các nền tảng khác (vì nó là một bộ công cụ đa nền tảng) .

+0

Cảm ơn bạn rất nhiều ~ Điều gì về Java ME trên Symbian? –

+0

Câu trả lời của tôi tập trung vào các tùy chọn phát triển C++, nhưng Symbian cũng hỗ trợ nhiều thời gian chạy khác. Ngoài Java ME, bạn cũng có thể phát triển trong Flash, Python, WRT, .NET (với các thư viện độc quyền), ... danh sách đi vào ... –

+0

Cảm ơn bạn rất nhiều –

7

Go cho Qt. Nó sẽ là hướng mà tất cả Nokia đang đi. Thêm vào đó, chương trình của bạn có thể sẽ chạy trên Maemo/Meego.

0

Câu trả lời là hơi muộn, nhưng đây là từ Symbian C++ trên wiki nhà phát triển Nokia:

Symbian C++, khuôn khổ chương trình bản địa cho Symbian, là một biến thể ngữ của C++ được tối ưu hóa cho các thiết bị bộ nhớ thấp. Mặc dù Qt là giờ là khung gốc được đề xuất tạo ứng dụng Symbian, chúng tôi tiếp tục cung cấp quyền truy cập vào các công cụ để làm việc với Symbian C++. Điều này hỗ trợ tiếp tục cho phép bạn duy trì các ứng dụng cũ và di chuyển chúng sang các phiên bản mới nhất của nền tảng Symbian.

Có vẻ như Qt hiện được ưa thích và các dự án mới nên sử dụng Qt.

Các vấn đề liên quan