You are on page 1of 69

らくらく (RakuRaku)

Android Mobile Application


An Easy User Interface Application for new and
complex Android Touch Screen Smart Phone


Valay Patel
MEB - V

"It has been noticed that new touch screen phone are very complex to use. When it comes to
older people who are not technically sound, such phone become useless. So RakuRaku
application provides them UI (Easy User Interface) to new Complex Android Touch Screen
Phone"
A

Project Report

On

らくらく (RakuRaku) Android Mobile Application

Undertaken

At

Bait Al – Hikma , Tokyo, Japan

Duration: From: 17st March, 2010 To: 30st June, 2010

Submitted to

Charutar Vidyamandal’s

S.G.M. English Medium College of Commerce and Management

Vallabh Vidyanagar

In Partial Fulfillment of

Master of E-Business

By

Valay Patel (65)

Master of E-Business

Batch 2008-2010
らくらく (RAKURAKU) July 10, 2010

2
らくらく (RAKURAKU) July 10, 2010

Preface

Modern hand held devices such as smart phones and PDAs have become increasingly
powerful in recent years. Dramatic breakthroughs in processing power along with the
number of extra features included in these devices have opened the doors to a wide range
of commercial possibilities. In particular, most cell phones regularly include cameras,
processors comparable to PCs from only a few years ago, and internet access. However,
even with all these added abilities, there are few applications that allow much passing of the
environmental information and location based services.

As mobile devices become more like PCs they will come to replace objects we tend to carry
around such as checkbooks, credit cards, cameras, planners, mp3 players, etc. In short, we
will be using them to accomplish our daily tasks. One application that falls into this category
is the Restaurant Finder Application developed for the Google Android Phones.

The prime objective of “RakuRaku Application” is to create an Easy User Interface Android
application which provides a simple User Interface for the Daily Useful Functions. So that
User who is not technically sound and recently changed his mobile phone from some other
platform. Well here in Japan many old people uses cell phone. Generally they don’t like to
change their old mobile phone because of the Easy User Interface and new touch screen
phone has so complex User Interface which makes it more complex to use for them. With
this application they can add frequently contacted person on the main screen. All
information and History about that person, Date and Time facility, Customization of the
appearance, Voice Alert, News feed, Task Manager and Favorite Application Menu.

The Project is developed in Java Programming Language by using the Eclipse Helios
Integrated Development Environment (IDE). We use the Android Software Development Kit
2.1(SDK) which includes a variety of custom tools that help us develop mobile applications
on the Android platform. The most important of these are the Android Emulator and the
Android Development Tools (ADT) plug-in for Eclipse.

3
らくらく (RAKURAKU) July 10, 2010

Acknowledgements

With immense pleasure, I would like to present this report for the project of “RakuRaku
Android Mobile Application”

My sincere thanks to Mr. Sarvesh Trivedi and Mr. Manish Sharda for modeling my thoughts
and vision toward this subject. I express my sincere thanks to the Principal Dr. Nikhil Zaveri
of SEMCOM. I also thank to my trainer Mr. Yamada and Ms. Hyosoon for developing this
project. I appreciate their concern and interest regarding the project. Their words of advice
prior to leaving for the project helped me a great dealing during the project.

I am also thankful to office staff member who have proved to be constant motivator for the
knowledge acquisition and moral support during project. I also thank to Mr. Ilian and Mr.
Cleber who worked with me in whole project and together we three delivered full
application.

I would like to thank all those who have directly or indirectly helped me in making this
project work successful.

4
らくらく (RAKURAKU) July 10, 2010

Table of Contents

Sr. No. Topic Page No.

1 The Basic 6

2 Software Development Process 12

3 Project Management Tool 21

4 Android 28

5 Android Application Development Tools 32

6 RakuRaku Android Application 36

7 References 64

8 Application Screen Transition Map 65

5
らくらく (RAKURAKU) July 10, 2010

The Basic

Out in the wood, or in the city;


It’s all the same to me when I'm driving free,
the world's my home, when I'm mobile!

-Pete Townshend,
The Who, "Going Mobile"
The Changes to Mobile Phones over The Last 30 Years

Although mobile phones have taken over our current society, they have been around for
several decades in some form or another. Beginning in the late 1940s, the technology that
would later be used in today’s cell phones was created and the idea of a mobile phone was
introduced. This cell technology was first used in mobile rigs which was mainly used in taxis,
police cars and other emergency vehicles and situations. Truckers also used a form of this
technology to communicate with each other. Little did they know how far their idea would
advance to make it accessible to the majority of the population.

