In order to contribute to android development, Google formed Open Handset Alliance which Included several hardware, software and telecommunication companies. Google releases the android code under Apache License. Logo of android is shown below. Android is based on Linux kernel with middleware, libraries and Apish written in C and application software running on an application framework which includes Java- compatible libraries based on Apache Harmony. Google releases most of the Android code under the Apache License which is a free software license.
Android's interface provides a fluid touch experience to the users who can perform actions like tapping, swiping, pinching to execute various tasks on their android device. Some applications SE internal hardware such as accelerometers, gyroscopes and proximity sensors to perform certain functions like changing the screen mode from landscape to portrait depending how the device Is oriented. Android is open source and Google has made it free for distribution and modification by hardware manufacturers, application developers and wireless carriers.
Since it is free, developers can create their own applications, upgrades and sell them through Google Play or any other third party vendor. Android is also very famous among the device manufacturers because they et the readily available fast and customizable Operating System for their smartness without paying a single penny. Android has become the world's most widely used mobile SO platform. 2. Android System Architecture Major components of android SO are shown in the below diagram. . Applications: Android core applications usually include Messaging program, calendar, clock, email client, maps, contacts etc. All of these applications are written using Java programming language. II. Application Framework: Developers have full access to the same framework Apish used by the core applications. The application architecture is designed such a way that any application can use the capabilities of any other application to simplify the reuse of components.
Order custom essay Android Application Development with free plagiarism report
Underlying all applications is a set of services and systems, including the following: - An Activity Manager manages the lifestyle of applications -Views System can be used to build an application, including lists, grids, text boxes, buttons, and even an embeddable web browser -Content Providers enable applications to access data from other applications (such as Contacts), or to share their own data -A Resource Manager, providing access to non-code resources such as socialized strings, graphics, and layout files -A Notification Manager that enables all applications to display custom alerts in the status bar Ill.
Libraries: Various components of android system use a set of C/C++ libraries and these components are made available to developers through application framework. 'V. 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 Dalais virtual machine. V. Linux Kernel: Linux kernel provides the core system services such as security, memory management, process management, network stack, and driver model. 3.
Android versions After an operating system is upgraded with new functionalities, the new version is created. The updates are made to the base operating system typically to fix bugs and add new features. Beta version of android was released in 2007 for testing purpose and the first commercial version Android 1. 0 was released in 2008. Since then there have been many versions of android. Each version is developed under a code name eased on a dessert item and the code names were released in alphabetic order: Cupcake, Donuts, Éclair, Fro, Gingerbread, Honeycomb, Ice Cream Sandwich and Jelly Bean.
Below diagram shows the android versions, version names and their logos. 4. Application Lifestyle In the Android system, each application runs in its own process. Hence, android is responsible to run and shutdown this process whenever needed. Various application components decide the lifestyle of an application process. Thus, it is very important for developers to use correct components to avoid the unexpected killing f the application processes. Based on the components running in the application and their states, Android places each process into an "importance hierarchy'.
These process types are mentioned below in the order of their importance. Foreground Process: This process is required for the current tasks performed by the user. This process will only be killed as a last resort if memory is so low that not even this process can run. Visible Process: This process holds an activity that is visible to the user onscreen but not in the foreground. Visible process is very important and hence, it will not be killed unless it s required to keep all foreground processes running. Service Process: This process is the one holding a Service that has been started with the starchier() method.
System always keeps such processes running unless there is a memory problem because these generally take care of things that users need such as background MPH playback. Background Process: This process is the one that is holding an Activity that is not currently visible to the user. Since these processes have no direct impact on the user experience, they can be killed anytime to free the memory for more important processes. Empty Process: This process is the one that does not hold any active application components.
Such process works as a cache to improve startup time the next time a component of its application needs to run. 5. Software Development Most of the android developers use Software Development Kit(SAD) for developing an application. The SAD provides the API libraries and developer tools necessary to build, test and debug APS for android. Development ToolKit: SAD Eclipse DAD plugging Android SAD includes development tools, debugger libraries, a handset emulator, documentation, sample code and tutorials. Requirements also include Java Development Kit, Apache Ant, and Python 2. Or later. The officially supported integrated development environment (DID) is Eclipse (3. 2 or later) using the Android Development Tools (DAD) Plugging, though developers may use any text editor to edit Java and XML files then use command line tools to create, build and debug Android applications. Android Development Tools(DAD) plugging for Eclipse allows developers to create and debug their applications quickly and easily. Benefits of this plugging are: -Developers can access other Android development tools from inside the Eclipse DID.
A very handy New Project Wizard that can quickly create and set up all of the basic files needed for a new Android application. -It automates and simplifies the process of building the Android application. -It provides an Android code editor that helps developers write valid XML for their Android manifest and resource files. -It can also export the project into a signed APS, which can be distributed to users. Emulator is a virtual device that comes with the SAD. Emulator helps to prototype, develop and test android applications without an actual physical device.
The allowing image snows a typical emulator us deed by the developers. For better modeling and testing of the application, emulator supports Android Virtual Device (AVID) configurations. Developer can specify the platform, hardware options and emulator skin in the AVID. And when the application is running on the emulator, it can use the services of the Android platform to invoke other applications, access the network, play audio and video, store and retrieve data, notify the user, and render graphical transitions and themes. Limitations of Emulator: -No support for placing or receiving actual phone calls.
You can simulate phone calls (placed and received) through the emulator console, however. -No support for USB connections -No support for camera/video capture (input). -No support for device-attached headphones -No support for determining connected state -No support for determining battery charge level and AC charging state -No support for determining SD card insert/eject -No support for Bluetooth 6. What's new in Android 4. 2 Jelly Bean There are dozens of new features added in Android Jelly Bean. Here are the prominent ones that are more revolutionary than other relatively small changes.
Camera: -Completely redesigned camera app -Photo sphere with which users can capture 3600 images -Brand new photo editor to customize images Clock: -Completely redesigned clock in both, digital and analog styles -Provision to run multiple timers at ones and label the timers Google Search: -Voice search can be used to launch applications -Package card: to check the status of your shipment -Movie card: to check the Showtime of the movie playing in nearby theatre -Stock card: to see the live information on stocks you follow -Hotel card: one touch navigation to your hotel Accessibility: Improved font positioning with new fonts including Robot Thin and Annum Gothic -New gesture keyboard that lets you glide over letters to type a word while in dynamically predicts what you want to type -New dictionaries are added in Danish, Greek, Finnish, Lithuanian, Latvia, Polish, Slovenian, Serbian, Swedish and Turkish - Android 4. 2 lets you place widgets on your device's lock screen to give you faster access to your calendar, Gamma, SMS messages, and even third party app widgets. 7 Advantages Witt android development -Open source platform, anyone can use it for development -Since it is Linux based android is very stable and there are less chances of crashing down. -Porting of the APS is very easy -Very cheap and less time required for creating APS -Development tools are very easy to use -Android facilitates swift information gathering and provides accurate information. 8.
Disadvantages -Software fragmentation: Due to the rapid pace of new releases of Android versions, developers need to pay attention to the development of versions as well as the current downloads made -Hardware fragmentation: There are so many devices running Android with widely varying features from keyboard to cameras to buttons to screen sizes and shapes that developers find it really difficult to create an app that would run on all devices. -Lack of software/hardware integration. Same button may perform different functions on different devices. So developers simply cannot develop an app that relies on a particular button to do the same thing for everyone.
As carriers keep making changes to the core SO of android in order to modify features and libraries, the fragmentation problem aggravates. -The openness of Android and lack of governance make android more exposed to various malicious odes, than controlled proprietary mobile operating systems. -It is less secure as the source code since anyone can see the code and compromise the security. -Platform does not run on an encrypted file system and has a vulnerable login -Google's dependence on hardware and carrier partners puts the final product out of their control. Due to the open nature of android and due to availability of Software Development Kit, application development in android is very easy.
Since Android SO is Linux based, it is more stable and hence there is very less chance of crashing down. Android is widely available which means that Android devices are compatible with most wireless carriers. All these factors make Android a strong contender for the shape of the future of mobile computing. But the same open nature also gives birth too big problem of software and platform fragmentation. More to this, the device manufacturers also modify the core SO to customize the look and feel of the SO of their device. This troubles the application developers a lot because they have to make their application compatible with all different versions, platforms and hardware changes.
Open nature of android also makes it less secure as it becomes vulnerable to hacking. Since the support to application developers is crucial to the success to any computing platform, fragmentation could be a serious threat to Android as the future of mobile computing. A very ambitious project Glass is under research and development by Google. It will be a head mounted display(HIM) device with android SO and it will allow users to access certain features from smartened such as image search, applications and face recognition. Several tech companies are working on a new model Philippine which is under search and development. Philippine will have material of display that won't be breakable.
LAG, Samsung and Sony are the companies working on these smartness and they will introduce flexible, bendable and relatable displays with different types of screens. Android will be the first SO to run on these floppiness. New version 5. 0 of android called Lime Pie will be released in Summer 2013. This version will have smoother system performance, more control over user profiles, improved widgets for lockers etc. Testing on various platforms: Android application developers should try to ensure the compatibility of the application on many different devices, using dissimilar hardware, running various versions of the Android operating system and must take into account any customizations made to the Android operating system by the manufacturers.
Hardware Specification Standardization: Android runs on various devices having different screen sizes. If the hardware specifications of the devices on which a particular application runs are uniform, application developers' lot of time would be saved in rework. Browser for Data Encryption: It will be great to have a browser may render Application Specific information from a given coded HTML browser which is the need of the hour considering limited resources in Mobile phones. Using the cloud storage for APS: If we could store the installed applications on the cloud instead of on the device, it would save lot of memory and we could access the same application from any other device.
Did you know that we have over 70,000 essays on 3,000 topics in our database?