CHAPTER 3 : Mobile Programming Basic
Subtopic
• Understanding Mobile Application Development Kit
• Building your first "hello world" program
• Compiling to emulator
• Compiling to device
• Program structure explained
• Mobile Application Life Cycle
• Program debugging
Android Programming
What is Android?
Includes a Java API for developing applications
It is not a device or product
The Android Open Source Project (AOSP)
• An open source Linux-based operating system intended for mobile computing
platforms
• An initiative led by Google
– Makes the source code of the Android OS available for all
Read, review, and modify the code to your liking
• The main goals of the AOSP
– Provide a set of compatibility guidelines—for OEMs (Original Equipment
Manufacturers) and device manufacturers—for porting Android to custom
devices
– Build accessories that comply with Android’s open accessory standard Allows
OEMs and manufacturers to deliver a standard experience
• Making radical changes to that experience introduces fragmentation in the
The Open Handset Alliance
• Android, Inc
Created by Andy Rubin, Acquired by Google in 2005.
• Open Handset Alliance (OHA)
– Formed in November 2007
– Business alliance composed of mobile players
• Chip makers
• Handset manufacturers
• Software developers
• Service providers
• OHA began developing open standards based on Android, Inc. technologies. The
result is the Android project.
• Google provided the initial code, online documentation, tools, forums, and SDK.
Manufacturers: Designing Android Devices
• Samsung
• Motorola
• Dell
• Sony Ericsson
• HTC
• LG
• Amazon
• Intel
• NVIDIA
Android vs. iPhone
Java vs. Objective-C
Direct install vs. Marketplace vs. App Store
Open source?
What Should Students Already Know?
Java!
– inheritance, method overriding
– interfaces, casting
– exceptions
– debugging
– reading API documentation
Eclipse
– easy to pick up quickly, though
Do I Need Phones?
The emulator that is part of the Android toolset
for Eclipse is quite good (though a bit slow)
You may be able to get free “developer phones”
from Google
Online Resources
developer.android.com
code.google.com/p/apps-for-android/
stackoverflow.com
videos from Google I/O conferences
“Hello, Android”
Creating Your First(?) Android App
1. Set up your development environment
2. Create a new Android project in Eclipse
3. Run it in the emulator
4. Hilarity ensues
1. Set Up Your Android Environment
http://developer.android.com/sdk
•
Install Android Studio with Android SDK
•
(Android libraries)
Install JDK if it is not in your computer
Create AVD (Android virtual device)
2. Create an Android Project
File → New → Project
Select “Android Project”
Fill in Project details...
Directory
name
Android
version
Name that appears Java package
on device
Class to
automatically
create
Source
code
Auto-generated
code
String
constants
UI
layout
Configuration
3. Run the Android Application
Run → Run (or click the “Run” button)
Select “Android Application”
The emulator may take a few minutes to start, so be patient!
You don't need to restart the emulator when you have a
new version of your application
HelloAndroid.java
1 public class HelloAndroid extends Activity {
2 /** Called when the activity is first created. */
3 @Override
4 public void onCreate(Bundle savedInstanceState)
5 {
6 super.onCreate(savedInstanceState);
7 setContentView(R.layout.main);
8 }
9 }
main.xml
1 <?xml version="1.0" encoding="utf-8"?>
2 <LinearLayout
3 xmlns:android="http://schemas.android.com/apk/res/android"
4 android:orientation="vertical"
5 android:layout_width="fill_parent"
6 android:layout_height="fill_parent"
7 >
8 <TextView
9 android:layout_width="fill_parent"
10 android:layout_height="wrap_content"
11 android:text="@string/hello "
12 />
13 </LinearLayout>
strings.xml
1 <?xml version="1.0" encoding="utf-8"?>
2 <resources>
3 <string name="hello">Hello World, HelloAndroid!
4 </string>
5 <string name="app_name">Hello, Android</string>
6 </resources>
AndroidManifest.xml
1 <?xml version="1.0" encoding="utf-8"?>
2 <manifest
3 xmlns:android="http://schemas.android.com/apk/res/android"
4 package="edu.upenn.cis542"
5 android:versionCode="1"
6 android:versionName="1.0">
7 <application android:icon="@drawable/icon"
8 android:label="@string/app_name">
9 <activity android:name=".HelloAndroid"
10 android:label="@string/app_name">
11 <intent-filter>
12 <action
13 android:name="android.intent.action.MAIN" />
14 <category
15 android:name="android.intent.category.LAUNCHER"/>
16 </intent-filter>
17 </activity>
18 </application>