Presentation is loading. Please wait.

Presentation is loading. Please wait.

Android Terminology Component: Activities, content providers, broadcast receivers, and services that together make up an application Activity: A single.

Similar presentations


Presentation on theme: "Android Terminology Component: Activities, content providers, broadcast receivers, and services that together make up an application Activity: A single."— Presentation transcript:

1 Android Terminology Component: Activities, content providers, broadcast receivers, and services that together make up an application Activity: A single user-based task, usually, but not always, containing views Content Provider: A component that serves data to other applications Broadcast receiver: Component receiving notifications from other activities Service: Background process responding local or remote application requests View: Base class for most layout components UI Control : textView, EditText, CheckBox, RadioButton, Spinner, etc. Layout: Visual arrangement of containers and views Context: Object containing the global state of an application environment Intent: Asynchronous launching (or communication) message Intent Filter: Criteria an Android device uses to find matching activities

2 Android Terminology (cont.) Preference: A key/value pair, which defines a user option Context Menu: A menu executing after a long click Long Click: Analogous to right clicks; Hold click for approximately two seconds Modal: Dialog requiring a response before continuing an activity Localize: Separate data from an application, so changes don't require changing source. Refer to the data by an identifier name. Faded Edge: An edge of a scrollable area that is faded to indicate that more information exists Fragment: An independent module tightly bound to an application Bundle: A set of key/value data pairs for persisting an application state

3 Android Terminology (cont.) Gravity: Determine alignment of text within a view of different size. Values can include: top, bottom, left, center, fill Content Provider: Wrapper for data, exposing data (SQL for example) to multiple applications, using a standard API. Cursor: An object containing rows extracted from an SQL table Projection: The columns of an SQL table of interest Live Folder: Deprecated mechanism to display data on home page – Developers now use Widgets – Live: updates display automatically Widgets: Miniature icon-based application view (clock, battery charge percent) embedded on the home screen or application Live Wallpaper: Dynamic interactive home screen backgrounds

4 Creating an Android Application Perform the following steps 1.Create a new Android project in Eclipse with the wizard icon 2.Register activities, specify Content Providers, Services, and security specifications in AndroidManifest.xml 3.Create localized literals in the res/values directory 4.Create other resources in various res directories 5.Create UI layouts in the res/layouts directory 6.Code the activity java class in the package folder

5 Step 1: Eclipse Android Project Wizard First Screen – Name the project – Use workspace or browse to a new location Second Screen: Pick an Android version – The oldest version has the most compatibility – Newer versions obviously have more features – Some newer features are backwards compatible Third Screen: Pick a package name – Example: com.acorns.lesson or com.cs415.name Click finish to complete the process

6 Android Application Project Structure

7 Automatically Generated Files package com.paad.helloworld; public final class BuildConfig { public final static boolean DEBUG = true; } package com.paad.helloworld;public final class R { public static final class attr { } public static final class drawable { public static final int ic_launcher=0x7f020000; } 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; }

8 Step 2: Create the Manifest The new project wizard – Automatically Creates a default AndroidManifest.xml file – Creates a default activity in the project directory Alter the manifest – Register activities with intents, permissions, content providers, services, etc. – There are two possibilities  Edit the manifest directly  Use the Manifest Editor that displays when clicking the AndroidManifest.xml file

9 HelloWorld Manifest <uses-sdk android:minSdkVersion="1" // User cannot install if less (1=default) android:targetSdkVersion="15" /> // Verify features between min & target <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <activity android:label="@string/app_name" android:name=".MyActivity" >

10 Step 2: Register Activities How? Alter the manifest! – Create additional activities – Create and/or fragments with intents, permissions, content providers, services, etc. – There are two possibilities  Edit the manifest directly  Use the GUI that displays when clicking the AndroidManifest.xml file (Double click AndroidManifest.xml, click on application, scroll down and click on add, Choose activity from the dropdown, give it a name, and click finish to start coding) Definition: A focused single task

11 Intent Android Intent Resolver – Applications sends intents to the Android system – The Android intent resolver searches all application intent filters to find the most suitable matching activity – Intents can target a single application or multiple applications broadcast for sequential handling Intent Filters – Intent fields contain criteria fields defining whether an activity is appropriate – Criteria fields include actions, a category, path to data, MIME type, a handling class, and security restrictions Definition: Messages that asynchronously launch or communicate with other applications/activities More Details later

