This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.
The purpose of this report is to help reader to understand mobile application development of android. The issues on android challenges and discuss the differences on the application architecture on android comparing the generation. Other than that, this report research & investigate areas relating to process control management of windows. Beside, the types of scheduling, handling of processes or threads and internal systems structure will be covered as well on this report.
Nowadays, Android is the world's most popular mobile platform. Android gives you everything you need to build best-in-class app experiences. Therefore, on this report we are going to helps the reader to understand more about mobile application development of android. Besides, research and investigate the process control management of operation system help us to understand more deep into the system structure and handling of processes. Therefore, it can help us to efficient use of the windows operation system.
The Chapter that will be coved in this report:
Process Control Management : Process states, process scheduling
CPU Scheduling : Type of Scheduling, preemptive, non-preemptive, algorithm
Operating Systems and Utility Programs : User Interface , Operating System Function
4.0 History of Android
Android, Inc. was founded by Andy Rubin, Nick Sears, Rich Miner and Chris in Palo Alto, California in October 2003 (Ryanlow2 2013). After that, Google acquired Android Inc. on August 17, 2005, making it a wholly owned subsidiary of Google (Ryanlow2 2013).. Android was unveiled as its first product, a mobile device platform built on the Linux kernel version 2.6 (Ryanlow2 2013). On October 22, 2008 HTC released the first phone HTC Dream that available to run Android OS (Operating System) (Ryanlow2 2013).
4.1 Mobile Application Development of Android
Before start to development of Android application, we need to development set up. It is required:
1. Download the Android SDK from the official android developer website: http://developer.android.com
2. Install the ADT plug-in for Eclipse (if you will use Eclipse IDE)
3. Download the latest SDK tools and platforms using the SDK Manager,
4.1.1 Creating an Android Project with Eclipse
To create a new project with Eclipse, Click "New" button in the toolbar.
In the window that appears as "Figure 1.0" from above, open the Android folder and select Android Application Project and click Next.
Fill in the form that appears as Table 1.0 Below:
Table 1.0 Description
The name of your application that appears to users
The name of your project
The package name of your project
Minimum Required SDK
The lowest version of Android that your app supports
Indicates the highest version of Android
The platform version against which you will compile your apps
The Android UI style to apply your application
On the next screen to configure the project and leave the default selection by click Next.
The next screen can help you create a launcher icon for your app, click Next.
Select a template from which to begin building your application. Select Blank Activity and Click Next
Leave all the details for the activity in default state and click Finish (Android 2013).
4.2 Android's Challenges
4.2.1 Reduce Fragmentation
Android's biggest problem is the inability of smart phones to stay current on software. Wireless carriers and phone makers and are slow to blend Google's updates with their own software modifications, therefore even the latest phones are still using a version of Android that became outdated few months ago (PCWorld 2011).
4.2.2 Contain Malware
As Android becomes more and more popular, it is going to become a bigger target for malware, Google's only strategy against malicious applications is to remove them from the Android's Market (PCWorld 2011).
4.2.3 Dependence of Android on Google
On August 17, 2005, Google bought over Android Inc. for $US50 million (estimated) (ROSOFF 2011).Google also key employees of Android Inc (Softpanorama.info 2013). Google marketed the android platform to carriersÂ and handset makers on the promise of providing a flexible, upgradable system (ROSOFF 2011). Therefore Android is very dependent on Google.
4.2.4 It it "there" has the methods to outcome this dependent?
No, there is because Google Inc. is a big and good enough company to support the Android projects and development. Google has huge amount of capital to invest the Android developer teams to research and provide the best user-experience of mobile platform. In fact, Android now has become the world's most popular mobile platform (Developer.android 2013).
4.3 The Generations of Android
The Table 2.0 below is comparing about the generation on Android (Visual.ly 2013).
12 Nov 2007
Android Beta SDK Released
23 Sep 2008
Featured on HTC Dream (G1)
9 Feb 2009
1.1 (Initial release)
Android 1.1 update released for T-Mobile G1
30 April 2009
based on Linux kernel 2.6.27
-Camcorder support to record and watch videos
-Ability to easily upload images and videos to Picasa and YouTube
-A number of Bluetooth improvements
15 Sep 2009
based on Linux kernel 2.6.29
-New Camera, camcorder and photo gallery interfaces
-Improved voice search and search experience
-Support for higher screen resolutions
26 Oct 2009
based on Linux kernel 2.6.29
- Improved UI
-Improved virtual keyboard
3 Dec 2009
12 Jan 2010
20 May 2010
based on Linux kernel 2.6.32
-Camera control improvements with more on-screen buttons
-New home screen tips widget
-Tethering with up to 8 Wi-Fi hotspots
6 Dec 2010
based on Linux kernel 2.6.35
-New download manager
-Near-Field Communication (NFC) support to read NFC tags
-One-touch word selection and copy/paste
22 Feb 2011
22 Feb 2011
based on Linux kernel 2.6.36
-New UI optimized for tablets include a new system bar
-Improved text selection, copy and paste
-Multi-core processor support
10 May 2011
18 Jul 2011
19 Oct 2011
4.0 (Ice Cream Sandwich)
based on Linux kernel 3.0.1
-Recent Apps Selection
-Lock Screen Actions
9 Jul 2012
based on Linux kernel 3.0.31
- Improved touch response and transitions
-Instant review of taken photos
29 Oct 2012
4.2 (Jelly Bean)
-Multiple users for tablets
-Beam photos and videos
-Photo Sphere to take 360 degree images
Table 2.0 Comparison of Android Generation
5.0 Introduction of Microsoft and Windows
In 1975, Bill Gates and Paul Allen form a partnership calledÂ Microsoft. "Like most start-ups,Â MicrosoftÂ begins small, but has a huge vision-a computer on every desktop and in every home" (Microsoft 1975). In 1985, Microsoft initial announcement and ship Windows 1.0 Operation System. Currently, Windows OS are done many improvement and new version released such as Windows XP, Windows 7 and Window 8.
5.1 Windows Process and Thread Objects
Windows makes use of two types of process-related objects, there are processes and threads. Each Windows process is represented by an object whose general structure is shown in Figure 2.0 below. Each process is defined by a number of actions and encapsulates a number of attributes, or services, that it may perform (William 2005, p.18)
A Windows process must contain at least one thread to execute. The thread attribute value is derived from the process attribute value. Example, the thread processor affinity is the set of processors in a multiprocessor system that may execute this thread; this set is equal to or a subset of the process processor affinity (William 2005, p.20). If that one of the attributes of a thread objects is a context. This information will enable threads to be suspended and resumed. Additionally, it is possible to alter the behavior of a thread by altering its context when it is suspended (William 2005, p.20).
5.2 Windows OS's Internal Systems Structure
5.2.1 I/O operations
A running program may require I/O, which may involve a ï¬le or an I/O device. For efficiency and protection, users usually cannot control I/O devices directly (Wiley 2013, p.40).
5.2.2 User Interface
Almost all OS have a user interface. Most commonly, a Graphical User Interface (GUI) is used. A GUI provides a desktop metaphor where the mouse is moved to position its pointer on images, on the screen (the desktop) that represent programs, directories, and system function (Wiley 2013, p.41).
5.2.3 Program Execution
A system must be able to run that program and load a program into memory. Therefore the program must be able to end its execution, either abnormally or normally (Wiley 2013, p.40).
5.3 Types of Scheduling
5.3.1 Long Term Scheduling
Long term scheduling is performed when a new process is created (techgeek.in 2010).
5.3.2 Medium-term Scheduling
Medium-term scheduling is a part of the swapping function (techgeek.in 2010).
5.3.3 Short-term Scheduling
Short-term scheduler is also called as dispatcher. Short-term scheduler is invoked whenever an event occurs, that may lead to the interruption of the current running process (techgeek.in 2010).
5.3.4 Preemptive Scheduling
In preemptive mode, the currently running process task may be interrupted and moved to the ready State by the OS (techgeek.in 2010).
5.3.5 Non-preemptive Scheduling
In non-preemptive mode, once if a process enters into running state, it will continues to execute until it terminates or blocks itself to wait for Input/Output or by requesting some OS service (techgeek.in 2010).
Type of scheduling algorithms
First-come, first-served scheduling (FCFS)
Better for long processes
Short process behind long process results in lower CPU utilization.
Shortest Job First Scheduling (SJF)
It gives superior turnaround time performance to shortestÂ
Starvation may be possible for the longer processes.
Good response for the highest priority processes.
Starvation may be possible for the lowest priority processes.
Very good response for the highest priority process over non-preemptive version of it.
Starvation may be possible for the lowest priority processes.
Fair treatment for all the processes.
Effective in a general-purpose, times-sharing system or transaction-processing system.
Care must be taken in choosing quantum value.
Throughput is low if time quantum is too small.
5.4 Advantages & Disadvantages of Scheduling algorithms
The Table 3.0 below is comparing about the Advantages & Disadvantages of Scheduling algorithms (techgeek.in 2010).
Table 3.0 Advantages & Disadvantages of scheduling algorithms
5.5 The Best and Worst Scheduling Algorithm
Each scheduling algorithm has different advantages and disadvantage. For general purpose OS will use priority based, preemptive and round robin. Real Time OS will use priority, no preemption (Breecher 2013). According to Microsoft, preemptive scheduling which Windows DOES NOT do because "Between any two application instructions, N instructions may execute in another application's context, where N is greater than or equal to zero" (Microsoft 2013).Â A non-preemptive system, such as Windows, will guarantee that this number N will always be zero (Microsoft 2013).
To bringing the better user-experience and performance to the users, there is still a lot of improvement and enhancement that can be done by the Android developers. There are different kinds of scheduling and each of it contains its advantages and disadvantages.