Assign 1

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 20

UCSCS30200 :Android Programming

Credits: 3 IA: 30 Marks


Contact Hrs (L:T:P): 3 (2:0:1) End Exam: 45 Marks
Unit 1 (15 hrs)
Introduction to Android, Create Your First Android App, Layouts,
Views and Resources, Text and Scrolling Views, Build your first
app, Activities, Testing, debugging and using support
libraries.Understanding Activities and Intents, The Activity
Lifecycle and ManagingState Activities and Implicit Intents.
What is Android?
• Android is an open source and Linux-based Operating
System for mobile devices such as smartphones and tablet
computers.
• Android was developed by the Open Handset Alliance, led by
Google, and other companies.
• Android offers a unified approach to application development
for mobile devices which means it can run on many different
devices from many different manufacturers.
• Android includes a software development kit for writing
original code and assembling software modules to create apps
for Android users.
• It also provides a marketplace to distribute apps.
• All together, Android represents an ecosystem for mobile
apps.
Why Android ?
Features of Android
• Android is a powerful operating system competing with Apple
4GS and supports great features. Few of them are listed below −
Beautiful UI
• Android OS basic screen provides a beautiful and intuitive user
interface.
Storage
• SQLite, a lightweight relational database, is used for data storage
purposes.
Media support
• MP3, JPEG, PNG, GIF, and BMP.
Messaging
• SMS and MMS
Connectivity
• GSM/EDGE,Bluetooth, Wi-Fi, LTE, NFC and WiMAX.
Multi-touch
• Android has native support for multi-touch which was initially made
available in handsets such as the HTC Hero.
Multi-tasking
• User can jump from one task to another and same time various
application can run simultaneously.
Resizable widgets
• Widgets are resizable, so users can expand them to show more
content or shrink them to save space.
Multi-Language
• Supports single direction and bi-directional text.
Wi-Fi Direct
• A technology that lets apps discover and pair directly, over a high-
bandwidth peer-to-peer connection.
Android Beam
• A popular NFC-based technology that lets users instantly share, just
by touching two NFC-enabled phones together.
Android Applications
• Android applications are usually developed in the Java
language using the Android Software Development Kit.
• Once developed, Android applications can be packaged
easily and sold out either through a store such as Google
Play, Opera Mobile Store and the Amazon Appstore.
• Android powers hundreds of millions of mobile devices
in more than 190 countries around the world.
• It's the largest installed base of any mobile platform and
growing fast. Every day more than 1 million new Android
devices are activated worldwide.
Categories of Android applications
• There are many android applications in the
market. The top categories are −
History of Android
• Initially, Andy Rubin founded Android Incorporation in Palo Alto,
California, United States in October, 2003.
• On 17th August 2005, Google acquired android Incorporation.
Since then, it is in the subsidiary of Google Incorporation.
• The key employees of Android Incorporation are Andy
Rubin, Rich Miner, Chris White and Nick Sears.
• Originally intended for camera but shifted to smart phones later
because of low market for camera only.
• Android is the nick name of Andy Rubin given by coworkers
because of his love to robots.
• In 2007, Google announces the development of android OS.
• In 2008, HTC launched the first android mobile.
• The code names of android ranges from A to N currently, such as
Aestro, Blender, Cupcake, Donut, Eclair, Froyo, Gingerbread,
Honeycomb, Ice Cream Sandwitch, Jelly Bean, KitKat, Lollipop
and Marshmallow.
Fig: Android versions
What is API level?
• API Level is an integer value that uniquely identifies the
framework API revision offered by a version of the
Android platform.
• Refer the doc file.
• Android Architecture

Fig: Android Architecture


Apps
Your apps live at this level, along with core system apps for email,
SMS messaging, calendars, Internet browsing, or contacts.
Java API Framework:
• All features of Android are available to developers through
application programming interfaces (APIs) written in the Java
language. You don't need to know the details of all of the APIs to
learn how to develop Android apps, but you can learn more about
the following APIs, which are useful for creating apps:
• View System: used to build an app's UI, including lists, buttons, and
menus.
• Resource Manager: used to access to non-code resources such as
localized strings, graphics, and layout files.
• Notification Manager: used to display custom alerts in the status bar.
• Activity Manager: that manages the lifecycle of apps.
• Content Providers: that enable apps to access data from other apps.
• All framework APIs that Android system apps use.
Libraries and Android Runtime
• It is a set of libraries including open-source Web browser
engine WebKit, well known library libc, SQLite database
which is a useful repository for storage and sharing of
application data, libraries to play and record audio and video,
SSL libraries responsible for Internet security etc.
• Andriod runtime provides a key component called Dalvik
Virtual Machine which is a kind of Java Virtual Machine
specially designed and optimized for Android.
• The Dalvik VM makes use of Linux core features like memory
management and multi-threading.
• The Dalvik VM enables every Android application to run in its
own process, with its own instance of the Dalvik virtual
machine.
Hardware Abstraction Layer (HAL):
• This layer provides standard interfaces that expose device
hardware capabilities to the higher-level Java API framework.
• The HAL consists of multiple library modules, each of which
implements an interface for a specific type of hardware
component, such as the camera or Bluetooth module.
Linux Kernel
• The foundation of the Android platform is the Linux kernel.
The above layers rely on the Linux kernel for underlying
functionalities such as threading and low-level memory
management.
• Using a Linux kernel enables Android to take advantage of
key security features and allows device manufacturers to
develop hardware drivers for a well known kernel.
The challenges of Android app development
While the Android platform provide rich functionality for
app development, there are still a number of challenges
you need to address, such as:
• Building for a multi-screen world
• Getting performance right
• Keeping your code and your users secure
• Remaining compatible with older platform versions
• Understanding the market and the user.
Building for a multi-screen world
• Android runs on billions of handheld devices around the
world, and supports various form factors including
wearable devices and televisions.
• Devices can come in different sizes and shapes that affect
the screen designs for UI elements in your apps.
• In addition, device manufacturers may add their own UI
elements, styles, and colors to differentiate their products.
• Each manufacturer offers different features with respect
to keyboard forms, screen size, or camera buttons.
• An app running on one device may look a bit different on
another.
• The challenge for many developers is to design UI
elements that can work on all devices.
• It is also the developer’s responsibility to provide an
app’s resources such as icons, logos, other graphics, and
text styles to maintain uniformity of appearance across
different devices.
Maximizing app performance
• An app's performance—how fast it runs, how easily it
connects to the network, and how well it manages battery
and memory usage—is affected by factors such as battery
life, multimedia content, and Internet access.
• We must be aware of these limitations and write code in
such a way that the resource utilization is balanced and
distributed optimally.
• For example, you will have to balance the background
services by enabling them only when necessary; this will
save battery life of the user’s device.
Keeping your code and your users secure
• You need to take precautions to secure your code and the
user’s experience when using your app. Use tools such as
ProGuard (provided in Android Studio), which detects
and removes unused classes, fields, methods, and
attributes, and encrypt all of your app's code and
resources while packaging the app.
• To protect your user's critical information such as logins
and passwords, you must secure the communication
channel to protect data in transit (across the Internet) as
well as data at rest (on the device).
Remaining compatible with older platform versions
• Consider how to add new Android platform version
features to an app, while ensuring that the app can still
run on devices with older platform versions.
• It is impractical to focus only on the most recent Android
version, as not all users may have upgraded or may be
able to upgrade their devices.

You might also like