Download Week 02 - Android

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

Copland (operating system) wikipedia , lookup

Windows Mobile wikipedia , lookup

CP/M wikipedia , lookup

Unix security wikipedia , lookup

Security-focused operating system wikipedia , lookup

Windows Phone 8.1 wikipedia , lookup

VS/9 wikipedia , lookup

Chrome OS wikipedia , lookup

Smartwatch wikipedia , lookup

Android (operating system) wikipedia , lookup

Mobile operating system wikipedia , lookup

Android software development wikipedia , lookup

Transcript
MOBILE DEVELOPMENT : ANDROID
TOPIK-TOPIK LANJUTAN
By:
BENY NOFENDRA
1401105702
ERLIEN FELICIA VANIA
1501154195
RAGNAR KUMARA
1501156250
FEBRIAN JIUWIRA
1501169316
BILLY BERNANDO
1501170526
06PLM /GROUP 10
Bina Nusantara University
Jakarta
2014
Abstract
This paper deals with the study of Android application development. This paper will
provide readers with the general understanding about Android application development which
includes the programming language involved in Android programming, the tools available to
code an Android application, how to compile an Android application, how to publish an
Android application so that it would be available for download to the public, and also the
Android programming communities that is widely known.
Keywords: Mobile Programming, Mobile, Android, Operating System (OS)
Chapter 1
INTRODUCTION
1.1
Background
Mobile phones are one of the most significant inventions in the history of man-made
technology. The first wireless handheld phone was demonstrated by Motorola in 1973, and it
became public as Japan launched the first commercial cellular network in 1979. The first
cellular phones look like bricks: very large, very heavy. But then it is undeniable that the
evolution of mobile phone technology has been going astoundingly fast. We can still recall
that in the early 2000s phones still only have basic functionalities: phone call, text and media
messaging, and that old school addictive Snake game. By mid 2000s, phones that have media
player, bluetooth functionality, internet browsing functions, and color screen started
emerging. By late 2000s, a new breed of mobile phones known as “Smartphones” became
popular (earlier version known as PDA has been around since mid 2000s but are still
unpopular and too expensive). It is basically a pocket version of a common desktop computer
for it has nearly all the functions. As smartphones rise, so did tablet PC, which are basically
just larger smartphones. Mobile phones have become so popular that statistics data compiled
in the year 2013 showed that as much as 91% of the human population use mobile phones,
where 56% of these mobile phone users are using smartphones. The number of smartphone
users is expanding rapidly since smartphones give lots of benefits to their users such as email
on the go, GPS navigation, NFC technology, real time information on fingertips, cloud-based
content and many more.
As the number of mobile phone users are increasing, smartphone manufacturers
started emerging, both old time and new players. Nokia, Samsung, LG, Motorola, the big
players in mobile phone industry started making smartphones. In 2008 Blackberry had an
explosive growth and became one of the most dominant smartphone brands, until its fall in
the late 2012 due to lack of innovation and faulty operating system. As Blackberry falls, the
number of Android, iOS, and Windows Phone based smartphones rise. Android can be
considered one of the most dominant platforms currently used worldwide. In 2014, a statistic
shows that there are approximately 1.000 million units handheld device that uses Android OS
as its operating systems. (http://www.digitalbuzzblog.com/infographic-2013-mobile-growthstatistics).
Android itself operates based on Linux Kernel, working on mobile devices. Android
was found by Android, Inc. and was funded by Google. Google saw the potential in the
system and bought it in 2005 (www.wikipedia.com).
Android is an open source platform. The open source system allows independent
developers to develop their own mobile application based on Android and make them
available for public download; either free or paid. Based on a survey conducted in 2011,
Android platform holds 46.9% market share, followed by Apple and RIM. (www.gogulf.com) The market share is predicted to increase. Based on the statistics, being an Android
application developer seems very promising. Yet before being Android developer, we should
know more about Android, as well as how to develop an Android application, compile,
publish it, and finally participate in Android programming communities available worldwide.
1.2
Scope
The scope of explanation about Android application on this paper includes the
following:
1.3
●
Android platform
●
Android programming
●
Android publishing
●
Android programming community
Objectives & Benefits
Purpose: To provide readers with information regarding Android development
including the tools needed in creating Android apps down to publishing it.
Benefit:
Readers will understand the how to start creating their own Android
application and what to prepare in deciding to become android developers.
Readers will also be able to find programming communities which will
help them develop applications in long term.
1.4
Methodology
Data is collected mainly by Literature Study method.
Literature study is done by collecting data and information available in books, internet
sources, and other media that provide information suitable with the object of research.
The materials found will be used as theoretical basis.
Chapter 2
LITERATURE REVIEW
1.5
Basic Theory
2.1.1
Definition of Mobile Phone
Mobile phone is a device that can make and receive telephone calls over radio
link while moving around a wide geographic area. It does so by connecting to a
cellular network provided by a mobile phone operator, allowing access to the public
telephone network. In addition to telephony, modern mobile phones also support a
wide variety of other services such as text messaging, MMS, email, Internet access,
short-range wireless communications (infrared, Bluetooth), business applications,
gaming and photography. Mobile phones that offer these and more general computing
capabilities are referred to as “Smartphone”.
2.1.2 Definition of Operating System
Operating system (OS) is a collection of software that manages computer
hardware resources and provides common services for computer programs. The
operating system is an essential component of the system software in a computer
system. Application programs usually require an operating system to function.
2.1.3 Definition of Mobile Operating System
Mobile operating system (MOS), is an operating system that operates a
smartphone, tablet, PDA, or other mobile device. Modern mobile operating systems
combine the features of a personal computer operating system with other features,
including a touchscreen, cellular, Bluetooth, Wifi, GPS mobile navigation, camera,
etc. Mobile devices with mobile communications capabilities (example: smartphone)
contain two mobiles operating systems. The main user-facing software platform is
supplemented by a second low-level proprietary real-time operating system which
operates the radio and the other hardware. Research has shown that these low-level
systems may contain a range of security vulnerabilities permitting malicious base
stations to gain high levels of control over the mobile device.
Common software platforms (operating system platform): Android, BSD, iOS,
Linux, OS X, QNX, Microsoft Windows, Windows Phone, IBM, z/OS, Symbian.
2.1.4 About Google
Google is an American multinational corporation specializing in internetrelated services and products. These include search, cloud computing, software, and
online advertising, technologies. The company leads the development of the Android
mobile operating system and the browser-only Chrome OS for netbook known as
ChromeBook. Google has moved increasingly into communications hardware, it
partners with major electronics manufacturers in production of its high-end Nexus
device and acquired Motorola Mobility. A fiber-optic infrastructure was installed to
facilitate a Google Fiber broadband service.
2.1.5 Definition of Android
Android is a mobile operating system based on the Linux kernel, and primarily
designed for touchscreen mobile devices such as smartphones and tablet computers. It
is initially developed by Android, Inc. and later acquired by Google Inc., and its first
release was presented in 2007. Android is installed on many different mobile devices
and its user can download Android apps and other content through Google Play
service, which replaced the old Android Market.
2.1.6 Android and Its Existence
Google claims that Android “powers millions of phones, tablets and other
devices.” Phones and tablets are mobile devices that can have Android applications
installed on them. These applications are written in Java programming language and
they are called mobile device applications or apps. Development techniques for apps
are structured sets of Java code focused on implementing particular task that provides
content for a mobile device application. Although Java programming language
includes a broad variety of topics, this thesis focuses on development techniques
required for successful implementation of Android Mobile EMU Portal. The following
paragraphs analyze research efforts that addressed these techniques in the past.
2.1.7 Definition of Programming Language
Programming Language is an artificial language designed to communicate
instructions to a machine, particularly a computer. Programming languages can be
used to create programs that control the behavior of a machine and / or to express
algorithms. The earliest programming languages preceded the invention of the
computer. Android OS is based on the Linux kernel, which is written on the C
programming language.
Java is a computer programming language that is concurrent, class-based,
object-oriented, and specifically designed to have as few implementation
dependencies as possible. It is intended to let application developers “write once, run
anywhere”, which means that code runs on one platform does not need to be
recompiled to run on another. Java applications are typically compiled to bytecode that
can run on any java virtual machine (JVM) regardless of computer architecture.
C is general-purpose programming language that has been used for develop
many applications. C has facilities for structured programming, while a static type
system prevents many unintended operations.
C++ is general-purpose programming language that is free-form and compiled.
It is regarded as an intermediate-level language, as it comprises both high-level and
low-level language features. It provides imperative, object-oriented, and generic
programming features. C++ is one of the most popular programming languages and is
implemented on a wide variety of hardware and operating system platforms.
2.1.8 Android Fundamentals
Many authors described Android application development fundamentals,
which include setting up, activities, intents, and XML layouts. Three major
components of an android development environment: Java, Eclipse, Android.
To configure the machine, Java JDK, Android SDK, Eclipse IDE, and Android
IDT need to be installed as well. Other author; Abelson, King, and Sen present “four
primary components of Android applications: Activity, Service, Broadcast reviewer,
and Content Provider. It is noted that a particular android application might not
contain all of these elements, but will have at least one of these elements.
Activity displays a UI and responds to system and user initiated events, it is
used frequently for android applications. These activities are declared in
AndroidManifest.xml file, which provides the foundation for any android applications.
Activities present their views through XML layouts and “communicate” with each
other through Intents. Clear understanding of these concepts and Java programming
language is a prerequisite to start implementing the development techniques used in
Android applications.
Chapter 3
DISCUSSION
3.1
IDE
IDE stands for Integrated Development Environment. IDE brings together Java, the
Android SDK, and the Android Android Development Tools (ADT) and provides tools for
you to write Android programs. Eclipse is a general-purpose technology platform. It has been
applied to a variety of uses in creating IDEs for multiple languages and in creating customized
IDEs for many specialized SDKs, as well as to uses outside of software development tools,
such as providing a Rich Client Platform (RCP) for Lotus Notes and a few other applications.
Eclipse is usually used as an IDE for writing, testing, and debugging software,
especially Java software. There are also several derivative IDEs and SDKs for various kinds
of Java software development based on Eclipse. In this case, you will take a widely used
Eclipse package and add a plug-in to it to make it usable for Android software development.
An Eclipse “package” is a ready-made collection of Eclipse modules that make Eclipse better
suited for certain kinds of software development.
The System Requirements article on the Android Developers site lists three choices of
Eclipse packages as a basis for an Eclipse installation for Android software development:
• Eclipse Classic (for Eclipse 3.5 or later)
• Eclipse IDE for Java Developers
• Eclipse for RCP/Plug-in Developers
Any of these will work, though unless you are also developing Eclipse plug-ins,
choosing either Classic or the Java Developers package (EE or Standard) makes the most
sense.
3.2
Framework
Android Framework
The Android framework was developed with various features. These features were pulled
from numerous open source projects. The output of these projects resulted in these elements:
●
The Android runtime: The Android runtime is composed of Java core libraries and the Dalvik
virtual machine.
●
Open GL (graphics library): This cross-language, cross-platform application program interface
(API) is used to produce 2D and 3D computer graphics.
●
WebKit: This open source web browser engine provides the functionality to display web
content and to simplify page loading.
●
SQLite: This open source relational database engine is designed to be embedded in devices.
●
Media frameworks: These libraries allow you to play and record audio and video.
● Secure Sockets Layer (SSL): These libraries are responsible for Internet security.
Application framework
The Android team has built on a known set of proven libraries, built in the
background, and has given them to you, all exposed through Android interfaces. These
interfaces wrapped up the various libraries and made them useful to the Android platform and
to you as a developer. You benefit from these features because you
don’t have to build any of the functionality they provide:
✓ Activity manager: Manages the activity lifecycle.
✓ Telephony manager: Provides access to telephony services as well as to
certain subscriber information, such as phone numbers.
✓ View system: Handles the views and layouts that make up your user
interface (UI).
✓ Location manager: Finds the device’s geographic location.
3.3
Programming
Android is already the most widely used way of creating interactive clients using the
Java language. Although there have been several other user interface class libraries for Java
(AWT, SWT, Swing, J2ME Canvas, etc.), none of them have been as widely accepted as
Android. For any Java programmer, the Android UI is worth learning just to understand what
the future of Java UIs might look like. Android uses the XML language as well as basic
Apache Ant scripting for build processes.
What we’ll need to install first before doing programming are :
●
Java JDK: Lays the foundation for the Android SDK.
●
Android SDK: Provides access to Android libraries and allows you to develop for
Android.
●
Eclipse IDE (integrated development environment): Brings together Java, the
Android SDK, and the Android Android Development Tools (ADT) and provides
tools for you to write Android programs.
●
Android ADT: Does a lot of the grunt work for you, such as creating the files and
structure required for an Android app.
The Android environment adds yet another GUI toolkit to the Java ecosystem, joining
AWT, Swing, SWT, LWUIT, and others. If you have worked with any of these, the Android
UI framework will look familiar. Like them, it is single-threaded, event-driven, and built on a
library of nestable components. The Android UI framework is, like other Java UI frameworks,
organized around the common Model-View-Controller pattern
.
3.3
How the Apps Built and Compiled
In order for the application to be run in the devices or emulator, the sources and
resources will be compiled, converted to run on the Android VM, and then packaged up in an
apk file. Below is the detail of the processes.
1. Resource Pre-compilation
Involves generation of Java source files from the Android resources. The
resources(icons, layouts, strings, etc.) will be stored in the res subdirectory. These will then
be compiled using the aapt tool into a file named R.java, stored in the gen subdirectory.
2. Service Interface Pre-compilation
If the app uses any service interfaces, the service interface definition files(has .aidl
extensions) have to be included. The aidl tool is used to generate actual Java interfaces for
these services. The Java source files will have the same name as the input files (.aidl
extension will be replaced by .java) and are created in the gen/ subdirectory.
3. Java Compilation
After two pre-compilation steps, the app project Java code is complete itself. The Java
compilation is the standard .java compilation source files into a .class bytecode files, stored
in the bin/classes subdirectory.
The difference is the classpath used to compile the sources which includes:
● The android.jar file for the application Android platform,
● External library jars that has been added,
● and the class files and external libraries for tested project.
4. Bytecode Translation
As the Java compilation finished, the app may now run on a standard Java VM. But in
order to run on Android, which is using its own Dalvik VM, the class files compiled will then
be translated into Dalvik executable files(.dex). All classes will be packaged into a single
output file (named classes.dex) which is produced in the bin/ directory.
5. Resource Packaging
Using the same aapt tool that generates Java source corresponding to the resources, the
resources are compiled into a partial Android package files. The resource package created
named after the app name with an ap_ suffix in the bin directory.
6. Debug Packaging and Signing
All components required are now ready to be bundled up into an apk file. In the
default debug mode, this step also includes signing package with a debug key. The Android
packages are assembled with the apkbuilder tool which take input from:
● The Dalvik executable file,
● All non-Java resources from the app source directory,
● All non-Java resources from the external libraries,
● Any native code shared-libraries included,
● The resource packages built in the previous step.
7. Alignment
For the final optimization step, package file is aligned using the zipalign tool. This
step ensures the resources in the package file are aligned on 4-byte word boundaries, allowing
the Dalvik VM to memory-map those parts of the file for access efficiency. This step will take
the unaligned package as input and produces bin/appname.apk where the app is now ready
to be installed.
3.4
Android Apps Publishing
To publish the application made by the users/developers, they must firstly be
registered as a Google Play Publisher. They must also set up a Wallet Merchant Account if
they intend to sell their applications in the Google Play Store. Below is the detail in order to
publish an application to the market.
Register Google Play Developer Console
1. Visit the Google Play Developer Console (https://play.google.com/apps/publish/). In order to
access the site, users/developers must be registered and logged in the Google account.
2. Enter their basic information – developer name, email address, etc. The information submitted
can later be changed.
3. After that users must agree to the Developer Distribution Agreement that applies to the
developers based on their country or region. The apps and store listings published on Google
Play must comply with the Developer Program Policies and the US export law.
4. Pay a $25 USD registration fee using Google Wallet. If the user/developer doesn’t
have a Google Wallet Account, they can set one up during the process.
Developer Console
After successfully registered and the account is verified, developers can sign in to the Google
Play Developer Console. There they can use the tools for app publishing.
Below is some of key areas can be accessed on the Developer Console.
● Account Details
Where developers can specify basic information about themselves. It helps to identify
developers to Google Play and their customers.
It contains the details of your profile such
as name, contact information, website url, etc. They can also be used to register for merchant
account, set up a test accounts for Google Play licensing, etc.
● User Account
Developers can set up multiple user account to access their own account so the other
developers may access to its account. This can be used to create a team for the application
publisher.
● Merchant Account
Helps to link between developers merchant account and it’s profile. Merchant account
is used for financial and tax identification and monthly payouts of sales.
● Store Listing
Where developers can set how the application on store will be seen by uploaded
screenshots, videos highlights to highlights the feature of the app, descriptions, etc.to be seen
by public.
● Uploading and publishing
Where developers can upload the ready-published APK, and published to the market.
The app that has been published can be unpublished in this area.
● Distribution Control
This Area will help developer to determine where the application to be distributed to
and for some countries, even the carriers target.
● Selling and Pricing
Help the developer to set price to the application that is going to be published. The
price can either be free or priced. The app published free must remain free, while the app that
has been priced can be later set free. Developer can separately set the price for priced apps, inapp purchases, and subscription fee.
● In-App Billing
Helps developers to monetize their apps in more ways by selling in-app purchases or
subscriptions. In-app purchases are one-time purchases, while subscriptions are recurring
charges on an monthly or annual basis.
● User Review and Report
Shows the statistic on the app install performance. The carts might highlight the
installations peek and longer-term trends that can be used for developers to analyze how the
user behave in the future and can be used for the app development based on the reviews.
3.5
Android Community
In developing Android, Android programmers also have communities to help each others. It is
because Android is an extremely large project with many components, they have many
discussion forums, each focusing on a different topic.
These community can be used for developers for troubleshooting and helps them to find
technical information about how the application should be built and structured.
Here are some of the web that provides the community for developers where they can get
technical information about developing android apps.
www.xda-developers.com
https://plus.google.com/communities/105153134372062985968
http://www.androidhive.info/
https://source.android.com/source/community/index.html
https://developer.android.com/
Chapter 4
CONCLUSION
Android is operating system (mostly being used in mobile phone) based on Linux Kernel.
Android is easy to use, not really expensive, and spread around the world. Android is a much
more diverse operating system than iOS and windows phone mobile. Android has grown
rapidly over the past 4 years becoming the most used smartphone (operating system) in the
world. Android needs IDE (Integrated Development Environment) which brings together
Java, the Android SDK, and the Android Android Development Tools (ADT) and provides
tools for you to write Android programs. Android is a component-based architecture inspired
by Internet mash-ups. Parts of one application can be used in another ways not originally
envisioned by the developer. This will unleash a new round of creativity in the mobile space.

Android is open to all

Participating in many of the successful open source projects

Aims to be as easy to build
In order to do the apps publising, we need to register at Google Play Developer Console first.
REFERENCES
Burton, Michael & Felker, Donn (2011). AndroidTM Application Development For
Dummies®. John Wiley & Sons, Inc. New Jersey. 2nd Edition
Mednieks, Zigurd. (2011). Programming Android. O’ Reilly. Sebastopol. (1st edition)
www.developer.android.com
www.digitalbuzzblog.com/infographic-2013-mobile-growth-statistics
www.go-gulf.com
www.statista.com
www.wikipedia.com
CURRICULUM VITAE
Name
: Erlien Felicia Vania
Birthplace and date
: Bekasi – October 7, 1993
Gender
: Female
Address
: Villa Tangerang Regensi II,
Blok AD I No. 9, Tangerang.
Phone Number
Email
: +62 819 0988 7979
: [email protected]
Education
1999 – 2005
: SD Tarsisius Vireta, Tangerang
2005 – 2008
: SMP Tarsisius Vireta, Tangerang
2008 – 2011
: SMA Tarsisius Vireta, Tangerang
2011 – Present
: Universitas Bina Nusantara, Jakarta
Working Experience
2012
: Kakao XPlore Registration staff
Organizational Experience
2013-present
: Chief Operating Officer, Bina Nusantara Computer Club
2012-2013
: External Event Organizer, Bina Nusantara Computer Club
2011-2012
: Activist, Bina Nusantara Computer Club
CURRICULUM VITAE
Name
: Febrian Jiuwira
Place, Date of Birth
: Jakarta, 5 February 1993
Gender
: Male
Address
: Jl. Utama Selatan VII no. 34A
Phone Number
: 081316016831
Education
:
– 2011 – Present
– 2010 – 2011
– 2008 – 2009
– 2005 – 2008
Organizational Experience
: Binus University, Information System
: PKBM Karya Ummat
: SMAN 84 Jakarta
: SMAN 45 Jakarta
:
– Binus University Software Lab Center
o Period
: 2013 - Now
o Position
: Teaching Assistant
CURRICULUM VITAE
Name
: Beny Nofendra
Place, Date of Birth
: Jakarta, 17 February 1992
Gender
: Male
Address
: Komplek Pesona Khayangan Blok cc No. 08, Depok
Phone Number
Formal Education
: 089601020666
:
1998 – 2004
: SD Strada Wiyatasana
2004 – 2007
: SMP Strada Marga Mulia
2007 – 2010
: SMA Mardi Yuana
2010 – Present
: Universitas Bina Nusantara
Non Formal Education
2006 - 2009
:
: International Language Programs
CURRICULUM VITAE
Name
: Ragnar Kumara
Birthplace and date
: Jakarta–June 19, 1993
Gender
Address
Phone Number
Email
: Male
: Jl. Bekasi Timur VIII / 4B, Jakarta 13350
: 081574577162
: [email protected]
Education
1999 – 2005
: SD Santa Maria Fatima
2005 – 2008
: SMP Santo Vincentius
2008 – 2011
: SMA Fons Vitae I Marsudirini
2011 – Present
: Universitas Bina Nusantara
Working Experience
2011
: IT staff, PT Indokemika Jayatama (Internship)
2011 - 2012
: Junior Programmer, IT Directorate of BINUS
2013
: Committee member, BINUS Job Expo 2013
Organizational Experience
2011-2012
: IT Directorate of BINUS
2013
: BINUS Job Expo Committee
CURRICULUM VITAE
Name
: Billy Bernando
Place, Date of Birth
: Jambi, 4 September 1993
Gender
: Male
Address
: Jl. K.H. Syahdan Gang Keluarga No. 39D
Phone Number
Education
: 085266694519
:
1999 – 2005
: SD Xaverius 2, Jambi
2005 – 2008
: SMP Xaverius 1, Jambi
2008 – 2011
: SMA Xaverius 1, Jambi
2011 – Present
: Universitas Bina Nusantara, Jakarta