This action might not be possible to undo. Are you sure you want to continue?
Introduction Part 1. ISD for well structured data ± relational and other DBMS Info storage (modeling, normalization) Info retrieval (Relational algebra, Calculus, SQL) DB integrated API¶s Part 2. ISD for systems with non-uniformly structured data Basics of web-based IS (www, web2.0, «) Markup¶s, HTML, XML Design tools for Info Sys: UML Part III: (subset of) API¶s for mobile apps Security, Cryptography IS product lifecycles Algorithm analysis, P, NP, NPC
Need and applications of mobile apps Problems in development of mobile apps Case study: Google Android Concluding remarks
Mobile computing: Needs and Applications Location and guidance systems. FedEx/DHL delivery tracking/receiving systems Ubiquitous computing.g. e. e. GPS and Map-based services Logistics services. Building security systems . Home device controls. e. Internet fridge.g.g.
Mobile computing: Issues Hardware: Lower Bandwidth (wireless bandwidth is lower than wired) Data transfer is slower (e. prioritizing and switching between processes .g. Mfg Sys Lab ! Human Computer Interface (HCI) For small mobile devices. e. user-interface is an issue Software: Multi-purpose devices Multi-tasking/threading.g. phones/PDAs. e. poor performance of iPhone GPS) Limited battery power Restricted to low power consumption apps Reliability Wireless service (cells) do not cover all areas.g.
uses Java . LG.Based on Apple OS X .Pre-emptive multi-tasking . Open source ! .GUI emulates windows on PC . «) . Sony-Ericsson.App development requires certification RIM Blackberry (used by Blackberry phones) . .NET iPhone OS (used by Apple iPhones) . Supports Java.Linux-based OS. Uses C++. Palm Treo) . «) . Optimized applications and HCI for email Windows mobile (used by Samsung.Closed source. HTC.Common Mobile Phone OS¶s Symbian OS (used by Nokia.GUI: user friendly.Simple GUI. . uses Visual C++. AT&T.SDK is free. touch-screen only (no keypad support) Google Android (used by Google phone.Software development kit (SDK) is free for students.
RAM is smaller.Networked applications must deal with cellular communications .. phone-keys based. Less RAM. What differentiates mobile apps from desktop apps ? . Slower low energy CPU. Limited graphics.Comparing mobile apps with desktops.Mobile I/O systems are quite different from desktop ones Touch-screen based. « mobile multimedia formats and file formats are different . « . reduced keyboard-based.Mobile OS (and apps have very limited resources: Smaller size.
SQLite.Android Steps in Android Application development: Download and install SDK Develop the application: Eclipse IDE (Java. XML) Test the application: Android emulator Register with Google (US$ 25) Upload your application to Google App Store .Mobile Application Development: Case study .
Android OS Architecture Phone users App developers Programmers Hardware developers .
apk # library calls Android OS is multi-processing.Structure of an Android Application Android apps are stored in µpackages¶ Resources: Data. Processes can communicate w/ the OS. and also can communicate w/ each other . multi-threading multiple processes can be running on the device at the same time. images java java code code data mp3 aapt MyApp. sound files.
and/or it may allow other apps to use some of its components When an app is executed.Due to multi-tasking. multiple components could be doing something at the same time .Each component does a well defined activity . Android creates a ³virtual computer´ in which the process runs each process is isolated from others.An app may use a component from some other app. processes can share data with each other via special components called µcontent providers¶ .Logical structure and life of an Android Application An Android app is composed of a set of components . This is implemented via the DalVik Virtual Machine [Java Virtual Machine] security However.
etc. . Child views (controlling sub-rectangles) can be derived from parents. icons. etc. buttons. Views are used to create images.Android components: Activities Activity is a sequence of related actions Each activity presents a visual interface to the user Each activity is derived from base class Activity Each activity owns a View which controls a rectangular window. and awaits inputs from the user. Examples: The ³Contacts´ application may have an activity that displays a scrolling list of all contacts listed by last name. The ³Calculator´ app may have an activity that displays a numeric keyboard and buttons for numeric operations.
com .Android API ± activity control loop Colored ovals: states of the activity Grey rectangles: callback methods written by developer source: developer.android.
Android components: Services Service is an activity that runs in the background no visual interface Each activity is derived from base class Service Example: A common example of a service is an mp3 player that may run in the background as the user may be involved with some activity of another app. e. . web browser.g.
com . source: developer. a service may be created.android. a service may be started and running in some other context. by an activity. say.Android API ± service control loop Colored ovals: states of the service Grey rectangles: callback methods written by developer NOTE: Typically. in Android. Alternatively. this is called ³bind´-ing to the service. and can announce its interface to other activities ± in this case. the activity may just connect itself to the service.
listening for interrupts generated by other apps An application may have one or more BR¶s to handle interrupts.Incoming phone call .Android components: Broadcast receivers Broadcast receivers are similar to interrupt handlers in normal OS BRs run in the background. Examples of interrupts: .Battery is low .User has transited from one time zone to different one .User changed language setting .
.Android components: Content providers Content providers make some subset of an application¶s data available to other apps when requested Content providers are the only mechanism for apps to share data.
Before Android can start an application component. Activities. Content providers: activated by special objects called ContentResolvers. and the user¶s actions.PICK" /> « </intent-filter> « </activity> </application> </manifest> .Android application process Process can be multi-threaded Android apps do not have a C-style ³main´.android.action. the app may start (or terminate) some activity.action. broadcast receivers: activated by messages called intents.action. and input types of the component The manifest <?xml version="1. etc. it must know the name. Depending on the state of the application.example.notepad" «> (partial manifest) <application android:icon="@drawable/app_notes" android:label="@string/app_name" > <activity android:name="NotesList" android:label="@string/title_notes_list"> <intent-filter> <action android:name="android. location. services.MAIN" /> « </intent-filter> <intent-filter> <action android:name="android.intent. or service.intent.0" encoding="utf-8"?> Notepad app <manifest package="com.intent.intent.action.VIEW" /> <action android:name="android.EDIT" /> <action android:name="android.
Each object in a view.android.e.android.notepad. Each view has some graphical objects that either fill the complete screen. i.0" encoding="utf-8"?> <view xmlns:android="http://schemas.example.NoteEditor$LinedEditText" android:id="@+id/note" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@android:color/transparent" android:padding="5dip" android:scrollbars="vertical" android:fadingEdge="vertical" android:gravity="top" android:textSize="22sp" android:capitalize="sentences" /> . or a part of the screen. or to get some user-input.Views in Android Most activities will present a µview¶ to the user. is also described in XML Notepad app (layout of Note-Editor) <?xml version="1. either to display some graphics.com/apk/res/android" class="com. Thus each activity can create (instances) of one or more views. the layout.
Use the IDE (e. use-case diagrams « . and program the Java code for each class . . store as resources.Develop UML class diagrams.Android app development: summary The basic steps of developing an android app: . . « .Upload the code on the mobile device. decide the GUI and design it.g.For each activity.Identify the activities. Eclipse). services. activity diagrams.Test & debug the code using the android emulator .
and in usage. Several modern mobile OS¶s are using xml as an integral part the programming language ± e. Mobile app development process is almost similar to normal app development. memory usage and algorithm efficiency are much more important. « . Palm Pre OS. but issues such as compiled code size. view layout). Android (manifest.Brief concluding remarks Mobile Operating Systems are in some ways similar to desktop OS.g. but there are several differences in details.
References and Further Reading Mobile OS wikipedia Google android developer site Next: Project completion. Exam! .
Case study: Hangman-style ± µSave the bird¶ game We consider a game similar to the popular µHangman¶ game. with the main difference being in the graphics (6 wrong guesses shark eats bird) .