• Save
Android
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Android

on

  • 4,260 views

Brief presentation on why developers need to develop on Android

Brief presentation on why developers need to develop on Android

Statistics

Views

Total Views
4,260
Views on SlideShare
4,169
Embed Views
91

Actions

Likes
6
Downloads
0
Comments
0

3 Embeds 91

http://www.ravivyas.com 70
http://www.linkedin.com 18
https://www.linkedin.com 3

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

CC Attribution-ShareAlike LicenseCC Attribution-ShareAlike License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • Answer from Google , my addition – opensourceAdvantage of open source : better understanding , better code , more & better reuse - I extended an AsyncTask Class to make it a Async HTTP Class which handled all the network interaction
  • Answer from Google , my addition – opensourceAdvantage of open source : better understanding , better code , more & better reuse - I extended an AsyncTask Class to make it a Async HTTP Class which handled all the network interactionmajority of the Android software is licensed with Apache 2.0. there may be exceptions which will be handled on a case-by-case basis. For example, the Linux kernel patches are under the GPLv2 license with system exceptions, which can be found on kernel.org.The Apache License requires preservation of the copyright notice and disclaimer, but it is not a copyleft license — it allows use of the source code for the development of proprietary software as well as free and open source software. The GPL is the first copyleft license for general use, which means that derived works can only be distributed under the same license terms.Repo is a tool that Google built on top of Git. Repo helps us manage the many Git repositories
  • Answer from Google
  • SQLite is an ACID-compliant embedded relational database management system contained in a relatively small (~275 kB)[4] C programming library. The source code for SQLite is in the public domain[1][5] and implements most of the SQL standard. In contrast to other databases, SQLite is not a separate process that is accessed from the client application, but an integral part of it.SQLite uses a dynamically and weakly typed SQL syntax that does not guarantee the domain integrity. SQLite is a multitasking database concerning reads. Writes can be done only one-at-a-time. It is a popular choice for local/client storage on web browsers. It has many bindings to programming languages. It is arguably the most widely used database engine, as it is used today by several widespread browsers, operating systems, embedded systems among others.[6]
  • Android will ship with a set of core applications including an email client, SMS program, calendar, maps, browser, contacts, and others. All applications are written using the Java programming language.:::Application Framework:::By providing an open development platform, Android offers developers the ability to build extremely rich and innovative applications. Developers are free to take advantage of the device hardware, access location information, run background services, set alarms, add notifications to the status bar, and much, much more. Developers have full access to the same framework APIs used by the core applications. The application architecture is designed to simplify the reuse of components; any application can publish its capabilities and any other application may then make use of those capabilities (subject to security constraints enforced by the framework). This same mechanism allows components to be replaced by the user.Underlying all applications is a set of services and systems, including:A rich and extensible set of Views that can be used to build an application, including lists, grids, text boxes, buttons, and even an embeddable web browserContent Providers that enable applications to access data from other applications (such as Contacts), or to share their own dataA Resource Manager, providing access to non-code resources such as localized strings, graphics, and layout filesA Notification Manager that enables all applications to display custom alerts in the status barAn Activity Manager that manages the lifecycle of applications and provides a common navigation backstack:::Libraries:::Android includes a set of C/C++ libraries used by various components of the Android system. These capabilities are exposed to developers through the Android application framework. Some of the core libraries are listed below:System C library - a BSD-derived implementation of the standard C system library (libc), tuned for embedded Linux-based devicesMedia Libraries - based on PacketVideo'sOpenCORE; the libraries support playback and recording of many popular audio and video formats, as well as static image files, including MPEG4, H.264, MP3, AAC, AMR, JPG, and PNGSurface Manager - manages access to the display subsystem and seamlessly composites 2D and 3D graphic layers from multiple applicationsLibWebCore - a modern web browser engine which powers both the Android browser and an embeddable web viewSGL - the underlying 2D graphics engine3D libraries - an implementation based on OpenGL ES 1.0 APIs; the libraries use either hardware 3D acceleration (where available) or the included, highly optimized 3D software rasterizerFreeType - bitmap and vector font renderingSQLite - a powerful and lightweight relational database engine available to all applications:::Runtime:::Android includes a set of core libraries that provides most of the functionality available in the core libraries of the Java programming language.::Linux kernel:::Android relies on Linux version 2.6 for core system services such as security, memory management, process management, network stack, and driver model. The kernel also acts as an abstraction layer between the hardware and the rest of the software stack. Why Linux kernel? : Great memory and process management , permission based security model ( each android app has its own userID) , Already open source
  • Every Android application runs in its own process, with its own instance of the Dalvik virtual machine. Dalvik has been written so that a device can run multiple VMs efficiently. The Dalvik VM executes files in the Dalvik Executable (.dex) format which is optimized for minimal memory footprint. The VM is register-based, and runs classes compiled by a Java language compiler that have been transformed into the .dex format by the included "dx" tool.Own instance = added security , sandboxingThe Dalvik VM relies on the Linux kernel for underlying functionality such as threading and low-level memory management.
  • That is, each application, by default, has access only to the components that it requires to do its work and no more. This creates a very secure environment in which an application cannot access parts of the system for which it is not given permission.
  • That is, each application, by default, has access only to the components that it requires to do its work and no more. This creates a very secure environment in which an application cannot access parts of the system for which it is not given permission.
  • On the Java platform, a manifest file is a specific file contained within a JAR archive[1]. It is used to define extension and package related data. It is a metadata file that contains name-value pairs organized in different sections. If a JAR file is intended to be used as an executable file, the manifest file specifies the main class of the application. The manifest file is named MANIFEST.MF.
  • On the Java platform, a manifest file is a specific file contained within a JAR archive[1]. It is used to define extension and package related data. It is a metadata file that contains name-value pairs organized in different sections. If a JAR file is intended to be used as an executable file, the manifest file specifies the main class of the application. The manifest file is named MANIFEST.MF.
  • Everything is free 
  • Live demoLoad eclipse Create new projectCreate new AVDRun project
  • Blrdroid holds regular meetups and hands on sessions.
  • Blrdroid holds regular meetups and hands on sessions.
  • Blrdroid holds regular meetups and hands on sessions.

