What is Android?

android-logo

Android is a 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.

Features

  • Application framework enabling reuse and replacement of components
  • Dalvik virtual machine optimized for mobile devices
  • 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)
  • SQLite for structured data storage
  • Media support for common audio, video, and still image formats (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)
  • GSM Telephony (hardware dependent)
  • Bluetooth, EDGE, 3G, and WiFi (hardware dependent)
  • Camera, GPS, compass, and accelerometer (hardware dependent)
  • Rich development environment including a device emulator, tools for debugging, memory and performance profiling, and a plugin for the Eclipse IDE

Android Architecture

The following diagram shows the major components of the Android operating system. Each section is described in more detail below.

android-system-architecture

Applications

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

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 browser
  • Content Providers that enable applications to access data from other applications (such as Contacts), or to share their own data
  • Resource Manager, providing access to non-code resources such as localized strings, graphics, and layout files
  • Notification Manager that enables all applications to display custom alerts in the status bar
  • An Activity Manager that manages the lifecycle of applications and provides a common navigation backstack

For more details and a walkthrough of an application, see the Notepad Tutorial.

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 devices
  • Media Libraries – based on PacketVideo’s OpenCORE; 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 PNG
  • Surface Manager – manages access to the display subsystem and seamlessly composites 2D and 3D graphic layers from multiple applications
  • LibWebCore – a modern web browser engine which powers both the Android browser and an embeddable web view
  • SGL – the underlying 2D graphics engine
  • 3D 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 rasterizer
  • FreeType – bitmap and vector font rendering
  • SQLite – a powerful and lightweight relational database engine available to all applications

Android Runtime

Android includes a set of core libraries that provides most of the functionality available in the core libraries of the Java programming language.

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.

The Dalvik VM relies on the Linux kernel for underlying functionality such as threading and low-level memory management.

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.

Cheers…

Advertisements

Optimise Photos or Images for the Website.

sun-flower-white

Creating graphics and posting images for your site is one fun thing to do in web development. Nothing makes your site stand out better than some great images.

Graphics and images can be used for entertainment, professionalism or a visual queue. A graphic designed properly can change your visitor’s outlook and/or decision for your site. It is important to you have images ready and optimized for your website.

Optimize Your Images

One thing to remember when creating graphics and images for your site is to optimize. What do you mean by optimization?

Optimization is a way to compress data to make your file size smaller. One way optimization works is that it will read through all the color of the image and use other color combinations to make similar colors. This will then discard some colors that will not be needed for the particular image. But there is a downside with optimization. You will lose quality in your graphic and/or images.

Quality vs. Size

When optimizing your images watch the quality compared to size. You want the smallest size possible for your site, making your site load faster. This will make it easier for your visitors and search engine bots.

If you image or graphic becomes too distorted, raise your file size. You don’t want a pixelated image on your site. You want your images to look good and professional. You just need to find a balance between having a clean professional picture and having a decent small file size.

Image Optimization Tools

Adobe Photoshop has put this into consideration in some of their new application versions. You can now do a File > Save for the Web Options and Adobe Photoshop has a pre-built optimizing process that is very good. You can choose what file type to save in and how much to compression and optimization. Adobe Photoshop is an expensive commercial program, another option is using Dynamic Drive’s Image Optimization.

Types of Image Files

Last thing to touch on is JPEG, GIF and PNG. There are so many file types, but these are highly recommended for web development.

JPEG

JPEG is a compressed file that has very good quality standards. Because of its compression, colors and data are squeezed out of it to create smaller file sizes. This can cause some blur with images with sharp edges, which is great for photos. If you look at a photo there are no straight lines or edges. Everything is blended together, which why JPEG is great for photos. You can get great optimization out of a JPEG file.

GIF

GIF is used more for vector based graphics. A vector based graphic is when a graphic is made of lines and shapes. Vector graphic have sharp corners, edges or text. When dealing with graphics like described, it is better to use a GIF rather than a JPEG. A JPEG could case distortion on your sharp lines. GIF can also be use for animation. Frame by frame animation saved as a .gif will animate on your page. Transparency is another feature that GIF can support. You can save your images with a transparent background.

PNG

PNG is one of the newest web graphic technologies. PNG is great for quality and file size. You have the best of both worlds in a PNG. PNG can also support transparent backgrounds. The only downside to a PNG file is that some old web browsers don’t support PNG. This problem is becoming less and less a concern. But keep that in mind.

Quickest Time for Web

Optimizing images and graphics is almost a must in web development. Having big file sizes could cause some of your visitors to leave your site. If your site is too slow to load, you need to optimize immediately. Rumour is that you have 3 seconds to pull a surfer in. If you site doesn’t load in that amount of time, then you might lose them. Time your page in your browser and see how long it takes. If you are under a couple of seconds, you’re doing a great job.

————

we build websites that make you happy.
get to know us.

Email: hello@silex.co.in Web site: www.silex.co.in
Phone: +91.44.4314.4790


%d bloggers like this: