internal void QueueMemoryRequest(IAndroidLogcatDevice device, PackageInformation package)
        {
            m_ExpectedDevice             = device;
            m_ExpectedPackageFromRequest = package;
            if (m_ExpectedPackageFromRequest == null || !m_ExpectedPackageFromRequest.IsAlive() || m_ExpectedDevice == null)
            {
                return;
            }
            // Don't make a memory request, if previous requests haven't finished yet
            // Otherwise async queue will grow bigger and bigger
            const int kMaxRequestsInQueue = 3;

            if (m_RequestsInQueue > kMaxRequestsInQueue)
            {
                return;
            }
            m_RequestsInQueue++;
            m_Runtime.Dispatcher.Schedule(
                new AndroidLogcatQueryMemoryInput()
            {
                adb = ADB.GetInstance(),
                packageProcessId = m_ExpectedPackageFromRequest.processId,
                packageName      = m_ExpectedPackageFromRequest.name,
                deviceId         = device.Id
            },
                QueryMemoryAsync,
                IntegrateQueryMemory,
                false);
        }