Monday, 1 December 2014

Basic Electronics

The MOSFET as a Switch

Title:The MOSFET as a Switch

We saw previously, that the N-channel, Enhancement-mode MOSFET operates using a positive input voltage and has an extremely high input resistance (almost infinite) making it possible to interface with nearly any logic gate or driver capable of producing a positive output. Also, due to this very high input (Gate) resistance we can parallel together many different MOSFETs until we achieve the current handling limit required.
While connecting together various MOSFETs in parallel may enable us to switch high currents or high voltage loads, doing so becomes expensive and impractical in both components and circuit board space. To overcome this problem Power Field Effect Transistors or Power FET’s were developed.
We now know that there are two main differences between field effect transistors, depletion-mode only for JFET’s and both enhancement-mode and depletion-mode for MOSFETs. In this tutorial we will look at using the Enhancement-mode MOSFET as a Switch as these transistors require a positive gate voltage to turn “ON” and a zero voltage to turn “OFF” making them easily understood as switches and also easy to interface with logic gates.
The operation of the Enhancement-mode MOSFET can best be described using its I-V characteristics curves shown below. When the input voltage, ( VIN ) to the gate of the transistor is zero, the MOSFET conducts virtually no current and the output voltage ( VOUT ) is equal to the supply voltage VDD. So the MOSFET is “fully-OFF” and in its “cut-off” region.

MOSFET Characteristics Curves



The minimum ON-state gate voltage required to ensure that the MOSFET remains fully-ON when carrying the selected drain current can be determined from the V-I transfer curves above. When VIN is HIGH or equal to VDD, the MOSFET Q-point moves to point A along the load line. The drain current IDincreases to its maximum value due to a reduction in the channel resistance. ID becomes a constant value independent of VDD, and is dependent only on VGS. Therefore, the transistor behaves like a closed switch but the channel ON-resistance does not reduce fully to zero due to its RDS(on) value, but gets very small.
Likewise, when VIN is LOW or reduced to zero, the MOSFET Q-point moves from point A to point B along the load line. The channel resistance is very high so the transistor acts like an open circuit and no current flows through the channel. So if the gate voltage of the MOSFET toggles between two values, HIGH and LOW the MOSFET will behave as a “single-pole single-throw” (SPST) solid state switch and this action is defined as:

1. Cut-off Region

Here the operating conditions of the transistor are zero input gate voltage ( VIN ), zero drain currentID and output voltage VDS = VDD. Therefore the MOSFET is switched “Fully-OFF”.

Cut-off Characteristics


·         • The input and Gate are grounded ( 0v )
·         • Gate-source voltage less than threshold voltageVGS < VTH
·         • MOSFET is “fully-OFF” ( Cut-off region )
·         • No Drain current flows ( ID = 0 )
·         • VOUT = VDS = VDD = ”1″
·         • MOSFET operates as an “open switch”

Then we can define the “cut-off region” or “OFF mode” when using a MOSFET as a switch as being, gate voltage, VGS < VTH and ID = 0. For a P-channel Enhancement MOSFET, the Gate potential must be more positive with respect to the Source.

2. Saturation Region

