KEMBAR78
01 introduction & setup - Android | PPTX
Workshop India
» Android is a mobile phone operating system
  maintained by google.

» Open Source Software Stack that hardware
  manufacturers can use free of cosr on their
  devices.

» Allows software developers a unified framework in
  developing and distributing mobile applications
» Android is simply a linux kernel modified and
  developed for maintaining mobile devices.

» Linux Kernel:
   ˃ provides abstraction between the hardware and the rest of the stack,
   ˃ responsible for device drivers (Camera , Wi Fi, etc…),
   ˃ resources management , power management, security and net working



» C/C++ Libraries:
   ˃ such as SQL lite, Graphics libraries OpenGL ES, media framework and
     webkit layout engine.
» The Core libraries provide most of java libraries +
  additional Android libraries.

» The Dalvik VM provides (Just In Time) JIT
  compilation.

» Each Java application accessing the core libraries
  has its own VM.
   ˃ This VM is based on the Java bytecoding engine.
» The Android Application Framework:
   ˃ Provides classes required to develop an Android application
   ˃ abstraction between hardware access
   ˃ the Android Java API’s main library include telephony, content providers
     (data), resources, locations and UI.


» Application Layer: all Android applications(native
  or third party) are built on the application layer
  using the same API

» The core subsystem does not distinguish between
  native (already on the phone) and 3rd party (what
  could be installed by user)
» Each Android version has a name of a dessert.

»   Android 1.x (Cup Cake).
»   Android 1.x (Donut).
»   Android 2.x (Eclair).
»   Android 2.x (Froyo).
»   Android 2.x (Gingerbread).
»   Android 3.x (Honeycomb)
»   Android 4.x (Ice Cream Sandwich)
»   Android 5.x (JellyBean)
» Any hardware developer can use android on a device,
  provided he can get the linux drivers for android
  working on his hardware.

» Google phones always use the latest android update.
  Everybody else waits and develops .

» Most 3rd party OEMs use older versions of android.

» Android can be used as a platform for any handheld
  mobile hardware device usable by anybody in the
  market for free.
» Android application follow complete java
  development standards.

» All applications run inside a Java virtual machine.

» First thing to do is to get an updated version of
  java onto your system

» Make sure you have the latest jdk installed on
  your system. (7u5 as of now..)
» Android has a software development kit manager.

» Different versions of Android support different
  platforms.

» You need to compile your android application
  against the SDK version you want to support on
  the device.

» We have an SDK manager that would help us do
  the needful.
» http://developer.android.com/sdk/index.html

» Once you’ve installed it, an SDK manager should appear in
  the windows menu. Open it.

» Check the following entries
   ˃   Tools/Android SDK tools
   ˃   Tools/Android SDK platform-tools
   ˃   Android 3.2 (API13)/SDK platform
   ˃   Android 3.2 (API13)/Samples for SDK
   ˃   Android 3.2 (API13)/Google APIs


» And click install. Select Agree in the window and install.

» Default installation location : …appdatalocalandroid
» Eclipse is the tool of choice as purported by
  google.

» IntelliJ IDEA IDE also has good android
  development support and is as good to use.

» Either of the IDE’s is acceptable.
» Start Eclipse, then select Help > Software Updates > Find and Install….
» In the dialog that appears, select Search for new features to
  install and press Next.
» Press New Remote Site.
» In the resulting dialog box, enter a name for the remote site (e.g.
  Android Plugin) and enter this as its URL:
    ˃ https://dl-ssl.google.com/android/eclipse/.
» Press OK.

» Wait for completion.

» Select Window > Preferences… to open the Preferences panel. (Mac
  OS X: Eclipse >Preferences)
  Select Android from the left panel.
  For the SDK Location in the main panel, press Browse... and find the
  SDK root directory.
» Press Apply, then OK
» If you do not have an Android Hardware Device,
  you can use the AVM to emulate an android
  device and test applications on your computer.

» You will learn patience by using the AVM.

