Ejemplo n.º 1
0
        self._android = android 
        self._last_fetched = -1 * Processes.MIN_FETCH_DELAY
        self._parsed = None

    def _fetch(self):
        current_time = time.time()
        if (current_time < self._last_fetched + Processes.MIN_FETCH_DELAY): 
            return
        cpu_text = self._android.cmd("shell dumpsys cpuinfo").stdout.read()
        mem_text = self._android.cmd("shell dumpsys meminfo").stdout.read()
        cpu_temp = re.compile("\s+?(?P<percent>\d+?)% (?P<pid>\d+?)/(?P<name>.*?): ").findall(cpu_text)
        mem_temp = re.compile("\s+?(\d+?) kB: (.*?) \(pid (\d+?)\)").findall(mem_text)
        self._parsed = [Processes.Process(name = x[0][2], pid = int(x[0][1]), cpu = int(x[0][0]), mem = int(x[1][0])) for x in zip(cpu_temp, mem_temp)]

    def __getitem__(self, key):
        self._fetch()
        return self._parsed[key]

    def __len__(self):
        self._fetch()
        return len(self._parsed)

if __name__ == "__main__":
    from Android import Android
    device_id  = Android.devices().keys()[0]
    android    = Android(device_id)
    processes = Processes(android)
    print processes[0]