Abstract
Who doesn’t know about android this day? Android is known as an operating system that ‘ruled’ the world of gadget nowadays. Usually all of gadget produced in 2010’s are using android. But half of the user didn’t know what an android really is. User tends to put the meaning of android aside and just play with their new awesome gadget (that using Android) and know nothing about it. Android is an Operating System (OS) created by Google to run on electronic devices such as cellphones, e-books, MID, netbooks, Internet tablets or other devices. An OS is similar to Windows that controls desktop or laptop personal computers. People are free to modify Android without any restriction because Google make it an open source. So many people run into it rather than others Android’s competitors such as Windows, iOS, etc. This paper would discuss about what is Android generally, what is IDE, how to compile and publish it also knowing the community of Android itself. After the completion of this paper, author expected the reader to know about Android and environment around that operating system besides getting point for thesis requirement. Understanding the operating system of your gadget helps a lot for modifying your devices for future needs.
CHAPTER 1
INTRODUCTION
Background
Nowadays android is becoming a most popular mobile operating system in the world, can be proven by the selling of Smartphone or Tablet PC that we has achieved the wonderful position, moreover in Indonesia. And most of all the vendors of Smartphone have produced their Smartphone with the Android operating system.
The developer of the software can have a big chance to gain more potential in creating the application. The applications created also give a big influence to the users. With the open source that Android given, make everyone freely can develop more or create a new application within Android Platform.
Scope
Scope Topic
Topic that will be discussed in this paper is:
What is IDE?
What kind of the programming language that is used?
How to Compile?
How to Publish?
Goals and Benefits
Goals
Purpose of creating this paper is to meet the requirements for doing thesis and to obtain value and grade for this course (“Topik Topik Lanjutan Sistem Informasi”).
Benefits
Reader understands about what is Android and IDE.
Reader aware of IDE that used to create the operating System of Android.
Reader can understand how to compile and publish the android application.
Research Methodology
Literature study is a methodology that searching for relevant theory or references which support the case or problem. References can be found by using guide books, research and journal in internet.
These references consist of:
Definition of Android.
Definition of IDE
How to use the IDE to create an operating system Android.
The purpose is to be the basic theory or guidance in completion of problems and cases discussed in this thesis.
CHAPTER 2
THEORETICAL BASIS
Definition of Information System
Definition of System
According to [Sat04], A system is a collection of interrelated components that function together to achieve some outcome.
According to [Ben06], a system is an abstraction of a complex interacting set of elements, for which it is possible to identify a boundary, an environment, inputs and outputs, a control mechanism and some process or transformation that the system achieves.
According to, system is a group of interrelated components, and work together toward a common goal by accepting input and output in the process of transformation or change management.
Based on the definitions above, we assume that system is interrelated activities and components that are integrated and working together to achieve some goals by accepting input and resulting in output in the process of change management.
Definition of Operating System
[Raj06] Operating system is the system software responsible for the direct control and management of hardware and basic system operations. Additionally, it provides a foundation upon which to run application software such as word processing program and web browsers.
The operating system ensures that other applications are able to use memory, input and output devices and have access to the file system. If multiple applications are running, the operating system schedule this such that all processes have sufficient processor time where possible and do not interferee with each other.
In general, the operating system is the first layer of software loaded into computer memory when it starts up. As the first layer software, all other software that gets loaded after it depends on this software to provide them with various common core services. These common core services include but not limited to : disk access, memory management, task scheduling, and user interfacing. [Raj06]
Definition of Android
Android, as a system, is a Java-based operating system that runs on the Linux 2.6 kernel [DiM08]. The system is very lightweight and full featured.
Android applications are developed using Java and can be ported rather easily to the new platform.
Type of Android Application [Wei]:
Foreground: An application that’s useful only when it’s in the foreground and it’s effectively suspended when it’s not visible.
Background: An application with limited interaction that, apart from when being configured, spends most of its lifetime hidden
Intermittent: Expects some interactivity but does most of its work in the background.
Widget: Some applications are represented only as a home screen widget.
Features of Android [Wei]:
Storage: Use SQLite, a light relational database.
Connectivity: Support GSM/EDGE, IDEN, CDMA, EV-DO, UMTS, Bluetooth, Wi-Fi, LITE, and WiMAX.
Messaging: Supports both SMS and MMS
Web Browser: based on the open source WebKit
Media Support: includes support from H.263, H.264, etc.
Hardware support: accelerometer sensor, camera, Digital Compass, Proximity sensor, and GPS
Multi touch: support multi-touch screen
Multi-Tasking: support multi-tasking application.
Flash support: flash 10.1
Tethering: support sharing of internet connection.
Android Architecture [Wei]:
Linux kernel
This is the kernel on which Android is based. This layer contains all the low level device drivers for the various hardware components of an Android device.
Libraries
These contain all the code that provides the main features of an Android OS. For example, the SQLite library provides database support so that an application can use it for data storage. The WebKit library provides functionalities for web browsing.
Android runtime
At the same layer as the libraries, the Android runtime provides a set of core libraries that enable developers to write Android apps using the Java programming language. The Android runtime also includes the Dalvik virtual machine, which enables every Android application to run in its own process, with its own instance of the Dalvik virtual machine (Android applications are compiled into Dalvik executable). Dalvik is a specialized virtual machine designed specifically for Android and optimized for battery-powered mobile devices with limited memory and CPU.
Application framework
Exposes the various capabilities of the Android OS to application developers so that they can make use of them in their applications.
Applications
At this top layer, you will find application that ship with the Android device (such as Phone, Contacts, Browser, etc.), as well as applications that you download and install from the Android Market. Any applications that you write are located at this layer.
Definition of Application
Application software is a set of computer instructions that provide more specific functionality to a user. That functionality may be broad, such as general word processing, or narrow, such as an organization’s payroll program. Essentially, an application program applies a computer to a certain need. Application programming refers to both the creation and the modification and improvement of application software. Application software maybe proprietary or off-the-shelf. As we shall see, there are many different software applications that are used by organizations today.[Rai10]
In other words, application software is a computer program or a suite of computer programs that performs a particular function for the user. Application software includes all programs that perform specific tasks for user such as word processing, spreadsheet, database, presentation, e-mail and web browsing.
Definition of Mobile Application
Mobile is having freedom of movement, movable, able to move freely and quickly to any given area. [www1]
Based on the definition of application and mobile, we can conclude that mobile application means a program that can be easily utilized while user is on the move without any disruption of the network and communication.
We can find Mobile Application in many devices such as phones and tablets.
Types of Mobile Applications:
SMS
The most basic mobile application. These application can be useful tools when integrated with other mobile application types.
The advantage of sms application:
They work on any mobile device nearly instanttaneuosly
They’re useful for sending timely alerts to the user
They can be incorporated into any web or mobile application
They can be simple to set up and manage.
The disadvantage of sms application:
They’re limited to 160 characters.
They provide a limited text-based expense
They can be very expensive.
Mobile Website
A website designed specifically for more devices, not to be confused with viewing a site made for dekstop browser on a mobile browser.
The advantage of Mobile Website:
They are easy to create, maintain and publish.
They can use all the same tools and technique that already use for dekstop sites.
Nearly all mobile devices can view mobile website
The disadvantage of mobile website :
They can be difficult to support across multiple devices.
They offer users a limited experience.
Most mobile websites are simply dekstop content reformated for mobile devices
They can load page slowly, due to network latency.
Mobile Web Widget
The mobile web widgets is provide by the mobile web to counter the mobile web’s weakness. Mobile web widgets are small web applications that can’t be run by themselves.
The advantage of mobile web widgets:
They are easy to create, using basic HMTL, CSS, and javascript knowledge
They can be simple to deploy across multiple handsets
They offer an improved user experience and a richer design, tapping into devices features and offline use
The disadvantage of mobile web widgets:
They typically require a compatible widget platform to be installed on device
They cannot run in any mobile web browser
They require learning additional proprietary, non-web standard techniques.
Mobile Web Application
Mobile application that do not need to be installed or compiled on the target device. They are able to provide an application-like experience to the end user while running in any mobile web browser.
The advantage of mobile web application:
They are easy to create, using basic HMTL, CSS, and javascript knowledge
They offer a near-user-experience and a rich design, tapping into device feature and online use.
They are simple to display
The disadvantage of mobile web application :
They dont always support mobile-application features, like offline mode, location lookup,camera, and filesystem access.
They can be challenging but not impossible to support across multiple devices.
The optimal experience might not be possible on all handsets.
Native Application
The next mobile-application medium is the-oldest and the most common which is actually uncomon because a mobile web app or mobile web widget can triger the natives feature of the device as well. This application should be called “platform application” as they have to be developed and compiled for each mobile-platform.
The advantage of Native Application:
They offer a best-in-class user experience, offering a rich design and tapping with device features and offline use
They are relatively simple to develop for a single platform
You can charge for applications
The disadvantage of native application :
They cannot be easily ported to other mobile-platform
Developing, testing, and supporting multiple device platform is incredibly costly
They require certification and distribution from a third party that doesnt have control over
They require to share revenue with the one or more third party
Games
Native application that use the similar platform SDKs to create immersive experience but they not consider as native application because cannot be easily duplicated and porting them to multiple mobile platform is a bit easier than physical platform-based application.
The advantage of games:
They provide a simple and easy way to create an immersive experience.
They can be ported to multiple devices relatively easily.
The disadvantage of games:
They can be costly to develop as an original game title.
They cannot easily be ported to the mobile web.
Definition of Android SDK ( Development tool)
Android SDK contains a debugger, libraries, an emulator, documentation, sample code, and tutorial when making an android application.
Android virtual devices are used to simulate the software builds and hardware specifications available on different devices.
The emulator is the perfect tool for testing and debugging the application. It’s developed from any particular hardware.
Dalvik Debug Monitor Service (DBMS) is a powerful debugging tool that lets interrogate active process, view the stack and heap, watch and pause active threads, and explore the file system of any connected android device.
The Android Debug Bridge (ADB) is a client-service application that enables to connect with an android emulator or device. It’s made up of 3 components: a daemon running on the emulator, a service that runs on the developer’s hardware, and client application that communicate with the daemon through service.
CHAPTER 3
DISCUSSION
Definition of IDE
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. Most modern IDEs offer Intelligent code completion features. Integrated development environments are designed to maximize programmer productivity by providing tight-knit components with similar user interfaces. IDEs present a single program in which all development is done. This program typically provides many features for authoring, modifying, compiling, deploying and debugging software.
One aim of the IDE is to reduce the configuration necessary to piece together multiple development utilities, instead providing the same set of capabilities as a cohesive unit. Reducing that setup time can increase developer productivity, in cases where learning to use the IDE is faster than manually integrating all of the individual tools. Tighter integration of all development tasks has the potential to improve overall productivity beyond just helping with setup tasks. For example, code can be continuously parsed while it is being edited, providing instant feedback when syntax errors are introduced. That can speed learning a new programming language and its associated libraries.
IDE History
IDEs initially became possible when developing via a console or terminal. Early systems could not support one, since programs were prepared using flowcharts, entering programs with punched cards (or paper tape, etc.) before submitting them to a compiler. Dartmouth BASIC was the first language to be created with an IDE (and was also the first to be designed for use while sitting in front of a console or terminal). Its IDE (part of the Dartmouth Time Sharing System) was command-based, and therefore did not look much like the menu-driven, graphical IDEs prevalent today. However it integrated editing, file management, compilation, debugging and execution in a manner consistent with a modern IDE.
Maestro I is a product from Softlab Munich and was the world's first integrated development environment 1975 for software. Maestro I was installed for 22,000 programmers worldwide. Until 1989, 6,000 installations existed in the Federal Republic of Germany. Maestro I was arguably the world leader in this field during the 1970s and 1980s. Today one of the last Maestro I can be found in the Museum of Information Technology at Arlington.
One of the first IDEs with a plug-in concept was Softbench. In 1995 Computerwoche commented that the use of an IDE was not well received by developers since it would fence in their creativity. [Wik3]
Example of IDE
Eclipse
http://en.wikipedia.org/wiki/Eclipse_(software)
https://www.eclipse.org/
Netbeans
http://en.wikipedia.org/wiki/NetBeans
https://netbeans.org/
Microsoft Visual Studio
http://en.wikipedia.org/wiki/Microsoft_Visual_Studio
IDE for Android Application Development
Eclipse
Eclipse IDE is what programmers commonly used to create and develop Android applications. Eclipse IDE is the most well-known IDE for now. It offers a lot of functionality and features to help develop an Android application compared to any other IDEs.
AIDE
AIDE or Android IDE is an Internet Development Environment that allows developers to create, code, compile Android Applications on the Android device itself. It is compatible with Eclipse so any code from Eclipse can be transferred to AIDE and will work beautifully. AIDE is also compatible with Dropbox, making all saving process easier. It’s compatibility with Dropbox and Eclipse basically made AIDE one of the top applications amongst others offering the same purpose.
Android Studio
Android Studio came out on 16 May 2013 in San Francisco. It is the first dedicated IDE for the mobile OS Google had made. It is created under a goal to be friendlier and less complex than Eclipse. Thus, for its very young age and the fact that it’s only a preview, there might still be a lot of bugs yet to be fixed.
Other IDEs
Other IDEs that are often heard and also can be used to develop Applications for Android includes : Terminal IDE, Deuter IDE, Basic4Android, Netbeans, Hello-Android, Processing for Android, and DroidEdit. Apart from all the IDEs mentioned above, there are actually a lot more of IDEs that can be used for creating an Android application.
Main Language Used in Developing Android Application
Java
James Gosling from Sun Microsystems created the Java programming language in the mid-1990s. (Sun Microsystems has since been bought out by Oracle.) Java’s meteoric rise in use came from the elegance of the language and the well-conceived platform architecture.
After a brief blaze of glory with applets and the web, Java settled into being a solid, general-purpose language with special strength in servers and middleware. In the meantime, Java was quietly seeping into embedded processors. Sun Microsystems was developing Java ME (Mobile Edition) for creating midlets to run on mobile phones. Java became a major technology in Blu-ray disc players. So the decision to make Java the primary development language for Android apps is no big surprise.
An embedded processor is a computer chip that’s hidden from the user as part of some special-purpose device. The chips in today’s cars are embedded processors, and the silicon that powers your photocopier at work is an embedded processor. Pretty soon, the flower pots on the windowsill will probably have embedded processors. The trouble is, not everyone agrees about the fine points of Java’s licensing terms.
The Java language isn’t quite the same as the Java software libraries, which in turn aren’t the same as the Java Virtual Machine (the software that enables the running of Java programs). So in marrying Java to Android, the founders of Android added an extra puzzle piece the Dalvik Virtual Machine. And instead of using the official Sun/Oracle Java libraries, Android uses Harmony an open-source Java implementation from the Apache Software Foundation. Several years and many lawsuits later, companies are still at odds over the use of Java in Android phones.
XML Language
XML or eXtensible Markup Language began to be developed by World Wide Web Consortium (W3C) in the mid-1990s. Markup itself is a term for any extra text that adds the content of a document. W3C’s goal was to create a subset of SGML or Standard Generalized Markup Language to use in transmitting data over the Internet. XML now is a standard for encoding a lot of information. Android uses XML for two purposes: • To describe an app’s data. XML document is used for describing application’s screen, as a translation to other language, and other kind of data. • To describe the app itself. AndroidManifest.xml file will be generated for each and every Android application. This file describes the features of the application, as well as give data to the Operating System so the OS will be able to run the program.
The downside of XML is that writing XML code might be confusing. The plus point of it, is that programming software composes most of XML’s code. This also applies for developing Android application. Making an XML document would often be more like making minor changes and adding a bit of additional coding.
How to Create Android Application
Installing the Java Development Kit
To write Android apps, the developers normally use Java. Not only using Java, Android enjoys lots of different development modes. For example, with Android’s Native Development Kit (NDK), developers can write code that runs directly on a device’s hardware in C or C++. They can develop in HTML and JavaScript to run code on the device’s browser. They can even develop in Adobe AIR. And companies create other specialized development environments all the time. Even so, Java is the language of choice in the Android community. Google creates new versions of Android with Java in mind. And in general the developers get a good power-to-ease-of-use ratio when they develop Android apps in Java. To develop Android apps, developers need the Java Development Kit. For Windows, Linux, or Solaris, the kit can be obtained at the Oracle.com. Macintosh users have a few other possibilities.
Java for Windows, Linux, and Solaris
Java comes in three separate editions
A bit of background here: A programming language is a bunch of rules describing the way users can write instructions for the computer to follow. An application programming interface (API) is a bunch of reusable code for performing common tasks in a particular language. (Another name for an API is a library.) Now, there’s only one Java language, but the Java language has three official APIs. When Java is downloaded from www.oracle.com it downloads some Java language tools and one of the three Java APIs. Taken together, the big bundle containing the language tools and one of the three APIs is called an edition of the Java Software Development Kit (SDK). The three available Java SDK editions are as follows:
Java Platform, Standard Edition (Java SE)
The Standard Edition has code for anything users need on a single desktop computer, and much more. This edition does text-handling, mathematical calculations, input/output, collections of objects, and much more. To develop Android apps, it needed the Java Platform, Standard Edition.
Java Platform, Enterprise Edition (Java EE)
The Enterprise Edition has code for things users need on an industrial-strength server. This edition includes web server tools, sophisticated database tools, messaging between servers and clients, management of systems, and the entire kitchen sink.
Java Platform, Micro Edition (Java ME)
The Micro Edition has code for small devices, such as phones, TV set-top boxes, and Blu-ray players. This edition has limited capabilities that fit nicely into special-purpose devices that aren’t as powerful as today’s computers. At first glance, the Micro Edition seems perfect for Android app development. But the creators of Android decided to bypass Java ME and create their own micro edition of sorts. In a way, the Android SDK is an alternative to Java ME. To be more precise, the Android SDK is both an alternative to Java ME and a user of the Java SE. (That is, the Android SDK defers to Java SE to perform some important jobs.) The stewards of Java flip-flop between the names Java Software Development Kit and Java Development Kit (JDK). The two names are synonymous.
Java comes in several different versions, with several updates to each version
Java’s version numbering demonstrates what can happen when the marketing department disrupts the timeline in the space-time continuum. Java’s earliest releases were numbered “1.0.” Next came version “1.1”, and then the strangely named “Java 2, version 1.2.” The extraneous digit 2 hung around through “Java 2, version 1.3”, “Java 2, version 1.4”, and finally “Java 2, version 5.0.” (The spontaneous jump from 1.4 to 5.0 was lots of fun.) Next up was “Java 6” (with no extra 2 and no “.0”). After that is Java 7. Each version is updated often, so a visit to www.oracle.com may offer Java SE 7 Update 13 for download. Any version of Java starting with Java 2, version 5.0 and onward, is fine for Android development. Versions like 1.4 are not sufficient.
Java has two kinds of downloads
When visit www.oracle.com, there are two acronyms floating around: JRE (Java Runtime Environment) and JDK (Java Development Kit). The JRE has everything needed in order to run existing Java programs. The JDK has everything needed in order to run existing Java programs and everything needed in order to create new Java programs. The JDK has the entire JRE and more. So download and install the Java JDK, not the Java JRE.
Java might come with other tools
A glance at the Java download page shows several options, options to download Java with NetBeans, JavaFX, the Java source code, the Java SE documentation, and some other stuff. The Java SE documentation is helpful. But the rest of the options (NetBeans, JavaFX, and the others) don’t help with Android app development.
Java for Macintosh
To develop Android programs on a Mac, OS X 10.5.8 or later is needed, and the Mac used must have an Intel processor. To find out which version of OS X you’re running, do the following:
1. Choose Apple⇒About This Mac.
2. In the About This Mac dialog that appears, look for the word Version.
The next step is finding out whether the system already has the Java Development Kit.
Run Java Preferences to determine the JDK version. Here’s how to run the utility:
In the dock, select the Finder.
A Finder window opens.
In the Finder window’s sidebar, select Applications.
A list of applications appears in the Finder window’s main panel.
In the Finder window’s main panel, double-click Utilities.
A list of utilities appears in the Finder window’s main panel.
In the list of utilities, look for a Java Preferences entry.
If Java Preferences entry couldn’t be found. It might still have a Java Development Kit. Skip to the test described in the next section.
If it has a Java Preferences entry, double-click that entry.
The computer displays a window showing information about the computer’s Java Development Kit. To develop Android applications, Java SE 5 is needed (also known as version number 1.5.0) or higher.
If The Mac Doesn’t Have Java JDK Version 1.5.0 or Greater. Here are a few ways to download it:
• Visit www.oracle.com/technetwork/java/javase/downloads and look for a version of the Java JDK for the Mac. With the release of OS X 10.7, Apple agreed to let Oracle take charge of the JDK on the Macintosh. If the software can’t be found on Oracle’s site, there also a links at http://openjdk.org.
• Visit http://code.google.com/p/openjdk-osx-build/downloads/list?q=label:Featured and look for a prerelease version of Java for Mac OS X Lion.
• Choose Apple⇒Software Update. In the resulting window, look for any update having to do with Java.
• Search for Java at http://developer.apple.com.
Installing the Android SDK Starter Package
The Android Software Development Kit (SDK) contains the libraries that needed for developing Android applications. The SDK has code for drawing forms on a device’s screen, code for dialing phone numbers, code for taking pictures with the device’s camera, and a lot more. The kit also contains bare-bones tools for creating, running, and testing the Android applications. By barebones tools, tools that can be run by typing instructions in the development computer’s command window (in the Command Prompt on Windows, or in the Terminal application on Linux and on a Mac). These tools perform all the logic required to do full-fledged Android development, but the SDK has no friendly user interface for invoking these tools.
To install the Android SDK starter package, follow these steps:
Visit http://developer.android.com.
2On the main page that appears, click the link to download the Android SDK.
3Find a link appropriate to operating system (Windows, Mac OS X, or Linux).
Click the link to begin the download.
For Windows, the web page provides two download options — a .zip file download and an .exe file download. To make sure which file is right, choose the .exe file download.
For Mac OS X and for Linux, the web page provides a compressed archive file (a .zip file for Mac OS X and a .tgz file for Linux).
Installing the Eclipse Development Environment
Downloading Eclipse
Here’s how you download Eclipse:
1. Visit www.eclipse.org.
2. Look for a way to download Eclipse for your operating system.
3. Choose an Eclipse package from the available packages.
4. Select 32-bit or 64-bit.
5. Follow the appropriate links to get the download to begin.
Installing Eclipse
Precisely how you install Eclipse depends on your operating system and on what kind of file you get when you download Eclipse. Here’s a brief summary:
If you run Windows and the download is an .exe file:
Double-click the .exe file’s icon.
If you download a .tar.gz file, find the file in your Downloads folder and double-click it. Double-clicking the file should extract the file’s contents. After extraction, your Downloads folder contains a new Eclipse folder. Drag this new Eclipse folder to your Applications folder, and you’re all set. If you download a .dmg file, your web browser may open the file for you. If not, find the .dmg file in your Downloads folder and double-click the file. Follow any instructions that appear after this double-click. If you’re expected to drag Eclipse or MOTODEV Studio into your Applications folder, do so.
You might get a .tar.gz file, but there’s a chance you’ll get a self-extracting .bin file. Extract the .tar.gz file to your favorite directory, or execute the self-extracting .bin file.
Configuring Eclipse
Your Eclipse installation might need a bit of tuning. Here’s what you do:
1. Launch Eclipse.
2. In the Workspace Launcher dialog box, click OK to accept the default.
3. Hover over the icons on Eclipse’s Welcome screen until you find an icon whose tooltip contains the word Workbench.
4. Click the Workbench icon to open Eclipse’s main screen.
Fattening Up the Android SDK
In the earlier “Installing the Android SDK Starter Package” section, you install the starter portion of the Android SDK. At this point in your travels, you install the rest of the SDK. The following section tells you how.
Installing platform tools:
In Eclipse’s main menu, choose Window⇒Android SDK and AVD Manager.
In the left panel of the Android SDK and AVD Manager window, select Available Packages.
Click the little plus sign to expand the Android Repository branch of the tree.
Place a check mark next to the Android Repository label.
In the lower-right corner of the Android SDK and AVD Manager window, click Install Selected.
Do any remaining license accepting and clicking to make the download begin.
Share with your friends: |