The first mobile phones, referred to as First Generation or 1G, were introduced to the
public market in 1983 by the Motorola Company. These first mobile phones used analog
technology which was much less reliable than the digital technology we use today. The
analog phones also had a great deal more static and noise interference than we are
accustomed to today. The first mobile phones during this era were confined to car phones
and they were permanently installed in the floorboard of automobiles. After a few years,
they became mobile and consumers could take the phones with them outside of the car.
However, they were the size of a large briefcase and very inconvenient. The main purpose
of this First Generation technology was for voice traffic, but consumers felt insecure about
people listening in on their conversations. These new mobile phones were also rather

6
らくらく (RAKURAKU) July 10, 2010

expensive, many of them costing hundreds of dollars. They were more of a status symbol
during the decade rather than a means of convenience.

During the 1990s, great improvements were made in the mobile phone technology. These
phones used Second Generation, or 2G technology. In1990, the first cell phone call was
made using the new digital technology that became characteristic of this era. The Second
Generation cellular phone technology was faster and much quieter than its analog
predecessor. As a result, it became even more popular than previous models, too. The new
technology also made them capable of being smaller rather than the large briefcase-sized
units from the 1980s. Smaller batteries and other technology that made the phones more
energy-efficient helped contribute to their smaller sizes and their popularity. Companies
also strived to make the prices more affordable than the mobile phones of the 1980s. The
cell phone industry was beginning to take off.

The Third Generation technology, or 3G, is what many people currently use in their digital
cellular phones today. This technology was created very soon after the excitement that the
2G technology created. This new technology is not only capable of transferring voice
data (such as a phone call), but it is also able to transfer other types of data, including
emails, information and instant messages. These capabilities have helped to increase the
amount of sales and the popularity of these new phones. Many users prefer to use the
instant messaging capabilities to “text” other users rather than call them in the form of a
traditional phone call. Many cell phone companies offer free and very affordable phones for
consumers who sign-up with their airtime service for a contractual period. Prices for the
services range but the competition in the industry is helping to keep them more affordable
than they have been in previous years.

There are currently plans in place to develop a Fourth Generation technology, or 4G. Goals
for this new set of standards include a combination of technologies that will make
information transfer and internet capabilities faster and more affordable for cellular
phones. At this time, there is no one definition that can be attributed to 4G technology
because researchers are still striving to make advances and build upon the technology that
already exists. And while I am preparing this Project report Apple Inc. has developed 4G
phone which will be out next week.

7
らくらく (RAKURAKU) July 10, 2010

The mobile phone industry continues to grow by leaps and bounds as it has in the past few
decades. Even though it started a little more than 20 years ago, manufacturers have created
an abundance of new technologies that keep cell phone users coming back for more. They
continue to increase the number of capabilities and services to accommodate the growing
needs of today’s “on the go” culture. Waiting anxiously is the only way to find out what they
will think of next.

There are basically two times of Mobile Phones

1. Cellular Phones
2. Smart Phones

Cellular Phones

A telephone which is connected to the telephone system by radio instead of by a


wire, and can therefore be used anywhere where its signals can be received
—Cambridge Online Dictionary

Smart Phones

A mobile phone that can be used as a small computer


—Cambridge Online Dictionary

A smartphone is a mobile phone that offers more advanced computing ability and
connectivity than a basic 'feature phone' and run a complete operating system software
providing a platform for application developers. While some feature phones are able to run
simple applications based on generic platforms such as Java ME or BREW, a smartphone
allows the user to install and run much more advanced applications based on a specific
platform.

Looking at future opportunity and smart phone industries will grow very fast. New and new
platforms are coming into the market. And every platform is making their product in a way
that Developers can create their customized application and sell them. Which similar to the

8
らくらく (RAKURAKU) July 10, 2010

Desktop and Laptop market. Mobile phones are becoming not only part of life but part of
your Body. It actually reduces your daily work.
The following are the primary advantages of having application in your mobile rather than
having it on your computer:
• Full mobility
• Any time access
• You can connect to Internet without any external connection at any point of time.

Looking at above advantages and future of Smart Phone our Company Bait Al Hikma have
decided to develop a Smart Phone application.
As company is situated in Japan Cellular Phone market is very big here. Company has
decided to develop a new application which is useful to not only Japan but also for other
countries also.

User Interface plays a very crucial role in success of any new Technology or Device.

Company looked at the whole mobile industry and figured out that Mobile phones have
become more and more useful and multitasking. But on other hand it is now becoming
more and more complex to use. Of course newer generation and people who is connected
to newer technology can easily understand the functionality and use the newer smart
phones without putting much efforts. But there are still many people who are not
comfortable with the newer touch screen Smart Phones.

Our company thought in that direction and targeting those “Not comfortable” group of user
decided to create some Easy User Interface application to Use newer Complex touch screen
phones.
So company has decided to make a Supportive (Easy) User Interface Application for Touch
screen phones which works over current User Interface But it provides more common and
day to day life task to user easily.

