Yes you can make single activity class. But as you want to add few functions so its better to create few activity classes. As its easy to check and manage smaller activity classes as compare to only one large activity class. And the number of classes depend upon functions. Its good if you create one class for one function.
1.For automatically launching it when device starts you can use following code-
public class YourReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Intent intent = new Intent(context, YourActivity.class);
context.startActivity(intent);
}
}
And add following code to your manifest file-
<receiver
android-permission="android.permission.RECEIVE_BOOT_COMPLETED"
android:name="YourReceiver" >
<intent-filter >
<action android:name="android.intent.action.SCREEN_ON" />
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
2.For launching it in kiosk mode-
Is it possible to create an android app to make the phone run in sort of a kiosk mode?
3.For making phone calls-
How To Make A Simple Phone Call Application
How to make a phone call from your application
4.For bluetooth option-