Windows Phone Software and Hardware

.Windows Phone 8.0

Windows Phone 8.0, Fair Use

Windows Phone Software

"The term Windows Phone may refer to either Microsoft's proprietary smartphone operating system or the smartphone device which runs the operating system."

Microsoft announced Windows Phone 7.0 (WP 7.0) mobile operating system in February 2010 and released it in the United States in November 2010. Microsoft indicated the Windows Phone platform would supersede the Windows Mobile operating system. Windows Mobile had been Microsoft's mobile operating system since April 2000 and its core was based on the Windows CE kernel. Windows Phone 7.0 was also based on the Windows CE kernel, however other design differences between Windows Phone and Windows Mobile were numerous. The two operating systems were not compatible; applications designed for Windows Mobile would not run on Windows Phone.

Microsoft released Windows Phone 7.5 (WP 7.5) in September of 2011. At the time Microsoft's developers were working on operating system version 7.1 (OS 7.1). The Marketing division wanted the "entire package" to be called Windows Phone 7.5. So Microsoft released Windows Phone 7.5, with its operating system called OS 7.1. Windows Phone 7.5 was code named Mango and it did not show many differences in the user interface. However there were reportedly 470 changes in the Mango release. One of the most important was the support for multitasking. WP 7.5 is still being actively used by developers.

Microsoft released Windows Phone 8.0 (WP 8.0) in October 2012. WP 8.0 is still the current version as of September 2013. WP 8.0 had many changes, including the core being based on the Windows NT kernel. The NT kernel made Windows Phone 8.0 more compatible with Microsoft's Windows 8 operating system for desktop computers. WP 8.0 and Windows 8 now share the same NTFS file system, networking stack, and support for DirectX. Significant hardware changes were required for WP 8.0. This left WP 7.x devices unable to be updated to WP 8.0. Also new applications compiled specifically for WP 8.0 would not run on WP 7.x. However Microsoft did release a free WP 7.8 update for legacy devices which included some features present in WP 8.0.


Windows Phone Software Versions

"WP 7.0 and 8.0 releases correspond to OS versions 7.0 and 8.0. However the WP 7.5 release uses OS version 7.1."

  • The Windows Phone releases and operating system versions are shown in the following table.
Windows Phone Release Operating System Version Release Date
Windows Phone 8.0 Windows Phone OS 8.0 October 2012
Windows Phone 7.5 Windows Phone OS 7.1 September 2011
Windows Phone 7.0 Windows Phone OS 7.0 November 2010
  • Windows Phone versions are NOT backward compatible.
    • Apps that target OS 8.0 will not run on OS 7.1
    • However, apps that target OS 7.1 will also run on OS 8.0
New Software Features in Windows Phone 8.0
  • Some of the software changes included with Windows Phone 8.0 were:
    • Enhanced processor interaction with multi-core support
    • Support for multiple screen resolutions. In addition to WP 7's 800x400, added 1280x720 and 1280x768
    • Multitasking enhancements with the added ability for location-based apps to run in the background
    • Graphic API XNA was deprecated in favor of the DirectX API
    • Internet Explorer 9 was replaced with IE 10 which had a better engine for JavaScript
    • Added the availability of three different sizes for live tiles, instead of the previous one tile size
    • Built in technology to encrypt the entire device (operating system and data files)
    • Support for the UEFI secure boot protocol to better protect against malware
    • Full support for microSD cards.