9
らくらく (RAKURAKU) July 10, 2010

Challenges of Smartphone Programming

The problem comes when you actually have to program the Smart Phone.
Anyone with experience in programming for PDAs or phones has felt the pain of phones
simply being small in all sorts of dimensions, such as the following:
• Screens are small (you won’t get comments like, “Is that a 24-inch LCD in your
pocket, or...?”).
• Keyboards, if they exist, are small.
• Pointing devices, if they exist, are annoying (as anyone who has lost a stylus will tell
you) or inexact (large fingers and “multitouch” LCDs are not a good mix).
• CPU speed and memory are limited compared with what are available on desktops
and servers.
• You can have any programming language and development framework you want, as
long as it was what the device manufacturer chose and burned into the phone’s
silicon.
• Moreover, applications running on a phone must deal with the fact that they are on
a phone.
People with mobile phones tend to get very irritated when those phones don’t work, which
is why the “Can you hear me now?” ad campaign from Verizon Wireless has been popular
for the past few years. Similarly, those same people will get angry with you if your program
“breaks” their phone:
• By tying up the CPU so that calls can’t be received
• By not quietly fading into the background when a call comes in or needs to be
placed, because it does not work properly with the rest of the phone’s operating
system
• By crashing the phone’s operating system, such as by leaking memory like a sieve

Hence, developing programs for a phone is a different experience than developing desktop
applications, web sites, or back-end server processes. The tools look different, the
frameworks behave differently, and there are more limitations on what you can do with
your programs.

10
らくらく (RAKURAKU) July 10, 2010

To understand the world of smartphone programming, Our Company waded up to my


ankles into six major platforms: the iPhone, Google Android, RIM BlackBerry, the Palm OS,
Windows Mobile, and Nokia Symbian. I downloaded the development kits, wrote a few
lines, and spoke with some programmers who have waded in a bit deeper. And finally our
company has decided to develop an application in “Google Android”.

11
らくらく (RAKURAKU) July 10, 2010

Software Development Processes


Agile software development processes are influenced by best practices in Japanese
industry, particularly by lean development principles implemented at companies like Toyota
and Honda, and knowledge management strategies developed by Takeuchi and Nonaka,
now at the Hitotsubashi Business School in Japan, and Peter Senge at MIT.

Scrum is an Agile methodology that delivers software to customer and end users faster,
better, and cooler. As the Chief Product Owner at Yahoo observed, coolness is a
requirement at Google, Yahoo, and most software game companies. It must be highly suited
to a creative approach to development of complex and innovative systems and it must scale.
It is used on some of the world's largest projects at British Telecom and Siemens because of
its high productivity with distributed and outsourced development teams. It is the only
software development process that has repeatedly demonstrated linearly scalable
productivity when adding resources to large projects. The most profitable software product
ever created (Google Adwords) is powered by Scrum and the most productive large project
with over a million lines of code (SirsiDynix and Starsof) used a distributed, outsourced,
Scrum implementation. CMMI Level 5 companies cut costs in half with Scrum while
simultaneously improving quality, customer satisfaction, and the developer experience
(Systematic Software Engineering [19]). At the same time, Scrum remains the process of
choice in small entrepreneurial companies where it has its roots.

The first software development Scrum was created at Easel Corporation in 1993 based on
extensive research on successful projects worldwide, a deep analysis of the computer
science literature, close collaboration with leading productivity experts, and decades of
experience with advanced software technologies. Jeff Sutherland was the Chief Engineer for
the Object Studio team that defined roles, hired the first Product Owner and Scrum Master,
developed the first Product Backlog and Sprint Backlog and built the first portfolio of
products created with Scrum.

12
らくらく (RAKURAKU) July 10, 2010

Introduction to Scrum

Scrum is a "lean" approach to software development. The term Scrum comes from a 1986
study by Takeuchi and Nonaka that was published in the Harvard Business Review. In that
study, Takeuchi and Nonaka note that projects using small, cross-functional teams
historically produce the best results. They write that these high-performing teams were like
the Scrum formation in Rugby. When Jeff Sutherland developed the Scrum process at Easel
Corporation in 1993, he used their study as the basis for team formation and adopted their
analogy as the name of the process as a whole. Ken Schwaber formalized the process for the
worldwide software industry in the first published paper on Scrum at OOPSLA 1995.