12 Manifest Intent Filter Example Note: An intent launches an activity The Main Entry when a user launches the application Launched by other applications for list access Launched by other applications for single item access

13 Providing Access to NotePad Data Declares legal activity operations on a note directory. URI, vnd.android.cursor.dir/vnd.google.note, retrieves a cursor of zero or more items (vnd.android.cursor.dir) with note pad data (vnd.google.note). Legal actions: view or edit the directory of data (VIEW and EDIT ), or pick and return a particular note (PICK). Activities launched without a explicit package name require the DEFAULT category, or they will not be resolved

14 Another Android Manifest <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.bikerolas" android:versionCode="30" android:versionName="1.2"> <application android:icon="@drawable/flingicn1" android:label="@string/app_name" android:debuggable="false"> Note: ACCESS_LOCATION and ACCESS_GPS were used by earlier Android versions and are now deprecated

15 Localize Strings Example (Strings.xml) Hello World, MyActivity! PA4AD_Ch02_Hello_World Build: Android creates gen/ /R.java automatically from the information in res/Strings.xml Java Access: setTitle(getText(R.string.hello)); Manifest XML Access: android:label="@string/app_name" How? Create XML files in the res/values directory Why? Promotes Internationalize and easier maintenance

16 Layout Example (main.xml) Notes fill_parent (or match_parent Android 2.0 and later) fill the entire space of the parent layout Wrap_content uses as little space as needed LinearLayout is a vertical or horizontal list of items (like BoxLayout in Swing) How? Store xml text files in the res/layouts directory

17 The Java Code package com.paad.helloworld; import android.app.Activity; import android.os.Bundle; public class MyActivity extends Activity { /** Called when the Activity is created or restarted. **/ @Override public void onCreate(Bundle savedState) { super.onCreate(savedState); setContentView(R.layout.main); } A Bundle is a bunch of key/value pairs for Applications to restore their state after an Android termination

18 Android Emulator Start the Emulator from Eclipse – Right click on the application – Select run as and then Android application – To debug: Select debug as and then Android Application – After the first time, just click the run icon at the top of the Eclipse window Important notes – The emulator takes quite a bit of time to launch; be patient – Don’t shut down the emulator between application runs. Closing leads to long start up times, and sometimes confuses Eclipse – Every Eclipse run reinstalls and re-launches the application

19 Debugging Applications Set debuggable="true" in the tag – This is automatic when debugging in the emulator – Manually explicitly set preference to debug on a real device Eclipse views – DDMS: Dalvik Debug Monitor Server Simulate Event: Global Positioning Service (GPS), phone calls, Short Message System (SMS), etc. – Debug: Start with "Debug as" – Execute emulator to get a terminal window and execute Linux commands to connect to SQL, execute queries, etc. – ADB (Android Debug Bridge): Debug on actual devices (if debugging enabled) using Eclipse; Note: ADB is part of the SDK platform tools Techniques: Logcat displays console output, Trace, Breakpoints, Strict mode

20 Enable Device Debugging Eclipse: window>open perspective->other>DDMS Enable debugging on device – Older devices: settings>applications>development – Newer devices: settings>about phone> tap build # seven times> back

21 Debugging Techniques Tracing the execution – Start: android.os.Debug.startmethodTracing("foo"); – Stop: android.os.Debug.stopMethodTracing(); – Writes output to: foo.trace on the emulator or device Log class: – Analogous to Java: System.out.println or Javascript: Console.log – Example: Log.v("category string", "message"); Asynchronous Alert Dialogs AlertDialog.Builder build = new AlertDialog(context); build.setTitle("Some Message"); AlertDialog ad = builder.create(); ad.show(); Breakpoints: Set Eclipse breakpoint and use "Debug as" option

22 Strict Mode (Android 2.3 and newer) Report violations and IO Operations: Disk reads, disk writes, etc. Common options when detection occurs: Write a Log message, display a dialog message, or crash the application Example StrictMode.setVMPolicy(new StrictMode.VMPolicy.builder().detectDiskWrites().detectLeakedSqlLiteObjects().penaltyLog().penaltyDeath().build()); Note: The build retuns a ThreadPolicy object to the VM Policy builder Detect if in debug mode ApplicationInfo info = getContext().getApplicationInfo(); if (info.flags & ApplicationInfo.FLAG_DEBUGGABLE) != 0) { /* code here */}


Download ppt "Android Terminology Component: Activities, content providers, broadcast receivers, and services that together make up an application Activity: A single."

Similar presentations


Ads by Google