Introduction to Symbian C++ Programming Huang, Chi-Chia Context-Aware Group, Intelligent Agents Lab, NTU Based on Symbian OS Basics Workbook 3.1
Outline Setting up development environment Basic concept of Symbian C++ Porting to Cell phone Context-Aware Group, Intelligent Agents Lab2
Development Environment Java runtime environment Carbide C++ – Download from Forum.Nokia.comForum.Nokia.com – Account needed ActivePerl – Active Perl build 631 SDK – S60 3rd Edition, Feature Pack 1 – Download from Forum.Nokia.comForum.Nokia.com – Account needed Context-Aware Group, Intelligent Agents Lab3
Carbide C++ Context-Aware Group, Intelligent Agents Lab4
Carbide C++ Context-Aware Group, Intelligent Agents Lab5
Carbide C++ Context-Aware Group, Intelligent Agents Lab6
Carbide C++ Context-Aware Group, Intelligent Agents Lab7
Carbide C++ Context-Aware Group, Intelligent Agents Lab8
Carbide C++ Context-Aware Group, Intelligent Agents Lab9
Carbide C++ Context-Aware Group, Intelligent Agents Lab10
Carbide C++ Context-Aware Group, Intelligent Agents Lab11
Carbide C++ Context-Aware Group, Intelligent Agents Lab12
Carbide C++ Context-Aware Group, Intelligent Agents Lab13
Emulator Context-Aware Group, Intelligent Agents Lab14
Basic Concept of Symbian C++ Stack and Heap Leaves Two Phase construction Active Object Context-Aware Group, Intelligent Agents Lab15
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 Lab16
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 Lab17
Two Phase Construction C++ constructor must never leave as the destructor will not be called Context-Aware Group, Intelligent Agents Lab18
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 Lab19
Context-Aware Group, Intelligent Agents Lab20
Active Object Context-Aware Group, Intelligent Agents Lab21
Porting to Cell Phone Context-Aware Group, Intelligent Agents Lab22
Porting to Cell Phone Context-Aware Group, Intelligent Agents Lab23
Porting to Cell Phone Context-Aware Group, Intelligent Agents Lab24
Porting to Cell Phone Context-Aware Group, Intelligent Agents Lab25
Porting to Cell Phone Context-Aware Group, Intelligent Agents Lab26
Porting to Cell Phone Symbian Signed Context-Aware Group, Intelligent Agents Lab27