270 likes | 409 Vues
This guide covers the essentials of Symbian C++ programming, tailored for developers interested in mobile applications. It includes setting up the development environment using tools like Carbide C++, understanding basic concepts like stack, heap, and memory management, and the process of porting applications to cell phones. Key topics involve active objects, event handling with active schedulers, and managing resources effectively through leaves. With practical examples and a focus on building robust applications, this reference is indispensable for emerging Symbian developers.
E N D
Introduction to Symbian C++ Programming Huang, Chi-Chia 2009.02.05 Based on Symbian OS Basics Workbook 3.1 Context-Aware Group, Intelligent Agents Lab, NTU
Outline • Setting up development environment • Basic concept of Symbian C++ • Porting to Cell phone Context-Aware Group, Intelligent Agents Lab
Development Environment • Java runtime environment • Carbide C++ • Download from Forum.Nokia.com • Account needed • ActivePerl • Active Perl 5.6.1 build 631 • SDK • S60 3rd Edition, Feature Pack 1 • Download from Forum.Nokia.com • Account needed Context-Aware Group, Intelligent Agents Lab
Carbide C++ Context-Aware Group, Intelligent Agents Lab
Carbide C++ Context-Aware Group, Intelligent Agents Lab
Carbide C++ Context-Aware Group, Intelligent Agents Lab
Carbide C++ Context-Aware Group, Intelligent Agents Lab
Carbide C++ Context-Aware Group, Intelligent Agents Lab
Carbide C++ Context-Aware Group, Intelligent Agents Lab
Carbide C++ Context-Aware Group, Intelligent Agents Lab
Carbide C++ Context-Aware Group, Intelligent Agents Lab
Carbide C++ Context-Aware Group, Intelligent Agents Lab
Carbide C++ Context-Aware Group, Intelligent Agents Lab
Emulator Context-Aware Group, Intelligent Agents Lab
Basic Concept of Symbian C++ • Stack and Heap • Leaves • Two Phase construction • Active Object Context-Aware Group, Intelligent Agents Lab
Stack and Heap • Stack • Object are delete automatically • Default size is 8kb • Heap • Object must deleted by programmer using delete • Example Context-Aware Group, Intelligent Agents Lab
Leaves • Leaves are used instead of C++ exception • When there is a resource failure, the code “leave” • The new operator has been overload to leave if insufficient memory is available • Use new (ELeave) • Functions that can leave should end in “L” Context-Aware Group, Intelligent Agents Lab
Two Phase Construction • C++ constructor must never leave as the destructor will not be called Context-Aware Group, Intelligent Agents Lab
Active Object • Events are scheduled by the active scheduler • Events are handled by active object • Each application has an active scheduler • The active scheduler runs in a loop in the application’s main loop • Active objects have a: • TRequestStatus bas class member, iStatus, that is passed inro asynchronous functions • RunL() Function that is called when the action completes • DoCancel() function that is called when the action is cancelled Context-Aware Group, Intelligent Agents Lab
Active Object Context-Aware Group, Intelligent Agents Lab
Porting to Cell Phone Context-Aware Group, Intelligent Agents Lab
Porting to Cell Phone Context-Aware Group, Intelligent Agents Lab
Porting to Cell Phone Context-Aware Group, Intelligent Agents Lab
Porting to Cell Phone Context-Aware Group, Intelligent Agents Lab
Porting to Cell Phone Context-Aware Group, Intelligent Agents Lab
Porting to Cell Phone • Symbian Signed Context-Aware Group, Intelligent Agents Lab