Windows Phone 7.x and Windows Phone 8.0 Differences
  • Several differences exist between the WP 7.x and WP 8.0 versions. Some of the stand alone tools required in WP 7.x were incorporated into Visual Studio. Microsoft also changed some of the associated terminology:
    • WP 7.x Terminology: The App Hub is a Microsoft portal developers must join to submit apps to the Windows Phone Marketplace.
    • WP 8.0 Terminology: The Windows Phone Dev Center is a Microsoft portal developers must join to submit apps to the Windows Phone Store.

    • In WP 7.x the Zune software was required to connect a Windows Phone device to the development computer. Further, after starting the Zune software, the connection to the WP device was accomplished by using the Windows Phone Connect Tool which had to be invoked from the command line:  wpconnect.exe
    • In WP 8.0 the Zune software and Windows Phone Connect Tool are no longer needed. The logic is built into Visual Studio 2012 so you can simply plug the Windows Phone device into a USB port and Visual Studio will automatically make the connection.

    • In WP 7.x device capabilities were detected with the command-line Windows Phone Capability Detection Tool using the "capabilitydection" command. The command had to enter from the command line:  capabilitydetection   <path to Rules.xml>   <path to output folder>.
    • In WP 8.0 capabilities are detected in the GUI Windows Phone Store Test Kit.

    • In WP 7.x the Windows Phone manifest (WMAppManifest.xml) had to be changed with an XML editor. In WP 8.0 there is a GUI for making some changes to the manifest. However, even in WP 8.0 some manifest changes still need to be made with an XML editor.

    • The WP 7.x Software Development Kit (SDK 7.x) requires Windows Vista or higher to run. Further, the emulator requires a DirectX 10 or above capable graphics card with a WDDM 1.1 driver.
    • The WP 8.0 Software Development Kit (SDK 8.0) requires Windows 8 to run. Further, the Hyper-V emulator in SDK 8.0 requires Windows 8 Professional or Windows 8 Enterprise plus a SLAT compatible chipset.


,Windows Phone 8.0 Hardware

Windows Phone 8.0 Hardware, Fair Use

Windows Phone Hardware

"Microsoft is buying Nokia’s cellphone handset business as part of a $7.2 billion deal, the two companies announced Monday." (Seattle Times, 9/2/13)

Windows Phone 7.0 Minimum Hardware Requirements
  • Microsoft specified a minimum set of hardware requirements when it released Windows Phone 7.0 which included:
    • 256 MB RAM
    • 8 GB Flash Storage
    • Both cellular and Wi-Fi support
    • 800 x 480 WVGA
    • four-point multi-touch
    • common set of hardware buttons (back, start search)
    • A-GPS (Assisted-GPS fixes location faster, E911 requirement)
    • Accelerometer (Accelerometer is REQUIRED in Windows Phone)
Windows Phone 8.0 Minimum Hardware Requirements
  • Engadget published an article titled Windows Phone 8 Review which listed the minimum hardware requirements for Windows Phone 8.0 as:
    • Qualcomm Snapdragon S4 dual-core processor
    • Minimum 512 MB RAM for WVGA phones; minimum 1 GB RAM for 720p / WXGA
    • Minimum 4 GB flash memory
    • GPS and A-GNSS; GLONASS is supported if OEMs decide to include it
    • Support for micro-USB 2.0
    • 3.5mm stereo headphone jack with three-button detection support
    • Rear-facing AF camera with LED or Xenon flash, optional front-facing camera (both need to be VGA or better) and dedicated camera button
    • Accelerometer, proximity and ambient light sensors, as well as vibration motor (magnetometer and gyroscope are optional)
    • 802.11b/g and Bluetooth (802.11n is optional)
    • DirectX graphics hardware support with hardware acceleration for Direct3D using programmable GPU
    • Multi-touch capacitive touch screen with minimum of four simultaneous points
    • All Windows Phone 8.0 devices must include the same standard set of buttons: each one needs to have Start, back, search, power, and volume up / down keys.
Sensors
  • Windows Phones contain multiple sensors which enable such applications as motion-controlled games and augmented reality. Some data from multiple sensors are used together to programmatically create enhanced capabilities, as is the case with the Enhanced Motion API. However, all of Windows Phone sensors are not currently available to developer.

  • The following sensors can be accessed programmatically in WP 8.0:
    • Accelerometer (Required Sensor) - detects up, down, sideways movement.
    • A-GPS (Required Sensor) - satellite-based positioning system.
    • Compass (Optional Sensor) - orientation relative to magnet North pole.
    • Gyroscope (Optional Sensor) - detects rotational velocity along three primary axes (x,y,z).
  • The Motion API uses sensors in two different configurations:
    • Normal Motion - uses Accelerometer and Compass sensor data
    • Enhanced Motion - uses Accelerometer, Compass and Gyroscope sensor data
  • The Motion API combines the data from the sensors to determine the device's motion and attitude (pitch, yaw, roll).
.Attitude Illustration

NASA Illustration, Public Domain via Wikimedia Commons


Windows Phone Cameras