In the saturation or linear region, the transistor will be biased so that the maximum amount of gate voltage is applied to the device which results in the channel resistance RDS(on being as small as possible with maximum drain current flowing through the MOSFET switch. Therefore the MOSFET is switched “Fully-ON”.

Saturation Characteristics


·         • The input and Gate are connected to VDD
·         • Gate-source voltage is much greater than threshold voltage VGS > VTH
·         • MOSFET is “fully-ON” ( saturation region )
·         • Max Drain current flows ( ID = VDD / RL )
·         • VDS = 0V (ideal saturation)
·         • Min channel resistance RDS(on) < 0.1Ω
·         • VOUT = VDS = 0.2V ( RDS.ID )
·         • MOSFET operates as a “closed switch”

Then we can define the “saturation region” or “ON mode” when using a MOSFET as a switch as gate-source voltage, VGS > VTH and ID = Maximum. For a P-channel Enhancement MOSFET, the Gate potential must be more negative with respect to the Source.
By applying a suitable drive voltage to the gate of an FET, the resistance of the drain-source channel,RDS(on) can be varied from an “OFF-resistance” of many hundreds of kΩ’s, effectively an open circuit, to an “ON-resistance” of less than 1Ω, effectively a short circuit.
When using the MOSFET as a switch we can drive the MOSFET to turn “ON” faster or slower, or pass high or low currents. This ability to turn the power MOSFET “ON” and “OFF” allows the device to be used as a very efficient switch with switching speeds much faster than standard bipolar junction transistors.

An example of using the MOSFET as a switch


In this circuit arrangement an Enhancement-mode N-channel MOSFET is being used to switch a simple lamp “ON” and “OFF” (could also be an LED). The gate input voltage VGS is taken to an appropriate positive voltage level to turn the device and therefore the lamp either fully “ON”, (VGS = +ve ) or at a zero voltage level that turns the device fully “OFF”, ( VGS = 0 ).
If the resistive load of the lamp was to be replaced by an inductive load such as a coil, solenoid or relay a “flywheel diode” would be required in parallel with the load to protect the MOSFET from any self generated back-emf.

Above shows a very simple circuit for switching a resistive load such as a lamp or LED. But when using power MOSFETs to switch either inductive or capacitive loads some form of protection is required to prevent the MOSFET device from becoming damaged. Driving an inductive load has the opposite effect from driving a capacitive load.
For example, a capacitor without an electrical charge is a short circuit, resulting in a high “inrush” of current and when we remove the voltage from an inductive load we have a large reverse voltage build up as the magnetic field collapses, resulting in an induced back-emf in the windings of the inductor.
For the power MOSFET to operate as an analogue switching device, it needs to be switched between its “Cut-off Region” where VGS = 0 and its “Saturation Region” were VGS(on) = +ve. The power dissipated in the MOSFET ( PD ) depends upon the current flowing through the channel ID at saturation and also the “ON-resistance” of the channel given as RDS(on). For example.

MOSFET As A Switch Example No1

Lets assume that the lamp is rated at 6v, 24W and is fully “ON”, the standard MOSFET has a channel “ON-resistance” ( RDS(on) ) value of 0.1ohms. Calculate the power dissipated in the MOSFET switching device.
The current flowing through the lamp is calculated as:

Then the power dissipated in the MOSFET will be given as:


You may be sat there thinking, well so what!, but when using the MOSFET as a switch to control DC motors or electrical loads with high inrush currents the “ON” Channel resistance ( RDS(on) ) is very, very important. For example, MOSFETs that control DC motors, are subjected to a high in-rush current when the motor first begins to rotate, because the motors starting current is only limited by the very low resistance value of the motors windings.
Then a high RDS(on) channel resistance value would simply result in large amounts of power being dissipated and wasted within the MOSFET itself resulting in an excessive temperature rise, which if not controlled could result in the MOSFET becoming very hot and damaged due to a thermal overload.
A lower value RDS(on) on the other hand, is also a desirable parameter as it helps to reduce the channels effective saturation voltage ( VDS(sat) = ID x RDS(on) ) across the MOSFET. Power MOSFETs generally have a RDS(on) value of less than 0.01Ω.
One of the main limitation of a MOSFET is the maximum current it can handle. So the RDS(on)parameter is an important guide to the switching efficiency of the MOSFET and is simply the ratio ofVDS / ID when the transistor is turned “ON”.
When using a MOSFET or any type of field effect transistor for that matter as a solid-state switching device it is always advisable to select ones that have a very low RDS(on) value or at least mount them onto a suitable heatsink to help reduce any thermal runaway and damage. Power MOSFETs used as a switch generally have surge-current protection built into their design, but for high-current applications the bipolar junction transistor is a better choice.

Power MOSFET Motor Control

Because of the extremely high input or gate resistance that the MOSFET has, its very fast switching speeds and the ease at which they can be driven makes them ideal to interface with op-amps or standard logic gates. However, care must be taken to ensure that the gate-source input voltage is correctly chosen because when using the MOSFET as a switch the device must obtain a low RDS(on)channel resistance in proportion to this input gate voltage.
Low threshold type power MOSFETs may not switch “ON” until a least 3V or 4V has been applied to its gate and if the output from the logic gate is only +5V logic it may be insufficient to fully drive the MOSFET into saturation. Using lower threshold MOSFETs designed for interfacing with TTL and CMOS logic gates that have thresholds as low as 1.5V to 2.0V are available.
Power MOSFETs can be used to control the movement of DC motors or brushless stepper motors directly from computer logic or by using pulse-width modulation (PWM) type controllers. As a DC motor offers high starting torque and which is also proportional to the armature current, MOSFET switches along with a PWM can be used as a very good speed controller that would provide smooth and quiet motor operation.

Simple Power MOSFET Motor Controller



As the motor load is inductive, a simple flywheel diode is connected across the inductive load to dissipate any back emf generated by the motor when the MOSFET turns it “OFF”. A clamping network formed by a zener diode in series with the diode can also be used to allow for faster switching and better control of the peak reverse voltage and drop-out time.
For added security an additional silicon or zener diode D1 can also be placed across the channel of a MOSFET switch when using inductive loads, such as motors, relays, solenoids, etc, for suppressing over voltage switching transients and noise giving extra protection to the MOSFET switch if required. Resistor R2 is used as a pull-down resistor to help pull the TTL output voltage down to 0V when the MOSFET is switched “OFF”.

 

P-channel MOSFET Switch

Thus far we have looked at the N-channel MOSFET as a switch were the MOSFET is placed between the load and the ground. This also allows for the MOSFET’s gate drive or switching signal to be referenced to ground (low-side switching).

P-channel MOSFET Switch
But in some applications we require the use of P-channel enhancement-mode MOSFET were the load is connected directly to ground. In this instance the MOSFET switch is connected between the load and the positive supply rail (high-side switching) as we do with PNP transistors.
In a P-channel device the conventional flow of drain current is in the negative direction so a negative gate-source voltage is applied to switch the transistor “ON”.
This is achieved because the P-channel MOSFET is “upside down” with its source terminal tied to the positive supply +VDD. Then when the switch goes LOW, the MOSFET turns “ON” and when the switch goes HIGH the MOSFET turns “OFF”.
This upside down connection of a P-channel enhancement mode MOSFET switch allows us to connect it in series with a N-channel enhancement mode MOSFET to produce a complementary or CMOS switching device as shown across a dual supply.

Complementary MOSFET Motor Controller



The two MOSFETs are configured to produce a bi-directional switch from a dual supply with the motor connected between the common drain connection and ground reference. When the input is LOW the P-channel MOSFET is switched-ON as its gate-source junction is negatively biased so the motor rotates in one direction. Only the positive +VDD supply rail is used to drive the motor.
When the input is HIGH, the P-channel device switches-OFF and the N-channel device switches-ON as its gate-source junction is positively biased. The motor now rotates in the opposite direction because the motors terminal voltage has been reversed as it is now supplied by the negative -VDD supply rail.
Then the P-channel MOSFET is used to switch the positive supply to the motor for forward direction (high-side switching) while the N-channel MOSFET is used to switch the negative supply to the motor for reverse direction (low-side switching).
There are a variety of configurations for driving the two MOSFETs with many different applications. Both the P-channel and the N-channel devices can be driven by a single gate drive IC as shown.
However, to avoid cross conduction with both MOSFETs conducting at the same time across the two polarities of the dual supply, fast switching devices are required to provide some time difference between them turning “OFF” and the other turning “ON”. One way to overcome this problem is to drive both MOSFETs gates separately. This then produces a third option of “STOP” to the motor when both MOSFETs are “OFF”.

Complementary MOSFET Motor Control Table

MOSFET 1
MOSFET 2
Motor Function
OFF
OFF
Motor Stopped (OFF)
ON
OFF
Motor Rotates Forward
OFF
ON
Motor Rotates Reverse
ON
ON
NOT ALLOWED

Please note that it is important that no other combination of inputs are allowed at the same time as this may cause the power supply to be shorted out, as both MOSFETs, FET1 and FET2 could be switched “ON” together resulting in: ( fuse = bang! ), be warned.

REFERENCE:

If you want more detail for any hardware related things like microcontroller(PIC),ADC etc.,You can visit bellow link.It is very nice blog for hardware lover.So,please visit this blog One's

Click On Below Link.

http://pic18f4520palakpatel.blogspot.in/2014/08/lcd-4bit-interface-with-pic18f4520.html

Tuesday, 18 November 2014

Android Questions With Answer

Q.1 Explain in brief about the important file and folder when you create new android application.
When you create android application the following folders are created in the package explorer in eclipse which are as follows:
src: Contains the .java source files for your project. You write the code for your application in this file. This file is available under the package name for your project.
gen —This folder contains the R.java file. It is compiler-generated file that references all the resources found in your project. You should not modify this file.
Android 4.0 library: This folder contains android.jar file, which contains all the class libraries needed for an Android application.
assets: This folder contains all the information about HTML file, text files, databases, etc.
bin: It contains the .apk file (Android Package) that is generated by the ADT during the build process. An .apk file is the application binary file. It contains everything needed to run an Android application.
res: This folder contains all the resource file that is used byandroid application. It contains subfolders as: drawable, menu, layout, and values etc.
Explain AndroidManifest.xmlfile in detail.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.careerride" android:versionCode="1" android:versionName="1.0">
<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="18" />
<application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme">
<activity android:name="com.example.careerride.MainActivity" 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>

</manifest>
The AndroidManifest.xml file contains the following information about the application:
  • It contains the package name of the application.
  • The version code of the application is 1.This value is used to identify the version number of your application.
  • The version name of the application is 1.0
  • The android:minSdkVersion attribute of the element defines the minimum version of the OS on which the application will run.
  • ic_launcher.png is the default image that located in the drawable folders.
  • app_name defines the name of applicationand available in the strings.xml file.
  • It also contains the information about the activity. Its name is same as the application name.
Describe android Activities in brief.
Activity provides the user interface. When you create an android application in eclipse through the wizard it asks you the name of the activity. Default name is MainActivity. You can provide any name according to the need. Basically it is a class (MainActivity) that is inherited automatically from Activity class. Mostly, applications have oneor more activities; and the main purpose of an activity is to interact with the user. Activity goes through a numberof stages, known as an activity’s life cycle.
Example:
packagecom.example.careerride; //Application name careerride

importandroid.os.Bundle; // Default packages
importandroid.app.Activity; // Default packages
importandroid.view.Menu;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
publicbooleanonCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
When you run the application onCreate method is called automatically.
Describe Intents in detail.
An Android application can contain zero or more activities. If you want to navigate fromone activity to another then android provides you Intent class. This class is available inandroid.content.Intent package.One of the most common uses for Intents is to start new activities.
There are two types of Intents.
Explicit Intents
Implicit Intents
Intents works in pairs: actionand data. The action defines what you want to do, such as editing an item, viewingthe content of an item etc. The dataspecifies what is affected,such as a person in the Contacts database. The data is specified as anUri object.
Explicitly starting an Activity
Intent intent = newIntent (this, SecondActivity.class);
startActivity(intent);
Here SecondActivity is the name of the target activity that you want to start.
Implicitly starting an Activity
If you want to view a web page with the specified URL then you can use this procedure.
Intent i = newIntent(android.content.Intent.ACTION_VIEW,Uri.parse(“http://www.amazon.com”));
startActivity(i);
if you want to dial a telephone number then you can use this method by passing the telephone number in the data portion
Intent i = newIntent (android.content.Intent.ACTION_DIAL,Uri.parse(“tel:+9923.....”));
startActivity(i);
In the above method the user must press the dial button to dial the number. If you want to directly call the number without user intervention, change the action as follows:
Intent i = newIntent (android.content.Intent.ACTION_CALL,Uri.parse(“tel:+9923.....”));
startActivity(i);
If you want to dial tel no or use internet then write these line in AndroidManifest.xml
<uses-permissionandroid:name=”android.permission.CALL_PHONE”/>
<uses-permissionandroid:name=”android.permission.INTERNET”/>
How to send SMS in android? Explain with example.
SMS messaging is one of the basic and important applications on a mobile phone. Now days every mobile phone has SMS messaging capabilities, and nearly all users of any age know how to send and receive suchmessages. Mobile phones come with a built-in SMS application that enables you to send and receiveSMS messages. If you want to send the SMS programmatically then follow the following steps.
Sending SMS Messages Programmatically
Take a button on activity_main.xml file as follows.
<Button android:id="@+id/btnSendSMS" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:onClick=”sendmySMS” android:text="sendSMS" />
According to above code when user clicks the button sendmySMS method will be called. sendmySMS is user defined method.
In the AndroidManifest.xml file, add the following statements
<uses-permissionandroid:name=”android.permission.SEND_SMS”/>
Now we write the final step. Write the given below method in MainActivity,java file
publicvoidsendmySMS(View v)
{
SmsManagersms = SmsManager.getDefault();
sms.sendTextMessage("5556", null, "Hello from careerRide", null, null);
}
In this example I have used two emulator. On the first Android emulator (5554), click the Send SMSbutton to send an SMS message to the second emulator(5556).
Describe the SmsManager class in android.
SmsManager class is responsible for sending SMS from one emulator to another or device.
You cannot directly instantiate this class; instead, you call the getDefault() static method to obtain an SmsManager object. You then send the SMS message using the sendTextMessage() method:
SmsManagersms = SmsManager.getDefault();
sms.sendTextMessage("5556", null, "Hello from careerRide", null, null);
sendTextMessage() method takes five argument.
  • destinationAddress — Phone number of the recipient.
  • scAddress — Service center address; you can use null also.
  • text — Content of the SMS message that you want to send.
  • sentIntent — Pending intent to invoke when the message is sent.
  • deliveryIntent — Pending intent to invoke when the message has been delivered.
How you can use built-in Messaging within your application?
You can use an Intent object to activate the built-in Messaging service. You have to pass MIME type “vnd.android-dir/mms-sms”, in setType method of Intent as shown in the following given below code.
Intent intent = new Intent (android.content.Intent.ACTION_VIEW);
intent.putExtra("address", "5556; 5558;");// Send the message to multiple recipient.
itent.putExtra("sms_body", "Hello my friends!");
intent.setType("vnd.android-dir/mms-sms");
startActivity(intent);
What are different data storage options are available in Android?
Different data storage options are available in Android are:
  • SharedPreferences
  • SQlite
  • ContentProvider
  • File Storage
  • Cloud Storage
Describe SharedPreference storage option with example.
SharedPreference is the simplest mechanism to store the data in android. You do not worry about creating the file or using files API.It stores the data in XML files. SharedPreference stores the data in key value pair.The SharedPreferences class allows you to save and retrieve key-value pairs of primitive data types. You can use SharedPreferences to save any primitive data: boolean, floats, int, longs, and strings.The data is stored in XML file in the directory data/data//shared-prefs folder.
Application of SharedPreference
  • Storing the information about number of visitors (counter).
  • Storing the date and time (when your Application is updated).
  • Storing the username and password.
  • Storing the user settings.
Example:
For storing the data we will write the following code in main activity on save button:
SharedPreferences sf=getSharedPreferences("MyData", MODE_PRIVATE);
SharedPreferences.Editored= sf.edit();
ed.putString("name", txtusername.getText().toString());
ed.putString("pass", txtpassword.getText().toString());
ed.commit();
In this example I have taken two activities. The first is MainActivity and the second one is SecondActivity.When user click on save button the user name and password that you have entered in textboxes, will be stored in MyData.xml file.
Here MyData is the name of XML file .It will be created automatically for you.

MODE_PRIVATE means this file is used by your application only.
txtusernameand txtpassword are two EditText control in MainActivity.
For retrieving the data we will write the following code in SecondActiviy when user click on Load button:
Public static final String DEFAULT=”N? A”;
DEFAULT is a String type user defined global variable.If the data is not saved in XML file and user click on load button then your application will not give the error. It will show message “No Data is found”. Here name and pass are same variable that I have used in MainActivity.
SharedPreferences sf=getSharedPreferences("MyData", Context.MODE_PRIVATE);
String Uname=sf.getString("name", DEFAULT);
String UPass=sf.getString("pass", DEFAULT);
if(name.equals(DEFAULT)||Pass.equals(DEFAULT))
{
Toast.makeText(this, "No data is found", Toast.LENGTH_LONG).show();
}
else
{
Txtusername.setText(Uname);
Txtpassword.setText(UPass) ;
}


1. What are the key components of Android Architecture?
Android Architecture consists of 4 key components:
- Linux Kernel
- Libraries
- Android Framework
- Android Applications
2. What are the advantages of having an emulator within the Android environment?
- The emulator allows the developers to work around an interface which acts as if it were an actual mobile device.
- They can write, test and debug the code.
- They are safe for testing the code in early design phase
3. Tell us something about activityCreator?
- An activityCreator is the initial step for creation of a new Android project.
- It consists of a shell script that is used to create new file system structure required for writing codes in Android IDE.
4. What do you know about Intents?
- Notification messages to the user from an Android enabled device can be displayed using Intents. The users can respond to intents.
- There are two types of Intents - Explicit Intent, Implicit Intent.
5. What is an Explicit Intent?
- Explicit intent specifies the particular activity that should respond to the intent.
- They are used for application internal messages.
6. What is an Implicit Intent?
- In case of Implicit Intent, an intent is just declared.
- It is for the platform to find an activity that can respond to it.
- Since the target component is not declared, it is used for activating components of other applications.
7. What do intent filters do?
- There can be more than one intents, depending on the services and activities that are going to use them.
- Each component needs to tell which intents they want to respond to.
- Intent filters filter out the intents that these components are willing to respond to.
8. Where are lay out details placed? Why?
- Layout details are placed in XML files
- XML-based layouts provide a consistent and standard means of setting GUI definition format.
9. What do containers hold?
- Containers hold objects and widgets in a specified arrangement.
- They can also hold labels, fields, buttons, or child containers. .
10. What is Orientation?
- Orientation decides if the LinearLayout should be presented in row wise or column wise fashion.
- The values are set using setOrientation()
- The values can be HORIZONTAL or VERTICAL
11. What is it important to set permissions in app development?
- Certain restrictions to protect data and code can be set using permissions.
- In absence of these permissions, codes could get compromised causing defects in functionality.
12. What is AIDL?
- AIDL is the abbreviation for Android Interface Definition Language.
- It handles the interface requirements between a client and a service to communicate at the same level through interprocess communication.
- The process involves breaking down objects into primitives that are Android understandable.
13. What data types are supported by AIDL?
AIDL supports following data types:
-string
-List
-Map
-charSequence
and
-all native Java data types like int,long, char and Boolean
14. Tell us something about nine-patch image.
- The Nine-patch in the image name refers to the way the image can be resized: 4 corners that are unscaled, 4 edges that are scaled in 1 axis, and the middle one that can be scaled into both axes.
- A Nine-patch image allows resizing that can be used as background or other image size requirements for the target device.
15. Which dialog boxes are supported by android?
Android supports 4 dialog boxes:

a.) AlertDialog: Alert dialog box supports 0 to 3 buttons and a list of selectable elements which includes check boxes and radio buttons.

b.) ProgressDialog: This dialog box is an extension of AlertDialog and supports adding buttons. It displays a progress wheel or bar.

c.) DatePickerDialog: The user can select the date using this dialog box.

