Friday, 30 August 2013


Xcode 4.6 Release Notes

New Features

General

  • SDKs:
    • OS X SDK 10.8
    • iOS SDK 6.1
  • Device support (added):
    • iPad mini
    • iPad with Retina display (4th generation)

Enhancements

Compiling:

  • LLVM: New compiler warnings to help find subtle behavioral bugs when using automatic release counting (ARC) and weak references.
  • LLVM: Support for the C++11 user defined literals and unrestricted unions.
  • LLVM: Advanced optimization to merge disjoint stack objects and to reduce the size of allocated stack memory.
  • LLVM: The Type-Based Alias Analysis (TBAA) code optimization is enabled by default.
    You can disable this optimization with the llvm -fno-strict-aliasing option.
    In Xcode projects, the Enforce Strict Aliasing build setting controls this capability.
  • LLVM: Support for Microsoft-style inline assembly for i386 and x86_64.
  • LLVM: Static analyzer supports deeper cross-function analysis of C++ and Objective-C code.
  • otool: Support for disassembly of Intel AVX instructions.
  • otool: Precisely decodes all instructions and skips over data entries in text segments.

Debugging

  • Xcode UI: Inspects elements of NSArray and NSDictionary objects.
  • LLDB: Reads metadata from the Objective-C runtime.
  • LLDB: Improves support for stepping over inlined functions.
  • LLDB: Prints function argument information in backtraces by default.
  • LLDB: Supports “thread return,” the temporary breakpoint command, and a variety of aliases to add common GDB shortcuts.

Changes

General

  • DEPRECATED: LLVM-GCC compiler and GDB debugger.
    Xcode 4.6 is the last release to include the LLVM-GCC compiler and the GDB debugger.
    Use the LLVM compiler and the LLDB debugger, and file reports at https://bugreport.apple.com for issues that require the use of LLVM-GCC or GDB.
  • DEPRECATED: Package Maker app.
    Use the productbuild command to create installer packages
  • DEPRECATED: ATS.framework (OS X SDK 10.8).
    The use of the ATS API produces compilation warnings.
    In OS X v10.8 there is no loss of functionality, but there could be areas where performance degrades.
    Replace ATS code (including ATSUI) with Core Text calls (see Core Text Programming Guide for details).

Xcode 4.6.1 Release Notes

New Features

General

  • SDKs:
    OS X SDK 10.8.3 (13130441)

Resolved Issues

Compiling

  • Crash on launch on OS X v10.6 with apps using ARC built with Xcode 4.6. (13129783)

Accessing Help and Documentation

  • Documentation doc set update fails with the message:
    • Install path <path_1> points to a different documentation package <path_2> than expected <path_3>
    13292012.

Known Issues

Accessing Help and Documentation

  • More than one Xcode doc set listed in the Documentation organizer. 13207501
To address this issue delete any Xcode doc set whose version number is earlier than 509.12 from Documentation preferences:
  1. Open the Xcode preferences window, and click the Downloads button to display Downloads preferences.
  2. Click the Documentation button.
  3. Select an Xcode doc set (titled “Xcode ...”).
  4. Reveal the doc set info by clicking the Show Doc Set Info button (to the left of the + button).
  5. If the version of the doc set is earlier than 509.12, delete the doc set by clicking the Remove (–) button.

Changes

Building: Kernel Extensions

  • Kernel extensions (kexts) built with Xcode 4.6.1 and 4.6.2 fail to load on OS X 10.6 and 10.7, and this error message appears in the console:
    • kernel: kxld: The Mach-O file is malformed: Invalid segment type in MH_KEXT_BUNDLE kext: 42
To build kexts that load on OS X 10.6 and 10.7, on the targets that build the kexts, set the OS X Deployment Target build setting to OS X 10.6. 13645170

Resolved Issues

General

  • Implemented stability fixes. 13518419, 13518436, 13518436, 13518526, 13611415

New Issues

Code Signing: Kernel Extensions

  • If you build code signed kexts on OS X 10.8.3 (you turn on code signing in the target that builds the kext), that kext fails to load on OS X 10.7.x and earlier, and this error message appears in the console:
    • kernel: kxld: The Mach-O file is malformed: Invalid segment type in MH_KEXT_BUNDLE kext: 29
    Workarounds:
    • To build an unsigned kext that loads in OS X 10.7.x and earlier, in the target that builds the kext, set the Code Signing Identity build setting to Don’t Code Sign.
      If you need to build signed and unsigned versions of the kext, you can have in your project separate targets that build the same kext, one configured to code sign the kext and the other configured not to sign it.
    • To build a signed kext that loads in OS X 10.7.x and earlier, code sign the kext on a Mac running OS X 10.8.2 or earlier. 13428950

Known Issues

Building

  • When building a product previously built with Xcode 4.6.1 or earlier, the build fails with an error similar to this one:
    • PCH file built from a different branch ((clang-425.0.27)) than the compiler ((clang-425.0.28))
    To address this issue, choose Product > Clean before building your product. 13663167

Task


The reuse of components of other applications leads to the concept of a task in Android; an application can reuse other Android components to archive a task. For example you can trigger from your application another application which has itself registered with the Android system to handle photos. In this other application you select a photo and return to your application to use the selected photo.                                   

Android platform components

The Android system is a full software stack which is typically defined into the following four areas.
  • Applications - The Android Open Source project contains several default application, like the Browser, Camera, Gallery, Music, Phone and more.
  • Application framework - API which allow for high-level interaction with the Android system from Android applications.
  • Libraries and runtime - Libraries for the Application Framework for many functions (graphic rendering, data storage, web browsing, etc.) and the Dalvik runtime and the core Java libraries for running Android applications.
  • Linux kernel - Communication layer for the underlying hardware.

This architecture is despited in the following graphic.

Android software layers


The developer typically works with the top two layers to create new Android applications. The Linux kernel, the libraries and the runtime is encapsulated by the Application framework.                                   

 What is Android?


 Android Operation System

Android is an operating system based on the Linux Operating System.The project responsible for developing the Android system is called the Android Open Source Project (AOSP) and is primarily lead by Google.
The Android system supports background processing, provides a rich user interface library, supports 2-D and 3-D graphics using the OpenGL libraries, access to the file system and provides an embedded SQLite database.
Android applications consist of different components and can reuse components of other applications.