Scrum is a simple framework used to organize teams and get work done more productively
with higher quality. It allows teams to choose the amount of work to be done and decide
how best to do it, thereby providing a more enjoyable and productive working environment.
Scrum focuses on prioritizing work based on business value, improving the usefulness of
what is delivered, and increasing revenue, particularly early revenue. Designed to adapt to
changing requirements during the development process at short, regular intervals, Scrum
allows teams to prioritize customer requirements and adapt the work product in real time
to customer needs. By doing this, Scrum provides what the customer wants at the time of
delivery (improving customer satisfaction) while eliminating waste (work that is not highly
valued by the customer). Scrum is a simple “inspect and adapt” framework that has three
roles, three ceremonies, and three artifacts [26] designed to deliver working software in
Sprints, usually 30-day iterations.

 Roles: Product Owner, ScrumMaster, Team.


 Ceremonies: Sprint Planning, Sprint Review, and Daily Scrum Meeting
 Artifacts: Product Backlog, Sprint Backlog, and Burndown Chart

Product Owner
 The Product Owner has the following responsibilities
 Define the features of the product;

13
らくらく (RAKURAKU) July 10, 2010

 Decide on release date and content;


 Be responsible for the profitability of the product (ROI);
 Prioritize features according to market value;
 Adjust features and priority every 30 days, as needed; and
 Accept or reject work results.

The Product Owner is responsible for the first of the three Scrum ceremonies: Scrum
Planning.

ScrumMaster
The ScrumMaster is a facilitative team leader working closely with the Product Owner.
He must:
 Ensures that the team is fully functional and productive;
 Enable close cooperation across all roles and functions;
 Remove barriers;
 Shield the team from external interferences; and
 Ensure that the process is followed, including issuing invitations to Daily Scrum,
Sprint
 Review and Sprint Planning meetings.

The Team is cross functional


 Five plus/minus two members
 Selects the Sprint goal and specifies work results
 Has the right to do everything within the boundaries of the project guidelines to
reach the Sprint goal
 Organizes itself and its work
 Demos work results to the Product Owner

14
らくらく (RAKURAKU) July 10, 2010

Sprint

A sprint, in Scrum software development, is a set of period of during which specific work has
to be completed and made ready for review.

Each sprint begins with a planning meeting. During the meeting, the product owner (the
person requesting the work) and the software development team agree upon exactly what
work will be accomplished during the sprint. The development team has the final say when
it comes to determining how much work can realistically be accomplished during the sprint
and the product owner has the final say on what criteria needs to be met for the work to be
approved and accepted.

The duration of a sprint is determined by the scrum master (group facilitator). To help with
scheduling and planning, once the team agrees with the scrum master on how many days a
sprint should last, all future sprints should be the same. Traditionally, a sprint lasts 30 days.
Once a sprint begins, the product owner must step back and let the team do their work.
During the sprint, the team meets daily to discuss progress and brainstorm solutions to
challenges. The project owner may attend these meetings as an observer but is not allowed
to participate unless it is to answer questions. (See pigs and chickens). The project owner
may not make requests for changes and only the scrum master (team facilitator) has the
power to interrupt or stop the sprint.

At the end of the sprint, the team presents its completed work to the project owner and the
project owner uses the criteria established at the sprint planning meeting to either accept or
reject the work.

15
らくらく (RAKURAKU) July 10, 2010

Sprint Cycle

16
らくらく (RAKURAKU) July 10, 2010

Sprint Planning Meeting

The Scrum begins when enough of the Product Backlog is defined and prioritized to launch
the first Sprint. A Sprint Planning Meeting is used to develop a detailed plan for the
iteration. It begins with the Product Owner reviewing the vision, the roadmap, the release
plan, and the Product Backlog with the Scrum Team. The Team reviews the estimates for
features on the Product Backlog and confirms that they are as accurate as possible. The
Team decides how much work it can successfully take into the Sprint based on team size,
available hours, and level of team productivity. It is important that the team “pull” items
from the top of the Product Backlog so they can commit to deliver in a Sprint of no longer
than 30 days. Pull systems deliver significant productivity gains and are a key component of
lean product development.

When the Scrum Team has selected and committed to deliver a set of top priority features
from the Product Backlog, the ScrumMaster leads the team in a planning session to break
down Product Backlog features into Sprint tasks. These are the specific development
activities required to implement a feature and form the Sprint Backlog. This phase of the
Sprint Planning Meeting is time-boxed to a maximum of four hours. Tasks are broken down
into pieces that will require less than 2 days or 16 hours of work. When the Sprint Backlog is
complete, the total work estimated is compared with original estimates from the Product
Backlog. If there is a significant difference, the team negotiates with the Product Owner to
get the right amount of work to take into the Sprint in order to ensure a high probability of
delivering “potentially shippable” code at the end of the Sprint.

Daily Scrum Meeting

The Sprint begins its cycle and every day, the ScrumMaster leads the team in the Daily
Scrum Meeting. This is a 15 minute meeting designed to clarify the state of the Scrum. Each
team member speaks to three questions – what did I do yesterday, what will I do today, and

17
らくらく (RAKURAKU) July 10, 2010

