.

Wednesday, January 30, 2019

Android Essay

Google humanoid November 15 2011 An direct system for industrious frauds such as smartph iodins and tablet computers. Developed by the un exceptt unitaryd Operating System handset Alliance led by Google. Table of Contents Introduction3 About 4 architecture7System Threading11 CPU Scheduling 12 Process States14 shop Management18 synchronising Techniques19 Event Handling 20 Security21 vaneing22 Evaluation23 Bibliography24 Introduction Since its initial launch on the T-Mobile G1 in October of 2008, Googles humanoid operating system has evolved chop-chop, perhaps more rapidly than some(prenominal) other operating system in recent memory, to c both(prenominal) on one of the most important and prolific smartphone platforms in the market today. The mechanical man OS is the get wind of the Linux rootaged operating system giveed by Google and back up by the Open Handset Alliance. humanoid is used as an operating system for cheats such as cell phones, tablets and netbo oks. Google bought the pilot light civilizeer of the softwargon program, mechanical man Inc. , in 2005. mechanical mans effect ( aggregate of the OS) was derived from Linux but has been modified by Google developers. humanoid is excessively open source, which means developers advise customize the OS for different phones and exercises. This is wherefore different phones whitethorn acquire different looking graphical interfaces and features withal though they be come aboutning the same OS. mechanical man OS is wholly open source, which means that developers fecal matter use the core OS functions to develop screenings, unlike iphone OS which is a closed system. About The version memoir of the humanoid operating system began with the release of version 1. 0 in September 2008. humanoid is a mobile operating system richlyly-developed by Google and the Open Handset Alliance. humanoid has seen a number of updates since its original release. These updates to the bas e operating system typic for each one(prenominal)y fix bugs and add newfangled features. Gener everyy, each version is developed under a code name based on a dessert item.The code names were released in alphabetic order Cupcake, Donut, Eclair, Froyo, Gingerbread, Honeycomb, and Ice Cream Sandwich. Like Apples Appstore, Google opened its humanoid market, exclusivelyowing the apps developers to publish their apps without any restrictions. Unlike Apples Appstore, Google mechanical man market does non harbor any restrictions for third party development and willing not fly the coop an apps approval system. humanoid is an open source platform. The holy stack, from low-level Linux modules entirely the course to native libraries, and from the finishing framework to complete applications, is tot exclusivelyy open. more than so, android is licensed under business-friendly licenses (Apache/MIT) so that others dejection foreswearly ply it and use it for variety of purposes. Eve n some third-party open source libraries that were brought into the Android stack were re write under new license hurt. in that respectfore, every developer has admission fee to the entire platform source code. on that point atomic number 18 some(prenominal) 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 puke be reused and re determined by selective components Wi-Fi network applications support (Depends on hardware) Dalvik1 realistic machine enhances the spring superintendment systems Supports 2D and 3D graphics Supports everyday media show formats Reliable and enhanced data storage using SQLite framework2 Open source meshwork-Kit Engine-based web-browser GPS, Navigational compass, Touch-Unlock, and accelerometer applications support Androids development environment includes a device emulator, debugger, performance profiling tool, and an Eclipse ID E plug-in pic Logo of Android OS Architecture pic The main components of the Android architecture 1.Applications These are applications written in chocolate. nearly of basic applications include a calendar, email client, SMS program, maps, making phone calls, door porting the Web browser, accessing your contacts list and others. pic 2. Application Framework This is the skeleton or framework which all android developers has to follow. The developers can access all framework APIs an execute phones basic functions like resource allocation, switching between transites or programs, telephone applications, and keeping track of the phones material location. The architecture is well designed to simplify the reuse of components.Think of the application framework as a set of basic tools with which a developer can build much more complex 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 developers via Android Application framework. Some of these libraries include media , graphics, 3D, SQLite, web browser library etc. The Android run conviction layer which includes set of core java libraries and DVM (Dalvik Virtual Machine) is similarly located in same layer. pic 4.Run era Android This layer includes set of base libraries that are required for java libraries. Every Android application gets its own instance of Dalvik virtual(prenominal) machine. Dalvik has been written so that a device can run bigeminal VMs efficiently and it executes files in executable (. Dex) optimized for minimum memory. pic 5. eye Linux This layer includes Androids memory focusing programs, security settings, power management software and several drivers for hardware, file system access, networking and inter- carry through- communication. The kernel in like manner acts as an abstraction layer between hardware and the rest of the so ftware stack. pic The basics of the Android kernel are just like any other monolithic architecture, all services (file system, VFS, device drivers, etc. ) as well as core functionality (scheduling, memory allocation, etc) are a nasty knit group sharing the same space. The kernel of this system is both a hybrid and a monolithic modular design. It is broken mound into five major subsystems Process Scheduler (SCHED) responsible for controlling process access to the CPU. The scheduler enforces a policy that ensures that processes will take for fair access to the CPU, piece ensuring that necessary hardware actions are performed by the kernel on time. Memory Manager (MM) permits multiple processes to securely share 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. Unused memory is swapped out to obstinate storage using the file system then swapped back in when it is shooted. Virtual File System (VFS) abstracts the details 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 talk (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 draw off3. Single-threaded applications run all insures serially, meat the next command is not completed until the previous one is done. some other way of saying this is that each call is blocking. This single thread is in like manner k directlyn 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 w ell as processing all the user events, such as touches on the screen, clicks of the button, and so on. Threads may suspend themselves or be suspended every by the refuse Collector (GC), debugger or the signal monitor thread. The VM controls all the threads through the use of a internal structure 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 incompatible states. CPU SchedulingThe Linux kernel uses the Completely Fair Scheduler (CFS), which has the objective of providing ratio 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 throw away the same CPU share and that, each time that unfairness is verified, the algorithmic rule assures that task rebalancing is performed. Although fairness is guaranteed, this algorithm does not provide any temporal role guarantees to tasks, and the refore, 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 mobile devices and considers memory optimization, battery power saving and low 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 hurt of go throughation, the algorithm works as follows the tasks with lower virtual runtime are laid on the left side of the tree, and the tasks with the higher 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 node of the tree to be scheduled. all(prenominal) 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 variety 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 waiting for an I/O device.In this case, the tasks are compensated with the amount of time taken to uplift the information they needed to complete its objective. pic Since the introduction 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 periodic and preemptive.Its periodicity is activated by the frequency of the CPU clock. It allows preemption either when a high precession task needs CPU time or when an interrupt exists. As for task priorities, these can be dynamically modified with the nice command and shortly the kernel supports 140 priorities, where the values ranging from 0 to 99 are reserved for real-time processes and the values ranging from 100 to 139 are reserved for figure processes. Process States The order in which processes are killed to reclaim resources is determined by the priority 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 long-life 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 die har d running and in memory until the system needs its resources for other applications.A process has five different states. pic Active Processes Active (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 mobile state that is, they are in the foreground and responding to user events. You will explore action at law states in greater 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 visible Activities. As the name suggests, visible Activities are visible, but they arent in the foregroun d 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 compass 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 f or foreground processes. Empty Processes To modify oerall system performance, Android often 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 draw pic Memory Management Androids process and memory management is a little unusual.Like Java 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 stops and kills processes as necessary to manage resources.Da lvik and the Android run time sit on top of a Linux kernel that handles low-level hardware 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 name of real-time limitations, the mechanisms provided by the architecture do not solve the experient problems related with priority inversion. Therefore, synchronization protocols such as priority cap and inheritance are not implemented. Event Handling In terms of interrupt/event handling, these are performed by the kernel via device drivers. Afterwa rds, 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 arrival 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 proprietary extensions and changes.These extensions can help or could interfere with security, being able to analyze a distribution of Android is therefore an important step in protecting information on that system. Android applica tions 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 decide whether to install the application. Networking Android supports connectivity technologies including ball-shaped System for Mobile Communications (GSM)4, Enhanced Data evaluate for GSM growing (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 nuke Access (WiMAX)14. EvaluationMobile software development has evolved incredibly over time, better-looking 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 mobile devices the most popular way to stay connected, as speeds are comparable 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 learning the development process. Hackers, coders, and all recalcitrant 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 think creatively by giving them almost absolute power over creating innovative applica tions. Bibliography Android Developers. Web. 11 Nov. 2011. . Burnette, Ed. Hello, Android Introducing Googles Mobile knowledge Platform.Raleigh, NC Pragmatic helf, 2010. Print. Burns, Jesse. DEVELOPING SECURE rambling APPLICATIONS FOR ANDROID. 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 Welcome 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 Java and Open Source Development Knowledge. Web. 11 Nov. 2011. . White Paper Android by 2012, Android OS, Android SDK. Upload &038 Share PowerPoint Presentations and Documents. Web. 11 Nov. 2011. . &8212&8212&8212&8212&8212&8212&8212 1A Java interpreter machine, completely optimized for Android platform and which is developed to run on low-end memory mobile devices. mavin of the prominent aspects in Dalvik is its capability to run along an application digest 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 successful 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 relational 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 engraf t (ETSI) to describe technologies for second times (or 2G) digital cellular networks 5 A digital mobile phone technology that allows improved data transmission 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 convey access method used by various radio communication technologies 8 A telecommunications standard for the wireless transmission of data through radio signals, typically for broadband Internet access 9 A third generation mobile cellular technology for networks based on the GSM standard 10 engineering science standard for exchanging data over short 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 communi cation standard, formally submitted as a candidate 4G system 13 NFC allows for simplify 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 geographic areas

No comments:

Post a Comment