Задайте легко идентифицируемое имя приложения, которое необходимо мониторить. Имя приложения будет отображаться в списке приложений и в соответствующем отчёте и будет представлять данное приложение.
Имя приложения может содержать буквы, цифры и китайские иероглифы, максимальная длина - 32 символа. При задании имени приложения рекомендуется избегать повторяющихся названий, чтобы не создавать ненужных сложностей.
Имя приложения можно изменить в любое время в настройках.
Перед использованием нового URL удалите старую версию.
Плагин Altynview Eclipse Plugin поддерживает Eclipse версий 3.8–4.4. Перед установкой подтвердите версию Eclipse, которую вы используете.
На Mac OS
Нажмите, чтобы открыть “About Eclipse”
На Windows
Нажмите, чтобы открыть “About Eclipse”

I. Откройте “About Eclipse”, чтобы проверить текущий номер версии.

II. Если вы не можете найти подробный номер версии, найдите его в “Eclipse Plugin”.

III. Как показано на рисунке, текущая версия Eclipse — 4.4.2.

I. В Eclipse IDE откройте меню “Help” и выберите “Install New Software”.

II. Нажмите кнопку “Add…” справа от “Work with”, чтобы добавить репозиторий плагинов Altynview.

III. Задайте имя репозитория (например, Altynview и т. п.). Укажите URL репозитория. URL для репозитория Eclipse 4.4:
http://download.Altynview.com/Altynviewapp/android_agent/eclipse_4.4
URL для репозитория Eclipse версии ниже 4.4:
http://download.Altynview.com/Altynviewapp/android_agent/eclipse

IV. В поле “Work with” выберите добавленный репозиторий. В списке ниже нажмите “Select All”, чтобы выбрать все плагины. Нажмите “Next >”, чтобы продолжить.

V. Здесь можно увидеть описание плагина. Нажмите “Next >”, чтобы продолжить.

VI. Здесь можно увидеть условия лицензии. Установите флажок “I accept the terms of the license agreement”. Нажмите “Finish>”, чтобы завершить.

VII. Довериться сертификату плагина и нажать “OK”.

VIII. Нажмите “Yes”, чтобы перезапустить Eclipse и завершить установку плагина.

Eclipse автоматически добавит библиотеку “nbs .newlens.agent.jar” в каталог libs. Если каталога libs нет — создайте его.

После настройки добавьте следующие разрешения в файл AndroidMainfest.xml проекта приложения, которое необходимо мониторить:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.READ_LOGS" />
<uses-permission android:name="android.permission.INTERNET" />
I. В стартовой MainActivity проекта, в который выполняется внедрение кода, импортируйте класс NBSAppAgent:
import com.networkbench.agent.impl.NBSAppAgent;
II. Инициализируйте агент Altynview SDK в методе onCreate() класса MainActivity (если метода onCreate() нет — создайте его вручную):
NBSAppAgent.setLicenseKey("AppKey").withLocationServiceEnabled(true).
start(this.getApplicationContext());
//Please get the Appkey from Altynview console
III. Инициализация (необязательно) агента Altynview SDK в методе onCreate() класса Application (также создайте onCreate(), если его нет):
Данная настройка требуется только для мониторинга производительности многопроцессных приложений.
NBSAppAgent.setLicenseKey("AppKey").withLocationServiceEnabled(true).
startInApplication(this.getApplicationContext());
//Please get the Appkey from Altynview console
IV. Если сбор данных о геолокации не требуется, используйте следующую настройку:
NBSAppAgent.setLicenseKey("AppKey").start(this.getApplicationContext());
//Please get the Appkey from Altynview console
I. Чтобы предотвратить случайное нарушение работы агента Altynview SDK, убедитесь, что следующие строки добавлены в конфигурационный файл обфускации proguard:
# ProGuard configurations for NetworkBench Lens
-keep class com.networkbench.** { *; }
-dontwarn com.networkbench.**
-keepattributes Exceptions, Signature,InnerClasses
# End NetworkBench Lens
II. Если необходимо сохранить дополнительную информацию о номерах строк, добавьте ещё одну строку в файл proguard.cfg:
-keepattributes SourceFile,LineNumberTable
Рекомендуется выполнить очистку проекта перед упаковкой, чтобы убедиться, что Altynview успешно настроен.

