Types of Android Applications
1. Foreground – useful only when it is seen and is effectively suspended when in background – ex. Games
2. Background – Very less UI, mainly for configuration, rest of working in background – ex Auto SMS Responder. We can create completely invisible services also, but it is better to have some basic interation
3. Intermittent – Some have min UI and do most work in Background ex. Music Player, Some do most work in foreground but do important work in background. ex. Email apps
4. Widgets and Live Wall Papers
Hardware imposed Design Considerations
1. Low processing power
2. Limited RAM.
3. Limited permanent storage capacity
4. Small screens with low resolution
5. High costs associated with data transfer
6. Intermittent connectivity, slow data transfer rates, and high latency
7. Unreliable data connections
8. Limited battery life
Developing for Android needs following
1.Being fast and efficient (in resource constrained environment, fast=efficient) -2. Being Responsive (If ActivityManager or WindowManager finds any activity or window to be non-responsive/slow, it shows dialog of force close to the user, max response time for clicks is 5 sec) –3.Ensuring Data Freshness (Multitasking is a key feature which means data changes in background. When to look for new data to UI? just before displaying it.) - 4.Developing Secure Apps (Declaration of permissions needed, each app is sandboxed separately) – 5.Ensuring a Seam Less User Experience (Apps start, stop and transit without delays or jarring effects with time) –6.Providing Accessibility (Don’t assume every user will be like you, same as accessibility in java)
What all comprises an Android Application
Loosely coupled components, bound by the application manifest that describes each component and how they interact. Manifest also specifies the apps hardware and platform requirements, external libraries, permissions.
Following are building blocks of an android app:
Activities – Presentation layer of your app, like Forms or Pages or Screens. Services – Invisible workers of your app, without UI, but update the data sources of activities, trigger Notifications and broadcasting intents. Typically long running tasks. Content Providers – Shareable Persistent Data storage, manage data and interact with SQL DBs and share data across application boundaries. You can configure CPs to allow other apps to access your data, or use the CPs of other apps. Intents –Powerful message passing framework. Broadcast Receivers – To listen for intents that match to your criteria you specify. Much used for event-driven applications. Widgets – Visual app components added to home screen. Notifications – Alert the users to app events without disturbing current activity. It is typically used to get User Attention from within Service or Broadcast Receiver.
No comments:
Post a Comment