» 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.
» 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 powerand volume.Hence, the menu – time – back and recent buttons are combined in the bottomblack 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!!)