Datasheet

10
CHAPTER 1 WHAT’S NEW IN WINDOWS PHONE 7
for CPU intensive code and media processing code. In addition, when someone ports C/C++ code
from another platform, it’s natural to wrap the existing code into native libraries instead of porting
it to Java code.
On WP7, developers aren’t allowed to write native code; only managed code is allowed. In addition,
only subsets of the general Silverlight APIs and XNA APIs are supported on WP7. However, phone
makers have the means to inject some native code into the system and use it in their applications
by using COM (Component Object Model) interop. Microsoft provided a special SDK (not to be
confused with the publicly available SDK for WP7 application development) for phone makers,
so that they can develop native COM DLLs with a limited set of native Windows CE APIs, and
use them in their applications. Those COM DLLs are treated as part of the operating system.
Unfortunately, mobile developers don’t have access to the special SDK.
Table 1-1 shows system level comparisons between the three operating systems.
TABLE 1-1: System Level Comparisons
ITEMS IOS ANDROID WP7
Kernel Mach kernel in Mac OS X Linux kernel Windows CE 6
Supported CPU
architecture
ARM ARM, X86 ARM
Memory model Paging, no disk-backed
backing store
Paging, SD-card
swap space optional
Paging, no swap
space
OS low-memory
management
Yes Yes Yes
Managed run time No Dalvik Java run time .NET Framework
Common Language
Runtime (CLR)
Application
sandbox
Yes Yes Yes
Cross-application
communication
Limited, using custom URL Intent, Broadcast
Receiver, Content
Provider, and Service
Launchers and
chooser
Application Framework
Understanding the differences between the application frameworks of these three major operating
systems is critical to cross-platform application development.
iOS applications are built on top of the Cocoa Touch layer, which consists of Objective-C application
frameworks like UIKit, Game Kit, Map Kit, and iAd. The Cocoa Touch layer provides a rich set of UI
C01.indd 10C01.indd 10 7/7/11 11:17:42 PM7/7/11 11:17:42 PM