code: def install(self, apk_path, destination_dir=None, timeout_ms=None):
      
      if not destination_dir:
        destination_dir = '/data/local/tmp/'
      basename = os.path.basename(apk_path)
      destination_path = destination_dir + basename
      self.push(apk_path, destination_path, timeout_ms=timeout_ms)
      return self.Shell('pm install -r "%s"' % destination_path,
                        timeout_ms=timeout_ms)
docs: Install apk to device.
  
      Doesn't support verifier file, instead allows destination directory to be
      overridden.
  
      Arguments:
        apk_path: Local path to apk to install.
        destination_dir: Optional destination directory. Use /system/app/ for
          persistent applications.
        timeout_ms: Expected timeout for pushing and installing.
  
      Returns:
        The pm install output.