» AVM Manager can be launched from
   ˃ Tools > Manage AVDs from the SDK manager application
   ˃ Eclipse menu (ex : find it yourself)
»   Give a nice name to your AVD

»   Target will be available depending on what all
    SDK have been downloaded onto your
    system.

»   ENABLE SNAPSHOT (for faster loading)
                                                     ENABLE THIS!!
»   In hardware,
     ˃   Increase device RAM to suitable level
     ˃   Leave hardware settings to default


» Add avd and click start in the manager it!

» ..patience..

» You can keep the emulator running
  throughout your development period or as
  long as it keeps functioning.
This is best option..
» Install VirtualBox

» Install Android Inside Virtual Box

» Connect eclipse to the android instance inside Vbox

» http://www.bobbychanblog.com/2011/07/faster-
  android-emulator-alternative-using-virtualbox/

» http://www.andreybutov.com/2011/10/14/how-to-
  set-up-a-faster-android-emulator/
» For more details..
» Android devices come in all different sizes.

» Stretch and compress your layouts to
  accommodate various heights and widths.

» Be flexible and creative.

» Should look GOOD!
» ICS is first OS that unified both tablet and phone
  experience.

» ICS however uses these features prominently with
  some minor changes.
Persistent Action bar on top




                             Tablets have a different potrait
                             – landscape view so apps must
                             be designed accordingly.




Honeycomb,ICS hardware requirements ask for NO buttons except for power
and volume.
Hence, the menu – time – back and recent buttons are combined in the bottom
black bar.
» In ICS, notifications can be made the center of the
  user’s experience, with real time updates and
  specificatons.

» A new builder class will allow you to create
  notifications with
  • large and small icons,
  • a title,
  • a priority flag,

» These notifications build upon the expanded set of UI
  Widgets that will now be available as remote Views.
» This new feature is a platform that includes flexible
  animation framework that makes it easy for you to
  animate the properties of UI elements like
»
  • Views,
  • Widgets,
  • Fragments,
  • Drawables,
  • or any arbitrary object.

» These animations can fade between states, add
  movement, loop an animated image or an already
  moving animation, change item colors, and more.
» This framework lends both the API for building 3D
  scenes and a platform-independent shader language
  for max performance.

» With Renderscript you’ll be able to accelerate both
  data processing and graphics operations,
   ˃ With multiprocessor
   ˃ And GPU support


» Supported Applications:
  • Canvas,
  • Paint,
  • Xfermode,
  • ColorFilter,
  • Shader,
» Tablets offer more space in which your application
  can present multiple sets of information at once,

» handset device usually requires that you split
  those sets apart and display them separately.

» http://developer.android.com/guide/practices/scr
  eens_support.html

» Creativity. Design -> Development
» Social API
   ˃ A shared social provider and API provide a new unified store for contacts,
     profile data, stream items, and photos



» Calendar API
   ˃ A shared calendar content provider and framework API make it easier for
     developers to add calendar services to their apps.


» Android Beam
   ˃ Android Beam is an NFC-based feature that lets users instantly share
     information about the apps they are using, just by touching two NFC-
     enabled phones together.
» Low-level streaming multimedia
   ˃ Android 4.0 provides a direct, efficient path for low-level streaming
     multimedia. The new path is ideal for applications that need to maintain
     complete control over media data before passing it to the platform for
     presentation


» New camera capabilities
   ˃ Developers can take advantage of a variety of new camera features in Android
     4.0. ZSL exposure, continuous focus, and image zoom let apps capture better
     still and video images, including during video capture


» Wi-Fi Direct
   ˃ Developers can use a framework API to discover and connect directly to
     nearby devices over a high-performance, secure Wi-Fi Direct connection. No
     internet connection or hotspot is needed.
» KEEP READING THE INTERNET!!

» Go to various android news sites, keep in touch with latest
  android news and announcements over there.

» Learn things outside this course. Lots of tutorials available
  online