what impediments are in my way? While anyone can attend this meeting, only team
members who have committed to deliver work to the Scrum are allowed to speak. The goal
is to get a global snapshot of the project, discover any new dependencies, address any
personal needs of committed individuals, and adjust the work plan in real time to the needs
of the day.
The ScrumMaster has three primary responsibilities in addition to leading the Daily Scrum
meeting:

1. The ScrumMaster needs to know what tasks have been completed, what tasks have
started, any new tasks that have been discovered, and any estimates that may have
changed. This makes it possible to update the Burndown Chart which shows the
cumulative work remaining day by day. The ScrumMaster must also look carefully at the
number of open tasks in progress. Work in progress needs to be minimized to achieve
lean productivity gains.

2. The ScrumMaster needs to surface dependencies and blocks which are impediments to
the Scrum. They need to be prioritized and tracked. A remediation plan needs to be
implemented for impediments in priority order. Some can be resolved with the team,
some can be resolved across teams, and others will need management involvement as
they may be company issues that block all teams from achieving their production
capacity. For example, a telecom company recently implemented Scrum and found 18
items on their impediment list, only three of which were directly related to Scrum
teams. The other impediments were company issues that needed management
attention.

3. Last but not least, the ScrumMaster may notice personal problems or conflicts within
the Scrum that need resolution. These need to be clarified by the ScrumMaster and be
resolved by dialogue within the team, or the ScrumMaster may need help from
management or the Human Resources group. Jim Coplien developed over 200 case
studies of notable projects while working at ATT Bell Labs. He reports that over 50% of

18
らくらく (RAKURAKU) July 10, 2010

productivity losses were caused by personnel issues. The ScrumMaster must pay
attention to them to ensure the team is fully functional and productive.

Sprint Review Meeting

At the end of a Sprint, the potentially shippable code is demonstrated to the Product Owner
in the first half of a Sprint Review Meeting that is timeboxed to a maximum of four hours.
The Product Owner leads this part of the meeting and all interested stakeholders are invited
to attend. The state of the business, the market, and the technology are reviewed. The
Product Owner determines which items on the Product Backlog have been completed in the
Sprint, and discusses with the Scrum team and stakeholders how best to reprioritize the
Product Backlog for the next Sprint. The goal for the next Sprint is defined.

The ScrumMaster then leads the second half of the Sprint Review meeting with the Scrum
team for a Sprint Retrospective. The way the team worked together in the Sprint is
assessed. Positive ways of working together are identified and encouraged as future
practice. Things that could work better are identified and strategies for improvement are
defined and agreed upon.

19
らくらく (RAKURAKU) July 10, 2010

Sprint Retrospective

Following the Sprint Review, the team gets together for the Sprint Retrospective. This is a
practice that some teams skip, and that’s unfortunate because it’s one of the most
important tools for making Scrum successful. It’s an opportunity for the team to discuss
what’s working and what’s not working, and agree on changes to try. The Scrum Team, the
Product Owner, and the ScrumMaster will all attend, and a neutral outsider will facilitate
the meeting; a good approach is for ScrumMasters to facilitate each other’s’ retrospectives,
which enables cross-pollination among teams.

20
らくらく (RAKURAKU) July 10, 2010

Project Management Tool

Project management has emerged as a crucial factor that determines the success of an
application.
Some of the prime advantages of having a good project management team for an
application are as follows.
 Excellent product quality
 Adequate communication
 Reducing risks
 Strategic objectives and goals
As we decided to work on Google Android which is Open Handset Alliance we decided to
have Project Management tool also from Open Source group. Hence we decided to use
“Redmine”.

Redmine
Redmine is an open source, web-based project management and bug-tracking tool. It
includes calendar and Gantt charts to aid visual representation of projects and
their deadlines.
Redmine is a flexible project management web application. Written using Ruby on Rails
framework, it is cross-platform and cross-database, which is released under the terms of
the GNU General Public License v2 (GPL).

Features of Redmine in Brief


 Multiple projects support
 Manage all your projects with one Redmine instance
 Each user can have a different role on each project
 Each project can be declared as public (visible by anyone) or private (visible by project
members only)
 Modules (e.g. wiki, repository, issue tracking, ...) can be enabled/disabled at project level

 Multiple subproject support

21
らくらく (RAKURAKU) July 10, 2010

 Manage related project parts as subprojects of a main project.

 Flexible role based access control


 Define your own roles and set their permissions in a click

 Flexible issue tracking system


 Define you own statuses and issue types.
 Workflow transitions can be set up for each issue type and role through the web-based
administration interface (a default configuration can be loaded when installing the
application)

22
らくらく (RAKURAKU) July 10, 2010

 Gantt chart and calendar


 Automatic Gantt and calendar based on issues start and due dates

