func (am AndroidManager) GetAttachedAndroidDevices() ([]Android, error) {
	serials, err := am.Endpoint.GetAttachedDevices(am.Timeout)
	if err != nil {
		return []Android{}, err
	}
	devices := []Android{}
	for index := range serials {
		dev := am.GetNewAndroidDevice(serials[index])
		devices = append(devices, dev)
	}
	return devices, nil
}
GetAttachedAndroidDevices method returns list of attached android devices
to the system. It returns error if any error occurred wile performing adb operation.
package goandroid
import (
	"github.com/kunaldawn/goandroid/activity"
	"github.com/kunaldawn/goandroid/adbutility"
	"github.com/kunaldawn/goandroid/device"
	"github.com/kunaldawn/goandroid/display"
	"github.com/kunaldawn/goandroid/input"
	"github.com/kunaldawn/goandroid/view"
)
type AndroidManager struct {
	Endpoint adbutility.AdbEndpoint  
	Timeout  int                     
}
type Android struct {
	Device   device.Device       
	Input    input.InputManager  
	View     view.DeviceView     
	Display  display.Display     
	Activity activity.Activity   
}
func GetNewAndroidManager(timeout int, adb string) AndroidManager {
	return AndroidManager{Endpoint: adbutility.GetNewAdbEndpoint(adb), Timeout: timeout}
}
func (am AndroidManager) GetNewAndroidDevice(serial string) Android {
	dev := device.NewDevice(serial, am.Timeout, am.Endpoint)
	inp := input.NewInputManager(dev)
	viw := view.NewDeviceView(dev)
	disp := display.NewDisplay(dev)
	act := activity.NewActivity(dev)
	return Android{dev, inp, viw, disp, act}
}