M0214 TOPIK- TOPIK LANJUTAN SISTEM INFORMASI ANDROID By Yesika Kristina 1501146792 Dea Pradana Darmawan 1501155014 Sukianti 1501169991 Merianti 1501171320 Meshiya Caterlee 1501171485 Class / Group : 06 PLM / 06 Bina Nusantara University Jakarta 2014 Abstract PURPOSE OF THE RESEARCH is to do a research about Android including the Android Operating System, the widely developed Android spplications, the Android Applications development and testing. This research also coped the Android Applications publishing and its growing communities. RESEARCH METHODOLOGY used in this research is library research. It is conducted by looking for references from textbooks, journals, articles, and Internet. There are two steps in doing the library research. The first step is determining keywords related to our research topic. These keywords help us to find any textbooks or scientific journals we need easier. The second step is to select the information based on our research objectives. The information should also be analysed since it is from various sources. THE EXPECTED OUTCOME is to have the more understanding about Android, including the Operating System, the widely developed Android Applications, the basic method how to program, compile, debug and test the application. We can also publish our fully-developed Android applications to the Android market such as Google Play and learn more development by receiving feedbacks from the users who download and buy the applications. We also can join the Android communities to share our knowledges and questions to fellow developers. CONCLUSION of this research is that we understand that Android has a very great potential in development and growth. The Android Operating System as we know is developing and upgraded every once in a while, and countless Android Applications are developed by developers and programmers in the world to share their knowledges and creations for people to ease their lifes. We believe that the growing technology including in Android area will be very helpful to our busy life in the future. Keywords Android Operating System, Android Application, Integrated Development Environment, Android versions, Android emulator, Android market, Android communities. CHAPTER 1 INTRODUCTION 1.1. Background Today, people live in the high-tech world. Modern technologies are produced to meet people’s need in work and communication. One of the technologies is mobile devices. Mobile devices, such as smartphones and tablet computers, are produced to increase productivity in human life. The devices are purposely designed to be all-inone so that people can do their work more flexibly. They are able to access their files stored in the cloud storage (such as Google drive) any time, take photos and videos, play games, make schedule, read online news, do chatting, and do online shopping. Mobile devices are operated by mobile operating systems (mOS). Mobile operating systems are the software platforms on top of which other programs (application programs) can run on mobile devices. One of mobile operating systems is Android. Android is an operating system based on the Linux kernel, and designed primarily for touch-screen mobile devices such as smartphones and tablet computers. Android was unveiled in 2007 along with the founding of the Open Handset Alliance—a consortium of hardware, software, and telecommunication companies devoted to advancing open standards for mobile devices. The first publicly available smartphone running Android, the HTC Dream, was released on October 22, 2008. It is an open-source mobile operating system under the Apache License with any modifications made to the underlying Linux kernel released under GPL v2.e (Brodkin, 2012). The popularity of Android is increasing as it is a low-cost and customizable operating system. Compared to Apple iOS, Android has run on 43 percent of the entire world’s smartphones. It is the market leader in 135 countries, whereas Apple was the market leader in only 38 countries, including the U.S (Mahapatra, 2013). Samsung, whose popular Galaxy series of smartphones and tablets have made it the major industry player among Android vendors, sold 86.6 million mobile phones in the first quarter of 2012, a 26% increase from the 68.8 mobile phones that it sold in the first quarter of 2011. What's more, Samsung displaced Nokia for the first time as the top mobile phone vendor in the world as Nokia's mobile phone sales declined from 107.6 million in the first quarter 2011 to 83.2 million in the first quarter of 2012 (Reed, 2012). Gartner said Samsung's dominance among Android vendors is particularly pronounced since no other Android device manufacturer cracks even a 10% share in the global Android smartphone market. On the quarter, Samsung sold around 32.4 million Android-based phones accounting for roughly 37.5% of all its mobile phone sales on the quarter. Gartner also found that Android has further consolidated its position as the world's top mobile operating system over the past year as vendors sold 81 million Android smartphones in the first quarter of 2012, giving Android a 56.1% market share (Reed, 2012). The popularity of Android triggers us as to do a research to find out the basic information of Android and its marketing way which accelerates its growth. 1.2. Scope The research focuses on Android which is an operating system designed primarily for mobile devices, such as smartphones and tablet computers. It is done to know the common things about Android, such as its Integrated Development Environment (IDE) tools and compiler. Since Android is widely used, this research aims to know how popular it has been over the years, how it has been promoted to the public, and the communities it has over the world. The three aims point out the reason why it has been the consumer preference among all mobile operating systems. 1.3. Objectives and Benefits The objectives of the research are as follows: a. To identify the integrated development environment (IDE) used in Android b. To identify how Android is compiled c. To identify the publication of Android to the market d. To identify the community of Android The benefits of the research are as follows: a. To understand the integrated development environment (IDE) used in Android b. To understand how Android is compiled c. To understand how Android is promoted to the world d. To know the communities of Android over the world 1.4.Research Methodology The methodology used in this research is library research. It is done by looking for references from textbooks, journals, articles, and the Internet. The steps in doing the library research are: 1. Determining keywords related to our research topic. The keywords help us easier to find any textbooks or scientific journals we need. 2. Selecting the information based on our research objectives. The information should also be analysed since it is from various sources. CHAPTER 2 THEORITICAL FOUNDATION 2.1. IDE IDE stands for Integrated Development Environment. IDE programs include a source code editor, compiler, and usually a debugger that all work together when building a software program. The IDE keeps track of all files related to a project and provides a central interface for writing source code, linking files together, and debugging the software. IDE may also includes the runtime environment (RTE) for testing the software. IDE software uses a central interface for writing the code and testing the program, it is easy to make quick changes to the code, recompile it, and run the program again. 2.2. Programming Language Programming language is a computer language that programmers use to develop application, script, or other set of instruction for a computer to execute. The examples of programming languages are C, C# and Java. Another definition of programming language is a set of command instruction or other syntax use to create a software program. Language that programmers use to write code are called “highlevel language”.”High-level languages” means the codes can be recognized directly by the computer hardware. High-level languages allow programmer to write source code in a natural fashion, using logical words and symbols, for example reserved words like function, while, if, and else. Symbols like <,>, ==, and != are common operators. The examples of high-level languages are C++, Java, Perl and PHP. Java and C++ are the example of compiled languages, compiled languages are language that the code must be compiled in order to run. 2.3. Compiler Compiler is program that processes the statements that are written in a particular programming language and turns them into machine language or “code” that a computer’s processor uses. Programmer writes language statements in a language using an editor. File that is created contains what we called source statements. Programmer runs the appropriate language compiler, specifying the name of the file that contains the source statements. When running the compiler first parses (or analyzes) all of the language statements syntactically one after the other and then, in one or more successive stages or "passes", builds the output code, making sure that statements that refer to other statements are referred to correctly in the final code. Traditionally, the output of the compilation has been called object code or sometimes an object module. Java programming language supports the object –oriented programming has the possibility compiling output that we called bytecode that can run on any computer system run on any computer system platform for which a Java virtual machine or bytecode interpreter is provided to convert the bytecode into instructions that can be executed by the actual hardware processor. Using this virtual machine, the bytecode can optionally be recompiled at the execution platform by a just-in-time compiler 2.4. Operating System Operating System or “OS” is software that communicates with the hardware and allows other programs to run. It comprised of system software or fundamental files your computer needs to boot up and function. Android is one example of mobile operating system which is developed specifically for portable devices and designed around touch screen input. Operating system perform simple task have an Operating System to be able to run other programs. It perform basic tasks, such as recognizing input from hardwares, sending output to the display screen, keeping track of files and controlling peripheral devices. 2.5. Mobile Device A mobile device is a small, handheld computing device which is typically having a display screen with touch input and or a miniature keyboard and weighing less than 0.91 kg. It has an Operating System and can run various types of application software. It’s also equipped with WiFi, Bluetooth, and GPS capabilities. It can also connect to Internet. 2.6. Smartphone A smartphone is a mobile phone with advanced computing capability and connectivity. It is a cellular phone that is able to perform many functions of a computer. It has a relatively large screen and advanced Operating System which is capable of running general-purpose applications. 2.7. Application Program Interface A set of routines (A section of a program that performs a particular task), protocols and tools for building software application. It specifies how software component should interact and are used when programming Graphical User Interface (GUI) components. API will help programmer easily to develop a program by providing all building blocks. 2.8. Android Developer Tools ADT (Android Developer Tools) is a plugin for Eclipse that provides a suite of tools that are integrated with the Eclipse IDE. It offers you access to many features that help you develop Android applications quickly. ADT provides GUI access to many of the command line SDK tools as well as a UI design tool for rapid prototyping, designing, and building of your application's user interface. 2.9. Community Community is a social group of any size whose members reside in a specific locality, share government, and often have a common cultural and historical heritage. Here is the explanation about Android Operating System (Meng, 2012). Android Android is a mobile operating system that is based on a modified version of Linux. It was originally developed by a startup of the same name, Android, Inc. In 2005, as part of its strategy to enter the mobile space, Google purchased Android and took over its development work (as well as its development team). Google wanted Android to be open and free; hence, most of the Android code was released under the open source Apache License, which means that anyone who wants to use Android can do so by downloading the full Android source code. Moreover, vendors (typically hardware manufacturers) can add their own proprietary extensions to Android and customize Android to differentiate their products from others. This simple development model makes Android very attractive and has thus piqued the interest of many vendors. The main advantage of adopting Android is that it offers a unified approach to application development. Developers need only develop for Android, and their applications should be able to run on numerous different devices, as long as the devices are powered using Android. In the world of smartphones, applications are the most important part of the success chain. Android Version There are so many kinds of Android version. Table below shows the version of Android Android Version 1.1 1.5 1.6 2.0/2.1 2.2 2.3 3.0/3.1/3.2 4.0 Release Date 9 Febuary 2009 30 April 2009 15 September 2009 26 October 2009 20 May 2010 6 December 2010 22 February 2011 19 October 2011 Codename Cupcake Donut Eclair Froyo GingerBread Honeycomb Ice Cream Sandwich Feature of Android Android doesn’t have fixed hardware and software because of Android is open source and freely available to manufactures for customization. The features are: 1. Storage – Android uses the SQLite which is lightweight relational database for data storage. 2. Connectivity- Android supports GSM/EDGE, IDEN, CDMA , EV-DO,UMTS, Bluetooth (includes A2DP) and AVRCP,Wi-Fi, LTE, and WiMAX. 3. Messaging – Android supports both SMS and MMS. 4. Web browser – Based on the open source WebKit, together with Chrome’s V8 JavaScript engine 5. Media support — Includes support for the following media: H.263, H.264 (in 3GP or MP4 container), MPEG-4 SP, AMR, AMR-WB (in 3GP container), AAC, HE-AAC (in MP4 or 3GP container), MP3, MIDI, Ogg Vorbis, WAV, JPEG, PNG, GIF, and BMP. 6. Hardware support — Accelerometer Sensor, Camera, Digital Compass, Proximity Sensor, and GPS. 7. Multi-touch — Supports multi-touch screens. 8. Multi-tasking — Supports multi-tasking applications. 9. Flash support — Android 2.3 supports Flash 10.1. 10. Tethering — Supports sharing of Internet connections as a wired/wireless hotspot. Architecture of Android Android Operating system is roughly divided into five sections in four main layers: 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 executables). 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 applications 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 1. Application The diagram shows that there can be multiple applications sitting on top of android. The applications are like any user interface, for example music player GUI with play button, pause, seek. Anyone can develop an app and make it available to everyone through Google Play Store. The application is developed in Java, and installed directly without the need to integrate with Android OS. 2. Application Framework Framework offers a huge set of APIs used by developers for various standard purposes, so that they do not have to code every basic task. Framework contains of certain entities: Activity Manager Activity manager is used for managing the activities that govern the application life cycle and several states Notification Manager This manager enables the applications to create customized alerts. Views Views are used to create layouts, including components such as grid, list ,buttons, etc. Resource Managers Resource managers used for managing the external resource such as graphics, external strings, so that all the resources are in a standardized way. Content Provider Applications also share data. From time to time, one application may need some data from another application. For example, an international calling application will need to access the user's address book. This access to another application's data is enabled by the content providers. 3. Libraries This layer holds the Android native libraries. Libraries are written in C/C++ and offer capabilities similar to the above layer, while sitting on top of the kernel. A few of the major native libraries include Surface Manager: Manages the display and compositing window-ing manager. - Media framework: Supports various audio and video formats and codecs including their playback and recording. System C Libraries: Standard C library like libc targeted for ARM or embedded devices. OpenGL ES Libraries : These are the graphics libraries for rendering 2D and 3D graphics. SQLite : A database engine for Android. 4. Android Runtime Android runtime consists of the Dalvik Virtual Machine, which is a virtual machine for embedded devices. If it is embedded with devices it is low on memory, comparatively slower and runs on battery power. Besides Dalvik, there are also Java libraries and available for all devices. 5. Kernel The Android OS is derived from Linux Kernel 2.6 and is actually created from Linux source, compiled for mobile devices. The memory management, process management etc. are mostly similar. The kernel acts as a Hardware Abstraction Layer between hardware and the Android software stack. Android SDK Android SDK provides the API libraries and developer tools necessary to build and test for Android application. CHAPTER 3 DISCUSSION 3.1. Integrated Development Environment(IDE) IDE is a software that facilitates application development. It provides a GUI builder, a text or code editor, a compiler and interpreter and a debugger. The concept of IDE evolved from simple command based software which was not as useful as menu-driven software. Modern IDEs are mostly used in the context of visual programming, where applications are quickly created by moving programming building blocks or code nodes that generate flowchart and structure diagrams, which are compiled or interpreted. IDE for Android development 1. Netbeans NetBeans IDE provides first-class comprehensive support for the newest Java technologies and latest Java specification enhancements before other IDEs. It is the first free IDE providing support for JDK 8 previews, JDK 7, Java EE 7 including its related HTML5 enhancements, and JavaFX 2. Benefits using Netbeans : - Fast & Smart Code Editing An IDE is much more than a text editor. The NetBeans Editor indents lines, matches words and brackets, and highlights source code syntactically and semantically. It also provides code templates, coding tips, and refactoring tools. The editor supports many languages from Java, C/C++, XML and HTML, to PHP, Groovy, Javadoc, JavaScript and JSP. Because the editor is extensible, you can plug in support for many other languages. - Easy & Efficient Project Management Keeping a clear overview of large applications, with thousands of folders and files, and millions of lines of code, is a daunting task. NetBeans IDE provides different views of your data, from multiple project windows to helpful tools for setting up your applications and managing them efficiently, letting you drill down into your data quickly and easily, while giving you versioning tools via Subversion, Mercurial, and Git integration out of the box. When new developers join your project, they can understand the structure of your application because your code is well-organized. - Rapid User Interface Development Design GUIs for Java SE, HTML5, Java EE, PHP, C/C++, and Java ME applications quickly and smoothly by using editors and drag-and-drop tools in the IDE. - Write Bug Free Code The cost of buggy code increases the longer it remains unfixed. NetBeans provides static analysis tools, especially integration with the widely used FindBugs tool, for identifying and fixing common problems in Java code. In addition, the NetBeans Debugger lets you place breakpoints in your source code, add field watches, step through your code, run into methods, take snapshots and monitor execution as it occurs. 2. Eclipse Eclipse is integrated development environment (IDE)that is used to develop application. The platform contains IDE functionality and is built with components creating applications by using component subsets. Developers create, share and edit generic projects and files in the platform, while participating within a multiple team development environment repository. The platform’s primary function is to provide mechanisms and rules to software vendors, allowing smooth software integration between different vendors. If we use Eclipse as an android IDE we can install ADT. Android Development Tools (ADT) is a plugin for the Eclipse IDE that is designed to give you a powerful, integrated environment in which to build Android applications. ADT extends the capabilities of Eclipse to let you quickly set up new Android projects, create an application UI, add packages based on the Android Framework API, debug your applications using the Android SDK tools, and even export signed (or unsigned) .apk files in order to distribute your application. Developing in Eclipse with ADT is highly recommended and is the fastest way to get started. With the guided project setup it provides, as well as tools integration, custom XML editors, and debug output pane, ADT gives you an incredible boost in developing Android applications. 3. AIDE AIDE is an integrated development environment (IDE) for developing real Android apps directly on your Android device. Follow interactive coding lessons and step-by-step become an expert app developer. Visually design apps, write code with the feature rich editor with code completion, real-time error checking, refactoring and smart code navigation, and run your app with a single click. AIDE features interactive lessons with step-by-step instructions to learn Android app development and Java programming skills. Follow the lessons, become an expert and apply what you've learned in your own app projects. AIDE will turn your Android tablet with keyboard into a real development box. We use the Transformer Prime to code with AIDE. AIDE will turn your Android Phone into a small development computer to browse and touch your code on the go. AIDE supports building apps with Java/Xml and the Android SDK, apps with C/C++ and the Android NDK as well as pure Java console applications. AIDE is fully compatible with Eclipse projects. You can just copy the sourcecode to your device and open the Eclipse project in AIDE to start coding. Alternatively you can keep your sourcecode on your Dropbox - AIDE integrates with Dropbox and allows to easily download from your Dropbox and sync back your changes. AIDE can also open Android Studio projects, which follow the default folder structure. AIDE also supports Git for professional development. Benefits using AIDE : - Powerful code editing Focused on developer productivity, IDEA offers the most intelligent coding assistance for Android files and Java. The smartest code completion Profound navigation between project files Advanced and safe refactorings Resources preview - On-the-fly Code Analysis Static code analysis is performed by IDEA on the fly. The editor highlights warnings and errors in the code immediately as you type and allow to apply a quick-fix automatically. Programming with intentions and quick-fixes Support for Android Lint checks Shared inspection profiles Custom inspections - Built-in Android Tools IDEA gives you a nice and seamless integration with Android tools so you can do everything without leaving your favourite IDE. Powerful UI Designer with drag-n-drop and support for for different layouts and screen sizes Logcat integration with search and custom filters DDMS, Hierarchy Viewer and Draw 9 Patch integration Runner and debugger for emulators and real devices - Out-of-the-box Feature Set IDEA includes comprehensive set of tools which work out-of-the-box and make your development more productive. Support for Maven and Gradle Built-in tools for unit testing and coverage VCS tools with Git, GitHub, SVN and others Tasks and context management 4. Android studio Android Studio is a new Android development environment based on IntelliJ IDEA. Similar to Eclipse with the ADT Plugin, Android Studio provides integrated Android developer tools for development and debugging. On top of the capabilities you expect from IntelliJ, Android Studio offers: Gradle-based build support. Android-specific refactoring and quick fixes. Lint tools to catch performance, usability, version compatibility and other problems. ProGuard and app-signing capabilities. Template-based wizards to create common Android designs and components. A rich layout editor that allows you to drag-and-drop UI components, preview layouts on multiple screen configurations, and much more. Built-in support for Google Cloud Platform, making it easy to integrate Google Cloud Messaging and App Engine as server-side components. 3.2. Programming language 1. C++ C++ sis an extension of C that was developed by BjarneStroustrup in the early 1980s at Bell Laboratories. C++ provides a number of features that "spruce up" the C language, but more importantly, it provides capabilities for object-oriented programming. 2. JAVA JAVA is an object-oriented language developed by Sun Microsystems. JAVA simplified to eliminate language features that cause common programming errors. It implements a strong security model, which prevents compiled Java programs from illicitly accessing resources on the system where they execute or on the network. It was designed to have the "look and feel" of the C++ language, but it is simpler to use than C++ and enforces an object-oriented programming model. Java can be used to create complete applications that may run on a single computer or be distributed among servers and clients in a network. It can also be used to build a small application module or applet for use as part of a Web page. 3.3. Way of Compilation During the build process, your Android projects are compiled and packaged into an .apk file, the container for your application binary. It contains all of the information necessary to run your application on a device or emulator, such as compiled .dex files (.class files converted to Dalvik byte code), a binary version of the AndroidManifest.xml file, compiled resources (resources.arsc) and uncompiled resource files for your application. If you are developing in Eclipse, the ADT plugin incrementally builds your project as you make changes to the source code. Eclipse outputs an .apk file automatically to the bin folder of the project, so you do not have to do anything extra to generate the .apk. If you are developing in a non-Eclipse environment, you can build your project with the generated build.xml Ant file that is in the project directory. The Ant file calls targets that automatically call the build tools for you. To run an application on an emulator or device, the application must be signed using debug or release mode. You typically want to sign your application in debug mode when you develop and test your application, because the build tools use a debug key with a known password so you do not have to enter it every time you build. When you are ready to release the application to Google Play, you must sign the application in release mode, using your own private key. Fortunately, Eclipse or your Ant build script signs the application for you in debug mode when you build your application. You can also easily setup Eclipse or your Ant build to sign your application in release mode as well. The following diagram depicts the components involved in building and running an application: Figure 3.1 Components in Building An Application The build process involves many tools and processes that generate intermediate files on the way to producing an .apk. If you are developing in Eclipse, the complete build process is automatically done periodically as you develop and save your code changes. If you are using other IDEs, this build process is done every time you run the generated Ant build script for your project. It is useful, however, to understand what is happening under the hood since much of the tools and processes are masked from you. The general process for a typical build is outlined below: The Android Asset Packaging Tool (aapt) takes your application resource files, such as the AndroidManifest.xml file and the XML files for your Activities, and compiles them. An R.java is also produced so you can reference your resources from your Java code. The aidl tool converts any .aidl interfaces that you have into Java interfaces. All of your Java code, including the R.java and .aidl files, are compiled by the Java compiler and .class files are output. The dex tool converts the .class files to Dalvik byte code. Any 3rd party libraries and .class files that you have included in your project are also converted into .dex files so that they can be packaged into the final .apk file. All non-compiled resources (such as images), compiled resources, and the .dex files are sent to the apkbuilder tool to be packaged into an .apk file. Once the .apk is built, it must be signed with either a debug or release key before it can be installed to a device. Finally, if the application is being signed in release mode, you must align the .apk with the zipalign tool. Aligning the final .apk decreases memory usage when the application is running on a device. 3.4. Publishing Android Apps Publishing is the general process that makes your Android applications available to users. When you publish an Android application you perform two main tasks: You prepare the application for release. During the preparation step you build a release version of your application, which users can download and install on their Android-powered devices. You release the application to users. During the release step you publicize, sell, and distribute the release version of your application to users. Figure 3.2 Android Application Development Process Based on the process above, publishing is the last step but before an application is publish there are some things to do before it is published. The steps to publishing your Android application generally involve the following: 1. Export your application as an APK (Android Package) file. 2. Generate your own self-signed certificate and digitally sign your application with it. An android application need to be digitally signed before it’s allowed to be deployed to a device. There’s no need to purchase a digital certificate to sign your application. Instead, the application can be signed by your own self-signed certificate and sign it to you Android Application. If the Android Application is developed using Eclipse, you can manually generate your own certificate using keytool.exe and jarsigner.exe provided by the Java SDK. 3. Deploy APK files After the APK files have been signed, a developer must find a way to get their Android Application to the users’ devices. There are three ways to do it: Deploy manually using the adb.exe tool Hosting the application on a web server Publishing through an Android Market 4. Use the Android Market for hosting and selling your application. The best way to publish an Android Application is through an Android Market, for example Google Play. Google has made it easier for developer to publish their application through Google Play. Below is the steps to release an Android Apps through Google Play : - Register for a publisher account To publish an Android Apps on Google Play, the developer must register for a publisher account in Google Play. The steps are : a. Visit the Google Play Developer Console at https: //play.google.com/apps/publish/. b.Enter basic information about the developer identity. c. The Developer Distribution Agreement must be read and accepted. d.Pay a $25 USD registration fee using Google Wallet. If you don't have a Google Wallet account, you can quickly set one up during the process. When your registration is verified, the email address you specified during registration will be notified. Figure 3.3 Developer Console Registration on Google Play e. Set up a Google Wallet Merchant account Google Wallet is needed to pay the registration fee and also if a developer wants to sell their apps, in-app products, or subscriptions. Steps to set up a Google Wallet account : o Sign in to your Google Play Developer Console at https://play.google.com/apps/publish/ o Open Financial reports on the side navigation. o Click Setup a Merchant Account now. f. Explore the Developer Console After the registration is finished (the account is verified), the developer can access their Developer Console which consists of app publishing operations and tools in Google Play Although releasing an Android App through Google Play is the most ideal way, a developer can also release their application through other marketplace. They can even use multiple marketplaces. Not only releasing through a marketplace, developer can also release their Android applications through emails and also websites. Releasing an Android application through email is the easiest way, it only provides few protection from piracy and unauthorized distribution because anyone you send your application to can easily forward it to someone else. The same goes to releasing via websites, developers can’t use licensing service to help prevent unauthorized installation, it is also hard to process and track all financial transaction because Google Play’s in-app billing is not available to use. Overall, many ways can be done to publish an Android ways but not all of them are secure. The best way is to release it to an Android Market such as Google Play because it can help you track financial record of your apps and also there’ll be no unauthorized installation. 3.5. Community Developing an Android Apps needs a lot of time and also knowledge. There can be errors while developing the app, that’s why an android developer community was created. In there developer can ask questions and get the answer from fellow developers, they can even share ideas and also exchange experiences. Here are some android developer communities that you can turn to if you run into some problems while developing an Android Apps : xda developers (http://forum.xda-developers.com/) xda developers is a community of Android and Windows Phone experts looking to make the most of their mobile devices. In here developers can ask question about many things. It consists of many subtopics, for example security discussion, upgrading, modifying and unlocking mobile development involving multiple devices, etc. Figure 3.4 xda developers website – http://forum.xda-developers.com/ Google Android Training (http://developer.android.com/training/index.html) Google launched the Android Training sites that contains a number of useful classes grouped by topics. The lessons within classes will describe how to accomplish a specific task with code example you can re-use in your app. Figure 3.5 Google Android Training http://developer.android.com/training/index.html Android Discuss (https://groups.google.com/forum/#!forum/android-discuss) Android Discuss is a discussion group hosted by Google using the Google Group Service. Various aspects of Android Programming can be discussed there. This group is monitored by the Android team at Google, so this is a good place to clarify your doubts and learn new tips and trick. Figure 3.6 Android Discuss https://groups.google.com/forum/#!forum/android-discuss Stack Overflow (http://stackoverflow.com/) Stack Overflow is a collaborative edited question and answer site for developers. Before asking questions, it’s better to check whether someone has posted the same question or not. The best thing about Stack Overflow is other developer can vote for the best answer so that other developer can know which answer is trustworthy. Figure 3.7 Stack Overflow - http://stackoverflow.com/ CHAPTER 4 CONCLUSION AND SUGGESTION 4.1. Conclusion In this research, we have discussed about the basic of Android Operating System which is used very widely nowadays along with the Integrated Development Environment used and its examples in the common usages. We also discussed about the basic Android programming languages, the compiling process, Android applications publishing, marketing and Android community. The Android Operating System is based on Linux Kernel and is mainly designed for touch-screen smartphones and tablet computers. It’s very popular because it’s a low-cost and customizable Operating System. It leads more than half of the total world countries defeats other typical Operating System. The Integrated Development Environment softwares mainly used for Android applications development are Netbeans, Eclipse, AIDE and Android Studio. Eclipse has provided a tool to be able to convert the project into .apk automatically. The programming languages commonly used for Android applications development are Java and C++. To test the Android application, it can be done with the emulator or the built-in emulator. The emulator will read all the files needed from the .apk file. In Eclipse, it has built-in emulator, so when we’re going to test the application, we signed it using debug mode and test the application. After the Android application is finally developed and tested, we could publish it to Android market. The widely known Android market is Google Play which is provided by Google. We can firstly register to the Google Play for an account and upload the .apk file to Google Play. Android communities are formed on the internet to share the interests and knowledge of Android Operating System and the development. There are several official communities for Android developers to share their question and knowledge, so they can learn from each other. 4.2 Suggestion After we finished writing this research about Android Operating System, we have come up with several suggestions, which are as following: There will be more rapid growing for Android Operating System in the future, so many feedbacks and suggestions are very welcomed by Android developers and all of the stakeholders involved in the Android development. Knowledge Management will be very useful in sharing experiences, knowledge, log files and bugs in developing Android Applications as it will be very helpful for the Android developers to improve the performance of the Android Applications for the Android Operating System in the future. As Android is an open-source software, everyone is given a big opportunity to learn how to create an application instead of being a user of an application. REFERENCES Android.(n.d). Android Developer Tools. Retrieved (05- 03- 2014) from http://developer. android.com/tools/help/adt.html Android.(n.d). Building and Running. Retrieved (05- 03- 2014) from http://developer. android.com/ tools/building/index.html Android.(n.d). Getting Started. Retrieved (05- 03- 2014) from http://developer. android.com/training/index.html Android.(n.d). Getting Started with Android Tools. Retrieved (05- 03- 2014) from http://developer. android.com/ sdk/installing/studio.html Android.(n.d). Get Started with Publishing. Retrieved (05- 03- 2014) from http://developer. android.com/ distribute/googleplay/publish/register.html Brodkin, J. (2012). On its 5th birthday, 5 things we love about Android. Retrieved (05- 032014) from http://arstechnica.com/gadgets/2012/11/on-androids-5th-birthday-5-things-welove-about-android/ Computer Hope.(2014). Programming Language. Retrieved (05- 03- 2014) from http://www.computerhope.com/jargon/p/proglang.htm Dictionary.com. (n.d). Community. Retrieved (05- 03- 2014) from http: // dictionary. reference.com /browse/community Google. (2014). AIDE- Android IDE- Java, C++. Retrieved (06-03-2014) from https://play.google.com/store/apps/details?id=com.aide.ui H.M. DEITEL/P.J. DEITEL(1994). C++ How to Program. PRENTICE HALL, Englewood cliffs, New Jersey. Janalta Interactive Inc.(n.d).Eclipse Platform. Retrieved (06-03-2014) from http://www.techopedia.com/ definition/24196/eclipse-platform Janalta Interactive Inc.(n.d).Integrated Development Environment (IDE). Retrieved (0603-2014) from http://www.techopedia.com/definition/26860/integrated-developmentenvironment-ide JetBrains s.r.o.(n.d). The Professional Android IDE. Retrieved (06-03-2014) from http://www.jetbrains.com/idea/features/android.html Mahapatra, L. (2013). Android Vs. iOS: What’s The Most Popular Mobile Operating System In Your Country?. Retrieved (05- 03- 2014) from http://www.ibtimes.com/androidvs-ios-whats-most-popular-mobile-operating-system-your-country-1464892 Meng, L. W. (2012). Beginning Android 4 Application Development. Indianapolis: John Wiley& Sons,Inc. QuinStreet.Inc. (n.d). API - application program interface. Retrieved (05-03-2014) from http://www.webopedia.com/TERM/A/API.html QuinStreet.Inc. (n.d). routine. Retrieved (05-03-2014) from http://www. webopedia. com/TERM/R/routine.html QuinStreet.Inc. (n.d). Java. Retrieved (05-03-2014) from http://www. webopedia. com/TERM/J/Java.html Reed, B. (2012). Network World: Samsung is the Big Daddy. Southborough: NetworkWorld Inc. Robert W. Sebesta, Third edition, (1996). Concepts of Programming Languages. AddisonWesley Publishing, CA. TechTarget.(2014).compiler. Retrieved (05-03-2014) from http:// whatis.techtarget. com/definition/compiler TechTarget.(2007).Java. Retrieved (06-03-2014) from http://searchsoa. techtarget.com/definition/Java TechTerms.com.(n.d). Operating System. Retrieved (05-03-2014) from http://www. techterms.com/definition/operating_system TechTerms.com.(n.d). Programming Language. Retrieved (05-03-2014) from http://www. techterms.com/definition/ programming_language CURRICULUM VITAE CURRICULUM VITAE CURRICULUM VITAE CURRICULUM VITAE CURRICULUM VITAE