Всем привет из далёких уголков нашей любимой и необъятной страны. Сегодня мы поговорим о мониторинге приложений. Это важный урок, который позволит отслеживать приложения и считать статистику запусков. Для начала нужно понять что такое приложение и как оно работает.
Нудная теория
Любое приложение делится на две части:
Подготовка к слежению
Что нам потребуется?
и регистрируем сервис:
Создаем наш сервис, где будем вести обработку:
Запуск в первой activity, которая стартует при запуске приложения:
Переходим к обработке:
После чего в app лежит та самая строка с activity.
Важный момент: мы можем ставить обработку как на всё приложение, так и на отдельные его окошки.
Как я узнаю какие существуют названия и как их посмотреть?
Это очень просто, заместо “//*log place” пишем код:
и увидим в logcat логи всех переключаемых приложений.
Как мне вставить свою обработку?
Нужно написать после получения переменной app:
Всегда приходит конец
Вот и материал пришел к логическому концу. Это хорошая база для написание инжектов, обработки действий для запущенных приложений, сбора статистики и всего что может прийти Вам в голову.
Спасибо за внимание =)
7ая часть: http://vlmi.top/threads/virusy-pod-android-7-chistka-apk-1.2159/
Нудная теория
Любое приложение делится на две части:
- Background – сервисы и тому подобное.
- Activity – то что показывается юзеру.
Подготовка к слежению
Что нам потребуется?
- Создать процесс (сервис к примеру), который будет раз в N секунд запрашиватьActivityManager и проверять какое приложение наверху.
- Выполнять любые действия, принимая во внимания эту информацию.
Код:
<uses-permission android:name="android.permission.GET_TASKS" />
Код:
<service android:name=".Monitor" />
Код:
public class Monitor extends Service {
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
return Service.START_STICKY;
}
@Override
public IBinder onBind(Intent intent) {
throw new UnsupportedOperationException("");
}
@Override
public void onCreate()
{
MyTimerTask myTask = new MyTimerTask();
Timer myTimer = new Timer();
myTimer.schedule(myTask, 0, 1000);
}
class MyTimerTask extends TimerTask {
public void run() {
// выполнение кода анализа процессов.
}
}
}
Код:
context.startService(new Intent(context, Monitor.class));
Код:
ActivityManager am = (ActivityManager) Context.getSystemService(cnt.ACTIVITY_SERVICE);
List<ActivityManager.RunningTaskInfo> taskInfo = am.getRunningTasks(1);
app = taskInfo.get(0).topActivity.getClassName();
//*log place
Важный момент: мы можем ставить обработку как на всё приложение, так и на отдельные его окошки.
Как я узнаю какие существуют названия и как их посмотреть?
Это очень просто, заместо “//*log place” пишем код:
Код:
Log.w("log",app);
Как мне вставить свою обработку?
Нужно написать после получения переменной app:
Код:
if(app.equals("name_activity"){
// делаем действия
}
Всегда приходит конец
Вот и материал пришел к логическому концу. Это хорошая база для написание инжектов, обработки действий для запущенных приложений, сбора статистики и всего что может прийти Вам в голову.
Спасибо за внимание =)
7ая часть: http://vlmi.top/threads/virusy-pod-android-7-chistka-apk-1.2159/
Последнее редактирование: