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">
<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>
<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;
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;
}
}
@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
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”/>
<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).
{
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);
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();
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.
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();
}
{
Toast.makeText(this, "No data is found", Toast.LENGTH_LONG).show();
}
else
{
Txtusername.setText(Uname);
Txtpassword.setText(UPass) ;
}
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
- 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
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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. .
- 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
- 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.
- 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.
- 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
-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.
- 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.
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.
- 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.
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.