Android Presentation Transcript

  • 1. Introduction to Android
    -Ravi Vyas
  • 2. History of Android - Origins 
    • Android, Inc. was founded in Palo Alto, California, United States in October, 2003
    • 3. Google acquired Android Inc. in August, 2005
    • 4. On the November 5, 2007 the Open Handset Alliance(OHA), a consortium of several companies unveiled itself.
  • History of Android - Growth 
    • Market share has been growing at an incredible pace.
    • 5. Market share jumped from 4.7% in Q42009 to 33% in Q42010
    • 6. As of March 2011 Android Market Share Now 1 of Every 3 US Phones.
    • 7. Android Device activations grew from 60,000 device activations/day in Feb 2010 to 350,000 device activations/day in March 2011.
    • 8. Android is now the world's second largest OS after windows
  • History of Android - Version
    • 1.0 : Released 23 September 2008
    • 9. 1.1 :On 9 February 2009, Android 1.1 update for Android was released for T-Mobile G1
    • 10. 1.5 (Cupcake) : 30 April 2009. Ability to record and watch videos through camcorder mode,New widgets and folders that can populate the Home screens.
    • 11. 1.6 (Donut) : 15 September 2009 . Support for WVGA screen resolutions. Google free turn-by-turn navigation.
    • 12. 2.1 (Eclair) : 26 October 2009. New Browser UI and HTML5 support. Exchange ActiveSync 2.5 support. Live Wallpapers
    • 13. 2.2 (Froyo) : 20 May 2010. USB tethering and Wi-Fi hotspot functionality, Adobe Flash support.
    • 14. 2.3 (Gingerbread) : Native support for SIP VoIP telephony, NFC.
    • 15. 3.0 (Honeycomb) : 22 February 2011. Tablet support.
  • History of Android - Market Growth 
  • 16. Android - What is Android?
    “Android is a [open source] software stack for mobile devices that includes an operating system, middleware and key applications. The Android SDK provides the tools and APIs necessary to begin developing applications on the Android platform using the Java programming language.”
  • 17. Android - What Android is not?
    Android is not Linux.
    Android does not have a windowing system.
    Does not have all the Linux utilities.
  • 18. Android – Source
    source.android.com/source/download.html [bit.ly/SrcAnd]
    License :  Apache 2.0 & GPL v2
    Git repositories.
  • 19. Android - Technical Overview
    Features:
    GSM Telephony (hardware dependent)
    Bluetooth, EDGE, 3G, and WiFi (hardware dependent)
    Camera, GPS, compass, and accelerometer (hardware dependent)
    Integrated browser based on the open source WebKit engine
    Optimized graphics powered by a custom 2D graphics library; 3D graphics based on the OpenGL ES 1.0 specification (hardware acceleration optional)
    Media support for common audio, video, and still image formats (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)
  • 20. Android - Technical Overview
    Features:
    Rich development environment including a device emulator, tools for debugging, memory and performance profiling, and a plugin for the Eclipse IDE
    Application framework enabling reuse and replacement of components
    Dalvik virtual machine optimized for mobile devices
    SQLite for structured data storage
  • 21. Android - Architecture
  • 22. Android – Dalvik VM
    It is a virtual machine to…
    • run on a slow CPU
    • 23. with relatively little RAM
    • 24. on an OS without swap space
    Each App runs on its own instance of the VM
  • 25. Android – Application Fundamentals
    Applications are written in the Java programming language.
    Android SDK tools compile the code—along with any data and resource files—into an Android package, an archive file with an .apksuffix.
    Android system implements the principle of least privilege.
  • 26. Android – Application Components
    Activity
    An activity represents a single screen with a user interface.
    Launched in different ways : Launcher , Intents .
    Services
    A service is a component that runs in the background.
    Used to perform long-running operations or to perform work for remote processes.
    Content Providers
    A content provider manages a shared set of application data.
    Allows applications to share data.
    Broadcast receivers
    A broadcast receiver is a component that responds to system-wide broadcast announcements.
  • 27. Android – The Manifest File
    • Lets the system know what components exist in the application
    • 28. Identifies required user permissions ( e.g. read contacts , internet access )
    • 29. Declares the minimum API version
    • 30. Declare the hardware and software features used ( e.g. Camera, GPS )
    • 31. Declares application info ( e.g. name , version )
  • Android – The Manifest File
  • 32. Android – The Project Structure
  • 33. Android – Different Screen Sizes
  • 34. Android – Tools to get our hands dirty
    • Eclipse 
    • 35. Android ADT plug-in for eclipse
    • 36. Android SDK
  • Android – “Hello World”
  • 37. Android – Resources
    • meetup.com/blrdroid/
    Bangalore based Android group , 800+ members, 8th largest Android Meetupgroup.
    • developer.android.com
    • 38. android-developers.blogspot.com
    • 39. stackoverflow.com/questions/tagged/android
    • 40. twitter.com/romannurik/android
  • Android – Questions?
  • 41. Contact us
    TechJini :
    • Email info@techjini.com
    • 42. Twitter @techjini
    • 43. https://www.facebook.com/techjini
    Ravi Vyas:
    • twitter.com/ravivyas84
    • 44. ravivyas.com
    • 45. contact@ravivyas.com
    Abhijit Sharma:
    • abhijit.sharmaa@gmail.com