MAD Lab Manual
MAD Lab Manual
No: 01 Develop an application that uses GUI components, Font and Colors
Date:
Aim:
To develop a Simple Android Application that uses GUI components, Font and Colors.
Procedure:
Creating a New project:
Open Android Studio and then click on File -> New -> New project.
1
Designing layout for the Android Application:
Then delete the code which is there and type the code as given below.
3
Code for MainActivity.java:
package com.example.exno1;
import android.graphics.Color;
//import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity
{
int ch=1; float font=30;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final TextView t= (TextView) findViewById(R.id.textView);
Button b1= (Button) findViewById(R.id.button1);
b1.setOnClickListener(new View.OnClickListener()
{
@Override public void onClick(View v)
{
t.setTextSize(font);
font = font + 5;
if (font == 50)
font = 30;
}
});
Button b2= (Button) findViewById(R.id.button2);
b2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
switch (ch) {
case 1:
t.setTextColor(Color.RED); break;
4
case 2:
t.setTextColor(Color.GREEN); break;
case 3:
t.setTextColor(Color.BLUE); break;
case 4:
t.setTextColor(Color.CYAN); break;
case 5:
t.setTextColor(Color.YELLOW); break;
case 6:
t.setTextColor(Color.MAGENTA); break;
}
ch++;
if (ch == 7)
ch = 1;
}
});
}
}
So now the Coding part is also completed.
Now run the application to see the output.
Output:
Result:
Thus a Simple Android Application that uses GUI components, Font and Colors is
developed and executed successfully.
5
Ex. No: 02 Develop an application that uses Layout Managers and Event Listeners
Date:
Aim:
To develop a Simple Android Application that uses Layout Managers and Event Listeners.
Procedure:
Creating a New project:
Open Android Studio and then click on File -> New -> New project.
6
Type the Activity Name as SecondActivity and click Finish button.
Thus Second Activity For the application is created.
Designing Layout for Main Activity:
Click on app -> res -> layout -> activity_main.xml.
Now click on Text as shown below.
Then delete the code which is there and type the code as given below.
7
android:text="Details Form"
android:textSize="25sp"
android:gravity="center"/>
</LinearLayout>
<GridLayout
android:id="@+id/gridLayout" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_marginTop="100dp"
android:layout_marginBottom="200dp" android:columnCount="2" android:rowCount="3">
<TextView
android:id="@+id/textView1" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_margin="10dp" android:layout_row="0"
android:layout_column="0" android:text="Name" android:textSize="20sp"
android:gravity="center"/>
<EditText
android:id="@+id/editText" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_margin="10dp" android:layout_row="0"
android:layout_column="1" android:ems="10"/>
<TextView
android:id="@+id/textView2" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_margin="10dp" android:layout_row="1"
android:layout_column="0" android:text="Reg.No" android:textSize="20sp"
android:gravity="center"/>
<EditText
android:id="@+id/editText2" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_margin="10dp" android:layout_row="1"
android:layout_column="1" android:inputType="number" android:ems="10"/>
<TextView
android:id="@+id/textView3" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_margin="10dp" android:layout_row="2"
android:layout_column="0" android:text="Dept" android:textSize="20sp" android:gravity="center"/>
<Spinner
android:id="@+id/spinner" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_margin="10dp" android:layout_row="2"
android:layout_column="1" android:spinnerMode="dropdown"/>
</GridLayout>
<Button
8
android:id="@+id/button" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_alignParentBottom="true"
android:layout_centerInParent="true" android:layout_marginBottom="150dp"
android:text="Submit"/>
</RelativeLayout>
Designing Layout for Second Activity:
Click on app -> res -> layout -> activity_second.xml.
Now click on Text as shown below.
Then delete the code which is there and type the code as given below.
Code for Activity_second.xml:
<?xmlversion="1.0"encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" tools:context="com.example.devang.exno2.SecondActivity"
android:orientation="vertical"
android:gravity="center">
<TextView
android:id="@+id/textView1" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_margin="20dp" android:text="New Text"
android:textSize="30sp"/>
<TextView
android:id="@+id/textView2" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_margin="20dp" android:text="New Text"
android:textSize="30sp"/>
<TextView
android:id="@+id/textView3" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_margin="20dp" android:text="New Text"
android:textSize="30sp"/>
</LinearLayout>
Now click on Design and your activity will look as given below.
So now the designing part of Second Activity is also completed.
Java Coding for the Android Application:
Java Coidng for Main Activity:
Click on app -> java -> com.example.exno2 -> MainActivity.
Then delete the code which is there and type the code as given below.
9
Code for MainActivity.java:
package com.example.exno2;
import android.content.Intent;
//import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
//Defining the Views EditText e1,e2; Button bt;
Spinner s;
//Data for populating in Spinner
String [] dept_array={"CSE","ECE","IT","Mech","Civil"};
String name,reg,dept;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Referring the Views
e1= (EditText) findViewById(R.id.editText);
e2= (EditText) findViewById(R.id.editText2); bt= (Button) findViewById(R.id.button);
s= (Spinner) findViewById(R.id.spinner);
//Creating Adapter for Spinner for adapting the data from array to Spinner
ArrayAdapter adapter=new
ArrayAdapter(MainActivity.this,android.R.layout.simple_spinner_item,dept_array);
s.setAdapter(adapter);
//Creating Listener for Button bt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//Getting the Values from Views(Edittext & Spinner) name=e1.getText().toString();
reg=e2.getText().toString(); dept=s.getSelectedItem().toString();
//Intent For Navigating to Second Activity
10
Intent i = new Intent(MainActivity.this,SecondActivity.class);
//For Passing the Values to Second Activity i.putExtra("name_key", name);
i.putExtra("reg_key",reg);
i.putExtra("dept_key", dept);
startActivity(i);
}
});
}
}
Java Coding for Second Activity:
Click on app -> java -> com.example.exno2 -> SecondActivity.
Then delete the code which is there and type the code as given below.
Code for SecondActivity.java:
package com.example.exno2;
import android.content.Intent;
//import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
public class SecondActivity extends AppCompatActivity {
TextView t1,t2,t3;
String name,reg,dept; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
t1= (TextView) findViewById(R.id.textView1);
t2= (TextView) findViewById(R.id.textView2);
t3= (TextView) findViewById(R.id.textView3);
//Getting the Intent Intent i = getIntent();
//Getting the Values from First Activity using the Intent received
name=i.getStringExtra("name_key"); reg=i.getStringExtra("reg_key");
dept=i.getStringExtra("dept_key");
//Setting the Values to Intent
t1.setText(name);
t2.setText(reg);
t3.setText(dept);
11
}
}
So now the Coding part of Second Activity is also completed.
Now run the application to see the output.
Output:
Result:
Thus a Simple Android Application that uses Layout Managers and Event Listeners is
developed and executed successfully.
12
Ex. No: 03 Write an application that draws Basic Graphical Primitives on the screen
Date:
Aim:
To develop a Simple Android Application that draws basic Graphical Primitives on the
screen.
Procedure:
Creating a New project:
Open Android Studio and then click on File -> New -> New project.
Then type the Application name as “exno3″ and click Next.
Then select the Minimum SDK as shown below and click Next.
Then select the Empty Activity and click Next.
Finally click Finish.
It will take some time to build and load the project.
After completion it will look as given below.
Designing layout for the Android Application:
Click on app -> res -> layout -> activity_main.xml.
Now click on Text as shown below.
Then delete the code which is there and type the code as given below.
Code for Activity_main.xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent">
<ImageView
android:layout_width="match_parent" android:layout_height="match_parent"
android:id="@+id/imageView" />
</RelativeLayout>
• Now click on Design and your application will look as given below.
• So now the designing part is completed.
Java Coding for the Android Application:
• Click on app -> java -> com.example.exno3 -> MainActivity.
• Then delete the code which is there and type the code as given below.
13
Code for MainActivity.java:
package com.example.exno3;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.drawable.BitmapDrawable;
import android.os.Bundle;
import android.widget.ImageView;
public class MainActivity extends Activity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);
//Creating a Bitmap
Bitmap bg = Bitmap.createBitmap(720, 1280, Bitmap.Config.ARGB_8888);
//Setting the Bitmap as background for the ImageView
ImageView i = (ImageView) findViewById(R.id.imageView);
i.setBackgroundDrawable(new BitmapDrawable(bg));
//Creating the Canvas Object
Canvas canvas = new Canvas(bg);
//Creating the Paint Object and set its color & TextSize
Paint paint = new Paint();
paint.setColor(Color.BLUE);
paint.setTextSize(50);
//To draw a Rectangle
canvas.drawText("Rectangle", 420, 150, paint);
canvas.drawRect(400, 200, 650, 700, paint);
//To draw a Circle
canvas.drawText("Circle", 120, 150, paint);
canvas.drawCircle(200, 350, 150, paint);
//To draw a Square
canvas.drawText("Square", 120, 800, paint);
14
canvas.drawRect(50, 850, 350, 1150, paint);
//To draw a Line
canvas.drawText("Line", 480, 800, paint);
canvas.drawLine(520, 850, 520, 1150, paint);
}
}
• So now the Coding part is also completed.
• Now run the application to see the output.
Output:
Result:
Thus a Simple Android Application that draws basic Graphical Primitives on the screen is
developed and executed successfully.
15
Ex. No: 04 Develop an application that makes use of database
Date:
Aim:
To develop a Simple Android Application that makes use of Database.
Procedure:
Creating a New project:
Open Android Studio and then click on File -> New -> New project.
Then type the Application name as “exno4″ and click Next.
Then select the Minimum SDK as shown below and click Next.
Then select the Empty Activity and click Next.
Finally click Finish.
It will take some time to build and load the project.
After completion it will look as given below.
Designing layout for the Android Application:
Click on app -> res -> layout -> activity_main.xml.
Now click on Text as shown below.
Then delete the code which is there and type the code as given below.
Code for Activity_main.xml:
<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="50dp"
android:layout_y="20dp"
android:text="Student Details"
android:textSize="30sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="20dp"
android:layout_y="110dp"
16
android:text="Enter Rollno:"
android:textSize="20sp" />
<EditText
android:id="@+id/Rollno"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:layout_x="175dp"
android:layout_y="100dp"
android:inputType="number"
android:textSize="20sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="20dp"
android:layout_y="160dp"
android:text="Enter Name:"
android:textSize="20sp" />
<EditText
android:id="@+id/Name"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:layout_x="175dp"
android:layout_y="150dp"
android:inputType="text"
android:textSize="20sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="20dp"
android:layout_y="210dp"
android:text="Enter Marks:"
android:textSize="20sp" />
<EditText
android:id="@+id/Marks"
android:layout_width="150dp"
android:layout_height="wrap_content"
17
android:layout_x="175dp"
android:layout_y="200dp"
android:inputType="number"
android:textSize="20sp" />
<Button
android:id="@+id/Insert"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:layout_x="25dp"
android:layout_y="300dp"
android:text="Insert"
android:textSize="30dp" />
<Button
android:id="@+id/Delete"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:layout_x="200dp"
android:layout_y="300dp"
android:text="Delete"
android:textSize="30dp" />
<Button
android:id="@+id/Update"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:layout_x="25dp"
android:layout_y="400dp"
android:text="Update"
android:textSize="30dp" />
<Button
android:id="@+id/View"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:layout_x="200dp"
android:layout_y="400dp"
android:text="View"
android:textSize="30dp" />
18
<Button
android:id="@+id/ViewAll"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_x="100dp"
android:layout_y="500dp"
android:text="View All"
android:textSize="30dp" />
</AbsoluteLayout>
Now click on Design and your application will look as given below.
So now the designing part is completed.
Java Coding for the Android Application:
Click on app -> java -> com.example.exno4 -> MainActivity.
Then delete the code which is there and type the code as given below.
Rollno=(EditText)findViewById(R.id.Rollno);
Name=(EditText)findViewById(R.id.Name);
Marks=(EditText)findViewById(R.id.Marks);
Insert=(Button)findViewById(R.id.Insert);
Delete=(Button)findViewById(R.id.Delete);
Update=(Button)findViewById(R.id.Update);
View=(Button)findViewById(R.id.View);
ViewAll=(Button)findViewById(R.id.ViewAll);
Insert.setOnClickListener(this);
Delete.setOnClickListener(this);
Update.setOnClickListener(this);
View.setOnClickListener(this);
ViewAll.setOnClickListener(this);
20
db.execSQL("INSERT INTO student VALUES('"+Rollno.getText()+"','"+Name.getText()+
"','"+Marks.getText()+"');");
showMessage("Success", "Record added"); clearText();
}
// Deleting a record from the Student table
if(view==Delete)
{
// Checking for empty roll number
if(Rollno.getText().toString().trim().length()==0)
{
showMessage("Error", "Please enter Rollno"); return;
}
Cursor c=db.rawQuery("SELECT * FROM student WHERE rollno='"+Rollno.getText()+"'", null);
if(c.moveToFirst())
{
db.execSQL("DELETE FROM student WHERE rollno='"+Rollno.getText()+"'");
showMessage("Success", "Record Deleted");
}
else
{
showMessage("Error", "Invalid Rollno");
}
clearText();
}
// Updating a record in the Student table
if(view==Update)
{
// Checking for empty roll number
if(Rollno.getText().toString().trim().length()==0)
{
showMessage("Error", "Please enter Rollno"); return;
}
Cursor c=db.rawQuery("SELECT * FROM student WHERE rollno='"+Rollno.getText()+"'", null);
if(c.moveToFirst()) {
db.execSQL("UPDATE student SET name='" + Name.getText() + "',marks='" + Marks.getText() + "'
WHERE rollno='"+Rollno.getText()+"'");
21
showMessage("Success", "Record Modified");
}
else {
showMessage("Error", "Invalid Rollno");
}
clearText();
}
// Display a record from the Student table
if(view==View)
{
// Checking for empty roll number
if(Rollno.getText().toString().trim().length()==0)
{
showMessage("Error", "Please enter Rollno"); return;
}
Cursor c=db.rawQuery("SELECT * FROM student WHERE rollno='"+Rollno.getText()+"'", null);
if(c.moveToFirst())
{
Name.setText(c.getString(1)); Marks.setText(c.getString(2));
}
else
{
showMessage("Error", "Invalid Rollno"); clearText();
}
}
// Displaying all the records
if(view==ViewAll)
{
Cursor c=db.rawQuery("SELECT * FROM student", null); if(c.getCount()==0)
{
showMessage("Error", "No records found"); return;
}
StringBuffer buffer=new StringBuffer(); while(c.moveToNext())
{
buffer.append("Rollno: "+c.getString(0)+"\n"); buffer.append("Name: "+c.getString(1)+"\n");
buffer.append("Marks: "+c.getString(2)+"\n\n");
22
}
showMessage("Student Details", buffer.toString());
}
}
public void showMessage(String title,String message)
{
Builder builder=new Builder(this);
builder.setCancelable(true);
builder.setTitle(title);
builder.setMessage(message); builder.show();
}
public void clearText()
{
Rollno.setText("");
Name.setText("");
Marks.setText("");
Rollno.requestFocus();
}
}
• So now the Coding part is also completed.
• Now run the application to see the output.
Output:
23
24
Result:
Thus a Simple Android Application that makes use of Database is developed and executed
successfully.
25
Ex. No: 05 Develop an application that makes use of Notification Manager
Date:
Aim:
To develop an Android Application that makes use of Notification Manager.
Procedure:
Creating a New project:
Open Android Studio and then click on File -> New -> New project.
Then type the Application name as “exno5″and click Next.
Then select the Minimum SDK as shown below and click Next.
Then select the Empty Activity and click Next.
Finally click Finish.
It will take some time to build and load the project.
After completion it will look as given below.
Designing layout for the Android Application:
Click on app -> res -> layout -> activity_main.xml.
Now click on Text as shown below.
Then delete the code which is there and type the code as given below.
26
<Button
android:id="@+id/btnNotificationWithGroupConvo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Notification With Group Conversation" />
<Button
android:id="@+id/btnNotificationSemantic"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Notification Semantic Action" />
</LinearLayout>
import android.app.NotificationChannel;
import android.app.NotificationManager; import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import androidx.core.app.NotificationCompat;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.Person;
import androidx.core.graphics.drawable.IconCompat;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import java.util.Date;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
NotificationManager notificationManager;
NotificationCompat.Builder builder;
NotificationChannel channel;
27
Button btnNotificationIcon = findViewById(R.id.btnNotificationIcon);
Button btnNotificationImage = findViewById(R.id.btnNotificationImage);
Button btnNotificationWithGroupConvo = findViewById(R.id.btnNotificationWithGroupConvo);
Button btnNotificationSemantic = findViewById(R.id.btnNotificationSemantic);
charSequence = btnNotificationIcon.getText();
btnSimpleNotification.setOnClickListener(this);
btnNotificationIcon.setOnClickListener(this);
btnNotificationImage.setOnClickListener(this);
btnNotificationWithGroupConvo.setOnClickListener(this);
btnNotificationSemantic.setOnClickListener(this);
notificationManager = (NotificationManager)
getSystemService(Context.NOTIFICATION_SERVICE);
CharSequence name = "My Notification";
String description = "yadda yadda";
int importance = NotificationManager.IMPORTANCE_DEFAULT;
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btnSimpleNotification:
simpleNotification();
break;
case R.id.btnNotificationIcon:
notificationWithIcon();
break;
case R.id.btnNotificationImage:
notificationWithImage();
break;
case R.id.btnNotificationWithGroupConvo:
notificationWithGroupConvo();
break;
case R.id.btnNotificationSemantic:
notificationSemantic();
break;
}
28
}
private void simpleNotification() {
Person jd = new Person.Builder().setName("JournalDev ") .setImportant(true) .build();
new NotificationCompat.MessagingStyle(jd)
.addMessage("Check me out", new Date().getTime(), jd) .setBuilder(builder);
notificationManager.notify(1, builder.build());
}
private void notificationWithIcon() {
Person anupam = new Person.Builder()
.setName("Anupam")
.setIcon(IconCompat.createWithResource(this, R.drawable.index))
.setImportant(true) .build();
new NotificationCompat.MessagingStyle(anupam)
.addMessage("Check out my latest article!", new Date().getTime(), anupam)
.setBuilder(builder);
notificationManager.notify(2, builder.build());
}
private void notificationWithImage() { Person bot = new Person.Builder()
.setName("Bot") .setImportant(true)
.setBot(true) .build();
Uri uri =
Uri.parse("android.resource://com.journaldev.androidpnotifications/drawable/"+R.drawable.bg);
new NotificationCompat.MessagingStyle(bot)
.addMessage(message) .setGroupConversation(true).setBuilder(builder);
notificationManager.notify(3, builder.build());
}
private void notificationWithGroupConvo()
{
Person jd = new Person.Builder()
.setName("JournalDev") .build();
notificationManager.notify(5, separateBuilder.build());
}
@Override
protected void onResume() { super.onResume();
Result:
Thus Android Application that makes use of notification manager is developed and executed
successfully.
31
Ex. No: 06 Implement an application that uses Multi-threading
Date:
Aim:
To develop an Android Application that implements Multi threading.
Procedure: Creating a New project:
Open Android Studio and then click on File -> New -> New project.
Then type the Application name as “exno6″and click Next.
Then select the Minimum SDK as shown below and click Next.
Then select the Empty Activity and click Next.
Finally click Finish.
It will take some time to build and load the project.
After completion it will look as given below.
<ImageView
android:id="@+id/imageView" android:layout_width="250dp" android:layout_height="250dp"
android:layout_margin="50dp" android:layout_gravity="center" />
<Button
android:id="@+id/button" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_margin="10dp"
android:layout_gravity="center" android:text="Load Image 1" />
<Button
android:id="@+id/button2" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_margin="10dp"
android:layout_gravity="center" android:text="Load image 2" />
</LinearLayout>
Now click on Design and your application will look as given below.
So now the designing part is completed.
32
Code for MainActivity.java:
packagecom.example.exno6;
import android.os.Bundle;
//import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import androidx.appcompat.app.AppCompatActivity;
bt1.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
new Thread(new Runnable()
{
@Override public void run()
{
img.post(new Runnable()
{
@Override public void run()
{
}
});
}
img.setImageResource(R.drawable.india1);
}
});
}).start();
bt2.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
new Thread(new Runnable()
{
@Override public void run()
{
img.post(new Runnable()
{
@Override public void run()
33
{
img.setImageResource(R.drawable.india2);
}
});
}
}).start();
}
});
}
}
Note:
Before running the application, copy the images given below and paste it in “app -> res ->
drawable”by pressing “right click mouse button on drawable” and selecting the “Paste”
option.
Output:
Result:
Thus Android Application that implements Multi threading is developed and executed
successfully.
34
Ex. No: 07 Develop a native application that uses GPS location information
Date:
Aim:
To develop an Android Application that uses GPS location information.
Procedure:
Creating a New project:
Open Android Studio and then click on File -> New -> New project.
Then type the Application name as “exno7″and click Next.
Then select the Minimum SDK as shown below and click Next.
Then select the Empty Activity and click Next.
Finally click Finish.
It will take some time to build and load the project.
After completion it will look as given below.
<Button
android:id = "@+id/button"
android:layout_width = "fill_parent"
android:layout_height = "wrap_content"
android:text = "getlocation"/>
</LinearLayout>
Now click on Design and your application will look as given below.
So now the designing part is completed.
</manifest>
import android.Manifest;
import android.app.Activity;
import android.os.Bundle;
import android.support.v4.app.ActivityCompat;
import android.test.mock.MockPackageManager;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends Activity {
Button btnShowLocation;
private static final int REQUEST_CODE_PERMISSION = 2;
String mPermission = Manifest.permission.ACCESS_FINE_LOCATION;
// GPSTracker class
GPSTracker gps;
36
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
try {
if (ActivityCompat.checkSelfPermission(this, mPermission)
!= MockPackageManager.PERMISSION_GRANTED) {
@Override
public void onClick(View arg0) {
// create class object
gps = new GPSTracker(MainActivity.this);
}
});
}
}
if (location != null) {
latitude = location.getLatitude(); longitude = location.getLongitude();
}
}
}
if (location != null) {
latitude = location.getLatitude();
longitude = location.getLongitude();
}
}
}
}
}
} catch (Exception e) {
e.printStackTrace();
39
}
return location;
}
/**
* Stop using GPS listener
* Calling this function will stop using GPS in your app
* */
/**
* Function to get latitude
* */
// return latitude
return latitude;
}
/**
* Function to get longitude
* */
// return longitude
return longitude;
}
/**
* Function to check GPS/wifi enabled
* @return boolean
* */
40
/**
* Function to show settings alert dialog
* On pressing Settings button will lauch Settings Options
* */
@Override
public void onLocationChanged(Location location) {
}
@Override
public void onProviderDisabled(String provider) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
41
}
@Override
public IBinder onBind(Intent arg0) { return null;
}
}
So now the Coding part is also completed.
Now run the application to see the output.
Output:
Result:
Thus Android Application that implements GPS Location Information is developed and
executed successfully.
42
Ex. No: 08 Implement an application that writes data to the SD Card
Date:
Aim:
To develop an Android Application that writes data to the SD Card.
Procedure:
Creating a New project:
Open Android Studio and then click on File -> New -> New project.
Then type the Application name as “exno8″ and click Next.
Then select the Minimum SDK as shown below and click Next.
Then select the Empty Activity and click Next.
Finally click Finish.
It will take some time to build and load the project.
After completion it will look as given below.
Designing layout for the Android Application:
Click on app -> res -> layout -> activity_main.xml.
Now click on Text as shown below.
Then delete the code which is there and type the code as given below.
Code for Activity_main.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="20dp"
android:orientation="vertical">
<EditText
android:id="@+id/editText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:textSize="30dp" />
<Button
android:id="@+id/button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:text="Write Data"
android:textSize="30dp" />
<Button
android:id="@+id/button2"
android:layout_width="match_parent"
43
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:text="Read data"
android:textSize="30dp" />
<Button
android:id="@+id/button3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:text="Clear"
android:textSize="30dp" />
</LinearLayout>
Now click on Design and your application will look as given below.
So now the designing part is completed.
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme" >
<activity android:name=".MainActivity" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
44
Java Coding for the Android Application:
• Click on app -> java -> com.example.exno8 -> MainActivity.
• Then delete the code which is there and type the code as given below.
Code for MainActivity.java:
packagecom.example.exno8;
import android.os.Bundle;
//import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import androidx.appcompat.app.AppCompatActivity;
write.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
String message=e1.getText().toString(); try
{
File f=new File("/sdcard/myfile.txt"); f.createNewFile();
FileOutputStream fout=new FileOutputStream(f); fout.write(message.getBytes());
fout.close();
Toast.makeText(getBaseContext(),"Data Written in SDCARD",Toast.LENGTH_LONG).show();
}
catch (Exception e)
{
45
}
});
Toast.makeText(getBaseContext(),e.getMessage(),Toast.LENGTH_LONG).show();
}
read.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
String message; String buf = ""; try
{
File f = new File("/sdcard/myfile.txt"); FileInputStream fin = new FileInputStream(f);
BufferedReader br = new BufferedReader(new InputStreamReader(fin));
clear.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
e1.setText("");
}
});
}
}
• So now the Coding part is also completed.
• Now run the application to see the output.
46
Output:
Result:
Thus Android Application that writes data to the SD Card is developed and executed
successfully.
47
Ex. No: 09 Implement an application that creates an alert upon receiving a message
Date:
Aim:
To develop an Android Application that creates an alert upon receiving a message.
Procedure:
Creating a New project:
• Open Android Studio and then click on File -> New -> New project.
• Then type the Application name as “ex.no9″and click Next.
• Then select the Minimum SDK as shown below and click Next.
• Then select the Empty Activity and click Next.
• Finally click Finish.
• It will take some time to build and load the project.
• After completion it will look as given below.
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Message"
android:textSize="30sp" />
<EditText
android:id="@+id/editText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:textSize="30sp" />
48
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="30dp"
android:layout_gravity="center"
android:text="Notify"
android:textSize="30sp"/>
</LinearLayout>
• Now click on Design and your application will look as given below.
• So now the designing part is completed.
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Intent;
import android.os.Bundle;
//import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
imp0rt androidx.appcompat.app.AppCompatActivity;
notify.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
49
PendingIntent pending = PendingIntent.getActivity(MainActivity.this, 0, intent, 0);
Notification noti = new Notification.Builder(MainActivity.this).setContentTitle("New
Message").setContentText(e.getText().toString()).setSmallIcon(R.mipmap.ic_launcher).setContentInt
ent(pe nding).build();
NotificationManager manager = (NotificationManager)
getSystemService(NOTIFICATION_SERVICE);
noti.flags |= Notification.FLAG_AUTO_CANCEL; manager.notify(0, noti);
}
});
}
}
Output:
Result:
Thus Android Application that creates an alert upon receiving a message is developed and
executed successfully.
50
Ex. No: 10 Write a mobile application that makes use of RSS Feed
Date:
Aim:
To develop an Android Application that makes use of RSS Feed.
Procedure:
Creating a New project:
• Open Android Studio and then click on File -> New -> New project.
• Then type the Application name as “exno10″and click Next.
• Then select the Minimum SDK as shown below and click Next.
• Then select the Empty Activity and click Next.
• Finally click Finish.
• It will take some time to build and load the project.
• After completion it will look as given below.
<ListView
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
Now click on Design and your application will look as given below.
So now the designing part is completed.
51
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.exno10" >
<uses-permission android:name="android.permission.INTERNET"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme" >
<activity android:name=".MainActivity" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
</manifest>
So now the Permissions are added in the Manifest.
52
public class MainActivity extends ListActivity
{
List headlines;
List links;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
new MyAsyncTask().execute();
}
class MyAsyncTask extends AsyncTask<Object,Void,ArrayAdapter>
{
@Override
protected ArrayAdapter doInBackground(Object[] params)
{
headlines = new ArrayList();
links = new ArrayList();
try
{
URL url = new URL("https://codingconnect.net/feed");
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
factory.setNamespaceAware(false);
XmlPullParser xpp = factory.newPullParser();
}
catch (MalformedURLException e)
{
e.printStackTrace();
}
catch (XmlPullParserException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
return null;
}
protected void onPostExecute(ArrayAdapter adapter)
{
adapter = new ArrayAdapter(MainActivity.this, android.R.layout.simple_list_item_1, headlines);
setListAdapter(adapter);
}
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id)
{
Uri uri = Uri.parse((links.get(position)).toString()); Intent intent = new Intent(Intent.ACTION_VIEW,
uri); startActivity(intent);
}
public InputStream getInputStream(URL url)
{
try
{
return url.openConnection().getInputStream();
}
catch (IOException e)
{
return null;
}
54
}
}
• So now the Coding part is also completed.
• Now run the application to see the output.
Output:
Result:
Thus Android Application that makes use of RSS Feed is developed and executed
successfully.
55
Ex. No: 11 Develop a mobile application to send an email.
Date:
Aim:
To develop an Android Application to send an Email.
Procedure:
Creating a New project:
• Open Android Studio and then click on File -> New -> New project.
• Then type the Application name as “exno11″ and click Next.
• Then select the Minimum SDK as shown below and click Next.
• Then select the Empty Activity and click Next.
• Finally click Finish.
• It will take some time to build and load the project.
• After completion it will look as given below.
56
<Button android:layout_width="100dp"
android:layout_height="wrap_content" a
ndroid:layout_gravity="right"
android:text="Send"
android:id="@+id/btnSend"/>
</LinearLayout>
<activity
android:name="com.example.exno11.MainActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<action android:name="android.intent.action.SEND"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:mimeType="message/rfc822"/>
</intent-filter>
</activity>
</application>
</manifest>
57
import android.content.Intent;
//import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
58
Output:
Result:
Thus Android Application for sending an email is developed and executed successfully.
59
Ex. No: 12 Develop a Mobile application for simple needs (Mini Project)
Date:
Aim:
To develop a Simple Android Application for Native Calculator.
Procedure:
Creating a New project:
• Open Android Studio and then click on File -> New -> New project.
• Then type the Application name as “exno12″and click Next.
• Then select the Minimum SDK as shown below and click Next.
• Then select the Empty Activity and click Next.
• Finally click Finish.
• It will take some time to build and load the project.
• After completion it will look as given below.
Designing layout for the Android Application:
• Click on app -> res -> layout -> activity_main.xml.
• Now click on Text as shown below.
• Then delete the code which is there and type the code as given below.
61
Code for MainActivity.java:
packagecom.example.exno12;
import android.os.Bundle;
//import android.support.v7.app.AppCompatActivity;
import android.text.TextUtils;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// set a listener
Add.setOnClickListener(this);
Sub.setOnClickListener(this);
Mul.setOnClickListener(this);
Div.setOnClickListener(this);
}
@Override
public void onClick (View v)
62
{
float num1 = 0;
float num2 = 0;
float result = 0;
String oper = "";
// check if the fields are empty
if (TextUtils.isEmpty(Num1.getText().toString()) || TextUtils.isEmpty(Num2.getText().toString()))
return;
// defines the button that has been clicked and performs the corresponding operation
// write operation into oper, we will use it later for output switch (v.getId())
{
case R.id.Add:
oper = "+";
result = num1 + num2; break;
case R.id.Sub:
oper = "-";
result = num1 - num2; break;
case R.id.Mul:
oper = "*";
result = num1 * num2; break;
case R.id.Div:
oper = "/";
result = num1 / num2; break;
default: break;
}
// form the output line
Result.setText(num1 + " " + oper + " " + num2 + " = " + result);
}
}
63
Output:
Result:
Thus a Simple Android Application for Native Calculator is developed and executed
successfully.
64
Ex. No: 13 Android Application that creates Alarm Clock
Date:
Aim:
To develop a Android Application that creates Alarm Clock.
Procedure:
Creating a New project:
Open Android Studio and then click on File -> New -> New project.
Then type the Application name as “exno13″ and click Next.
Then select the Minimum SDK as shown below and click Next.
Then select theEmpty Activity and click Next.
Finally click Finish.
It will take some time to build and load the project.
After completion it will look as given below.
Creating Second Activity for the Android Application:
Click on File -> New -> Activity -> Empty Activity.
Type the Activity Name as AlarmReceiver and click Finish button.
Thus Second Activityfor the application is created.
Designing layout for the Android Application:
Click on app -> res -> layout -> activity_main.xml.
Now click on Text as shown below.
Then delete the code which is there and type the code as given below.
Code for Activity_main.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TimePicker
android:id="@+id/timePicker"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center" />
<ToggleButton
android:id="@+id/toggleButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_margin="20dp"
android:checked="false"
android:onClick="OnToggleClicked" />
</LinearLayout>
• Now click on Design and your application will look as given below.
• So now the designing part is completed.
65
Changes in Manifest for the Android Application:
• Click on app -> manifests -> AndroidManifest.xml.
• Now change the activity tag to receiver tag in the AndroidManifest.xml file as shown below.
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
alarmTimePicker = (TimePicker) findViewById(R.id.timePicker);
alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
}
public void OnToggleClicked(View view)
{
long time;
if (((ToggleButton) view).isChecked())
{
Toast.makeText(MainActivity.this, "ALARM ON", Toast.LENGTH_SHORT).show();
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, alarmTimePicker.getCurrentHour());
calendar.set(Calendar.MINUTE, alarmTimePicker.getCurrentMinute());
Intent intent = new Intent(this, AlarmReceiver.class);
pendingIntent = PendingIntent.getBroadcast(this, 0, intent, 0);
time=(calendar.getTimeInMillis()-(calendar.getTimeInMillis()%60000));
if(System.currentTimeMillis()>time)
{
if (calendar.AM_PM == 0)
time = time + (1000*60*60*12);
else
time = time + (1000*60*60*24);
}
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, time, 10000, pendingIntent);
}
else
{
alarmManager.cancel(pendingIntent);
Toast.makeText(MainActivity.this, "ALARM OFF", Toast.LENGTH_SHORT).show();
}
}
if (alarmUri == null)
{
alarmUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
}
Ringtone ringtone = RingtoneManager.getRingtone(context, alarmUri);
ringtone.play();
}
}
• So now the Coding part of Alarm Receiver is also completed.
• Now run the application to see the output.
Output:
Result:
Thus Android Application that creates Alarm Clock is developed and executed successfully.
68
VIVA QUESTION & ANSWERS
1) What is Android?
It is an open-sourced operating system that is used primarily on mobile devices, such as cell phones
and tablets. It is a Linux kernel-based system that‟s been equipped with rich components that allows
developers to create and run apps that can perform both basic and advanced functions.
5) What is AAPT?
AAPT is short for Android Asset Packaging Tool. This tool provides developers with the ability to
deal with zip-compatible archives, which includes creating, extracting as well as viewing its contents.
8 ) Describe Activities.
Activities are what you refer to as the window to a user interface. Just as you create windows in order
to display output or to ask for an input in the form of dialog boxes, activities play the same role,
though it may not always be in the form of a user interface.
69
10) Differentiate Activities from Services?
Activities can be closed, or terminated anytime the user wishes. On the other hand, services are
designed to run behind the scenes, and can act independently. Most services run continuously,
regardless of whether there are certain or no activities being executed.
70
17) What is adb?
Adb is short for Android Debug Bridge. It allows developers the power to execute remote shell
commands. Its basic function is to allow and control communication towards and from the emulator
port.
20) Which elements can occur only once and must be present?
Among the different elements, the and elements must be present and can occur only once. The rest are
optional, and can occur as many times as needed.
26) Is there a case wherein other qualifiers in multiple resources take precedence over locale?
Yes, there are actually instances wherein some qualifiers can take precedence over locale. There are
two known exceptions, which are the MCC (mobile country code) and MNC (mobile network code)
qualifiers.
71
27) What are the different states wherein a process is based?
There are 4 possible states:
– foreground activity
– visible activity
– background activity
– empty process
31) What is the proper way of setting up an Android-powered device for app development?
The following are steps to be followed prior to actual application development in an Android-powered
device:
-Declare your application as “debuggable” in your Android Manifest.
-Turn on “USB Debugging” on your device.
-Set up your system to detect your device.
34) When dealing with multiple resources, which one takes precedence?
Assuming that all of these multiple resources are able to match the configuration of a device, the
„locale‟ qualifier almost always takes the highest precedence over the others.
72
36) What is AIDL?
AIDL, or Android Interface Definition Language, handles the interface requirements between a client
and a service so both can communicate at the same level through interprocess communication or IPC.
This process involves breaking down objects into primitives that Android can understand. This part is
required simply because a process cannot access the memory of the other process.
42) How do you remove icons and widgets from the main screen of the Android device?
To remove an icon or shortcut, press and hold that icon. You then drag it downwards to the lower part
of the screen where a remove button appears.
43) What are the core components under the Android application architecture?
There are 5 key components under the Android application architecture:
– services
– intent
– resource externalization
– notifications
– content providers
73
44) What composes a typical Android application project?
A project under Android development, upon compilation, becomes an .apk file. This apk file format is
actually made up of the AndroidManifest.xml file, application code, resource files, and other related
files.
46) Do all mobile phones support the latest Android operating system?
Some Android-powered phone allows you to upgrade to the higher Android operating system version.
However, not all upgrades would allow you to get the latest version. It depends largely on the
capability and specs of the phone, whether it can support the newer features available under the latest
Android version.
49) What is the difference between a regular bitmap and a nine-patch image?
In general, a Nine-patch image allows resizing that can be used as background or other image size
requirements for the target device. The Nine-patch refers to the way you can resize the image: 4
corners that are unscaled, 4 edges that are scaled in 1 axis, and the middle one that can be scaled into
both axes.
74