Выберите Export Signed Application Package…” для компиляции.

I. Eclipse в настоящее время поддерживает только среду JDK (1.5–1.8). (JRE отдельно не поддерживается).
II. При установке плагина Eclipse в Windows размещайте его в каталоге, путь к которому не содержит пробелов или специальных символов.
III. Плагину Eclipse требуется переменная окружения JAVA_HOME. Проверьте переменные окружения.
После упаковки запустите приложение, которое необходимо мониторить, на эмуляторе или Android-устройстве и выполните несколько сетевых запросов.
I. Проверка целостности сервера сбора данных
II. После завершения процесса внедрения кода выходные данные, записанные агентом Altynview SDK, можно посмотреть через встроенный инструмент “LogCat”; эти данные можно использовать для проверки целостности на сервере сбора данных. Тег для фильтрации в LogCat — “NBSAgent”. Стандартный формат логов следующий:
NBSAgent start
NBSAgent enabled
NBSAgent V “Altynview_Version”//Altynview_Version denotes the current SDK version
connect success
III. Проверка целостности функциональности данных
После завершения процесса внедрения кода выходные данные, записанные агентом Altynview SDK, можно посмотреть через встроенный инструмент “LogCat”; эти данные можно использовать для проверки целостности функциональности данных. Тег для фильтрации в LogCat — “Altynview”. Стандартный формат логов следующий:
D/Altynview: Crash switch is true
D/Altynview: webView switch is true
D/Altynview: ANR monitor switch is true
D/Altynview: UserAction Switch is true
D/Altynview: cdnSwitch Switch is true
I. Описание функции
Пользовательский идентификатор — это единственная информация, которая уникально идентифицирует текущего пользователя. UserID можно задавать в любом месте без влияния на функциональность.
II. Связанный API
//UserID can be composed of 64 characters at most, including English letters and Chinese characters, numbers, underscores. However, space and other escape characters are not permitted.
NBSAppAgent.setUserIdentifier("userIdentifier");
III. Пример кода
public class MainActivity extends Activity {
public void onCreate(BundlesavedInstanceState) {
super.onCreate(savedInstanceState);
String userIdentifier =getUserID(); NBSAppAgent.setLicenseKey("AppKey").withLocationServiceEnabled(true).
start(this.getApplicationContext());
NBSAppAgent.setUserIdentifier(userIdentifier);
}
}
I. Описание функции
Breadcrumb помогает разработчикам выявлять возможные причины случайных (нерегулярных) сбоев, что упрощает воспроизведение событий сбоя при совмещении сведений о путях выполнения кода и стек-трейсах.
II. Связанный API
//At most 100 characters are supported, including English letters, Chinese characters, numbers, and underscores.
NBSAppAgent.leaveBreadcrumb("keyPressed”);
NBSAppAgent.leaveBreadcrumb("loginDone");
III. Пример кода
public MyActivity extends Activity {
publicvoid onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
NBSAppAgent.setLicenseKey("AppKey").withLocationServiceEnabled(true).
start(this.getApplicationContext());
NBSAppAgent.leaveBreadcrumb("login MyActivityonCreate");
}
publicvoid onResume() {
super.onResume();
NBSAppAgent.leaveBreadcrumb("login MyActivityonResume");
}
publicvoid logginPressed(View view) {
NBSAppAgent.leaveBreadcrumb("login MyActivitylogginPressed");
new LoginAsyncTask.execute();
}
publicvoid onStop() {
super.onStop();
NBSAppAgent.leaveBreadcrumb("login MyActivityonStop");
}
}
I. Описание функции
Пользовательские события используются для сбора статистики по произвольным событиям в приложениях. Разработчики могут регистрировать пользовательские события в любой момент, при условии что агент SDK инициализирован; кроме того, разработчики могут настраивать параметры, связанные с отправкой данных, например в момент, когда пользователи нажимают кнопки виджетов или инициируют другие функциональные события.
II. Связанный API
//EVENT_ID supports 32 characters at maximum, including English letters, Chinese characters, numbers, and underscores; however, space and escape characters are not permitted.
NBSAppAgent.onEvent(String EVENT_ID);
III. Code Sample
@Override
public void onClick(View v) {
…………
NBSAppAgent.onEvent("Add to Cart");
…………
}
Из-за присущей Custom Trace связности (coupling) важно учитывать, что этот API нельзя использовать через границы метода или процесса; к другим ситуациям относятся асинхронная загрузка и рекурсивные вызовы.
I. Описание функции
По умолчанию Altynview SDK собирает данные о производительности системных классов и методов; однако он не может собирать аналогичные данные по пользовательским классам и методам, написанным разработчиками. Здесь помогает “Custom Trace”: позволяет разработчикам получать представление о надёжности кода и данных производительности. Например, если разработчиков интересует время выполнения инициализации и его влияние на производительность конкретного метода, они могут добавить вызовы “Custom Trace” в начале и в конце этого метода, чтобы достичь этих целей.
II. Связанный API (Associated API)
//To make it easier to distinguish from the rest of the logging output, the name is often set to the identifier of the current method (it can be set to arbitrary string value). The supported character set includes English letters, Chinese characters, numbers, underscores; space and other escape characters are not supported.
NBSAppAgent.beginTracer("String Name");
NBSAppAgent.endTracer("String Name");
III. Пример кода
//Custom Trace can be added at the beginning or end of any method as long as the SDK is initialized.
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
init();
}
private void init() {
//Add beginTracer call at the beginning of a method.
NBSAppAgent.beginTracer(“这是Init方法”);
try {
………
} catch(NameNotFoundException e) {
e.printStackTrace();
}
//Then add endTracer al the end of a method.
NBSAppAgent.endTracer(“这是Init方法”);
}
Для сбора информации из “LogCat” требуется специальное разрешение “READ_LOGS”. Добавьте следующий код в файл “AndroidManifest.xml” приложения. По умолчанию собирается 50 строк логов; это количество можно увеличить максимум до 100 строк.
< uses-permissionandroid:name="android.permission.READ_LOGS" >
I. Описание функции
Разработчики могут собирать и просматривать системный отладочный вывод через встроенный Android-инструмент логирования “LogCat”; информацию о приложении можно анализировать по log-выводу при возникновении ошибок; кроме того, пользовательский log-вывод может быть загружен через Altynview SDK.
II. Переключатель интерфейса управления
NBSAppAgent.setLicenseKey("AppKey").withLocationServiceEnabled(true).enableLogging(true).start(this.getApplicationContext());
III. Связанный API (Associated API)
NBSAppAgent.setLogging(int lineNumber);
NBSAppAgent.setLogging(String filter);
NBSAppAgent.setLogging(int lineNumber,String filter);
IV. Пример кода
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// Enablelogging
NBSAppAgent.setLicenseKey("AppKey").withLocationServiceEnabled(true).
enableLogging(true).start(this.getApplicationContext());
// Log last 100messages
NBSAppAgent.setLogging(100);
}
I. Описание функции
Разработчики могут использовать этот API в любом месте при условии, что вызовы располагаются после кода инициализации; можно добавить до 10 сообщений с дополнительной информацией, и каждое сообщение допускает загрузку до 100 байт при возникновении сбоя (crash).
II. Связанный API
NBSAppAgent.setUserCrashMessage(String key,Stringvalue);
III. Пример кода
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main); NBSAppAgent.setLicenseKey("AppKey").withLocationServiceEnabled(true).
start(this.getApplicationContext());
//Custom supplementary information can be inserted at any place after the initialization code
NBSAppAgent.setUserCrashMessage(“张三”,“13700001234”);
}
Создайте файлы конфигурации Altynview.properties как в корневом каталоге проекта, так и в каталоге модуля (module level) проекта, в который выполняется внедрение кода.
Altynview SDK предоставляет два способа настройки анти-обфускации.

