/// <summary>
 /// Releases all resources used by <see cref="AndroidController"/>
 /// </summary>
 /// <remarks>Needs to be called when application has finished using <see cref="AndroidController"/></remarks>
 public void Dispose()
 {
     if (Adb.ServerRunning)
     {
         Adb.KillServer();
         Thread.Sleep(1000);
     }
     AndroidController._instance = null;
 }
 /// <summary>
 /// Restarts the ADB Server used by <see cref="AndroidController"/>
 /// </summary>
 /// <returns>Returns <c>true</c> if ADB Server was Successfully Started, else Returns <c>false</c></returns>
 public bool RestartAdb()
 {
     if (Adb.ServerRunning)
     {
         Adb.KillServer();
         Thread.Sleep(1000);
         Adb.StartServer();
         Thread.Sleep(3000);
         return(Adb.ServerRunning);
     }
     Adb.StartServer();
     Thread.Sleep(3000);
     return(Adb.ServerRunning);
 }
 private void CreateResourceDirectories()
 {
     try
     {
         if (!Adb.ExecuteAdbCommand(new AdbCommand("version")).Contains(Adb.AdbVersion))
         {
             Adb.KillServer();
             Thread.Sleep(1000);
             ResourceFolderManager.Unregister(AndroidControllerTmpFolder);
             _extractResources = true;
         }
     }
     catch (Exception)
     {
         _extractResources = true;
     }
     ResourceFolderManager.Register(AndroidControllerTmpFolder);
 }