23
らくらく (RAKURAKU) July 10, 2010

 Time tracking functionality


 Time can be entered at project or ticket level
 Simple report to view time per user, issue type, category or activity

 Custom fields
 You can define your own custom fields for issues, time-entries, projects and users
 Different formats are available: text, date, boolean, integers, drop-down lists and
checkboxes
 Custom fields can be displayed on the issue list and used as filters just like regular fields

 News, documents & files management


 You can easily post messages and share files
 Per project wiki and forums
 Wiki uses textile syntax and free linking within the wiki using brackets
 Diff and annotate views are available

24
らくらく (RAKURAKU) July 10, 2010

 Repository browser and different viewer


 Existing repositories can be attached to each of your projects
 Redmine lets you browse their contents, view and search change sets
 Diff and annotate (aka blame) viewer
 Supported SCM: Subversion, CVS, Mercurial, Darcs, Bazaar and Git.

25
らくらく (RAKURAKU) July 10, 2010

26
らくらく (RAKURAKU) July 10, 2010

 Feeds & email notifications


 Project activity, change sets, news, issues, issue changes are available as Atom feeds

 Multiple LDAP authentication support


 Redmine lets you authenticate users against multiple LDAP
 Accounts can be created on-the-fly when a user is found in the directory (optional)

 User self-registration support


 Optionally, you can allow users to register online
 3 account activation methods are available: automatic (no confirmation required), manual
(by administrators) or through an auto generated URL sent via email
 Multilanguage support
 Multiple databases support
 Redmine runs with MySQL, PostgreSQL or SQLite

27
らくらく (RAKURAKU) July 10, 2010

Android
Introduction

Android is a mobile operating system running on the Linux kernel. It was initially developed
by Android Inc., a firm later purchased by Google, and lately by the Open Handset Alliance.
It allows developers to write managed code in the Java language, controlling the device via
Google-developed Java libraries.

Features

 Application framework enabling reuse and replacement of components


 Dalvik virtual machine optimized for mobile devices
 Integrated browser based on the open source WebKit engine
 Optimized graphics powered by a custom 2D graphics library; 3D graphics based on
the OpenGL ES 1.0 specification (hardware acceleration optional)
 SQLite for structured data storage
 Media support for common audio, video, and still image formats (MPEG4, H.264,
MP3, AAC, AMR, JPG, PNG, GIF)
 GSM Telephony (hardware dependent)
 Bluetooth, EDGE, 3G, and Wi-Fi (hardware dependent)
 Camera, GPS, compass, and accelerometer (hardware dependent)
 Rich development environment including a device emulator, tools for debugging,
memory and performance profiling, and a plugin for the Eclipse IDE

Applications

Android will ship with a set of core applications including an email client, SMS program,
calendar, maps, browser, contacts, and others. All applications are written using the Java
programming language

28
らくらく (RAKURAKU) July 10, 2010

Application Framework

By providing an open development platform, Android offers developers the ability to build
extremely rich and innovative applications. Developers are free to take advantage of the
device hardware, access location information, run background services, set alarms, add
notifications to the status bar, and much, much more.

Developers have full access to the same framework APIs used by the core applications. The
application architecture is designed to simplify the reuse of components; any application
can publish its capabilities and any other application may then make use of those
capabilities

Underlying all applications is a set of services and systems, including:

 A rich and extensible set of Views that can be used to build an application, including
lists, grids, text boxes, buttons, and even an embeddable web browser
 Content Providers that enable applications to access data from other applications
(such as Contacts), or to share their own data
 A Resource Manager, providing access to non-code resources such as localized
strings, graphics, and layout files
 A Notification Manager that enables all applications to display custom alerts in the
status bar
 An Activity Manager that manages the lifecycle of applications and provides a
common navigation backstack

Libraries

Android includes a set of C/C++ libraries used by various components of the Android system.
These capabilities are exposed to developers through the Android application framework.
Some of the core libraries are listed below:

 System C library - a BSD-derived implementation of the standard C system library


(libc), tuned for embedded Linux-based devices
 Media Libraries - based on Packet Video's OpenCORE; the libraries support playback
and recording of many popular audio and video formats, as well as static image files,
including MPEG4, H.264, MP3, AAC, AMR, JPG, and PNG
 Surface Manager - manages access to the display subsystem and seamlessly
composites 2D and 3D graphic layers from multiple applications

29
らくらく (RAKURAKU) July 10, 2010

 LibWebCore - a modern web browser engine which powers both the Android
browser and an embeddable web view
 SGL - the underlying 2D graphics engine
 3D libraries - an implementation based on OpenGL ES 1.0 APIs; the libraries use
either hardware 3D acceleration (where available) or the included, highly optimized
3D software rasterizer
 FreeType - bitmap and vector font rendering
 SQLite - a powerful and lightweight relational database engine available to all
application

Android Runtime

