From af7f6b4a05fd52218e94d679b88c3099b8beffc2 Mon Sep 17 00:00:00 2001 From: andrewleo Date: Thu, 18 Sep 2014 11:43:44 +0800 Subject: [PATCH] Added: add a seekbar to manage collect frequency and optimize ui --- AndroidManifest.xml | 6 +- res/drawable-hdpi/checked_icon.png | Bin 617 -> 561 bytes res/drawable-hdpi/seekbar_thumb_normal.png | Bin 0 -> 570 bytes res/drawable-hdpi/seekbar_thumb_pressed.png | Bin 0 -> 583 bytes res/drawable-hdpi/unchecked_icon.png | Bin 561 -> 617 bytes res/drawable/custom_seekbar.xml | 17 +++ res/drawable/seekbar_thumb.xml | 8 ++ res/layout/about.xml | 52 ++++---- res/layout/mail_settings.xml | 15 ++- res/layout/navigation_bar.xml | 7 +- res/layout/settings.xml | 51 +++++--- res/values-zh-rCN/strings.xml | 12 +- res/values/dimens.xml | 10 +- res/values/strings.xml | 14 ++- .../qa/emmagee/activity/AboutActivity.java | 22 +--- .../activity/MailSettingsActivity.java | 8 +- .../qa/emmagee/activity/SettingsActivity.java | 111 ++++++++---------- .../qa/emmagee/service/EmmageeService.java | 50 ++++---- 18 files changed, 200 insertions(+), 183 deletions(-) create mode 100644 res/drawable-hdpi/seekbar_thumb_normal.png create mode 100644 res/drawable-hdpi/seekbar_thumb_pressed.png create mode 100644 res/drawable/custom_seekbar.xml create mode 100644 res/drawable/seekbar_thumb.xml diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 27746d2..330a7c9 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -1,10 +1,10 @@ + android:versionCode="30" + android:versionName="2.0" > - + diff --git a/res/drawable-hdpi/checked_icon.png b/res/drawable-hdpi/checked_icon.png index ef99cc5f5e6f164329fd9addd7da0cff9c665016..66727de4115ddd57710ea58bb6104cc96e2e22d0 100644 GIT binary patch literal 561 zcmeAS@N?(olHy`uVBq!ia0vp^N+8U^3=*07`vZ_#7vK}(`r1ej8U6qNADKJY*a{lg z)&pH`RTAVE%pkqu$$tj*x7Av!^K;gH;OF_w%z2V+@6wIabTfZCh5U)Curynw^6I?e zJ&#MbMIY83lM^~Hxir>Q;<@>X&wM~ret5b#hFF~5dgUfxlYs#1g_U9lwHAoP1Qx~@ z-2eMuKDcd#%ZyjuwT%-dPq}wbtl{aWIWj+GE-zRh&2!=)&t8s2ET;m^4sN=-B#3pL z*n*Gs!nc3AEz!0y{g^dp_Pj2OuNt@8mMfgKsB;r$ZoRrlJ!|m?>o4!isy&#hF3QTg z+Kb+OpxGwYm8NyqOy09b(m%jtj=zx2KEL$9_GcO~KX}mVuelN<4$t>vA<4<_x7Vl_&aEtYWZ~Wfe8bz|eFktX>^>bP0l+XkK@(K4V literal 617 zcmeAS@N?(olHy`uVBq!ia0vp^N+8U^3=*07`vZ_V6W|l#IuRB8|NkFV06Xu_AOjFr zI^Hxs2K1LpNswPKgY=3g{~6TZR%@-!&sq0@pXW0JKQrga)ogqJuUoot+7s#O54xE@ zokIRZRalxWQh9Y=@!ngHOSeTI)*X`*Ixx93)>Y#9>-^q)1_nkBPZ!4!i_=rDq)%=# z5MX=Id#G_mx^kDLc30Ql*v-@b|DS&(wL~Vd`JH&$p~EUU_gET^KH`e}C=vY7`Lg7M zqb0hGZbD0@dL2%8^V?(@@PsLZ)pMSnrsj;m7IE)sb0Sg|_vuI)Y9Cs?N>y>|YJsn8 zzOyvmh}i~8w_aX2{q|eM!k6>kS!n!fyvCcCl(BdP>#o~k%6-X?IlET<^ohwYvHIL5 zRV?EAZ;$)GFWss8KJ-3%ZoZ*+t$mI1zwjS3dYsFu-qydJZp*`aIIUXz#-K3wYE zQL?1$(ZW=hSKs(`7dKTFywg?QT&?rD{Lx>tPKzvknHwcqpKhp|{B>!*{Phz<+MJi# dFLDgNGI{T^eq!z~vjZ5$44$rjF6*2UngFPFR(t>e diff --git a/res/drawable-hdpi/seekbar_thumb_normal.png b/res/drawable-hdpi/seekbar_thumb_normal.png new file mode 100644 index 0000000000000000000000000000000000000000..91b9362f84c0695a38863c3f82617ddadd8c81b8 GIT binary patch literal 570 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k3?#4J%UA`Z<^=eJxc;wWpc?8D|3BUE|7^?u zKt{jP|2fwGJ4F6BF#qom1zFK9^nZ@k{}yf#d#c|5E(s80mc{=@w*U2vAU04Iq8-Qv zqghUu3V`l3DGBlmW)L(9N-wKr(oL>!P|9KP$GlDd{{R1C z{r^1Q&c}CJJT85HKksMTLp{qD1xwrOpPLVSzcbHy3)fo~{*oUjC?Qh#;xxhsT~UCzImd}QjYpGiBT{^~rN^m3A^UU$*vr?;lCmf1dfT(teZ*{$~*sudXZ z`qdfd_TAu3Sz*KdBIeYD{C}4m{}ukVU+bw_S}u4umaCFwjqUQKM(WGfsqVj*cRePy z`)bo$Kh-5-?&((dqhx;W?cVwSxo4!UpP%iQGs;I3Cq%Nah2QO)cS|H`0q;gNzDU(a f8|k3?#4J%UA`Z76tf(xc;wWpc?8D|3BUE|7^?u zKt{jP|2fwG@9zHp>&yQ;yFpg83;myC_5aPy|3ENR@Bj7nAi-G{|G&Qe|M%Db>l;8^ zpn_jtp@zU6_T)6su?%JAn?FK ze_4@FwXRkgn>Y^7EHRPm-&fElD1CJD%N)D^^ZWuXsc{>g`Si3aduDplHN|xj>&#bs z&E7iWu8==Z`ERLP?~kl$U-&1$xn0J2-M^)}dVkh0Q(l$n$aUrJ%6IRkJQOsj^n3o< zXO{5f>yzTvUH8^ne>CG@+VV%i&5JM3&5xA-xwdoX-{;vr?=A6xg1welF{r5}E*!6eG6) literal 0 HcmV?d00001 diff --git a/res/drawable-hdpi/unchecked_icon.png b/res/drawable-hdpi/unchecked_icon.png index 66727de4115ddd57710ea58bb6104cc96e2e22d0..ef99cc5f5e6f164329fd9addd7da0cff9c665016 100644 GIT binary patch literal 617 zcmeAS@N?(olHy`uVBq!ia0vp^N+8U^3=*07`vZ_V6W|l#IuRB8|NkFV06Xu_AOjFr zI^Hxs2K1LpNswPKgY=3g{~6TZR%@-!&sq0@pXW0JKQrga)ogqJuUoot+7s#O54xE@ zokIRZRalxWQh9Y=@!ngHOSeTI)*X`*Ixx93)>Y#9>-^q)1_nkBPZ!4!i_=rDq)%=# z5MX=Id#G_mx^kDLc30Ql*v-@b|DS&(wL~Vd`JH&$p~EUU_gET^KH`e}C=vY7`Lg7M zqb0hGZbD0@dL2%8^V?(@@PsLZ)pMSnrsj;m7IE)sb0Sg|_vuI)Y9Cs?N>y>|YJsn8 zzOyvmh}i~8w_aX2{q|eM!k6>kS!n!fyvCcCl(BdP>#o~k%6-X?IlET<^ohwYvHIL5 zRV?EAZ;$)GFWss8KJ-3%ZoZ*+t$mI1zwjS3dYsFu-qydJZp*`aIIUXz#-K3wYE zQL?1$(ZW=hSKs(`7dKTFywg?QT&?rD{Lx>tPKzvknHwcqpKhp|{B>!*{Phz<+MJi# dFLDgNGI{T^eq!z~vjZ5$44$rjF6*2UngFPFR(t>e literal 561 zcmeAS@N?(olHy`uVBq!ia0vp^N+8U^3=*07`vZ_#7vK}(`r1ej8U6qNADKJY*a{lg z)&pH`RTAVE%pkqu$$tj*x7Av!^K;gH;OF_w%z2V+@6wIabTfZCh5U)Curynw^6I?e zJ&#MbMIY83lM^~Hxir>Q;<@>X&wM~ret5b#hFF~5dgUfxlYs#1g_U9lwHAoP1Qx~@ z-2eMuKDcd#%ZyjuwT%-dPq}wbtl{aWIWj+GE-zRh&2!=)&t8s2ET;m^4sN=-B#3pL z*n*Gs!nc3AEz!0y{g^dp_Pj2OuNt@8mMfgKsB;r$ZoRrlJ!|m?>o4!isy&#hF3QTg z+Kb+OpxGwYm8NyqOy09b(m%jtj=zx2KEL$9_GcO~KX}mVuelN<4$t>vA<4<_x7Vl_&aEtYWZ~Wfe8bz|eFktX>^>bP0l+XkK@(K4V diff --git a/res/drawable/custom_seekbar.xml b/res/drawable/custom_seekbar.xml new file mode 100644 index 0000000..00981cc --- /dev/null +++ b/res/drawable/custom_seekbar.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/res/drawable/seekbar_thumb.xml b/res/drawable/seekbar_thumb.xml new file mode 100644 index 0000000..a0028b4 --- /dev/null +++ b/res/drawable/seekbar_thumb.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/res/layout/about.xml b/res/layout/about.xml index 03aedd9..0d6c386 100644 --- a/res/layout/about.xml +++ b/res/layout/about.xml @@ -50,7 +50,7 @@ android:layout_height="wrap_content" android:layout_marginLeft="@dimen/layout_vertical_margin_small" android:gravity="center_vertical" - android:text="Emmagee" + android:text="@string/app_name" android:textColor="@color/black" android:textSize="@dimen/text_size_bigest" /> @@ -65,7 +65,7 @@ @@ -87,38 +86,39 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_vertical" - android:padding="@dimen/layout_vertical_margin_small" > + android:orientation="vertical" + android:padding="@dimen/layout_horizontal_margin" > - - - - - - + - - + - + + diff --git a/res/layout/mail_settings.xml b/res/layout/mail_settings.xml index f006ef2..19bd1fc 100644 --- a/res/layout/mail_settings.xml +++ b/res/layout/mail_settings.xml @@ -11,7 +11,6 @@ android:orientation="horizontal" > @@ -53,14 +52,14 @@ android:id="@+id/sender" android:layout_width="fill_parent" android:layout_height="wrap_content" - android:layout_marginTop="5sp" + android:layout_marginTop="@dimen/edit_margin" android:singleLine="true" android:textSize="@dimen/text_size" /> @@ -88,7 +87,7 @@ diff --git a/res/layout/navigation_bar.xml b/res/layout/navigation_bar.xml index 8680e28..f39430a 100644 --- a/res/layout/navigation_bar.xml +++ b/res/layout/navigation_bar.xml @@ -1,7 +1,7 @@ @@ -10,6 +10,7 @@ android:id="@+id/go_back" android:layout_width="wrap_content" android:layout_height="wrap_content" + android:paddingRight ="@dimen/image_padding" android:src="@drawable/btn_back" /> \ No newline at end of file diff --git a/res/layout/settings.xml b/res/layout/settings.xml index a5b7323..0cdc95b 100644 --- a/res/layout/settings.xml +++ b/res/layout/settings.xml @@ -11,10 +11,9 @@ android:orientation="horizontal" > + android:layout_height="wrap_content" + layout="@layout/navigation_bar" /> - - - - + android:textSize="@dimen/text_size" + android:textColor="@color/black" > + + + + android:checked="true" + android:paddingRight="@dimen/image_padding" + android:paddingLeft="@dimen/image_padding" /> + @@ -135,11 +147,11 @@ - - + + + \ No newline at end of file diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml index 8b694bf..0c64fac 100644 --- a/res/values-zh-rCN/strings.xml +++ b/res/values-zh-rCN/strings.xml @@ -8,8 +8,7 @@ 开始测试 停止测试 - 采集频率: - + 采集频率(s) 发件人: 密码: SMTP服务器: @@ -66,6 +65,11 @@ 确定退出程序? 关于 - 邮件发送配置 - + 邮件配置 + 版本 + Emmagee是一个简单易上手的Android性能监测小工具, + 主要用于监控单个App的CPU,内存,流量,电量,电流以及整体性能状态, + 同时支持自定义的监控频率以及性能数据的实时显示. + 开发团队:网易(杭州)质量保障部 + 项目地址:https://github.com/NetEase/Emmagee diff --git a/res/values/dimens.xml b/res/values/dimens.xml index c816c4f..6933e35 100644 --- a/res/values/dimens.xml +++ b/res/values/dimens.xml @@ -18,5 +18,13 @@ 140dp 40dp - + + 10dp + 5dp + + 1px + + 5px + + 60dp diff --git a/res/values/strings.xml b/res/values/strings.xml index b3039aa..d417fea 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -8,8 +8,7 @@ Start Test Stop Test - Collecting Frequency: - Seconds + Collecting Frequency(s) Sender: Password: SMTP Server: @@ -64,5 +63,14 @@ OK Cancel Are you sure to exit? - + + About + Mail Settings + Version + Emmagee is a practical, handy performance test tool for specified + Android App, which can monitor CPU, memory, network traffic, battery current and status. + Additionally, it also provides several cool features such as customizing interval of collecting + data, rendering real-time process status in a floating window, and much more. + Team:QA, Netease(Hangzhou) + Project Address:https://github.com/NetEase/Emmagee diff --git a/src/com/netease/qa/emmagee/activity/AboutActivity.java b/src/com/netease/qa/emmagee/activity/AboutActivity.java index 8f90a44..da63067 100644 --- a/src/com/netease/qa/emmagee/activity/AboutActivity.java +++ b/src/com/netease/qa/emmagee/activity/AboutActivity.java @@ -16,14 +16,6 @@ */ package com.netease.qa.emmagee.activity; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.Properties; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - import android.app.Activity; import android.content.Intent; import android.content.pm.PackageInfo; @@ -33,18 +25,13 @@ import android.util.Log; import android.view.View; import android.view.Window; import android.view.View.OnClickListener; -import android.widget.Button; -import android.widget.CheckBox; -import android.widget.EditText; import android.widget.ImageView; import android.widget.TextView; -import android.widget.Toast; import com.netease.qa.emmagee.R; -import com.netease.qa.emmagee.utils.EncryptData; /** - * Setting Page of Emmagee + * About Page of Emmagee * * @author andrewleo */ @@ -76,17 +63,14 @@ public class AboutActivity extends Activity { goBack.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { - Intent intent = new Intent(); - intent.setClass(AboutActivity.this, SettingsActivity.class); - startActivityForResult(intent, Activity.RESULT_FIRST_USER); AboutActivity.this.finish(); } }); } /** - * 获取版本号 - * @return 当前应用的版本号 + * get app version + * @return app version */ public String getVersion() { try { diff --git a/src/com/netease/qa/emmagee/activity/MailSettingsActivity.java b/src/com/netease/qa/emmagee/activity/MailSettingsActivity.java index 6c5fd85..52aed3c 100644 --- a/src/com/netease/qa/emmagee/activity/MailSettingsActivity.java +++ b/src/com/netease/qa/emmagee/activity/MailSettingsActivity.java @@ -31,8 +31,6 @@ import android.util.Log; import android.view.View; import android.view.Window; import android.view.View.OnClickListener; -import android.widget.Button; -import android.widget.CheckBox; import android.widget.EditText; import android.widget.ImageView; import android.widget.TextView; @@ -42,7 +40,7 @@ import com.netease.qa.emmagee.R; import com.netease.qa.emmagee.utils.EncryptData; /** - * Setting Page of Emmagee + * Mail Setting Page of Emmagee * * @author andrewleo */ @@ -116,10 +114,9 @@ public class MailSettingsActivity extends Activity { MailSettingsActivity.this.finish(); } }); - // edtTime.setInputType(InputType.TYPE_CLASS_NUMBER); btnSave.setOnClickListener(new OnClickListener() { @Override - public void onClick(View v) { + public void onClick(View v) { sender = edtSender.getText().toString().trim(); if (!"".equals(sender) && !checkMailFormat(sender)) { Toast.makeText(MailSettingsActivity.this, getString(R.string.sender_mail_toast) + getString(R.string.format_incorrect_format), @@ -146,6 +143,7 @@ public class MailSettingsActivity extends Activity { } try { Properties properties = new Properties(); + properties.load(new FileInputStream(settingTempFile)); properties.setProperty("sender", sender); Log.d(LOG_TAG, "sender=" + sender); try { diff --git a/src/com/netease/qa/emmagee/activity/SettingsActivity.java b/src/com/netease/qa/emmagee/activity/SettingsActivity.java index 4321756..e424119 100644 --- a/src/com/netease/qa/emmagee/activity/SettingsActivity.java +++ b/src/com/netease/qa/emmagee/activity/SettingsActivity.java @@ -19,10 +19,7 @@ package com.netease.qa.emmagee.activity; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; -import java.io.IOException; import java.util.Properties; -import java.util.regex.Matcher; -import java.util.regex.Pattern; import android.app.Activity; import android.content.Intent; @@ -31,12 +28,12 @@ import android.util.Log; import android.view.View; import android.view.Window; import android.view.View.OnClickListener; -import android.widget.Button; import android.widget.CheckBox; -import android.widget.EditText; import android.widget.ImageView; import android.widget.LinearLayout; -import android.widget.Toast; +import android.widget.SeekBar; +import android.widget.SeekBar.OnSeekBarChangeListener; +import android.widget.TextView; import com.netease.qa.emmagee.R; import com.netease.qa.emmagee.utils.EncryptData; @@ -48,11 +45,10 @@ import com.netease.qa.emmagee.utils.EncryptData; */ public class SettingsActivity extends Activity { - private static final String LOG_TAG = "Emmagee-" - + SettingsActivity.class.getSimpleName(); + private static final String LOG_TAG = "Emmagee-" + SettingsActivity.class.getSimpleName(); private CheckBox chkFloat; - private EditText edtTime; + private TextView tvTime; private String time; private String settingTempFile; private LinearLayout about; @@ -65,15 +61,16 @@ public class SettingsActivity extends Activity { requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.settings); + Properties properties = new Properties(); final EncryptData des = new EncryptData("emmagee"); Intent intent = this.getIntent(); - settingTempFile = getBaseContext().getFilesDir().getPath() - + "\\EmmageeSettings.properties"; + settingTempFile = getBaseContext().getFilesDir().getPath() + "\\EmmageeSettings.properties"; chkFloat = (CheckBox) findViewById(R.id.floating); - edtTime = (EditText) findViewById(R.id.time); + tvTime = (TextView) findViewById(R.id.time); about = (LinearLayout) findViewById(R.id.about); mailSettings = (LinearLayout) findViewById(R.id.mail_settings); + SeekBar timeBar = (SeekBar) findViewById(R.id.timeline); ImageView btnSave = (ImageView) findViewById(R.id.btn_set); ImageView goBack = (ImageView) findViewById(R.id.go_back); @@ -81,10 +78,9 @@ public class SettingsActivity extends Activity { btnSave.setImageResource(R.drawable.actionbar_bg); try { - Properties properties = new Properties(); properties.load(new FileInputStream(settingTempFile)); - String interval = (null == properties.getProperty("interval"))?"":properties.getProperty("interval").trim(); - String isfloat = (null == properties.getProperty("isfloat"))?"":properties.getProperty("isfloat").trim(); + String interval = (null == properties.getProperty("interval")) ? "" : properties.getProperty("interval").trim(); + String isfloat = (null == properties.getProperty("isfloat")) ? "" : properties.getProperty("isfloat").trim(); time = "".equals(interval) ? "5" : interval; floatingTag = "false".equals(isfloat) ? false : true; } catch (FileNotFoundException e) { @@ -94,27 +90,52 @@ public class SettingsActivity extends Activity { Log.e(LOG_TAG, "Exception: " + e.getMessage()); e.printStackTrace(); } - edtTime.setText(time); + tvTime.setText(time); chkFloat.setChecked(floatingTag); + timeBar.setProgress(Integer.parseInt(time)); + timeBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() { + @Override + public void onProgressChanged(SeekBar arg0, int arg1, boolean arg2) { + tvTime.setText(Integer.toString(arg1 + 1)); + } + + @Override + public void onStartTrackingTouch(SeekBar arg0) { + } + + @Override + public void onStopTrackingTouch(SeekBar arg0) { + // when tracking stoped, update properties file + int interval = arg0.getProgress() + 1; + try { + Properties properties = new Properties(); + properties.load(new FileInputStream(settingTempFile)); + properties.setProperty("interval", Integer.toString(interval)); + FileOutputStream fos = new FileOutputStream(settingTempFile); + properties.store(fos, "Setting Data"); + fos.close(); + } catch (Exception e) { + e.printStackTrace(); + } + } + }); goBack.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { SettingsActivity.this.finish(); Intent intent = new Intent(); - intent.setClass(SettingsActivity.this, - MainPageActivity.class); + intent.setClass(SettingsActivity.this, MainPageActivity.class); startActivity(intent); } }); - + mailSettings.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { Intent intent = new Intent(); - intent.setClass(SettingsActivity.this, - MailSettingsActivity.class); - startActivityForResult(intent, Activity.RESULT_FIRST_USER); + intent.setClass(SettingsActivity.this, MailSettingsActivity.class); + startActivity(intent); } }); @@ -123,7 +144,7 @@ public class SettingsActivity extends Activity { public void onClick(View arg0) { Intent intent = new Intent(); intent.setClass(SettingsActivity.this, AboutActivity.class); - startActivityForResult(intent, Activity.RESULT_FIRST_USER); + startActivity(intent); } }); @@ -132,8 +153,8 @@ public class SettingsActivity extends Activity { public void onClick(View arg0) { try { Properties properties = new Properties(); - properties.setProperty("isfloat", - chkFloat.isChecked() ? "true" : "false"); + properties.load(new FileInputStream(settingTempFile)); + properties.setProperty("isfloat", chkFloat.isChecked() ? "true" : "false"); FileOutputStream fos = new FileOutputStream(settingTempFile); properties.store(fos, "Setting Data"); fos.close(); @@ -143,46 +164,6 @@ public class SettingsActivity extends Activity { } } }); - // edtTime.setInputType(InputType.TYPE_CLASS_NUMBER); - // btnSave.setOnClickListener(new OnClickListener() { - // @Override - // public void onClick(View v) { - // time = edtTime.getText().toString().trim(); - // if (!isNumeric(time)) { - // Toast.makeText(SettingsActivity.this, "输入数据无效,请重新输入", - // Toast.LENGTH_LONG).show(); - // edtTime.setText(""); - // } else if ("".equals(time) || Long.parseLong(time) == 0) { - // Toast.makeText(SettingsActivity.this, "输入数据为空,请重新输入", - // Toast.LENGTH_LONG).show(); - // edtTime.setText(""); - // } else if (Integer.parseInt(time) > 600) { - // Toast.makeText(SettingsActivity.this, "数据超过最大值600,请重新输入", - // Toast.LENGTH_LONG).show(); - // } else { - // try { - // Properties properties = new Properties(); - // properties.setProperty("interval", time); - // properties.setProperty("isfloat", - // chkFloat.isChecked() ? "true" : "false"); - // FileOutputStream fos = new FileOutputStream( - // settingTempFile); - // properties.store(fos, "Setting Data"); - // fos.close(); - // Toast.makeText(SettingsActivity.this, - // getString(R.string.save_success_toast), - // Toast.LENGTH_LONG).show(); - // Intent intent = new Intent(); - // setResult(Activity.RESULT_FIRST_USER, intent); - // SettingsActivity.this.finish(); - // } catch (FileNotFoundException e) { - // e.printStackTrace(); - // } catch (IOException e) { - // e.printStackTrace(); - // } - // } - // } - // }); } @Override diff --git a/src/com/netease/qa/emmagee/service/EmmageeService.java b/src/com/netease/qa/emmagee/service/EmmageeService.java index 91395d1..bc46bc7 100644 --- a/src/com/netease/qa/emmagee/service/EmmageeService.java +++ b/src/com/netease/qa/emmagee/service/EmmageeService.java @@ -229,13 +229,12 @@ public class EmmageeService extends Service { try { Properties properties = new Properties(); properties.load(new FileInputStream(settingTempFile)); - String interval = properties.getProperty("interval").trim(); - isFloating = "true".equals(properties.getProperty("isfloat").trim()) ? true : false; - sender = properties.getProperty("sender").trim(); - password = properties.getProperty("password").trim(); - recipients = properties.getProperty("recipients").trim(); + String interval = (null == properties.getProperty("interval")) ? "" : properties.getProperty("interval").trim(); + isFloating = "true".equals((null == properties.getProperty("isfloat")) ? "" : properties.getProperty("isfloat").trim()) ? true : false; + sender = (null == properties.getProperty("sender")) ? "" : properties.getProperty("sender").trim(); + password = (null == properties.getProperty("password")) ? "" : properties.getProperty("password").trim(); + recipients = (null == properties.getProperty("recipients")) ? "" : properties.getProperty("recipients").trim(); time = "".equals(interval) ? "5" : interval; - recipients = properties.getProperty("recipients"); receivers = recipients.split("\\s+"); smtp = properties.getProperty("smtp"); } catch (IOException e) { @@ -257,9 +256,11 @@ public class EmmageeService extends Service { else mDateTime = formatter.format(cal.getTime().getTime()); if (android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED)) { - //在4.0以下的低版本上/sdcard连接至/mnt/sdcard,而4.0以上版本则连接至/storage/sdcard0,所以有外接sdcard,/sdcard路径一定存在 - resultFilePath = "/sdcard"+ File.separator + "Emmagee_TestResult_" + mDateTime + ".csv"; - //resultFilePath = android.os.Environment.getExternalStorageDirectory() + File.separator + "Emmagee_TestResult_" + mDateTime + ".csv"; + // 在4.0以下的低版本上/sdcard连接至/mnt/sdcard,而4.0以上版本则连接至/storage/sdcard0,所以有外接sdcard,/sdcard路径一定存在 + resultFilePath = "/sdcard" + File.separator + "Emmagee_TestResult_" + mDateTime + ".csv"; + // resultFilePath = + // android.os.Environment.getExternalStorageDirectory() + + // File.separator + "Emmagee_TestResult_" + mDateTime + ".csv"; } else { resultFilePath = getBaseContext().getFilesDir().getPath() + File.separator + "Emmagee_TestResult_" + mDateTime + ".csv"; } @@ -272,24 +273,21 @@ public class EmmageeService extends Service { long totalMemorySize = memoryInfo.getTotalMemory(); String totalMemory = fomart.format((double) totalMemorySize / 1024); String multiCpuTitle = ""; - // titles of multiple cpu cores + // titles of multiple cpu cores ArrayList cpuList = cpuInfo.getCpuList(); - for(int i =0 ; i < cpuList.size(); i++){ + for (int i = 0; i < cpuList.size(); i++) { multiCpuTitle += "," + cpuList.get(i) + " " + getString(R.string.total_usage); } - bw.write(getString(R.string.process_package) + ": ," + packageName + "\r\n" - + getString(R.string.process_name) + ": ," + processName + "\r\n" - + getString(R.string.process_pid) + ": ," + pid + "\r\n" - + getString(R.string.mem_size) + ": ," + totalMemory + "MB\r\n" - + getString(R.string.cpu_type) + ": ," + cpuInfo.getCpuName() + "\r\n" - + getString(R.string.android_system_version) + ": ," + memoryInfo.getSDKVersion() + "\r\n" - + getString(R.string.mobile_type) + ": ," + memoryInfo.getPhoneType() + "\r\n" - + "UID" + ": ," + uid + "\r\n" - + START_TIME); + bw.write(getString(R.string.process_package) + ": ," + packageName + "\r\n" + getString(R.string.process_name) + ": ," + processName + + "\r\n" + getString(R.string.process_pid) + ": ," + pid + "\r\n" + getString(R.string.mem_size) + ": ," + totalMemory + "MB\r\n" + + getString(R.string.cpu_type) + ": ," + cpuInfo.getCpuName() + "\r\n" + getString(R.string.android_system_version) + ": ," + + memoryInfo.getSDKVersion() + "\r\n" + getString(R.string.mobile_type) + ": ," + memoryInfo.getPhoneType() + "\r\n" + "UID" + + ": ," + uid + "\r\n" + START_TIME); bw.write(getString(R.string.timestamp) + "," + getString(R.string.used_mem_PSS) + "," + getString(R.string.used_mem_ratio) + "," - + getString(R.string.mobile_free_mem) + "," + getString(R.string.app_used_cpu_ratio) + "," + getString(R.string.total_used_cpu_ratio) - + multiCpuTitle +"," + getString(R.string.traffic) + "," + getString(R.string.battery) + "," + getString(R.string.current) + "," - + getString(R.string.temperature) + "," + getString(R.string.voltage) + "\r\n"); + + getString(R.string.mobile_free_mem) + "," + getString(R.string.app_used_cpu_ratio) + "," + + getString(R.string.total_used_cpu_ratio) + multiCpuTitle + "," + getString(R.string.traffic) + "," + + getString(R.string.battery) + "," + getString(R.string.current) + "," + getString(R.string.temperature) + "," + + getString(R.string.voltage) + "\r\n"); } catch (IOException e) { Log.e(LOG_TAG, e.getMessage()); } @@ -507,10 +505,8 @@ public class EmmageeService extends Service { public void closeOpenedStream() { try { if (bw != null) { - bw.write(getString(R.string.comment1) + "\r\n" - + getString(R.string.comment2) + "\r\n" - + getString(R.string.comment3) + "\r\n" - + getString(R.string.comment4) + "\r\n"); + bw.write(getString(R.string.comment1) + "\r\n" + getString(R.string.comment2) + "\r\n" + getString(R.string.comment3) + "\r\n" + + getString(R.string.comment4) + "\r\n"); bw.close(); } if (osw != null) -- GitLab