d.) TimePickerDialog: The user can select the time using this dialog box.
16. What is Dalvik Virtual Machine?
- It is Android's virtual machine.
- It is an interpreter-only virtual machine which executes files in Dalvik Executable (.dex) format. This format is optimized for efficient storage and memory-mappable execution.

What is android?

Android is a stack of software for mobile devices which has Operating System, middleware and some key applications. The application executes within its own process and its own instance of Dalvik Virtual Machine. Many Virtual Machines run efficiently by a DVM device. DVM executes Java language’s byte code which later transforms into .dex format files.

What are the features of Android?

  • Components can be reused and replaced by the application framework.
  • Optimized DVM for mobile devices
  • SQLite enables to store the data in a structured manner.
  • Supports GSM telephone and Bluetooth, WiFi, 3G and EDGE technologies
  • The development is a combination of a device emulator, debugging tools, memory profiling and plug-in for Eclipse IDE.
Android is useful because:
  • It is simple and powerful SDK
  • Licensing, Distribution or Development fee is not required
  • Easy to Import third party Java library
  • Supporting platforms are – Linux, Mac Os, Windows
Android Application Architecture has the following components:
  • Services – like Network Operation
  • Intent - To perform inter-communication between activities or services
  • Resource Externalization - such as strings and graphics
  • Notification signaling users - light, sound, icon, notification, dialog etc.
  • Content Providers - They share data between applications