Android includes a set of core libraries that provides most of the functionality available in
the core libraries of the Java programming language.

Every Android application runs in its own process, with its own instance of the Dalvik virtual
machine. Dalvik has been written so that a device can run multiple VMs efficiently. The
Dalvik VM executes files in the Dalvik Executable (.dex) format which is optimized for
minimal memory footprint. The VM is register-based, and runs classes compiled by a Java
language compiler that have been transformed into the .dex format by the included "dx"
tool.

The Dalvik VM relies on the Linux kernel for underlying functionality such as threading and
low-level memory management

Linux Kernel

Android relies on Linux version 2.6 for core system services such as security, memory
management, process management, network stack, and driver model. The kernel also acts
as an abstraction layer between the hardware and the rest of the software stack.

30
らくらく (RAKURAKU) July 10, 2010

Android Architecture

31
らくらく (RAKURAKU) July 10, 2010

Android Application Development Tools

 Integrated Development Environment (IDE)

IDE is a software application that provides comprehensive facilities to computer


programmers for software development. An IDE normally consists of:

 A source code editor


 A compiler and/or an interpreter
 Build automation tools
 A debugger

Again to develop Open Source project our company has decided to use Open Source IDE and
which is very popular for Java and Mobile Application Development. Our company Has
decided to use Eclipse (Helios).

 Data Store
For any software application Data Store is very important. As we are going to develop
Android Application which is mobile application, we need to use a Data Store which is
compact and easy to access. Android application can store data in two different types which
are listed below.

1. XML
2. SQLite

32
らくらく (RAKURAKU) July 10, 2010

1. XML - Extensible Markup Language is a set of rules for encoding documents in


machine-readable form. It is defined in the XML 1.0 Specification produced by
the W3C, and several other related specifications, all gratis open standards.

2. SQLite - SQLite is an ACID-compliant embedded relational database management


system contained in a relatively small (~275 kiB) C programming library. The source
code for SQLite is in the public domain.

 Software Development Kit (SDK)


SDK is typically a set of development tools that allows for the creation of applications for
a certain software package, software framework, hardware platform, computer
system, video game console, operating system, or similar platform.

The Android SDK includes a comprehensive set of development tools. These include a
debugger, libraries, a handset emulator (based on QEMU), documentation, sample code,
and tutorials. Currently supported development platforms include x86- architecture
computers running Linux (any modern desktop Linux distribution), Mac OS X 10.4.8 or

33
らくらく (RAKURAKU) July 10, 2010

later, Windows XP or Vista. Requirements also include Java Development Kit, Apache
Ant, and Python 2.2 or later. The officially supported integrated development
environment (IDE) is Eclipse (3.2 or later) using the Android Development Tools (ADT)
Plugin, though developers may use any text editor to edit Java and XML files then use
command line tools to create, build and debug Android applications.

In 26th October, 2009 the "Eclair" version (2.0) was released which featured better
search, battery usage indicator and VPN control applet. New platform technologies
included...

Android Applications are packaged in .apk format and stored under /data/app folder on
the Android OS. The user can run the command adb root to access this folder as only the
root has permissions to access this folder.

34
らくらく (RAKURAKU) July 10, 2010

Emulator

The Android SDK includes a mobile device emulator -- a virtual mobile device that runs
on your computer. The emulator lets you prototype, develop, and test Android
applications without using a physical Device.

35
らくらく (RAKURAKU) July 10, 2010
らくらく (RAKURAKU) July 10, 2010

 Product Owner Requirement

1 When the phone starts up, this application as a resident application is started
automatically and is displayed on the front full screen.
2 This application is running on the Multitasking OS that allows more than one
program to run at a time. And this application also provides a launcher menu.
3 Launcher menu makes it possible to start an application, jump to other applications
and restart the application from a list of application history.
4 A user can set wallpaper and can change the background and font color of the
application.
5 On the home screen, a user can call registered friends by one-touch, create a new e-
mail, edit the phone book and look over the history of calls and mails.
6 On the Favorites menu screen, a user can add his favorite applications and control
them by one-touch. The Favorites menu screen has 4 applications as default; such as
Google Buzz, Mailbox, Camera, Data folder and Phone book.
7 A user will be able to use voice commands if it is possible to use speech recognition.

 Sample Screen Provided by Product Owner

37
らくらく (RAKURAKU) July 10, 2010

 From the programmer perspective


