If you want to write mobile applications without the idioms of
Symbian C++, have existing software assets that you’d like to
re-use on Symbian devices, or are an open source developer still
waiting for an open Linux-based device to gain significant market
penetration, this is the book for you!
Beginning with an introduction to the native programming
environments available and descriptions of the various technologies
and APIs available, you will first learn how to go about porting
your code to the Symbian platform.
Next, you will discover how to port to Symbian from other common
platforms including Linux and Windows.
Finally, you can examine sample porting projects as well as
advanced information on topics such as platform security.
The author team consists of no less than six Forum Nokia
Champions, together with technical experts from the Symbian
community, either working on Symbian platform packages or third
party application development. With this book, you will benefit
from their combined knowledge and experience.
In this book, you will learn:
* How to port and make use of existing open source code to speed
up your development projects
* How to port applications from other popular mobile platforms to
the Symbian platform
* How to write code that is portable across multiple
platforms
* The APIs in the Symbian platform for cross-platform
development, such as support for standard C/C++ and Qt.
Tabella dei contenuti
About this Book.
Author Biographies.
Author’s Acknowledgements.
Symbian Acknowledgements.
1 Introduction.
1.1 What Is Porting?
1.2 What Is Portability?
1.3 Why Port to Mobile Platforms?
1.4 Why Get Interested Now?
1.5 Why Port to the Symbian Platform?
2 The Porting Process.
2.1 Choosing a Project.
2.2 Analyzing the Code.
2.3 Re-architecting.
2.4 Setting Up the Development Environment.
2.5 Integrating with the Symbian Build System.
2.6 Compiling.
2.7 Fixing Problems.
2.8 Running and Testing.
2.9 Debugging.
2.10 Re-integrating.
2.11 Summary.
3 Symbian Platform Fundamentals.
3.1 In the Beginning.
3.2 Naming Guidelines and Code Conventions.
3.3 Data Handling.
3.4 String Handling: Descriptors.
3.5 Error Handling and Memory Management.
3.6 Event-Driven Programming.
3.7 Writeable Static Data.
3.8 Multiple Inheritance.
3.9 Summary.
4 Standard APIs on the Symbian Platform.
4.1 P.I.P.S. Is POSIX on Symbian OS.
4.2 Open C.
4.3 The STLport, u STL and Open C++.
4.4 Which Version of Symbian OS?
4.5 How to Use the APIs.
4.6 Examples: Sound Touch and Sound Stretch.
4.7 Known Limitations, Issues and Workarounds.
4.8 Summary.
5 Writing Hybrid Code.
5.1 Popular APIs You Can’t Use Directly.
5.2 How to Create a Hybrid Port.
5.3 Example: Guitune.
5.4 Summary.
6 Other Port Enablers.
6.1 Real-time Graphics and Audio Libraries
6.2 Simple Direct Media Layer.
6.3 Open KODE.
6.4 Qt.
6.5 Summary.
7 Porting from Mobile Linux.
7.1 Major Players in the Mobile Linux Space.
7.2 Porting from Linux to Symbian.
7.3 Summary.
8 Porting from Microsoft Windows.
8.1 Architecture Comparison.
8.2 Application Compatibility.
8.3 Development Languages and SDKs.
8.4 SDKs and APIs.
8.5 Porting an Application.
8.6 Windows-specific Issues.
8.7 Signing and Security.
8.8 Porting from C# and .NET.
8.9 Summary.
9 Porting from Other Mobile Platforms.
9.1 Android.
9.2 BREW.
9.3 i Phone OS.
9.4 Summary.
10 Porting a Simple Application.
10.1 Selecting a Project.
10.2 Analyzing the Code.
10.3 Setting Up the Development Environment.
10.4 Integrating with the Symbian Build System.
10.5 Getting It to Compile.
10.6 Getting It to Work.
10.7 Extensions Specific to Mobile Devices.
10.8 Deploying and Testing on Target Hardware.
10.9 Re-integrating.
10.10 Summary.
11 Porting Middleware.
11.1 GDAL.
11.2 Qt.
11.3 Summary.
12 Porting a Complex Application.
12.1 Selecting a Project.
12.2 Analyzing the Code.
12.3 Re-architecting.
12.4 Setting Up the Development Environment.
12.5 Integrating with the Symbian Build System.
12.6 Getting It to Compile.
12.7 Re-writing the User Interface.
12.8 Testing and Debugging.
12.9 Re-integrating.
12.10 Summary.
13 The P.I.P.S. Architecture.
13.1 The Glue Code.
13.2 The Core Libraries.
13.3 The Backend.
13.4 Emulator Writeable Static Data Support.
13.5 Summary.
14 Security Models.
14.1 The Capability Model.
14.2 Process Identity.
14.3 Data Caging.
14.4 Code-Signing and Certification.
14.5 Certification and Platform Security.
14.6 Development Code.
14.7 Tool Support.
14.8 Symbian Platform Security Compared with Other Models.
15 Writing Portable Code and Maintaining Ports.
15.1 Recognizing Portable Code.
15.2 Design Strategies and Patterns.
15.3 Strategies for Maximizing the Number of Portable Modules.
15.4 Configuration Management.
15.5 Summary.
Appendix A Techniques for Out-of-Memory Testing.
References.
Index.
Circa l’autore
Mark Wilcox has been involved in handset development projects for Ericsson, Fujitsu, Nokia, Panasonic and Samsung. He has worked on everything from a GPRS stack, device drivers and a power management server to messaging applications and the code that draws the soft keys. While working as a Software Architect for Nokia’s Multimedia business unit, developing their flagship Nseries products, he developed an interest in the multimedia capabilities of Symbian OS, and drew on this experience when co-authoring Multimedia on Symbian OS: Inside the Convergence Device for Symbian Press in 2008.
Mark became interested in the open source development model while working on Linux-based set-top box products and has been actively attempting to improve the environment for free and open source software on Symbian OS ever since. He has successfully ported a number of application and middleware projects to Symbian OS, both open and closed source, and has written a paper about a recent port of Linux code to Symbian OS for the Symbian Developer Network.
An Accredited Symbian Developer and a Forum Nokia Champion in 2007.