Imagine a situation that you are in a country where no one understands the language you speak and you can not read or write. However, you have mobile phone with you.
With a mobile phone with android, the Google translator translates the data of one language into another language by using XMPP to transmit data. You can type the message in English and select the language which is understood by the citizens of the country in order to reach the message to the citizens.



The following are the advantages of Android:
  • The customer will be benefited from wide range of mobile applications to choose, since the monopoly of wireless carriers like AT&T and Orange will be broken by Google Android.
  • Features like weather details, live RSS feeds, opening screen, icon on the opening screen can be customized
  • Innovative products like the location-aware services, location of a nearby convenience store etc., are some of the additive facilities in Android.
Specify android id, layout height and width as depicted in the following example.
<ListView android:id="@+id/ListView01" android:layout_height="wrap_content" android:layout_width="fill_parent"></ListView>
Multiple choice list can be viewed by making the CheckBox android:id value be “@android:id /text1". That is the ID used by Android for the CheckedTextView in simple_list_item_multiple_choice.
Android supports 4 dialog boxes:
AlertDialog : An alert dialog box supports 0 to 3 buttons and a list of selectable elements, including check boxes and radio buttons. Among the other dialog boxes, the most suggested dialog box is the alert dialog box.
ProgressDialog: This dialog box displays a progress wheel or a progress bar. It is an extension of AlertDialog and supports adding buttons.
DatePickerDialog: This dialog box is used for selecting a date by the user.
TimePickerDialog: This dialog box is used for selecting time by the user.
The following are the exceptions that are supported by Android
  • InflateException : When an error conditions are occurred, this exception is thrown
  • Surface.OutOfResourceException: When a surface is not created or resized, this exception is thrown
  • SurfaceHolder.BadSurfaceTypeException: This exception is thrown from the lockCanvas() method, when invoked on a Surface whose is SURFACE_TYPE_PUSH_BUFFERS
  • WindowManager.BadTokenException: This exception is thrown at the time of trying to add view an invalid WindowManager.LayoutParamstoken.