Screen Functionality
A clock, advertisements, one-touch buttons and the
Favorites menu button are displayed on the Home screen.
A user can change clock and date style.
Only the free-version application shows advertisements on
the Home screen.
In the case of paid-version, instead of advertisements, the
screen shows RSS feeds and Notification.
If a one-touch button hasn't registered, the button is named
by only numbers like 1,2,3,4…
Home Screen To register a friend to one-touch button, user can go to the
Edit mode by long click, and then select a friend from the
phone book or add a friend as the new.
A user can set a image on a one-touch button. To set it, a
user can use friend's images from the phone book or also
can choose other images from data folder.
A user can use friend's name of phone book on the one-
touch button, or also can set a new name.
If a user clicks a one-touch button, one-touch action menu
screen is showed.
The One-touch action menu screen shows the friend's name,
image, the first phone number and mail address. It also has
4 action buttons.
On the One-touch action menu, 4 actions are available;
making a call, sending a mail, updating the phone book and
all histories.
If the Call button is clicked, a popup dialog show up with
"Call", "Back" buttons.
If the Mail button is clicked, the Mailing application is
invoked. The mail address of that person is already input as
default.
One-Touch Action Menu
If the Phone book button is clicked to edit friend's info, the
Screen
phone book screen shows up with that info.
If the History button is clicked, the next screen shows 4 tabs;
"incoming calls "," outgoing calls "," incoming mails ","
outgoing mails ".
The incoming call history screen shows the list of incoming
date, time, and contact name and phone number. The list is
sorted from new.
The outgoing call history screen shows the list of outgoing
date, time, and contact name and phone number. The list is
sorted from new.
The incoming mail history screen shows the list of incoming

38
らくらく (RAKURAKU) July 10, 2010

date, time, contact name and mail address. The list is sorted
from new.
The outgoing mail history screen shows the list of outgoing
date, time, contact name and mail address. The list is sorted
from new.
There is a button to go back to the Home screen on the one-
touch action menu screen.
On the Favorites menu screen, a user can go to the Edit
mode by long click and add shortcuts of his favorite
applications.
The Favorites menu screen has 4 applications as default;
such as GoogleBuzz, Mail BOX, Camera, Data folder and
Phone book. A user also can add buttons and pages and that
Favorites Menu Screen
is unlimited. (The size and number of buttons will be
discussed)
If the App Management button is clicked on the Favorites
menu screen, a user can look over the history of applications
which is on working and was used in the past. It is also
possible to be sorted.

39
らくらく (RAKURAKU) July 10, 2010

 Actual Product Screen Transition

Home Screen

40
らくらく (RAKURAKU) July 10, 2010

Contact Register Screen

41
らくらく (RAKURAKU) July 10, 2010

Add New Contact Screen

42
らくらく (RAKURAKU) July 10, 2010

Notification Dialog

43
らくらく (RAKURAKU) July 10, 2010

RSS Feed Article Reader

44
らくらく (RAKURAKU) July 10, 2010

One Touch Action Screen

45
らくらく (RAKURAKU) July 10, 2010

Call and Message Button Click

46
らくらく (RAKURAKU) July 10, 2010

Edit Contact Information

47
らくらく (RAKURAKU) July 10, 2010

One touch Option Menu

48
らくらく (RAKURAKU) July 10, 2010

Favorites Menu

49
らくらく (RAKURAKU) July 10, 2010

Edit Application on Favorites Menu

50
らくらく (RAKURAKU) July 10, 2010

Task Manager

51
らくらく (RAKURAKU) July 10, 2010

Option Menu of Favorites Menu

52
らくらく (RAKURAKU) July 10, 2010

Main Menu Options

53
らくらく (RAKURAKU) July 10, 2010

Resize Main Menu

54
らくらく (RAKURAKU) July 10, 2010

Date Style On Main Screen

55
らくらく (RAKURAKU) July 10, 2010

Clock Style On Main Screen

56
らくらく (RAKURAKU) July 10, 2010

Date and Clock Font Style On Main Screen

57
らくらく (RAKURAKU) July 10, 2010

Background Wallpaper

58
らくらく (RAKURAKU) July 10, 2010

Background Color

59
らくらく (RAKURAKU) July 10, 2010

Application Font Color

60
らくらく (RAKURAKU) July 10, 2010

Notification Updating Time Setting

61
らくらく (RAKURAKU) July 10, 2010

RSS Feed Registration

62
らくらく (RAKURAKU) July 10, 2010

References

Websites

1. http://developer.android.com
2. http://www.anddev.org/
3. http://stackoverflow.com/

Books

1. Professional Android 2 Application Development. By - Reto Meier (Wrox)


2. Beginning Android 2. By - Mark L. Murphy (Apress)

63
Click
Main Menu
Long Click Options
Menu
Click

Click

Click Click

Click Click
One Touch Favorite
Menu Menu Click
Click Next Phone
And Email

One Touch Menu


Click

Click

Click

Click

Main Menu
Favorite Menu

Long Click

Click

Click
Click Main Menu
Click

Click
Click

Click
Click

Main Menu Options

Click
Click
Click

Click

Click
Click
Click
Voice Alert Click
&
Auto Start

You might also like