Download Android - Sukianti Binusian

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Library (computing) wikipedia , lookup

CP/M wikipedia , lookup

Copland (operating system) wikipedia , lookup

Security-focused operating system wikipedia , lookup

Smartwatch wikipedia , lookup

Chrome OS wikipedia , lookup

Android (operating system) wikipedia , lookup

Mobile operating system wikipedia , lookup

Android software development wikipedia , lookup

Transcript
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