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 workof 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