.

Thursday, March 14, 2019

Android Essay

Google mechanical man November 15 2011 An operational constitution for wandering(a) devices such(prenominal) as smartphones and tablet computers. Developed by the candid Operating schema hand luck completelyiance led by Google. carry oer of Contents demonstration3 About 4 Architecture7System Threading11 central impact unit Scheduling 12 Process States14 remembrance Management18 Synchronization Techniques19 guinea pig Handling 20 Security21 meshing22 Evaluation23 Bibliography24 Introduction Since its initial launch on the T-Mobile G1 in October of 2008, Googles humanoid operating t puffk has evolved rapidly, perhaps much rapidly than any other operating agreement in recent storage, to become one of the most important and fat smartphone platforms in the market today. The mechanical man OS is the name of the Linux establish operating arranging delivered by Google and livinged by the Open Handset Alliance. mechanical man is aimd as an operating constitut ion for devices such as cell phones, tablets and netbooks. Google bought the original developer of the softw ar, Android Inc. , in 2005. Androids kernel ( center field of the OS) was derived from Linux but has been circumscribed by Google developers. Android is alike open outset, which means developers can create the OS for assorted phones and c everywheres. This is why different phones may pass different looking graphical larboards and features even though they argon meltning the self same(prenominal) OS.Android OS is every last(predicate) open source, which means that developers can use the core OS functions to develop applications, un sleep with iphone OS which is a unlikable arranging. About The version history of the Android operating scheme began with the consume of version 1. 0 in September 2008. Android is a wandering(a) operating system develop by Google and the Open Handset Alliance. Android has seen a number of updates since its original release. Thes e updates to the base operating system typic onlyy fix bugs and add new features. Generally, each(prenominal) version is true below a code name based on a dessert item.The code names were released in alphabetic order Cupcake, Donut, Eclair, Froyo, Gingerbread, Honeycomb, and Ice lap Sandwich. Like Apples Appstore, Google opened its Android market, allowing the apps developers to publish their apps without any restrictions. Unlike Apples Appstore, Google Android market does non consent any restrictions for third party phylogeny and will non run an apps approval system. Android is an open source platform. The complete stack, from low-level Linux modules all the way to native libraries, and from the application good example to complete applications, is totally open.More so, Android is libertyd under business-fri shuttingly licenses (Apache/MIT) so that others can freely extend it and use it for variety of purposes. Even some third-party open source libraries that were bro ught into the Android stack were rewritten under new license terms. Therefore, every developer has approaching to the entire platform source code. There ar several advantages of the Android OS for developers, besides the fact that its completely open source, lets mention a few Advantages pic The entire Application framework can be reused and replaced by selective components Wi-Fi communicate applications support (Depends on hardw be) Dalvik1 virtual machine enhances the power management systems Supports 2D and 3D graphics Supports common media send formats Reliable and enhanced entropy storage utilise SQLite framework2 Open source Web-Kit Engine-based vane-browser GPS, Navigational compass, Touch-Unlock, and accelerometer applications support Androids phylogenesis environment includes a device emulator, debugger, performance profiling tool, and an Eclipse IDE plug-in pic logo of Android OS Architecture pic The primary(prenominal) components of the Android architectu re 1.Applications These are applications written in coffee bean. Some of basic applications include a calendar, email client, SMS program, maps, making phone calls, approaching the Web browser, penetrationing your contacts list and others. pic 2. Application Framework This is the systema skeletale or framework which all android developers has to follow. The developers can access all framework APIs an manage phones basic functions like resource allocation, switching mingled with processes or programs, telephone applications, and nutrimenting sign of the phones physical location. The architecture is sanitary designed to alter the reuse of components.Think of the application framework as a set of basic tools with which a developer can build much much intricate tools. pic 3. Libraries This layer consists of Android libraries written in C, C++, and used by various systems. These libraries tell the device how to handle different kinds of data and are exposed to Android develop ers via Android Application framework. Some of these libraries include media , graphics, 3D, SQLite, web browser library etc. The Android run judgment of conviction layer which includes set of core java libraries and DVM (Dalvik Virtual Machine) is also located in same layer. pic 4.Runtime Android This layer includes set of base libraries that are required for java libraries. each Android application gets its own instance of Dalvik virtual machine. Dalvik has been written so that a device can run multiple VMs efficiently and it executes files in executable (. Dex) optimized for minimum shop. pic 5. Kernel Linux This layer includes Androids retrospection management programs, security settings, power management software system and several drivers for hardware, file system access, ne devilrking and inter-process- parley. The kernel also acts as an abstraction layer between hardware and the rest of the software stack. pic The basics of the Android kernel are just like any other mon olithic architecture, all go (file system, VFS, device drivers, etc. ) as well as core functionality ( computer programing, memory allocation, etc) are a tight knit group sharing the same space. The kernel of this system is both a hybrid and a monolithic modular design. It is broken down into five major subsystems Process Scheduler (SCHED) creditworthy for controlling process access to the CPU. The scheduler enforces a policy that ensures that processes will have fair access to the CPU, while ensuring that necessary hardware actions are performed by the kernel on time. Memory Manager (MM) permits multiple processes to securely dole out the machines main memory system. In addition, the memory manager supports virtual memory that allows Linux to support processes that use more memory than is available in the system. loose memory is swapped out to persistent storage using the file system then swapped cover charge in when it is regarded. Virtual File System (VFS) abstracts the d ilate of the variety of hardware devices by presenting a common file interface to all devices. In addition, the VFS supports several file system formats that are compatible with other operating systems. Network Interface (NET) provides access to several networking standards and a variety of network hardware. Inter-Process Communication (IPC) subsystem supports several mechanisms for process-to-process communication on a single Linux system. System Threading By default, an Android application runs on a single hoist3. Single- lineed applications run all requires serially, meaning the next command is not completed until the previous one is done. Another way of saying this is that each call is blocking. This single stray is also known as the UI thread because its the thread that processes all the user interface commands as well.The UI thread is responsible for drawing all the elements on the screen as well as processing all the user events, such as touches on the screen, clicks of t he button, and so on. Threads may suspend themselves or be suspend either by the Garbage Collector (GC), debugger or the signal proctor thread. The VM controls all the threads through the use of a internal construction where all the created threads are mapped. The GC will only run when all the threads referring to a single process are suspended, in order to avoid inconsistent states. CPU SchedulingThe Linux kernel uses the only Fair Scheduler (CFS), which has the objective of providing poise between tasks assigned to a processor and applies fairness in the way that CPU time is assigned to tasks. This balance guarantees that all the tasks will have the same CPU share and that, each time that unfairness is verified, the algorithm assures that task rebalancing is performed. Although fairness is guaranteed, this algorithm does not provide any temporal guarantees to tasks, and therefore, neither Android does it, as its scheduling operations are delegated to the Linux kernel.Android uses its own VM named Dalvik (see footnote 2), which was specifically developed for meandering(a) devices and considers memory optimization, battery power saving and low relative frequency CPU. It relies on the Linux kernel for the core operating system features such as memory management and scheduling and, thus, also presents the drawback of not taking any temporal guarantees into consideration. pic In terms of execution, the algorithm works as follows the tasks with sink virtual runtime are placed on the left side of the tree, and the tasks with the high up virtual runtime are placed on the right.This means that the tasks with the highest need for the processor will always be stored on the left side of the tree. Then, the scheduler picks the left-most leaf node of the tree to be scheduled. Each task is responsible for accounting the CPU time taken during execution and adding this value to the previous virtual runtime value. Then, it is inserted back into the tree, if it has not finished yet. With this pattern of execution, it is guaranteed that the tasks contend the CPU time in a fair manner. Another aspect of the fairness of the algorithm is the adjustments that it performs when the tasks are time lag for an I/O device.In this case, the tasks are compensated with the meter of time taken to receive the information they needed to complete its objective. pic Since the entry of the CFS, the concept of scheduling classes was also introduced. Basically, these classes provide the connection between the main generic scheduler functionalities and the specific scheduler classes that implement the scheduling algorithms. This concept allows several tasks to be scheduled differently by using different algorithms for this purpose. Regarding the main scheduler, it is yearly and preemptive.Its periodicity is activated by the frequency of the CPU clock. It allows preemption either when a high anteriority task needs CPU time or when an interrupt exists. As for ta sk priorities, these can be dynamically modified with the nice command and presently the kernel supports 140 priorities, where the set ranging from 0 to 99 are reserved for real-time processes and the values ranging from century to 139 are reserved for normal processes. Process States The order in which processes are killed to reclaim resources is determined by the precedence of the hosted applications.An applications priority is equal to its highest-priority component. Where two applications have the same priority, the process that has been at a lower priority longest will be killed first. Process priority is also affected by interprocess dependencies if an application has a dependency on a Service or Content Provider supplied by a second application, the secondary application will have at least as high a priority as the application it supports. All Android applications will remain running and in memory until the system needs its resources for other applications.A process has fi ve different states. pic participating Processes sprightly (cozy up) processes are those hosting applications with components currently interacting with the user. These are the processes Android is trying to keep responsive by reclaiming resources. There are generally very few of these processes, and they will be killed only as a last resort. Active processes include o Activities in an ready state that is, they are in the foreground and responding to user events. You will explore Activity states in great detail later in this chapter. Activities, Services, or Broadcast Receivers that are currently executing an onReceive event handler. o Services that are executing an onStart, onCreate, or onDestroy event handler. Visible Processes Visible, but inactive processes are those hosting subgross Activities. As the name suggests, viewable Activities are visible, but they arent in the foreground or responding to user events. This happens when an Activity is only partially obscured (by a non-full-screen or transparent Activity). There are generally very few visible processes, and theyll only be killed in extreme circumstances to allow active processes to continue. Started Service Processes Processes hosting Services that have been started. Services support ongoing processing that should continue without a visible interface. Because Services dont interact directly with the user, they receive a slightly lower priority than visible Activities. They are still considered to be foreground processes and wont be killed unless resources are needed for active or visible processes. Background Processes Processes hosting Activities that arent visible and that dont have any Services that have been started are considered background processes.There will generally be a large number of background processes that Android will kill using a last-seen-first-killed pat- tern to obtain resources for foreground processes. Empty Processes To improve overall system performance, Android o ften retains applications in memory after they have reached the end of their lifetimes. Android maintains this cache to improve the start-up time of applications when theyre re-launched. These processes are routinely killed as required. State Diagram pic Memory Management Androids process and memory management is a little unusual.Like coffee bean and . NET, Android uses its own run time and virtual machine to manage application memory. Unlike either of these frameworks, the Android run time also manages the process lifetimes. Android ensures application responsiveness by stopping and killing processes as necessary to free resources for higher-priority applications. Each Android application runs in a separate process within its own Dalvik instance, relinquishing all responsibility for memory and process management to the Android run time, which wampum and kills processes as necessary to manage resources.Dalvik and the Android run time sit down on top of a Linux kernel that handle s low-level hardware fundamental interaction including drivers and memory management, while a set of APIs provides access to all of the under- lying services, features, and hardware. Synchronization Techniques Regarding synchronization, Android uses its own implementation of libc named bionic. Bionic has its own implementation of the pthread library and it does not support process-shared mutexes and condition variables. However, thread mutexing and thread condition variables are supported in a limited manner. Currently, inter-process communication is handled by Open-Binder.In terms of real-time limitations, the mechanisms provided by the architecture do not solve the old problems related with priority inversion. Therefore, synchronization protocols such as priority ceiling and inheritance are not implemented. Event Handling In terms of interrupt/event use, these are performed by the kernel via device drivers. Afterwards, the kernel is notified and then is responsible for notifying the application waiting for that specific interrupt/event. None of the parts involved in the handling has a notion of the time restrictions available to perform its operations.This behavior becomes more serious when considering interrupts. In Linux the interrupts are the highest priority tasks, and therefore, this means that a high priority task can be interrupted by the reaching of an interrupt. This is considered a big drawback, as it is not possible to make the system totally predictable. Security Android has a unique security model, which focuses on putting the user in control of the device. Android devices however, dont all come from one place, the open nature of the platform allows for branded extensions and changes.These extensions can help or could interfere with security, being able to try out a distribution of Android is therefore an important step in protecting information on that system. Android applications run in a sandbox, an isolated area of the operating system that does not have access to the rest of the systems resources, unless access permissions are granted by the user when the application is installed. Before installing an application, Android Market displays all required permissions. A game may need to enable vibration, for example, but should not need to read messages or access the phonebook.After reviewing these permissions, the user can reconcile whether to install the application. Networking Android supports connectivity technologies including Global System for Mobile Communications (GSM)4, raise Data rates for GSM Evolution (EDGE)5, Integrated Digital Enhanced Network (IDEN)6, Code division multiple access (CDMA)7, Evolution-Data Optimized (EV-DO)8, Universal Mobile Telecommunications System (UMTS)9, Bluetooth10, Wi-Fi11, LTE12, (Near field communication) NFC13 and Worldwide Interoperability for Microwave Access (WiMAX)14. EvaluationMobile software development has evolved incredibly over time, giving us the power of not having to carry our laptop everywhere, or waiting to get home to access our networks or documents, 3G and 4G speeds directly on our phones give us that power, making wandering(a) devices the most popular way to stay connected, as speeds are parallel to standard net speeds. Android has emerged as a new mobile development platform, building on past successes and avoiding past failures of other platforms. The android OS is an open source, meaning that is freely available to anyone who wishes to learn it.Google has opened up the software to creativity, because now we all have access to instruction the development process. Hackers, coders, and all techy gurus have created a plethora of net-libraries ranging from support groups, forums and websites to further help newbies in the process. Android was designed to empower developers to come back creatively by giving them almost absolute power over creating innovative applications. Bibliography Android Developers. Web. 11 Nov. 2011. . Burnette, Ed. Hello, Android Introducing Googles Mobile Development Platform.Raleigh, NC virtual(a) helf, 2010. Print. Burns, Jesse. DEVELOPING SECURE MOBILE APPLICATIONS FOR humanoid. DEVELOPING SECURE MOBILE APPLICATIONS FOR ANDROID (2008). Print. Linux. com The Source for Linux Information. Web. 11 Nov. 2011. . Maia, Claudio, Luis Nogueira, and Luis Pinho. Evaluating Android OS for Embedded Real-Time Systems. Print. Memory Management in Android agreeable to Mobile World Welcome to Mobile World Web. 11 Nov. 2011. . Shevchenko, Aleksey. Application Handling of Database Timeouts and Deadlocks Developer. om. Developer. com Your Home for burnt umber and Open Source Development Knowledge. Web. 11 Nov. 2011. . White Paper Android by 2012, Android OS, Android SDK. Upload & Share PowerPoint Presentations and Documents. Web. 11 Nov. 2011. . 1A deep brown interpreter machine, completely optimized for Android platform and which is developed to run on low-end memory mobile devices. One of the prominent aspects in Dalvik is its capability to run along an application compilation enhancing the runtime performance of the applications.Dalvik is not exactly, a Java machine, because Dalvik could not read Java code, but consists its own byte code called dex and so the executable files compacted using Dalvik holds the file type name . dex. Google states that the credit for Androids happy development goes to Dalvik VM, because this type of virtual machine, delivers a good performance over various stages of an application runtime environment, conserving more battery-power during long run of an application. 2 An embedded comparative database management system contained in a elatively small (275 kB) C programming library. The source code for SQLite is in the public domain. 3 Processing of one command at a time 4 A standard set developed by the European Telecommunications Standards Institute (ETSI) to describe technologies for second generation (or 2G) digital cellular netw orks 5 A digital mobile phone technology that allows ameliorate data infection rates as a backward-compatible extension of GSM. 6 A mobile telecommunications technology, developed by Motorola, which provides its users the benefits of a trunked radio and a cellular telephone 7 A channel access method used by various radio communication technologies 8 A telecommunications standard for the wireless transmission of data through radio signals, typically for broadband lucre access 9 A third generation mobile cellular technology for networks based on the GSM standard 10 Technology standard for exchanging data over scant(p) distances (using short wavelength radio transmissions in the ISM band from 2400-2480 MHz) from fixed and mobile devices, creating personal area networks (PANs) with high levels of security 11 A mechanism for wirelessly connecting electronic devices 12 A preliminary mobile communication standard, formally submitted as a candidate 4G system 13 NFC allows for simplified transactions, data exchange, and wireless connections between two devices in proximity to each other, usually by no more than a few centimeters 14 A communication technology for wirelessly delivering high-speed Internet service to large geographical areas

No comments:

Post a Comment