Download Android App Development 11-20-2013

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
Android App Development
11-20-2013
 Android app development
Recommend: use the Eclipse+ADT bundle
Read:
http://developer.android.com
 Building your first app


Dan Morrill (Clarkson grad)
PR#2 due: Wednesday, 12/04/13
 Lars Vogel
 www.vogella.com/articles/Android/article.html
 Applications

The Android Open Source project contains several
default application, like the Browser, Camera, Gallery,
Music, Phone and more.
 Application framework

API which allows for high-level interaction with the
Android system from Android applications.
 Libraries and runtime

Libraries for the Application Framework for many
functions (graphic rendering, data storage, web
browsing, etc.) and the Dalvik runtime and the core
Java libraries for running Android applications.
 Linux kernel

Communication layer for the underlying
hardware.
 Android applications and tasks
An Android application consists of different Android
components and additional resources. Components
are: activities, services, broadcast receiver and
content provider.
 Android application components can connect to
components of other Android applications to create
tasks.

 Android user interface components

Activity, Fragments, Views and layout manager
 Intents

asynchronous message which allow the app to requrest
functionality from other Android components, e.g. from
services or activites
 Services

services perform tasks without a user interface
 ContentProvider

a content provider gives a structured interface to
application data, so your app can share data with other
apps via a content provider. A SQLite database stores
data which is accessed via a content provider.
 Widgets

interactive components primarily used on the homescreen
 Live Wallpapers
 Android SDK
tools to create, compile and package an app
 create Android virtual devices (AVD)
 contains the Android debug bridge (adb) tool which
has the ability to connect to a virtual or real Android
device

 Android Development Tools (ADT)
create, compile, debug and deploy Android apps from
the Eclipse IDE
 provides editors that allow you to switch between the
XML representation of a file and a visual user interface
via tabs on the bottom of the editor

 Dalvik Virtual Machine

Java class files must be converted to Dalvik bytecode
format (.dex); Android package (.apk)
 Google vs. Android AVD
 Device emulator shortcuts
Shortcut
Description
Alt + Enter
Maximizes the emulator
Ctrl + F11
Changes the orientation of the emulator
from landscape to portrait and vice versa
F8
Turns the network on and off
 Do not interrupt this startup process, since this might corrupt
the AVD.
 Once started, don’t stop the AVD during your development.
Property
Value
Application Name
MyApp
Project Name
edu.clarkson.cs242.myapp
Package Name
edu.clarkson.cs242.myapp
API (minimum, target, …)
latest
 Right click on your project and select
 Run
as -> Android Application
 May be prompted if ADT should monitor
message - Yes
 AndroidMainfest.xml
describes components and settings of an
Android app
 all activities, services and content providers
of the app must be in this file; broadcast
receiver can be defined statically in the
manifest or dynamically in the app
 also contains the required permissions for the
app
 if the app requires network access, must be
specified in the manifest

AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="de.vogella.android.temperature"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon“
android:label="@string/app name">
<activity android:name=".Convert"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<uses-sdk android:minSdkVersion="9" />
</manifest>
Resource
Folder
Description
Drawables
/res/drawables
Images (e.g. png, jpeg) or XML files which
describe a drawable
Simple
Values
/res/values
define strings, colors, dimensions, styles
and integers via XML viles. By convention
each type is stored in a separate file.
Strings are defined in
res/values/strings.xml
Layouts
/res/layout
XML files with layout descriptions
Styles and
Themes
/res/values
define the appearance of your Android app
Animations /res/animator
defines animations in XML
Raw data
/res/raw
data files in raw form, accessed via an
InputStream
Menus
/res/menu
describes properties of menu entries
 Every resource file gets an ID assigned by the
Android build system
 The gen directory in the project contains the
R.java references file which contain these
generated values
 Methods are provided to access the resource
files via these IDs
e.g.
to access a String with the
R.string.yourStringID, use
getString(R.string.yourString)
A layout resource file specifies the ViewGroup, Views
and their relationships and attributes in XML
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<TextView android:id="@+id/mytext"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
</RelativeLayout>
A layout is assigned to an activity via the
setContentView() method
package com.vogella.android.first;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
Property
Value
Application
Name
Project Name
Temperature converter
de.vogella.android.temperature
Package name de.vogella.android.temperature
API
Latest
Template
BlankActivity
Activity
MainActivity
Layout
activity_main
 Select res/values/string.xml to open the editor for this file
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Temperature Converter</string>
<string name="action_settings">Settings</string>
<string name="hello_world">Hello world!</string>
<color name="myColor">#F5F5F5</color>
<string name="celsius">to Celsius</string>
<string name="fahrenheit">to Fahrenheit</string>
<string name="calc">Calculate</string>
</resources>
Continue with the tutorial to
complete the temperature app
 Create an Android app to play the dice
game “Pig”
 cf: wikipedia & about.com for the rules