Sei sulla pagina 1di 31

Android

Framework and Application


Overview

Android Overview 1
Agenda
 M o b i l e Application Development (MAD)
 Introduction to Android platform
 Platform architecture
 Application building blocks
 L e t s Debug
 Development tools.

Android Overview 2
Introduction to Android
 O p e n software platform for mobile development
 A complete stack – OS, Middleware, Applications
 Powered by Linux operating system
 F a s t application development in Java
 O p e n source under the Apache 2 license

Android Overview 3
Android Overview 4
Application Framework
• API interface
• Activity manager – manages application
life cycle.

Android Overview 5
Applications
• Built in and user apps
• Can replace built in apps

Android Overview 6
Application Lifecycle
 Application run in their own processes (VM, PID)
 Processes are started and stopped as needed to run
an application's components

 Processes may be killed to reclaim resources

Android Overview
7
Application Building Blocks
 Activity
 Fragments
 Intents
 Service (Working in the background)
 Content Providers
 Broadcast receivers
 A c t i o n bar

Android Overview 8
Activities
 Typically correspond to one UI screen
 R u n in the process of the .APK which installed
them
 B u t , they can:
 B e faceless
 B e in a floating window
 R e t u r n a value

Android Overview 9
Android Overview
10
Fragments
Fragment represents a behavior or a portion of user interface in an Activity.
You can combine multiple fragments in a single activity to build a multi-pane
UI and reuse a fragment in multiple activities.

Android Overview 19/12/12 11


Fragment
s

Android Overview 12
Intents
 An intent is an abstract description of an operation to be performed.
 Launch an activity
 Explicit
Ex: Intent intent = new Intent(MyActivity.this, MyOtherActivity.class)
 Implicit : Android selects the best
Ex: Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse(“tel:

555-2368”));
 startActivity()
 Extra parameter Ex: intent.putExtra(name, property);

Android Overview 19/12/12


13
Intent Filter
 Register Activities, Services, and Broadcast Receivers as
being capable of performing an action on a particular
kind of data.

 Components that respond to broadcast ‘Intents’


 W a y to respond to external notification or alarms
 A p p s can invent and broadcast their own Intent

Android Overview 19/12/12


14
Services
 Faceless components that run in the background
 No GUI, higher priority than inactive Activities
 U sage: responding to events, polling for data,updating
Content Providers. However, all in the main thread

 E . g . music player, network download etc…


Intent service = new Intent(context,
WordService.class);

context.startService(service);

Android Overview 19/12/12


15
Using the Service

 S t a r t the service
Intent serviceIntent = new Intent();

serviceIntent.setAction

("com.wissen.testApp.service.MY_SERVICE");

startService(serviceIntent);

Android Overview 19/12/12


16
Bind the service
ServiceConnection conn = new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName
name, IBinder service) {
}
@Override
public void
onServiceDisconnected(ComponentName arg0) {
}
}
bindService(new
Intent("com.testApp.service.MY_SERVICE"), conn,
Context.BIND_AUTO_CREATE);
}
And roid Overview 19/12/12
17
Async Task

Asycn task enables easy and proper use of UI


thread. This class allows to perform background
operations and publish results on the main thread.

Android Overview 19/12/12


18
Async Task (Example)
private class DownloadFilesTask extends AsyncTask<URL, Integer, Long> {
protected Long doInBackground(URL... urls) {
int count = urls.length;
long totalSize = 0;
for (int i = 0; i < count; i++) {
totalSize += Downloader.downloadFile(urls[i]);
publishProgress((int) ((i / (float) count) * 100));
}
return totalSize;
}

protected void onProgressUpdate(Integer... progress) {


setProgressPercent(progress[0]);
}

protected void onPostExecute(Long result) {


showDialog("Downloaded " + result + " bytes");
Android O}verview
}
19/12/12
19
ContentProviders
 Enables sharing of data across applications
 E . g . address book, photo gallery

 Provides uniform APIs for:


 querying
 d e l e t e , update and insert.

 Content is represented by URI and MIME type

Android Overview
20
Example
private void displayRecords() {
String columns[] = new String[] { People.NAME,
People.NUMBER };
Uri mContacts = People.CONTENT_URI;
Cursor cur = managedQuery(mContacts, columns, null, null,
null );
if (cur.moveToFirst()) {
String name = null;
String phoneNo = null;
do {
name = cur.getString(cur.getColumnIndex(People.NAME));
phoneNo =
cur.getString(cur.getColumnIndex(People.NUMBER));
 } while (cur.moveToNext());
}
}

Android Overview
21
Broadcast Receivers
 A broadcast receiver is a class which extends
BroadcastReceiver and which is registered as a receiver in an
Android Application via the AndroidManifest.xml file(or via
code).
 <receiver android:name="MyPhoneReceiver">
<intent-filter>
<action

android:name="android.intent.action.PHONE_STATE">
</action>
</intent-filter>
</receiver>
Android Overview
22
Broadcast Receivers
 p u b l i c class MyBroadcastReceiver extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context,
”BR.”,Toast.LENGTH_LONG).show();
}
}

Android Overview
23
ActionBar

Android Overview
24
ActionBar
 H o m e Icon area: The icon on the top left-hand side of the action
bar is sometimes called the “Home” icon.
 Title area: The Title area displays the title for the action bar.
 Ta b s area: The Tabs area is where the action bar paints the list
of tabs specified. The content of this area is variable.
 Action Icon area: Following the Tabs area, the Action Icon area
shows some of the option menu items as icons.
 M e n u Icon area: The last area is the Menu area. It is a single
standard menu icon.

Android Overview
25
Debugging

•Reading and Writing Logs


Log.d("MyActivity”, position);
•adb logcat
• Toast :
Toast toast = Toast.makeText(context, text, duration);

toast.show();

Android Overview
26
Debugging Cont.

•Hierarchy Viewer
•Connect your device or launch an emulator.
•If you have not done so already, install the application
you want to work with.
•Run the application, and ensure that its UI is visible.
•From a terminal, launch hierarchyviewer

Android Overview
27
Debugging Cont.

adb shell dumpsys activity

Android Overview
28
Debugging Cont.
Profiling for memory

Android Overview
29
Development Tools

Eclipse

developer.android.com

Android Overview
30
Thank You.

Android Overview 19/12/12


31

Potrebbero piacerti anche