This document provides an overview of Android GUI development. It discusses the Android development environment, activities and views for building the UI, programmatic and declarative UI construction, and APIs for accessing built-in Android features. Key points covered include using Eclipse for development, the activity-view hierarchy, XML layouts, callbacks for event handling, and interfaces for the camera, maps, and other native Android apps.
3. AndroidAndroid
• 1. Android Basics
• 2. Android Development
• 3. Android UI
• 4. Hello, World
• 5. My Project
4. Android BasicsAndroid Basics
• Open source OS
• Uses Linux kernel
• Optimized for limited-resource environment
• Apps typically written in Java
• Apps run on the Dalvik Virtual Machine
• Not a JVM, but works similarly from developer’s
point of view
• Usually one app per DVM
• Each DVM runs under Linux as a separate user
• App permissions set at install time
• Possible to use C or C++ compiled to machine code,
but still runs on VM. It’s not clear to me how this works.
• Docs say it does not necessarily improve
performance.
6. Android DevelopmentAndroid Development
• Well-defined framework for app
development
• Apps are typically coded using Java
syntax, but other parts of the Java platform
are missing
• Some standard Java SE or ME APIs and
class libraries are not included
• I will give examples when I find out!
7. Android DevelopmentAndroid Development
• Standard development environment is Eclipse +
Android Development Tools plugin + Android SDK
• Development requires either an Android OS device
or an emulator
• Emulator has limitations:
• Performance is poor
• Camera, etc., simulated using your computer’s
hardware
• No real phone calls or texts
• GPS data, battery readings, etc. must be simulated
• Real device is affected by specific hardware and
software configuration
8. Android vs. Other Mobile OSAndroid vs. Other Mobile OS
I was able to choose what kind of smart phone to get according
to which platform I wanted to use to try mobile development
Android:
•I had Java backend code ready to go for a first project
•Interesting platform:
• Familiar programming environment
• Currently the market leader
• Broad market, unlike more focused iOS, Blackberry, and
(Palm) webOS
• Development tools are open source and are free even for
commercial use, unlike Visual Studio
9. Android App vs. Mobile- Optimized RIAAndroid App vs. Mobile- Optimized RIA
• Android Flash plugins available; Silverlight coming soon
• Could develop in JavaScript and/or HTML5
• WWW App
• Easier for users to run; no need to install
• For a paid app, avoid the 30% App Store commission
• Easier to write cross-platform apps
• Android Apps
• Fewer security hurdles
• Use APIs for access to built in GPS, camera, etc.
• Probably better performance; one layer less
10. Android Apps: MarketingAndroid Apps: Marketing
• Usually market apps through Android App Market
• There are other markets, also
• App store will dominate the market due to
access through built in app
• Can set up for download directly on a website
• User must agree to “install apps from unknown
sources”
11. Android Apps: MarketingAndroid Apps: Marketing
• Revenue from app sales prices and/or advertising
• Conventional wisdom is that iOS users will pay for
apps, but Android users won’t
• 57% of Android App Store apps are free, vs. 28% for
Apple App Store
• Android Market takes 30% commission
• Any purchase model other than one-time purchase
must be homegrown, using Paypal or similar service
• PPC ads
• My guess is that response to these is extremely low
• Probably need to be very aggressive with banner
ads
• Sell to companies?
12. Android DeploymentAndroid Deployment
• Apps are packaged in .apk format, variant
of .jar, then downloaded to device and
installed
• .apks contain .dex files (bytecode),
manifest and various other files
• Manifest contains security and link info,
hardware access info, minimum OS
release info, etc.
13. Android UIAndroid UI
• Activity: single screen with a UI, somewhat analogous to
XAML / code behind pattern in .NET
• Email app might have one activity that shows a list of
new emails, another activity to compose an email, and
another activity for reading emails
• Implement by subclassing Activity class
• View: drawable object
• Android UI View ≠ MVC View
• UI contains a hierarchy of Views
• View is a class, subclassed by the drawable objects in
the UI
14. Android UIAndroid UI
• Service: background operation
• play music in the background while the
user is in a different application
• fetch data over the network without
blocking user interaction with an activity
• Content Provider: DB or other data access
• Broadcast Receiver: responds to system
messages
• Battery low
15. Android UIAndroid UI
• UI construction can be done in three ways:
• Programmatic, like hand-coded Java
desktop GUI construction
• Declarative hand-written, like Java web
UI construction
• XML
• Declarative with a GUI builder, like .NET
UI construction
• GUI builder generates the XML
16. Programmatic UIProgrammatic UI
import android.app.Activity;
import android.widget.TextView;
import android.os.Bundle;
public class AndroidDemo extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Activity is a subclass of context, so the TextView takes this as a parameter
TextView tv = new TextView(this);
tv.setText("Hello, vibrant");
setContentView(tv);
}}
18. Manual Declarative UIManual Declarative UI
Java class:
package vibrant.demo;
import android.app.Activity;
import android.os.Bundle;
public class AndroidDemo extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}}
19. What’s R?What’s R?
/* AUTO-GENERATED FILE. DO NOT MODIFY. This class was automatically generated by the
* aapt tool from the resource data it found. It should not be modified by hand. */
package vibrant.demo;
public final class R {
public static final class attr { }
public static final class drawable { public static final int icon=0x7f020000; }
public static final class id {
public static final int textview=0x7f050000;
}
public static final class layout {
public static final int main=0x7f030000;
}
public static final class string {
public static final int app_name=0x7f040001;
public static final int hello=0x7f040000;
}}
23. APIs for Android built-insAPIs for Android built-ins
• Android OS ships with many built in apps
• Web Browser
• Google Maps
• Navigation
• Camera apps
• Built in access for these as well as TTS and
Voice Recognition, etc.
24. ThankThank You !!!You !!!
For More Information click below link:
Follow Us on:
http://vibranttechnologies.co.in/android-classes-in-mumbai.html