"Windows Phones no longer require cameras. The camera restriction was removed to allow phones to be built which would be acceptable in restricted areas."

  • While the Windows Phone hardware specifications do not require cameras, most Windows Phones do have cameras:
    • The WP 7.x primary camera is on the back and must be 5 MP or greater. It requires the ID_CAP_ISV_CAMERA capability.
    • Use of the front-facing camera requires the ID_HW_FRONTCAMERA capability.
    • The PhotoCamera class can be used for both the primary and the front-facing camera.
    • The PhotoCamera class enables shutter, auto-focus, flash, resolution.
    • WP 7.x has two APIs for creating camera-based applications:
      1. Windows Phone Camera API - used to take photos (flash mode, shutter button, etc).
      2. Silverlight 4 Webcam API - used to take video, webcam clips, and incorporate audio.


    Organic Light Emitting Diodes (OLED) Displays

    "An important design principle is to use a default dark color scheme if using an OLED display. OLED displays consume 50% less energy than LED displays when displaying dark scenes."

    • Organic Light Emitting Diodes (OLED) have been used in mobile phones since 2001. The technology continues to improve and now provides for thin, flexible, and durable screens.

    • OLED's are brighter than conventional LEDs, but typically have less lifetime (14,000 hours) compared to conventional LEDs (25,000 hours). Additionally, an OLED will consume around 50% of the power of an LCD displaying an image which is primarily black. However it can use over three times as much power to display an image with a white background. So an important design principle is to use a Dark Color Scheme for your application in order to conserve energy on OLED displays.
,Organic Light Emitting Diodes

Organic Light Emitting Diodes, Fair Use

Touch Input

"Windows Phone finger gestures include: tap, double-tap, tap-and-hold, pan, flick, pinch, stretch".

  • A Gesture is a finger movement on the touch screen used for input into an application. The gesture may be a tap, flick, double-tap, pinch and so on.

  • There are several ways for a program to accept touch input:
    1. Mouse Events - The simplest way to obtain single-finger touch input in your Windows Phone app is to use mouse events. Single-finger gestures are converted to an equivalent Windows Phone mouse event (MouseLeftButtonDown, MouseLeftButtonUp, MouseMove).
    2. UIElement Events - Most of the UIElements have access to the events raised by the three common single-finger gestures: tap, double-tap, and hold. UIElement is a base class for most of the objects that have visual appearance and can process basic input in Silverlight.
    3. Touch Class - The Touch class provides an application-level service that processes multi-touch input from the operating system and raises the FrameReported event. The FrameReported event is a low-level static event which is raised as touch interactions are happening. The event can access the number and location of touch points.
    4. Manipulation events - For complicated touch gestures that involve continuous motion (flick, pinch, stretch), three primary manipulation events can be used:
      • ManipulationStarted - occurs when an input device begins a manipulation on the UIElement object.
      • ManipulationDelta - occurs when the input device changes position during a manipulation.
      • ManipulationCompleted - occurs when a manipulation and inertia on the UIElement object is complete.

      These events don’t report the activity of individual fingers. Instead, they consolidate the activity of multiple fingers into translation, scaling, and velocity information.

Networking

"Two of the major cellular networks in the United States are GSM (AT&T and T-Mobile) and CDMA (Sprint, Verizon, others)."

  • For many applications, when a WP device comes within range of a Wi-Fi network, you want the phone to switch from the cellular network to the Wi-Fi. To accomplish this use the NetworkAvailabilityChanged event to listen network changes and the IsNetworkAvailable property to obtain the current state of the network connection.

  • The DeviceNetworkInformation class provides information about a device's network capabilities. It has the properties:
    • CellularMobileOperator - Determines the cellular mobile operator.
    • IsCellularDataEnabled - Indicates whether the network is cellular data enabled.
    • IsCellularDatRoamingEnabled - Indicates whether the data roaming is allowed on the network.
    • IsNetworkAvailable - Indicates network availability.
    • IsWiFiEnabled - Indicates whether the network is Wi-Fi enabled.
  • Two of the major cellular networks are GSM and CDMA:
    • Global Systems for Mobile Communications (GSM) - AT&T and T-Mobile
    • Code Division Multiple Access (CDMA) - Sprint, Verizon, others
  • The networking chips in Windows Phones 7.x support different network protocols:
    1. Broadcom 4329 - supports 802.11 a/b/g/n and Bluetooth.
    2. Broadcom 4325 - do not support 802.11 n and can not connect to routers for Internet sharing.
.Broadcom 4329

Broadcom 4329, Fair Use