» Try things in the emulator patiently..
   ˃   Try Try Try and then Try again once more…
   ˃   And then once again..
   ˃   And again..
   ˃   Till you accomplish what you need.

» Ask people online for advice
   ˃ (only after your research is over!!)

01 introduction & setup - Android

  • 1.
  • 2.
    » Android isa mobile phone operating system maintained by google. » Open Source Software Stack that hardware manufacturers can use free of cosr on their devices. » Allows software developers a unified framework in developing and distributing mobile applications
  • 3.
    » Android issimply a linux kernel modified and developed for maintaining mobile devices. » Linux Kernel: ˃ provides abstraction between the hardware and the rest of the stack, ˃ responsible for device drivers (Camera , Wi Fi, etc…), ˃ resources management , power management, security and net working » C/C++ Libraries: ˃ such as SQL lite, Graphics libraries OpenGL ES, media framework and webkit layout engine.
  • 4.
    » The Corelibraries provide most of java libraries + additional Android libraries. » The Dalvik VM provides (Just In Time) JIT compilation. » Each Java application accessing the core libraries has its own VM. ˃ This VM is based on the Java bytecoding engine.
  • 5.
    » The AndroidApplication Framework: ˃ Provides classes required to develop an Android application ˃ abstraction between hardware access ˃ the Android Java API’s main library include telephony, content providers (data), resources, locations and UI. » Application Layer: all Android applications(native or third party) are built on the application layer using the same API » The core subsystem does not distinguish between native (already on the phone) and 3rd party (what could be installed by user)
  • 6.
    » Each Androidversion has a name of a dessert. » Android 1.x (Cup Cake). » Android 1.x (Donut). » Android 2.x (Eclair). » Android 2.x (Froyo). » Android 2.x (Gingerbread). » Android 3.x (Honeycomb) » Android 4.x (Ice Cream Sandwich) » Android 5.x (JellyBean)
  • 7.
    » Any hardwaredeveloper can use android on a device, provided he can get the linux drivers for android working on his hardware. » Google phones always use the latest android update. Everybody else waits and develops . » Most 3rd party OEMs use older versions of android. » Android can be used as a platform for any handheld mobile hardware device usable by anybody in the market for free.
  • 8.
    » Android applicationfollow complete java development standards. » All applications run inside a Java virtual machine. » First thing to do is to get an updated version of java onto your system » Make sure you have the latest jdk installed on your system. (7u5 as of now..)
  • 9.
    » Android hasa software development kit manager. » Different versions of Android support different platforms. » You need to compile your android application against the SDK version you want to support on the device. » We have an SDK manager that would help us do the needful.
  • 10.
    » http://developer.android.com/sdk/index.html » Onceyou’ve installed it, an SDK manager should appear in the windows menu. Open it. » Check the following entries ˃ Tools/Android SDK tools ˃ Tools/Android SDK platform-tools ˃ Android 3.2 (API13)/SDK platform ˃ Android 3.2 (API13)/Samples for SDK ˃ Android 3.2 (API13)/Google APIs » And click install. Select Agree in the window and install. » Default installation location : …appdatalocalandroid
  • 12.
    » Eclipse isthe tool of choice as purported by google. » IntelliJ IDEA IDE also has good android development support and is as good to use. » Either of the IDE’s is acceptable.
  • 13.
    » Start Eclipse,then select Help > Software Updates > Find and Install…. » In the dialog that appears, select Search for new features to install and press Next. » Press New Remote Site. » In the resulting dialog box, enter a name for the remote site (e.g. Android Plugin) and enter this as its URL: ˃ https://dl-ssl.google.com/android/eclipse/. » Press OK. » Wait for completion. » Select Window > Preferences… to open the Preferences panel. (Mac OS X: Eclipse >Preferences) Select Android from the left panel. For the SDK Location in the main panel, press Browse... and find the SDK root directory. » Press Apply, then OK
  • 14.
    » If youdo not have an Android Hardware Device, you can use the AVM to emulate an android device and test applications on your computer. » You will learn patience by using the AVM. » AVM Manager can be launched from ˃ Tools > Manage AVDs from the SDK manager application ˃ Eclipse menu (ex : find it yourself)
  • 16.
    » Give a nice name to your AVD » Target will be available depending on what all SDK have been downloaded onto your system. » ENABLE SNAPSHOT (for faster loading) ENABLE THIS!! » In hardware, ˃ Increase device RAM to suitable level ˃ Leave hardware settings to default » Add avd and click start in the manager it! » ..patience.. » You can keep the emulator running throughout your development period or as long as it keeps functioning.
  • 18.
    This is bestoption..
  • 19.
    » Install VirtualBox »Install Android Inside Virtual Box » Connect eclipse to the android instance inside Vbox » http://www.bobbychanblog.com/2011/07/faster- android-emulator-alternative-using-virtualbox/ » http://www.andreybutov.com/2011/10/14/how-to- set-up-a-faster-android-emulator/ » For more details..
  • 20.
    » Android devicescome in all different sizes. » Stretch and compress your layouts to accommodate various heights and widths. » Be flexible and creative. » Should look GOOD!
  • 21.
    » ICS isfirst OS that unified both tablet and phone experience. » ICS however uses these features prominently with some minor changes.
  • 22.
    Persistent Action baron top Tablets have a different potrait – landscape view so apps must be designed accordingly. Honeycomb,ICS hardware requirements ask for NO buttons except for power and volume. Hence, the menu – time – back and recent buttons are combined in the bottom black bar.
  • 23.
    » In ICS,notifications can be made the center of the user’s experience, with real time updates and specificatons. » A new builder class will allow you to create notifications with • large and small icons, • a title, • a priority flag, » These notifications build upon the expanded set of UI Widgets that will now be available as remote Views.
  • 24.
    » This newfeature is a platform that includes flexible animation framework that makes it easy for you to animate the properties of UI elements like » • Views, • Widgets, • Fragments, • Drawables, • or any arbitrary object. » These animations can fade between states, add movement, loop an animated image or an already moving animation, change item colors, and more.
  • 25.
    » This frameworklends both the API for building 3D scenes and a platform-independent shader language for max performance. » With Renderscript you’ll be able to accelerate both data processing and graphics operations, ˃ With multiprocessor ˃ And GPU support » Supported Applications: • Canvas, • Paint, • Xfermode, • ColorFilter, • Shader,
  • 26.
    » Tablets offermore space in which your application can present multiple sets of information at once, » handset device usually requires that you split those sets apart and display them separately. » http://developer.android.com/guide/practices/scr eens_support.html » Creativity. Design -> Development
  • 29.
    » Social API ˃ A shared social provider and API provide a new unified store for contacts, profile data, stream items, and photos » Calendar API ˃ A shared calendar content provider and framework API make it easier for developers to add calendar services to their apps. » Android Beam ˃ Android Beam is an NFC-based feature that lets users instantly share information about the apps they are using, just by touching two NFC- enabled phones together.
  • 30.
    » Low-level streamingmultimedia ˃ Android 4.0 provides a direct, efficient path for low-level streaming multimedia. The new path is ideal for applications that need to maintain complete control over media data before passing it to the platform for presentation » New camera capabilities ˃ Developers can take advantage of a variety of new camera features in Android 4.0. ZSL exposure, continuous focus, and image zoom let apps capture better still and video images, including during video capture » Wi-Fi Direct ˃ Developers can use a framework API to discover and connect directly to nearby devices over a high-performance, secure Wi-Fi Direct connection. No internet connection or hotspot is needed.
  • 31.
    » KEEP READINGTHE INTERNET!! » Go to various android news sites, keep in touch with latest android news and announcements over there. » Learn things outside this course. Lots of tutorials available online » Try things in the emulator patiently.. ˃ Try Try Try and then Try again once more… ˃ And then once again.. ˃ And again.. ˃ Till you accomplish what you need. » Ask people online for advice ˃ (only after your research is over!!)