Question # 1: Draw a tabular feature description of each API so far launched by Android (starting from API 10 –onwards)? Eliminate extra detailsAndroid 2.3.3–2.3.7 Gingerbread (API level 10)Version Release date Features2.3.3 February 9, 2011 • Several improvements and API fixes2.3.4 April 28, 2011 • Support for voice or video chat using Google Talk• Open Accessory Library support. Open Accessory was introduced in 3.1 (Honeycomb) but the Open Accessory Library grants 2.3.4 added support when connecting to a USB peripheral with compatible software and a compatible application on the device• Switched the default encryption for SSL from AES256-SHA to RC4-MD188.8.131.52 July 25, 2011 • Improved network performance for the Nexus S 4G, among other fixes and improvements• Fixed Bluetooth bug on Samsung Galaxy S• Improved Gmail application• Shadow animations for list scrolling• Camera software enhancements• Improved battery efficiency2.3.6 September 2, 2011• Fixed a voice search bug2.3.7 September 21, 2011 • Google Wallet support for the Nexus S 4GAndroid 3.0 Honeycomb (API level 11)Version Release date Features3.0 February 22, 2011 • Optimized tablet support with a new “holographic” user interface• Added System Bar, featuring quick access to notifications, status, and soft navigation buttons, available at the bottom of the screen• Added Action Bar, giving access to contextual options, navigation, widgets, or other types of content at the top of the screen• Simplified multitasking – tapping Recent Applications in the System Bar allows users to see snapshots of the tasks underway and quickly jump from one application to another• Redesigned keyboard, making typing fast, efficient and accurate on larger screen sizes• Simplified, more intuitive copy/paste interface• Multiple browser tabs replacing browser windows, plus form auto-fill and a new “incognito” mode allowing anonymous browsing• Quick access to camera exposure, focus, flash, zoom, front-facing camera, time-lapse, and other camera features• Ability to view albums and other collections in full-screen mode in Gallery, with easy access to thumbnails for other photos• New two-pane Contacts UI and Fast Scroll to let users easily organize and locate contacts• New two-pane Email UI to make viewing and organizing messages more efficient, allowing users to select one or more messages• Hardware acceleration• Support for multi-core processors• Ability to encrypt all user data• HTTPS stack improved with Server Name Indication (SNI)• Filesystem in Userspace (FUSE; kernel module)• Disallows applications from having write access to secondary storage (memory cards on devices with internal primary storage) outside of designated, application-specific directories. Full access to primary internal storage is still allowed through a separate application-level permission.Android 3.1 Honeycomb (API level 12)Version Release date Features3.1 May 10, 2011 • UI refinements• Connectivity for USB accessories (USB On-The-Go).• Expanded Recent Applications list• Resizable Home screen widgets• Support for external keyboards and pointing devices• Support for joysticks and gamepads• Support for FLAC audio playback• High-performance Wi-Fi lock, maintaining high-performance Wi-Fi connections when device screen is off• Support for HTTP proxy for each connected Wi-Fi access pointAndroid 3.2–3.2.6 Honeycomb (API level 13)Version Release date Features3.2 July 15, 2011 • Improved hardware support, including optimizations for a wider range of tablets• Increased ability of applications to access files on the SD card, e.g. for synchronization• Compatibility display mode for applications that have not been optimized for tablet screen resolutions• New display support functions, giving developers more control over display appearance on different Android devices3.2.1 September 20, 2011 • Bugfixes and minor security, stability and Wi-Fi improvements• Update to Android Market with automatic updates and easier-to-read Terms and Conditions text• Update to Google Books• Improved Adobe Flash support in browser• Improved Chinese handwriting prediction3.2.2 August 30, 2011 • Bugfixes and other minor improvements for the Motorola Xoom 4G3.2.3 • Bugfixes and other minor improvements for the Motorola Xoom and Motorola Xoom 4G3.2.4 December 2011 • "Pay as You Go" support for 3G and 4G tablets3.2.5 January 2012 • Bugfixes and other minor improvements for the Motorola Xoom and Motorola Xoom 4G3.2.6 February 2012 • Fixed data connectivity issues when coming out of airplane mode on the US 4G Motorola XoomAndroid 4.0–4.0.2 Ice Cream Sandwich (API level 14)Version Release date Features4.0 October 18, 2011 • Major refinements to the "Holo" interface with new Roboto font family• Soft buttons from Android 3.x are now available for use on phones• Separation of widgets in a new tab, listed in a similar manner to applications• Easier-to-create folders, with a drag-and-drop style• Improved visual voicemail with the ability to speed up or slow down voicemail messages• Pinch-to-zoom functionality in the calendar• Integrated screenshot capture (accomplished by holding down the Power and Volume-Down buttons)• Improved error correction on the keyboard• Ability to access applications directly from lock screen• Improved copy and paste functionality• Better voice integration and continuous, real-time speech to text dictation• Face Unlock, a feature that allows users to unlock handsets using facial recognition software• Automatic syncing of browser with users' Chrome bookmarks• Data Usage section in settings that lets users set warnings when they approach a certain usage limit, and disable data use when the limit is exceeded• Ability to shut down applications from the recent apps list with a swipe.• Improved camera application with zero shutter lag, time lapse settings, panorama mode, and the ability to zoom while recording• Built-in photo editor• New gallery layout, organized by location and person• Refreshed "People" application with social network integration, status updates and hi-res images• Android Beam, a near-field communication feature allowing the rapid short-range exchange of web bookmarks, contact info, directions, YouTube videos and other data• Support for the WebP image format• Hardware acceleration of the UI• Wi-Fi Direct• 1080p video recording for stock Android devices• Android VPN Framework (AVF), and TUN (but not TAP) kernel module. Prior to 4.0, VPN software required rooted Android.4.0.1 October 21, 2011 • Fixed minor bugs for the Samsung Galaxy Nexus.4.0.2 November 28, 2011 • Fixed minor bugs on the Verizon Galaxy Nexus, the US launch of which was later delayed until December 2011.Android 4.0.3–4.0.4 Ice Cream Sandwich (API level 15)Version Release date Features4.0.3 December 16, 2011 • Numerous bugfixes and optimizations• Improvements to graphics, databases, spell-checking and Bluetooth functionality• New APIs for developers, including a social stream API in the Contacts provider• Calendar provider enhancements• New camera applications enhancing video stabilization and QVGA resolution• Accessibility refinements such as improved content access for screen readers4.0.4 March 29, 2012 • Stability improvements• Better camera performance• Smoother screen rotation• Improved phone number recognitionAndroid 4.1–4.1.2 Jelly Bean (API level 16)Version Release date Features4.1 July 9, 2012 • Smoother user interface:• Vsync timing across all drawing and animation done by the Android framework, including application rendering, touch events, screen composition and display refresh• Triple buffering in the graphics pipeline• Enhanced accessibility• Bi-directional text and other language support• User-installable keyboard maps• Expandable notifications• Ability to turn off notifications on an application-specific basis• Shortcuts and widgets can automatically be re-arranged or re-sized to allow new items to fit on home screens• Bluetooth data transfer for Android Beam• Tablets with smaller screens now use an expanded version of the interface layout and home screen used by phones.• Improved camera application• Multichannel audio• The Fraunhofer FDK AAC codec becomes standard in Android, adding AAC 5.1 channel encoding/decoding• USB audio (for external sound DACs)• Audio chaining (also known as gapless playback)• Ability for other launchers to add widgets from the application drawer without requiring root access4.1.1 July 11, 2012 • Fixed a bug on the Nexus 7 regarding the inability to change screen orientation in any application4.1.2 October 9, 2012 • Lock/home screen rotation support for the Nexus 7• One-finger gestures to expand/collapse notifications• Bugfixes and performance enhancementsAndroid 4.2–4.2.2 Jelly Bean(API level 17)Version Release date Features4.2 November 13, 2012 • Lock screen improvements, including widget support and the ability to swipe directly to camera• Notification power controls ("Quick Settings")• "Daydream" screensavers, showing information when idle or docked• Multiple user accounts (tablets only)• Rewritten Bluetooth stack, switching from Bluez to Broadcom open source BlueDroid, allowing improved support for multiple displays and wireless display (Miracast)• Native right-to-left, always-on VPN and application verification. A new NFC stack was added at the same time.• Accessibility improvements: triple-tap to magnify the entire screen, pan and zoom with two fingers. Speech output and Gesture Mode navigation for blind users• New clock application with built-in world clock, stop watch and timer• All devices now use the same interface layout, previously adapted from phones on 4.1 for smaller tablets (with centered software buttons, the system bar at the top of the screen, and a home screen with a dock and centered application menu), regardless of screen size• Increased number of extended notifications and Actionable Notifications for more applications, allowing users to respond to certain notifications within the notification bar and without launching the application directly• SELinux• Premium SMS confirmation• Group Messaging4.2.1 November 27, 2012• Fixed a bug in the People application where December was not displayed on the date selector when adding an event to a contac• Added Bluetooth gamepads and joysticks as supported HID (Human interface device)4.2.2 February 11, 2013• Fixed Bluetooth audio streaming bugs• Long-pressing the Wi-Fi and Bluetooth icons in Quick Settings now toggles the on/off state• New download notifications, which now shows the percentage and estimated time remaining for active application downloads• New sounds for wireless charging and low battery• New Gallery application animation allows faster loading• USB debug whitelist• Bugfixes and performance enhancementsAndroid 4.3–4.3.1 Jelly Bean(API level 18)Version Release date Features4.3 July 24, 2013 • Bluetooth low energy support• Bluetooth Audio/Video Remote Control Profile (AVRCP) 1.3 support• OpenGL ES 3.0 support, allowing for improved game graphics• Restricted access mode for new user profiles• Filesystem write performance improvement by running fstrim command while device is idle• Dial pad auto-complete in the Phone application• Volume for incoming calls (ringtone) and notification alerts is no longer adjustable separately• Improvements to Photo Sphere• Reworked camera UI, previously introduced on Google Play edition phones• Addition of "App Ops", a fine-grained application permissions control system (hidden by default)• 4K resolution support• Many security enhancements, performance enhancements, and bugfixes• System-level support for geofencing and Wi-Fi scanning APIs• Background Wi-Fi location still runs even when Wi-Fi is turned off• Developer logging and analyzing enhancements• Added support for five more languages• Changed digital rights management (DRM) APIs• Right-to-left (RTL) languages now supported• Clock in the status bar disappears if clock is selected as lockscreen widget4.3.1 October 3, 2013 • Bugfixes and small tweaks for the Nexus 7 LTEAndroid 4.4–4.4.4 KitKat (API level 19)Version Release date Features4.4 October 31, 2013 • Refreshed interface with white elements instead of blue• Clock no longer shows bold hours; all digits are thin. The H, M, and S markings for the stopwatch and timer have been removed, leaving just the numbers.• Ability for applications to trigger translucency in the navigation and status bars• Ability for applications to use "immersive mode" to keep the navigation and status bars hidden while maintaining user interaction• Action overflow menu buttons are always visible, even on devices with a "Menu" key, which was officially deprecated by Android 4.0.• Restriction for applications when accessing external storage, except for their own directories• Optimizations for performance on devices with lower specifications, including zRAM support and "low RAM" device API• Wireless printing capability• NFC host card emulation, enabling a device to replace smart cards• WebViews now based on Chromium engine (feature parity with Chrome for Android 30)• Expanded functionality for notification listener services• Public API for developing and managing text messaging clients• Storage Access Framework, an API allowing apps to retrieve files in a consistent manner. As part of the framework, a new system file picker allows users to access files from various sources (including those exposed by apps, such as online storage services).• New framework for UI transitions• Sensor batching, step detector and counter APIs• Settings application now makes it possible to select default text messaging and home (launcher) application• Audio tunneling, audio monitoring and loudness enhancer• Built-in screen recording feature (primarily for developers, as usage of ADB is required)• Native infrared blaster API• Expanded accessibility APIs and system-level closed captioning settings• Android Runtime (ART) introduced as a new experimental application runtime environment, not enabled by default, as a replacement for the Dalvik virtual machine• Bluetooth Message Access Profile (MAP) support• Disabled access to battery statistics by third-party applications• Settings application no longer uses a multi-pane layout on devices with larger screens• Wi-Fi and mobile data activity (TX/RX) indicators are moved to quick settings• Disables text wrapping in the WebView browser component4.4.1 December 5, 2013 • Improvements to auto focus, white balance and HDR+ for the Nexus 5 camera• Better application compatibility for the experimental Android Runtime (ART)• Camera application now loads Google+ Photos instead of Gallery when swiping away from the camera view• Miscellaneous improvements and bugfixes4.4.2 December 9, 2013 • Further security enhancements and bugfixes• Removal of the "App Ops" application permissions control system, introduced in Android 184.108.40.206 June 2, 2014 • Refreshed Dialer app interface• Updated the Chromium-based WebView to version 33 (screencasting to DevTools, HTML5 Canvas hardware acceleration performance improvements, vibration API, HTML5 form validation, HTML5 datalist)• Miscellaneous improvements and bugfixes4.4.4 June 19, 2014 • CVE-2014-0224 fixed, eliminating an OpenSSL man-in-the-middle vulnerabilityAndroid 4.4W–4.4W.2 KitKat, with wearable extensions (API level 20)Version Release date Features4.4W June 25, 2014 • Initial release of Android Wear platform for smartwatches: the same as Android 4.4 "KitKat", but with wearable extensions added4.4W.1 September 6, 2014 • UI updates for Google Maps navigation and alarms4.4W.2 October 21, 2014 • Offline music playback• GPS supportAndroid 5.0–5.0.2 Lollipop (API level 21)Version Release date Features5.0 November 12, 2014 • Android Runtime (ART) with ahead-of-time (AOT) compilation and improved garbage collection (GC), replacing Dalvik that combines bytecode interpretation with trace-based just-in-time (JIT) compilation• Support for 64-bit CPUs• OpenGL ES 3.1 and Android Extension Pack (AEP) on supported GPU configurations• Recent activities screen with tasks instead of applications, up to a configured maximum of tasks per application• Vector drawables, which scale without losing definition• Support for print previews• Material design, bringing a restyled user interface• Refreshed lock screen, no longer supporting widgets• Refreshed notification tray and quick settings pull-down• Project Volta, for battery life improvements• Searches can be performed within the system settings for quicker access to particular settings• Lock screen provides shortcuts to application and notification setting.• Guest logins and multiple user accounts are available on more devices, such as phones.• Audio input and output through USB devices• Third-party applications regain the ability to read and modify data located anywhere on external storage, such as on SD cards.• Pinning of an application's screen for restricted user activity.• Recently used applications are remembered even after restarting the device.• WebViews receive updates independently through Google Play for security reasons, instead of relying on system-wide vendor updates• Addition of 15 new languages: Basque, Bengali, Burmese, Chinese (Hong Kong), Galician, Icelandic, Kannada, Kyrgyz, Macedonian, Malayalam, Marathi, Nepali, Sinhala, Tamil and Telugu• Tap and Go allows users to quickly migrate to a new Android device, using NFC and Bluetooth to transfer Google Account details, configuration settings, user data and installed applications• A flashlight-style application is included, working on supported devices with a camera flash.• User-customizable priorities for application notifications.• Smart lock feature• Updated emoji5.0.1 December 2, 2014 • A few bugfixes, including resolving issues with video playback and password failures handling5.0.2 December 19, 2014 • Fixes a bug with TRIM support, which prevented devices from the nightly on-charger cleanups of file system allocations if the device was turned off while being charged, or if it was charged during the day.• Changes how alarms wake the CPU, and how alarms compete for system resources.Android 5.1–5.1.1 Lollipop(API level 22)Version Release date Features5.1 March 9, 2015 • Ability to join Wi-Fi networks and control paired Bluetooth devices from quick settings• Official support for multiple SIM cards• Device protection: if a device is lost or stolen it will remain locked until the owner signs into their Google account, even if the device is reset to factory settings.• High-definition voice calls, available between compatible devices running Android 5.1• Improvements to the notification priority system, to more closely replicate the silent mode that was removed in Android 220.127.116.11.1 April 21, 2015 • Various bugfixesQuestion # 2: Write a short note on “Many Devices, One Application”, Chapter 07 of Beginning Android Programming Develop and Design by Kevin Grant and Chris Haseman? (200 words only)Android devices have hundreds of different hardware configurations, from advanced TVs to very basic phones. Writing an application that runs perfectly across the whole spectrum can seem like a daunting task. Android, fortunately, provides many tools to handle the ecosystem on which it runs.Using FoldersLayout resource folders will be the first technique at your disposal, and it also happens to be one of the most effective. Android will pick layout files from a folder that matches the hardware configuration closest to the one it’s running on. Using this technique, you can define multiple screen layouts for any number of different hardware configurationsAndroid allows you to specify different layout folders for various hardware screen configurations. Since both solutions require a layout-land folder, let’s create it now. Inside your resources folder (res/), create a new folder named layout-land. Since resource folders are ordered alphabetically, this folder should show directly below the layout folder.Create a new layout file inside the layout-land resource folder, and name it the same as the layout file you wish to replace in the layout folder. For example, in our project, both of these files are named activity_main.xml. With this extra layout file in the layout-land folder, Android will use the appropriate layout automatically when the device is in landscape mode, no code required!Using for small changesThe <include> tag is a fantastic way to pull out small portions of your screen that you’d like to tweak and lay outseparately. This is the scalpel method. You cut out only the portions you want to render differently, you split them into folder-separated layouts, and you’re finished. Which, in this case, is a perfect way to excise the buttons and have them render differently depending on the screen orientation.Supporting Different LanguagesIt’s always a good practice to extract UI strings from our app code and keep them in an external file. Android makes this easy with a resources directory in each Android project.If you created your project using the Android SDK Tools, the tools create a res/ directory in the top level of the project. Within this res/ directory are subdirectories for various resource types. There are also a few default files such as res/values/strings.xml, which holds your string values.Supporting Different ScreensLots. You can add suffixes to layout folders to account for just about everything. Here are a few I use on a regular basis:• layout-small, layout-normal, layout-large, layout-xlargeThe size modifier accounts for the physical size of the screen. Devices that would use the small layout folder are typically very old or very strange pieces of hardware, at least until Android-powered watches become popular. Most modern phones fit the layout-normal category, while many tablets are considered xlarge. layout-ldpi, layout-mdpi, layout-hdpi, layout-xhdpi, layout-sw600dpThe dpi, or dots per inch, of the device is a measurement of screen density. Screens with high densities (240 dpi) would pull from the layout folder layout-hdpi. Devices whose smallest width (sw) is 600dp or greater would pull from the layout-sw600dp folder, which is the generally accepted qualifier for 7-inch tablets such as the Nexus 7. layout-large-hdpi-landYou can also mix and match the suffixes. This suffix would be used for phones that have large screens and high resolution and that are in landscape mode. Get creative, but remember that just because you can get very specific about screen configurations, it doesn’t mean you should.The layouts must share the same name.Android can only find the layout XML by name. As long as the layout files have the exact same filename, it will locate the version in your landscape (or any other) folder.Make sure that the IDs for your individual views are consistent.Debugging layout issues across many linked layout files can be exhausting (I’ve done it), so keep your layouts as stretchy and dynamic as you possibly can. If your designs are done well, they should be able to handle many screen resolutions automatically with good use of linear and relative layouts.Using SDK Versionwe can also declare which versions of the SDK our application supports. we do this by declaring <uses-sdk> in our manifest.Like we define a min and max sdk version for an application<uses-sdkandroid:maxSdkVersion="14"android:minSdkVersion="9" />In the Android documentation, each class and method has a small gray label reading “Since: API Level #” on theright-hand side. If that number is higher than the system you’d like to support, you may need to re-evaluate using that class or method. You can always find out which SDK your device is running by checkingandroid.os.Build.Version.SDK.Question # 3: Write down about any 5 famous Android apps launched in 2015? Write each app’s functionality in four to five lines?Layout from InstagramInstagram’s photo collage app Layout is now available on Android, after launching on iOS back in March. Layout for Android allows users to combine multiple pictures from their camera roll and bring them together to create a collage. The app also lets users edit photos in the app, and duplicate photos if needed.Caustic 3Create your rack by adding up to 14 machines from a choice of Effects rack supporting 2 effects per machine. (16 effect types).Mixer desk with global Delay/Reverb effectsMaster section with parametric EQ and limiter.Song sequencerWiFi MapperAfter WiFiMapper for iOS received more than 155,000 downloads in the first two months of its launch, the app is now available on Android. While the Android version is mostly the same as its iOS counterpart, it offers a few additional features. In addition to finding WiFi hotspots, users can view the Wi-Fi hotspots they’ve linked to, and see how much time they spent on those networks.ThreemaThreema might look like any other messaging app, but it's got privacy and security at its heart. It has all the standard features you'd expect, including group chats, the ability to share images, videos and voice messages and even a few extra features like support for QR codes and group polls.But everything you send and receive, including media, is encrypted and Threema's servers store as little information as possible, with contacts lists managed from your own device and messages deleted from the servers as soon as they've been delivered.If that's not enough it also allows you to communicate anonymously, for the full experience of feeling like you're in a really boring spy movie.Calibre CompanionIf you've got a huge collection of ebooks, then Calibre Companion is definitely worth the asking price. It helps you organise your digital library and displays all of your ebooks in an attractive interface that makes it easy to find what you're looking for.You can add and remove ebooks via Wi-Fi to ensure you have all the books you need on your portable device.Question # 4: "Why wouldn't my phone have the newest Android version? Can't I just update it?" What possible chain is being followed in Pakistan? (as explained in Lecture 01)The “open” nature of Android, the vast differences in hardware across the entire ecosystem, not to mention the large number of moving parts required to get most updates pushed to users, all contribute to the lengthy delays we’ve come to know and hate.Android phones have a different hardware requirements. The main hardware platform for Android is the ARM architecture (ARMv7 and ARMv8-A architectures), with x86 and MIPS architectures also officially supported (the latter two became officially supported in later Android versions)Android also used in different devices like televisions, refigrators.In addition to running on smartphones and tablets, several vendors run Android natively on regular PC hardware with a keyboard and mouse.Why not Update itThe only true solution to the Android update problem is a change in mindset, or if that doesn’t work, a change of handset. Android will never be able to offer across-the-board updates like Apple does -- it’s technically impossible for the wide variety of reasons we’ve already covered.To make Android work on their hardware, device manufacturers must write Android device drives for their hardware. These are often closed-source, so device manufacturers have to update them on their own. Google can’t just release a new version of Android that works on all devices – manufacturers have to update the drivers to work with newer versions of Android.Android smartphone manufacturers are also beholden to cell phone carriers, who can delay updates by months on their networks. While Apple has the muscle to overrule carriers and roll out new versions of their operating system, Android phone manufacturers do not.Some new versions of Android come with increased hardware requirements. This prevents them from working on holder devices – the same is true in the iPhone and Windows Phone worlds, where new operating systems occasionally drop support for older devices.Question # 5: Is there any famous Pakistani Android app in Play Store (other than AndroidGames)? Also elaborate its features.OLX Free ClassifiedsBuy and sell everything you want NOW!• Selling is easy: Take a picture with your mobile, describe your product and sell in one click.• If you are looking for a specific item to buy, OLX is the best app for you! Thanks to the categories and your geo localization.• With OLX there is no intermediary, get in touch directly with the seller through messaging, phone call or SMS!• Manage your posts or favorites directly with “My OLX”• Share your posts or favorite posts in your favorite social Medias.