I. Выберите модуль “Crash” в интерфейсе отчётов и нажмите “dSYM/Mapping File Management” в “Crash History List”.

II. Сначала найдите соответствующую версию, затем загрузите локальный файл “mapping”.
I. Добавьте следующие строки в файл “Altynview.properties”:
authKey=Altynview API authentication key, auto-generated on the reporting page
appKey=Altynview AppKey
mapping_file_auto_upload=true
II. Настройка кода аутентификации Authkey

a. Выберите “Authentication Code” после входа на страницу отчётов.

b. Скопируйте текущий код аутентификации и вставьте его в файл конфигурации “Altynview.properties”.
III. Настройка AppKey

Это тот же AppKey, что и в файле “Altynview.properties”; получите его после нажатия “Change Settings”.
IV. Настройка переключателя
mapping_file_auto_upload=true
V. Включение обфускатора (Enable obfuscator)
Переключатель “mapping_file_auto_upload” будет работать корректно только в случае, если обфускатор включён; после включения переключателя Altynview SDK автоматически загрузит локальный файл “mapping” на облачный сервер Altynview. Эта настройка не будет работать, если обфускатор не включён.
По умолчанию Altynview SDK внедряет код в библиотеку OkHttp серии 2.0. Выберите соответствующую версию для настройки; настройки, затрагивающие более одной версии, не допускаются.
I. Если используется OkHttp серии 2.0 — пропустите этот шаг.
II. Если используется OkHttp серии 3.0, добавьте следующую строку в файл “Altynview.properties”:
okhttp3.0=true
III. Если используется OkHttp серии 1.0, добавьте следующую строку в файл конфигурации “Altynview.properties”:
okhttp2.0=false
Данные производительности по виджету WebView (H5) собираются через callbacks в JavaScript; включите переключатель JavaScript callback:
WebView.setWebContentsDebuggingEnabled(**true**);
Разрешение JavaScript callbacks может нарушать безопасность системы на ОС Android серии 4.0; если безопасность является одним из ключевых приоритетов, рекомендуется включать эту опцию (или не включать её вовсе) только на Android версии 5.0 или выше.
I. Добавьте следующую строку в файл “Altynview.properties”:
webview=true
II. Сбор данных по виджету WebView требует дополнительного вызова метода setWebViewClient; если приложение, в которое внедряется код, не вызывает этот метод, добавьте следующую строку:
webview.setWebViewClient(new WebViewClient(){});
HttpURLConnection
AndroidHttpClient 4.0
Apache HttpClient ( > 4.0)
Volley+OkHttpClient
OkHttp 2.0 ( > 2.1)
OkHttp 1.0
Retrofit (> 1.9)
WebView(Native)
Android2.0 ~ Android7.0
Android SDK Agent может собирать следующие метрики использования путём внедрения блоков кода в определённые методы; данные на уровне методов, а также записи вызовов можно запрашивать напрямую с серверов отчётности:
Application Response Time (время отклика приложения)
DNS Resolution Time (время разрешения DNS)
TCP Connection Establishment Time (время установления TCP-соединения)
SSL Hand-Shake Time (время SSL-рукопожатия)
Initial Packet Arrival Time (время получения первого пакета)
Page Views (просмотры страниц)
Кроме того, Android SDK Agent может использоваться для сбора дополнительных данных по пулам потоков, базам данных, пользовательским параметрам и полям HTTP Request/Response.