├── .classpath ├── .github └── ISSUE_TEMPLATE.md ├── .gitignore ├── .project ├── .settings └── org.eclipse.core.resources.prefs ├── AUTHORS ├── AndroidManifest.xml ├── LICENSE ├── README.md ├── VERSION ├── changelog.md ├── emmagee.xml ├── libs ├── activation.jar ├── additionnal.jar ├── android-support-v4.jar ├── commons-io-2.5.jar └── mail.jar ├── project.properties ├── res ├── drawable-hdpi │ ├── actionbar_bg.9.png │ ├── bottom_bg.png │ ├── btn_back.png │ ├── btn_save.png │ ├── btn_test.png │ ├── btn_test_press.png │ ├── button_bg.png │ ├── checked_icon.png │ ├── close.png │ ├── ic_launcher.png │ ├── icon.png │ ├── left_arrow.png │ ├── meminfo.png │ ├── refresh.png │ ├── right_arrow.png │ ├── seekbar_thumb_normal.png │ ├── seekbar_thumb_pressed.png │ ├── settings.png │ ├── settings_pressed.png │ └── unchecked_icon.png ├── drawable-ldpi │ ├── ic_launcher.png │ ├── icon.png │ └── meminfo.png ├── drawable-mdpi │ ├── button_bg.png │ ├── ic_launcher.png │ ├── icon.png │ └── meminfo.png ├── drawable │ ├── custom_checkbox.xml │ ├── custom_seekbar.xml │ ├── float_button.xml │ ├── seekbar_thumb.xml │ ├── settings_button.xml │ ├── table_border.xml │ └── test_button.xml ├── layout │ ├── about.xml │ ├── floating.xml │ ├── list_item.xml │ ├── mail_settings.xml │ ├── mainpage.xml │ ├── navigation_bar.xml │ ├── settings.xml │ ├── table_row.xml │ ├── test_list.xml │ ├── test_list_item.xml │ └── test_report.xml ├── values-zh-rCN │ └── strings.xml └── values │ ├── colors.xml │ ├── dimens.xml │ ├── strings.xml │ └── styles.xml └── src └── com └── netease └── qa └── emmagee ├── activity ├── AboutActivity.java ├── MailSettingsActivity.java ├── MainPageActivity.java ├── SettingsActivity.java ├── TestListActivity.java └── TestReportActivity.java ├── service └── EmmageeService.java └── utils ├── Constants.java ├── CpuInfo.java ├── CurrentInfo.java ├── CustomizedAuthenticator.java ├── EncryptData.java ├── FpsInfo.java ├── MailSender.java ├── MemoryInfo.java ├── MyApplication.java ├── ProcessInfo.java ├── Programe.java ├── Settings.java ├── TrafficInfo.java └── WakeLockHelper.java /.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | ## The problem 2 | 3 | Describe the issue you are experiencing, or features you want. 4 | 5 | ## Environment 6 | 7 | * Emmagee version 8 | * Device Information: **Brand**, **Model**, **System**. 9 | 10 | ## Link to Emmagee logs 11 | 12 | Create a [GIST](https://gist.github.com) which is a paste of your _full_ Emmagee logs, and link them here. 13 | Do _NOT_ paste your full Emmagee logs here, as it will make this issue very long and hard to read! 14 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # built application files 2 | *.apk 3 | *.ap_ 4 | 5 | # files for the dex VM 6 | *.dex 7 | 8 | # Java class files 9 | *.class 10 | 11 | # generated files 12 | bin/ 13 | gen/ 14 | 15 | # Local configuration file (sdk path, etc) 16 | local.properties 17 | 18 | lint.xml 19 | .DS_Store -------------------------------------------------------------------------------- /.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | Emmagee 4 | 5 | 6 | 7 | 8 | 9 | com.android.ide.eclipse.adt.ResourceManagerBuilder 10 | 11 | 12 | 13 | 14 | com.android.ide.eclipse.adt.PreCompilerBuilder 15 | 16 | 17 | 18 | 19 | org.eclipse.jdt.core.javabuilder 20 | 21 | 22 | 23 | 24 | com.android.ide.eclipse.adt.ApkBuilder 25 | 26 | 27 | 28 | 29 | 30 | com.android.ide.eclipse.adt.AndroidNature 31 | org.eclipse.jdt.core.javanature 32 | 33 | 34 | -------------------------------------------------------------------------------- /.settings/org.eclipse.core.resources.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | encoding/=UTF-8 3 | -------------------------------------------------------------------------------- /AUTHORS: -------------------------------------------------------------------------------- 1 | * KevinKong 2 | * andrewleo 3 | * bingoHuang 4 | -------------------------------------------------------------------------------- /AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 14 | 19 | 20 | 21 | 22 | 23 | 24 | 29 | 32 | 35 | 38 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2012-2013 NetEase, Inc. and other contributors 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software 10 | distributed under the License is distributed on an "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | See the License for the specific language governing permissions and 13 | limitations under the License. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## Emmagee - a practical, handy performance test tool for specified Android App 2 | 3 | Emmagee is a practical, handy performance test tool for specified Android App, which can monitor CPU, memory, 4 | network traffic, battery current and status([Some devices are not supported](https://github.com/NetEase/Emmagee/wiki/Some-devices-are-not-supported)), new features such as top activity and heap size if rooted([Root Toast may continously show](https://github.com/NetEase/Emmagee/wiki/FAQ)), are also supported in the [latest version](https://github.com/NetEase/Emmagee/releases). Additionally, it also provides several cool features such as customizing interval of collecting data, 5 | rendering real-time process status in a floating window, and much more. 6 | 7 | * Homepage: https://github.com/NetEase/Emmagee 8 | * Wiki: https://github.com/NetEase/Emmagee/wiki 9 | * Issues: https://github.com/NetEase/Emmagee/issues 10 | * FAQ: https://github.com/NetEase/Emmagee/wiki/FAQ 11 | * Tags: Android, Java 12 | 13 |    14 | 15 | ## Why should I use Emmagee? 16 | 17 | Unlike most other performance test tools that only do system-level monitoring, Emmagee provides the ability to monitor any single App. Other advantages that 18 | you should not miss: 19 | * Open source 20 | * Easy to use 21 | * Process-specific monitoring, including CPU, memory, network traffic, battery current, launching time and status 22 | * Floating window that renders real-time process status 23 | * CSV format report that can be converted into any other format you want 24 | * User-defined collecting interval 25 | * Fully support Android 2.2 and above 26 | 27 | ## How to use Emmagee? 28 | 29 | First of all ,you should have Emmagee.apk,download [here](https://github.com/NetEase/Emmagee/releases) or 30 | build the apk file youself [here](https://github.com/NetEase/Emmagee/wiki/How-to-build-emmage.apk%3F),then : 31 | 32 | 1. Start Emmagee App 33 | 2. Configure interval 34 | 3. Select a target process 35 | 4. Click Start button 36 | 37 | And Enjoy! 38 | 39 | If you want to stop the test, just go back to Emmagee and click Stop button. 40 | 41 | ## Android 5.0 and above 42 | 43 | * `Android 5.0 and above`: getRunningTasks() and getRunningAppProcesses() are deprecated and only return your application process, so it is unable to get TopActivity from Android 5.0. 44 | * `Android 7.0`: Google has restricted access to /proc, and also can not get pid of target application from TOP command in Android 7.0, I am so sorry to tell that 7.0 can not be supported. 45 | 46 | ## Coming Soon 47 | * We want you to decide! 48 | 49 | ## How to Contribute? 50 | 51 | You are welcome to contribute to Emmagee, meanwhile you'd better follow the rules below 52 | 53 | * It's *NOT* recommended to submit a pull request directly to Emmagee's `master` branch. `develop` branch is more appropriate 54 | * Follow common Java coding conventions 55 | * Put all Java class files under *com.netease* package 56 | * Add the following [license](#license) in each Java class file 57 | 58 | ## Contributors 59 | * NetEase, Inc. 60 | * [yrom](https://github.com/yrom) 61 | * [LukeOwncloud](https://github.com/LukeOwncloud) 62 | 63 | ## License 64 | (The Apache License) 65 | 66 | Copyright (c) 2012-2015 NetEase, Inc. and other contributors 67 | 68 | Licensed under the Apache License, Version 2.0 (the "License"); 69 | you may not use this file except in compliance with the License. 70 | You may obtain a copy of the License at 71 | 72 | http://www.apache.org/licenses/LICENSE-2.0 73 | 74 | Unless required by applicable law or agreed to in writing, software 75 | distributed under the License is distributed on an "AS IS" BASIS, 76 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 77 | See the License for the specific language governing permissions and 78 | limitations under the License. 79 | -------------------------------------------------------------------------------- /VERSION: -------------------------------------------------------------------------------- 1 | 2.4 2 | -------------------------------------------------------------------------------- /changelog.md: -------------------------------------------------------------------------------- 1 | Emmagee Changelog 2 | 3 | ###2.0 (2014-9-22) 4 | New Features: 5 | * Optimization of UI 6 | * I18N support(Chinese Simplified and English) 7 | * Collect usage of each CPU cores 8 | 9 | Issues Fixed: 10 | * #16 'Save' button is covered when soft keyboard pops up 11 | * #20 Strings hard-coded for language 12 | * #21 CSV report enhancement 13 | * #24 Floating window disappears on some specific devices 14 | * #25 Report unavailable path of CSV when test is over 15 | * #26 Dulplicated toast when test is over 16 | 17 | ###1.3.0 (2014-1-6) 18 | New Features: 19 | * Integrate monitoring of app starting time 20 | 21 | Issues fixed 22 | * #12 Add "stop test" button on floating window 23 | * #13 Optimize interface and user experience 24 | 25 | ###1.2.1 (2013-11-25) 26 | Issues fixed: 27 | * #10 The CSV report displays abnormally when free memory is above 1000. 28 | 29 | Improvements to : 30 | * #9 List the application with alphabet order. 31 | 32 | ###1.2.0 (2013-9-17) 33 | * Support quad-core CPU 34 | * Integrate monitoring of battery current and status 35 | 36 | ###1.1.0 (2013-4-8) 37 | * Configure specified recipients to receive test reports 38 | * Automaticly save the result when monitoring app stops 39 | 40 | ###1.0.0 (2013-1-18) 41 | * Process-specific monitoring 42 | * Floating window that renders real-time process status 43 | * CSV format report that can be converted into any other format you want 44 | * User-defined collecting interval 45 | -------------------------------------------------------------------------------- /emmagee.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 21 | 22 | 25 | 26 | 27 | 28 | 29 | 30 | 34 | 35 | 38 | 39 | 40 | 41 | 42 | 43 | 46 | 47 | 50 | 51 | 52 | 53 | 54 | 55 | 59 | 60 | 63 | 64 | 65 | 66 | 67 | 68 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | -------------------------------------------------------------------------------- /libs/activation.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetEase/Emmagee/6a382dffe74b5be6d2de78cb0c640cc67e9ce650/libs/activation.jar -------------------------------------------------------------------------------- /libs/additionnal.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetEase/Emmagee/6a382dffe74b5be6d2de78cb0c640cc67e9ce650/libs/additionnal.jar -------------------------------------------------------------------------------- /libs/android-support-v4.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetEase/Emmagee/6a382dffe74b5be6d2de78cb0c640cc67e9ce650/libs/android-support-v4.jar -------------------------------------------------------------------------------- /libs/commons-io-2.5.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetEase/Emmagee/6a382dffe74b5be6d2de78cb0c640cc67e9ce650/libs/commons-io-2.5.jar -------------------------------------------------------------------------------- /libs/mail.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetEase/Emmagee/6a382dffe74b5be6d2de78cb0c640cc67e9ce650/libs/mail.jar -------------------------------------------------------------------------------- /project.properties: -------------------------------------------------------------------------------- 1 | # This file is automatically generated by Android Tools. 2 | # Do not modify this file -- YOUR CHANGES WILL BE ERASED! 3 | # 4 | # This file must be checked in Version Control Systems. 5 | # 6 | # To customize properties used by the Ant build system use, 7 | # "ant.properties", and override values to adapt the script to your 8 | # project structure. 9 | 10 | # Project target. 11 | target=android-19 12 | -------------------------------------------------------------------------------- /res/drawable-hdpi/actionbar_bg.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetEase/Emmagee/6a382dffe74b5be6d2de78cb0c640cc67e9ce650/res/drawable-hdpi/actionbar_bg.9.png -------------------------------------------------------------------------------- /res/drawable-hdpi/bottom_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetEase/Emmagee/6a382dffe74b5be6d2de78cb0c640cc67e9ce650/res/drawable-hdpi/bottom_bg.png -------------------------------------------------------------------------------- /res/drawable-hdpi/btn_back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetEase/Emmagee/6a382dffe74b5be6d2de78cb0c640cc67e9ce650/res/drawable-hdpi/btn_back.png -------------------------------------------------------------------------------- /res/drawable-hdpi/btn_save.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetEase/Emmagee/6a382dffe74b5be6d2de78cb0c640cc67e9ce650/res/drawable-hdpi/btn_save.png -------------------------------------------------------------------------------- /res/drawable-hdpi/btn_test.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetEase/Emmagee/6a382dffe74b5be6d2de78cb0c640cc67e9ce650/res/drawable-hdpi/btn_test.png -------------------------------------------------------------------------------- /res/drawable-hdpi/btn_test_press.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetEase/Emmagee/6a382dffe74b5be6d2de78cb0c640cc67e9ce650/res/drawable-hdpi/btn_test_press.png -------------------------------------------------------------------------------- /res/drawable-hdpi/button_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetEase/Emmagee/6a382dffe74b5be6d2de78cb0c640cc67e9ce650/res/drawable-hdpi/button_bg.png -------------------------------------------------------------------------------- /res/drawable-hdpi/checked_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetEase/Emmagee/6a382dffe74b5be6d2de78cb0c640cc67e9ce650/res/drawable-hdpi/checked_icon.png -------------------------------------------------------------------------------- /res/drawable-hdpi/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetEase/Emmagee/6a382dffe74b5be6d2de78cb0c640cc67e9ce650/res/drawable-hdpi/close.png -------------------------------------------------------------------------------- /res/drawable-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetEase/Emmagee/6a382dffe74b5be6d2de78cb0c640cc67e9ce650/res/drawable-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /res/drawable-hdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetEase/Emmagee/6a382dffe74b5be6d2de78cb0c640cc67e9ce650/res/drawable-hdpi/icon.png -------------------------------------------------------------------------------- /res/drawable-hdpi/left_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetEase/Emmagee/6a382dffe74b5be6d2de78cb0c640cc67e9ce650/res/drawable-hdpi/left_arrow.png -------------------------------------------------------------------------------- /res/drawable-hdpi/meminfo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetEase/Emmagee/6a382dffe74b5be6d2de78cb0c640cc67e9ce650/res/drawable-hdpi/meminfo.png -------------------------------------------------------------------------------- /res/drawable-hdpi/refresh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetEase/Emmagee/6a382dffe74b5be6d2de78cb0c640cc67e9ce650/res/drawable-hdpi/refresh.png -------------------------------------------------------------------------------- /res/drawable-hdpi/right_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetEase/Emmagee/6a382dffe74b5be6d2de78cb0c640cc67e9ce650/res/drawable-hdpi/right_arrow.png -------------------------------------------------------------------------------- /res/drawable-hdpi/seekbar_thumb_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetEase/Emmagee/6a382dffe74b5be6d2de78cb0c640cc67e9ce650/res/drawable-hdpi/seekbar_thumb_normal.png -------------------------------------------------------------------------------- /res/drawable-hdpi/seekbar_thumb_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetEase/Emmagee/6a382dffe74b5be6d2de78cb0c640cc67e9ce650/res/drawable-hdpi/seekbar_thumb_pressed.png -------------------------------------------------------------------------------- /res/drawable-hdpi/settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetEase/Emmagee/6a382dffe74b5be6d2de78cb0c640cc67e9ce650/res/drawable-hdpi/settings.png -------------------------------------------------------------------------------- /res/drawable-hdpi/settings_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetEase/Emmagee/6a382dffe74b5be6d2de78cb0c640cc67e9ce650/res/drawable-hdpi/settings_pressed.png -------------------------------------------------------------------------------- /res/drawable-hdpi/unchecked_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetEase/Emmagee/6a382dffe74b5be6d2de78cb0c640cc67e9ce650/res/drawable-hdpi/unchecked_icon.png -------------------------------------------------------------------------------- /res/drawable-ldpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetEase/Emmagee/6a382dffe74b5be6d2de78cb0c640cc67e9ce650/res/drawable-ldpi/ic_launcher.png -------------------------------------------------------------------------------- /res/drawable-ldpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetEase/Emmagee/6a382dffe74b5be6d2de78cb0c640cc67e9ce650/res/drawable-ldpi/icon.png -------------------------------------------------------------------------------- /res/drawable-ldpi/meminfo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetEase/Emmagee/6a382dffe74b5be6d2de78cb0c640cc67e9ce650/res/drawable-ldpi/meminfo.png -------------------------------------------------------------------------------- /res/drawable-mdpi/button_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetEase/Emmagee/6a382dffe74b5be6d2de78cb0c640cc67e9ce650/res/drawable-mdpi/button_bg.png -------------------------------------------------------------------------------- /res/drawable-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetEase/Emmagee/6a382dffe74b5be6d2de78cb0c640cc67e9ce650/res/drawable-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /res/drawable-mdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetEase/Emmagee/6a382dffe74b5be6d2de78cb0c640cc67e9ce650/res/drawable-mdpi/icon.png -------------------------------------------------------------------------------- /res/drawable-mdpi/meminfo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NetEase/Emmagee/6a382dffe74b5be6d2de78cb0c640cc67e9ce650/res/drawable-mdpi/meminfo.png -------------------------------------------------------------------------------- /res/drawable/custom_checkbox.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /res/drawable/custom_seekbar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /res/drawable/float_button.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /res/drawable/seekbar_thumb.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /res/drawable/settings_button.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /res/drawable/table_border.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 8 | 9 | 14 | 15 | -------------------------------------------------------------------------------- /res/drawable/test_button.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /res/layout/about.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 12 | 13 | 17 | 18 | 19 | 29 | 30 | 36 | 37 | 42 | 43 | 47 | 48 | 56 | 57 | 58 | 64 | 65 | 70 | 71 | 76 | 77 | 78 | 79 | 84 | 85 | 91 | 92 | 98 | 99 | 107 | 108 | 114 | 115 | 121 | 122 | 123 | 124 | 125 | -------------------------------------------------------------------------------- /res/layout/floating.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 10 | 11 | 18 | 19 | 26 | 27 | 34 | 35 | 43 | 44 | 52 | 53 | 58 | 59 |