TTL is a value in data packet of Internet Protocol. It communicates to the network router whether or not the packet should be in the network for too long or discarded. Usually, data packets might not be transmitted to their intended destination within a stipulated period of time. The TTL value is set by a system default value which is an 8-bit binary digit field in the header of the packet. The purpose of TTL is, it would specify certain time limit in seconds, for transmitting the packet header. When the time is exhausted, the packet would be discarded. Each router receives the subtracts count, when the packet is discarded, and when it becomes zero, the router detects the discarded packets and sends a message, Internet Control Message Protocol message back to the originating host. 
In a domain, one or more computer can be a server to manage the network. On the other hand in a workgroup all computers are peers having no control on each other. In a domain, user doesn’t need an account to logon on a specific computer if an account is available on the domain. In a work group user needs to have an account for every computer. 
In a domain, Computers can be on different local networks. In a work group all computers needs to be a part of the same local network. 
IP datagram can be used to describe a portion of IP data. Each IP datagram has set of fields arranged in an order. The order is specific which helps to decode and read the stream easily. IP datagram has fields like Version, header length, Type of service, Total length, checksum, flag, protocol, Time to live, Identification, source and destination ip address, padding, options and payload.
MTU:- Maximum Transmission Unit is the size of the largest packet that a communication protocol can pass. The size can be fixed by some standard or decided at the time of connection
Fragmentation is a process of breaking the IP packets into smaller pieces. Fragmentation is needed when the datagram is larger than the MTU. Each fragment becomes a datagram in itself and transmitted independently from source. When received by destination they are reassembled.