Integrated Software Environment Part 2
Operating Systems An operating system is the most important software that runs on a computer. It manages the computer's memory, processes, and all of its software and hardware. It also allows you to communicate with the computer without knowing how to speak the computer's "language." Without an operating system, a computer is useless.
The Operating System's Job You've probably heard the phrase boot your computer, but do you know what that means? Booting is the process that occurs when you press the power button to turn your computer on. During this process (which may take a minute or two), the computer does several things: It runs tests to make sure everything is working correctly. It checks for new hardware. It then starts up the operating system.
Once the operating system has started up, it manages all of the software and hardware on the computer. Most of the time, there are many different programs running at the same time, and they all need to access your computer's Central Processing Unit (CPU), memory, and storage. The operating system coordinates all of this to make sure that each program gets what it needs.
Types of Operating Systems Operating systems usually come preloaded on any computer that you buy. Most people use the operating system that comes with their computer, but it is possible to upgrade or even change operating systems. The three most common operating systems for personal computers are Microsoft Windows, Apple Mac OS X, and Linux.
Modern operating systems use a Graphical User Interface, or GUI (pronounced "gooey"). A GUI lets you use your mouse to click on icons, buttons, and menus, and everything is clearly displayed on the screen using a combination of graphics and text. Each operating system's GUI has a different look and feel, so if you switch to a different operating system it may seem unfamiliar at first. However, modern operating systems are designed to be easy to use, and most of the basic principles are the same.
Note Before GUIs, computers had a command-line interface, which meant the user had to type every single command to the computer, and the computer would only display text.
Operating Systems for Mobile Devices The operating systems previously mentionned were designed to run on desktop or laptop computers. Mobile devices such as phones, tablet computers, and mp3 players are very different from desktop and laptop computers, so they run operating systems that are designed specifically for mobile devices. Examples of mobile operating systems include Apple ios, Windows Phone, and Google Android.
Operating Systems for mobile devices generally aren't as fully-featured as those made for desktop or laptop computers, and they aren't able to run all of the same software. However, you can still do a lot of things with them, such as watching movies, browsing the internet, managing your calendar, playing games, and more.
Programming What is a Source Code Editor? A source code editor is a text editor program designed specifically for editing source code of computer programs by programmers. It may be a standalone application or it may be built into an integrated development environment (IDE).
Source code editors have features specifically designed to simplify and speed up input of source code, such as syntax highlighting, autocomplete and bracket matching functionality. These editors also provide a convenient way to run a compiler, interpreter, debugger, or other program relevant for software development process.
So, while many text editors can be used to edit source code, if they don't enhance, automate or ease the editing of code, they are not source code editors, but simply text editors that can also be used to edit source code. A few source code editors check syntax while users type, immediately warning of syntax problems. A few source code editors compress source code, typically converting common keywords into single-byte tokens, removing unnecessary whitespace, and converting numbers to a binary form.
Role of a Debugger A debugger or debugging tool is a computer program that is used to test and debug other programs (the "target" program). The code to be examined might alternatively be running on an instruction set simulator (ISS), a technique that allows great power in its ability to halt when specific conditions are encountered but which will typically be somewhat slower than executing the code directly on the appropriate (or the same) processor.
Some debuggers offer two modes of operation full or partial simulation to limit this impact. A "crash" happens when the program cannot normally continue because of a programming bug. For example, the program might have tried to use an instruction not available on the current version of the CPU or attempted to access unavailable or protected memory.
When the program "crashes" or reaches a preset condition, the debugger typically shows the location in the original code if it is a source-level debugger or symbolic debugger, commonly now seen in integrated development environments. If it is a low-level debugger or a machinelanguage debugger it shows the line in the disassembly (unless it also has online access to the original source code and can display the appropriate section of code from the assembly or compilation).
Typically, debuggers offer a query processor, symbol resolver, expression interpreter, and debug support interface at its top level. Debuggers also offer more sophisticated functions such as running a program step by step, stopping (breaking) at some event or specified instruction by means of a breakpoint, and tracking the values of variables. Some debuggers have the ability to modify program state while it is running.
It may also be possible to continue execution at a different location in the program to bypass a crash or logical error. The same functionality which makes a debugger useful for eliminating bugs allows it to be used as a software cracking tool to evade copy protection, digital rights management, and other software protection features.
Integrated Development Environment An integrated development environment (IDE) or interactive development environment is a software application that provides comprehensive facilities to computer programmers for software development. An IDE normally consists of a source code editor, build automation tools and a debugger. Several modern IDEs integrate with Intelli-sense coding features.
Some IDEs contain a compiler, interpreter, or both; others do not. The boundary between an integrated development environment and other parts of the broader software development environment is not well-defined. Sometimes a version control system and various tools are integrated to simplify the construction of a GUI. Many modern IDEs also have a class browser, an object browser, and a class hierarchy diagram, for use with object-oriented software development.
The Android SDK The Android SDK (Software Development Kit) provides you the API libraries and developer tools necessary to build, test, and debug apps for Android. It will be the IDE we will be using for all our programming needs. It is available for download here: http://developer.android.com/develop/index.html