public override double getData(string package) { String rcv; String snd; double datausage = 0; Executecmd.ExecuteCommandSync("adb shell cat proc/uid_stat/" + pkglist[package] + "/tcp_snd", out snd); Executecmd.ExecuteCommandSync("adb shell cat proc/uid_stat/" + pkglist[package] + "/tcp_rcv", out rcv); if (rcv.IndexOf("such") > 0 || snd.IndexOf("such") > 0) { initData[package] = 0; return(0); } if (snd == String.Empty || rcv == String.Empty) { return(-1); } datausage = Convert.ToDouble(rcv) + Convert.ToDouble(snd); if (this.t == 0) { initData[package] = datausage; } datausage = (datausage - initData[package]) / 1024; this.currentData = datausage; return(datausage); }
public static Dictionary <string, string> GetPackageInfo() { String allpkginfo = ""; String uid = "1001"; Dictionary <string, string> pkginfo = new Dictionary <string, string>(); if (!Connected) { return(null); } Executecmd.ExecuteCommandSync("adb shell dumpsys package", out allpkginfo); Regex reg = new Regex(@".*Package \[(\S+)\].*\s*userId=(\d*)");//Package ['(\S+)'] MatchCollection mMatches = reg.Matches(allpkginfo); foreach (Match m in mMatches) { if (m.Groups.Count > 2 && Convert.ToInt32(m.Groups[2].ToString()) > 10000) { try{ pkginfo.Add(m.Groups[1].ToString(), m.Groups[2].ToString()); } catch (Exception) { //eat exception } } } if (mMatches.Count > 0) { pkginfo.Add("system_server", "10000"); }
public static Dictionary <string, string> GetPackageInfo() { String allpkginfo = ""; String uid = "1001"; Dictionary <string, string> pkginfo = new Dictionary <string, string>(); if (!Connected) { return(null); } Executecmd.ExecuteCommandSync("adb shell dumpsys package", out allpkginfo); Regex reg = new Regex(@".*Package \[(\S+)\].*\s*userId=(\d*)");//Package ['(\S+)'] MatchCollection mMatches = reg.Matches(allpkginfo); foreach (Match m in mMatches) { if (m.Groups.Count > 2 && Convert.ToInt32(m.Groups[2].ToString()) > 10000) { try{ pkginfo.Add(m.Groups[1].ToString(), m.Groups[2].ToString()); } catch (Exception) { //eat exception } } } if (mMatches.Count > 0) { pkginfo.Add("system_server", "10000"); } /* * while (strLine != null) * { * //Console.WriteLine(strLine); * Match m = reg.Match(strLine); * if (m.Groups.Count > 1) * { * string packagename = m.Groups[1].ToString(); * Regex uidreg = new Regex(@".*userId=(\d*)"); * m_streamReader.ReadLine(); * m = uidreg.Match(m_streamReader.ReadLine()); * if (m.Groups.Count > 1) * { * uid = m.Groups[1].ToString(); * pkginfo.Add(packagename, uid); * } * } * strLine = m_streamReader.ReadLine(); * } * */ return(pkginfo); }
private void InitAdbEnv() { Executecmd.ExecuteCommandSync("adb wait-for-device", 0); //Executecmd.ExecuteCommandSync("adb root", 0); Executecmd.ExecuteCommandSync("adb wait-for-device", 0); //Executecmd.ExecuteCommandSync("adb remount", 0); Executecmd.ExecuteCommandSync("adb push save /data/local/tmp/save", 0); Executecmd.ExecuteCommandSync("adb shell chmod 777 /data/local/tmp/save", 0); Executecmd.ExecuteCommandSync("adb push save_fps /data/local/tmp/save_fps", 0); Executecmd.ExecuteCommandSync("adb shell chmod 777 /data/local/tmp/save_fps", 0); Executecmd.ExecuteCommandSync("adb install -r chinpower.apk", 0); }
public override double getData(string package) { double memdata = 0; string meminfo; if (package == "system_server") { package = "system"; } Executecmd.ExecuteCommandSync("adb shell dumpsys meminfo " + package, out meminfo); //Executecmd.ExecuteCommandSync("adb shell procrank", out meminfo); //return 100.0; //Regex memReg = new Regex(@"\s*(\d*)K\s*\d*K\s*" + package + @"\s*"); Regex memReg = new Regex(@"\s*TOTAL\s*(\d*)\s*"); Match memM = memReg.Match(meminfo); if (memM.Groups.Count > 1) { memdata = Convert.ToDouble(memM.Groups[1].ToString()) / 1024; } else if (meminfo.Contains(package)) { memdata = 0; } else if (!meminfo.Contains("PSS")) { return(-1); } this.currentData = memdata; if (this.datalist.Count != 1) { this.avgData = 0; this.maxData = 0; } else { foreach (var value in this.datalist.Values) { int count = value.Collection.Count; this.avgData = (this.avgData * count + memdata) / (count + 1); } if (memdata >= this.maxData) { this.maxData = memdata; } } return(memdata); }
public override double getData(string package) { double cpudata = 0; string cpuinfo; Executecmd.ExecuteCommandSync("adb shell top -m 15 -d 1 -n 1", out cpuinfo); Regex cpuReg = new Regex(@"\s*(\d*)%.*" + package + @"\s*"); Match cpuM = cpuReg.Match(cpuinfo); if (cpuM.Groups.Count > 1) { cpudata = Convert.ToDouble(cpuM.Groups[1].ToString()); } else if (!cpuinfo.Contains("CPU")) { return(-1); } if (cpudata > 100) { return(-1); } this.currentData = cpudata; if (this.datalist.Count != 1) { this.avgData = 0.0; this.maxData = 0.0; } else { foreach (var value in this.datalist.Values) { int count = value.Collection.Count; this.avgData = (this.avgData * count + cpudata) / (count + 1); } if (cpudata >= this.maxData) { this.maxData = cpudata; } } return(cpudata); }
public override double getData(string package) { double memdata = 0; string meminfo; //Executecmd.ExecuteCommandSync("adb shell dumpsys meminfo " + package, out meminfo); //Executecmd.ExecuteCommandSync("adb shell procrank", out meminfo); Executecmd.ExecuteCommandSync("adb shell cat /proc/meminfo", out meminfo); //return 100.0; //Regex memReg = new Regex(@"\s*(\d*)K free,\s*(\d*)K buffers,\s*(\d*)K cached"); Regex memReg = new Regex(@"\s*MemFree:\s*(\d*)\s*kB\s*Buffers:\s*(\d*)\s*kB\s*Cached:\s*(\d*)\skB\s*"); Match memM = memReg.Match(meminfo); if (memM.Groups.Count > 1) { memdata = (Convert.ToDouble(memM.Groups[1].ToString()) + Convert.ToDouble(memM.Groups[2].ToString()) + Convert.ToDouble(memM.Groups[3].ToString())) / 1024; } this.currentData = memdata; if (this.datalist.Count != 1) { this.avgData = 0; this.minData = 0; } else { foreach (var value in this.datalist.Values) { int count = value.Collection.Count; this.avgData = (this.avgData * count + memdata) / (count + 1); } if (memdata <= this.minData || this.minData == 0) { this.minData = memdata; } } return(memdata); }
public static Dictionary <string, string> GetPackageInfo() { String allpkginfo = ""; String uid = "1001"; Dictionary <string, string> pkginfo = new Dictionary <string, string>(); if (!Connected) { return(null); } Executecmd.ExecuteCommandSync("adb shell dumpsys package", out allpkginfo); /* * FileStream fi = new FileStream(pkgfile, FileMode.Open); * StreamReader m_streamReader = new StreamReader(fi); * m_streamReader.BaseStream.Seek(0, SeekOrigin.Begin); * string strLine = m_streamReader.ReadLine(); */ Regex reg = new Regex(@".*Package \[(\S+)\].*\s*userId=(\d*)");//Package ['(\S+)'] MatchCollection mMatches = reg.Matches(allpkginfo); foreach (Match m in mMatches) { if (m.Groups.Count > 2 && Convert.ToInt32(m.Groups[2].ToString()) >= 10000) { try { pkginfo.Add(m.Groups[1].ToString(), m.Groups[2].ToString()); } catch (Exception) { //eat exception } } } if (pkginfo.Count > 0) { try { pkginfo.Add("system_server", "10000"); //pkginfo.Add("com.baidu.bsf.service", "10000"); pkginfo.Add("com.baidu.bsf.system", "10000"); pkginfo.Add("com.baidu.bsf.system:pushservice_v1", "10000"); } catch { //eat exception } } /* * while (strLine != null) * { * //Console.WriteLine(strLine); * Match m = reg.Match(strLine); * if (m.Groups.Count > 1) * { * string packagename = m.Groups[1].ToString(); * Regex uidreg = new Regex(@".*userId=(\d*)"); * m_streamReader.ReadLine(); * m = uidreg.Match(m_streamReader.ReadLine()); * if (m.Groups.Count > 1) * { * uid = m.Groups[1].ToString(); * pkginfo.Add(packagename, uid); * } * } * strLine = m_streamReader.ReadLine(); * } * */ return(pkginfo); }
private void stopPowerMoniter() { Executecmd.ExecuteCommandSync("adb shell am force-stop com.android.Chinpower", 0); }
private void startPowerMoniter() { Executecmd.ExecuteCommandSync("adb shell logcat -c ", 0); Executecmd.ExecuteCommandSync("adb shell am startservice com.android.Chinpower/.service.UMLoggerService", 0); }