«Советы по тестированию стабильности приложений» | Процесс и метод тестирования стабильности мобильных приложений/приложений на основе Monkey
«Советы по тестированию стабильности приложений» | Процесс и метод тестирования стабильности мобильных приложений/приложений на основе Monkey

1 Что такое обезьяна?

  • MonkeyэтоAndroidИнструмент для автоматизации тестирования платформы.,В основном используется для проверки стабильности;
  • MonkeyМожет имитировать серию пользовательских операций,Например, прикосновение к экрану, скольжение, нажатие кнопок и т. д.,Стресс-тест этих операций,Сколько времени потребуется, чтобы программа обнаружения стала ненормальной?
  • MonkeyдаAndroidСистема поставляется с,использоватьjavaнаписано;
  • MonkeyПуть хранения:
Язык кода:python
кодКоличество запусков:0
копировать
/system/framework/monkey.jar
Вставьте сюда описание изображения
Вставьте сюда описание изображения

2 Обезьяний стартап

  • monkey.jarзапускатьиспользоватьshellСкрипт,иshellСкриптмагазинизпутьсуществовать:
Язык кода:python
кодКоличество запусков:0
копировать
 /system/bin/monkey
Вставьте сюда описание изображения
Вставьте сюда описание изображения
  • Есть два способа начать:
Язык кода:python
кодКоличество запусков:0
копировать
# Способ 1 (выполнить прямо из командной строки на ПК):
adb shell monkey {параметр}

# Способ 2 (ввод исполнения устройства):
Введите устройство: adb shell 
monkey {параметр}
  • Например, вы можете просмотретьmonkeyизпараметр:
Язык кода:python
кодКоличество запусков:0
копировать
adb shell monkey -help
Язык кода:python
кодКоличество запусков:0
копировать
C:\Users\Administrator>adb shell monkey -help
usage: monkey [-p ALLOWED_PACKAGE [-p ALLOWED_PACKAGE] ...]
              [-c MAIN_CATEGORY [-c MAIN_CATEGORY] ...]
              [--ignore-crashes] [--ignore-timeouts]
              [--ignore-security-exceptions]
              [--monitor-native-crashes] [--ignore-native-crashes]
              [--kill-process-after-error] [--hprof]
              [--pct-touch PERCENT] [--pct-motion PERCENT]
              [--pct-trackball PERCENT] [--pct-syskeys PERCENT]
              [--pct-nav PERCENT] [--pct-majornav PERCENT]
              [--pct-appswitch PERCENT] [--pct-flip PERCENT]
              [--pct-anyevent PERCENT] [--pct-pinchzoom PERCENT]
              [--pct-permission PERCENT]
              [--pkg-blacklist-file PACKAGE_BLACKLIST_FILE]
              [--pkg-whitelist-file PACKAGE_WHITELIST_FILE]
              [--wait-dbg] [--dbg-no-events]
              [--setup scriptfile] [-f scriptfile [-f scriptfile] ...]
              [--port port]
              [-s SEED] [-v [-v] ...]
              [--throttle MILLISEC] [--randomize-throttle]
              [--profile-wait MILLISEC]
              [--device-sleep-time MILLISEC]
              [--randomize-script]
              [--script-log]
              [--bugreport]
              [--periodic-bugreport]
              [--permission-target-system]
              COUNT

3 Как работает Обезьяна?

  • Как это работаетда:использоватьsocketкоммуникацияизспособ имитации действий пользователя,Такие как ввод ключа, ввод сенсорного экрана、Ввод жестами и т. д.;
  • Для более подробной информации (из сводки сети):

1、runMonkeyCyles()Получить события,после того, как мероприятие закончилось,ПозвонивgetNextEvent()Метод получения следующего события; 2、из очереди событий Получить события,Необходимо настроить очередь событийMonkeyEventQueue,Очередь состоит изMonkeyEventсоставляют; 3、MonkeyEventпроходитьcommandШаблоны проектирования будут конкретнымиизсобытие(нравиться:MonkeyActivityEventMonkeyKeyEventMonkeyMotionEvent)проходитьinjectEvent()Методы внедряются в систему один за другим.。

4 Как использовать Обезьяна

4.1 Проверьте указанное приложение

4.1.1 Описание параметров

  • использовать-pпараметр Вот и все;
  • Долженпараметросновнойдапозволятьmonkeyразрешить системузапускатьобозначениеизapp
  • Например, укажите пакет,Мы скачали тот, который поддерживает Android6.0изqq,Андроид 6.0QQ

4.1.2 Устранение ошибок

  • Если после использования команды для установки будет предложена следующая информация:
Язык кода:python
кодКоличество запусков:0
копировать
Failure [INSTALL_FAILED_NO_MATCHING_ABIS]
  • этотдапотому что ДолженAPPи симуляторизCPUАрхитектура другая,我этот里修改了Вниз模拟器изCPUСтруктураARMиз,Создано ранееиздаX86Архитектураиз;
  • После перехода на новую архитектуру я вошел в систему.,и переустановитьapk
Язык кода:python
кодКоличество запусков:0
копировать
adb install QQv5.apk /data/local/tmp
Язык кода:python
кодКоличество запусков:0
копировать
F:\monkey_test>adb install ls /data/local/tmp
Performing Push Install
adb.exe: need APK file on command line

F:\monkey_test>adb install QQv5.apk /data/local/tmp
Performing Push Install
QQv5.apk: 1 file pushed, 0 skipped. 11.8 MB/s (22506899 bytes in 1.817s)
        pkg: /data/local/tmp/QQv5.apk
        ver: /data/local/tmp
Success
  • Наконец установка прошла успешно:
    Вставьте сюда описание изображения
    Вставьте сюда описание изображения

4.1.3 Запустить указанный apk

  • использоватьк Запустите команду для просмотра установкиизпутьки пакетыиз Имяcom.tencent.mobileqqi
Язык кода:python
кодКоличество запусков:0
копировать
adb shell ls /data/data
Язык кода:python
кодКоличество запусков:0
копировать
com.android.smoketest
com.android.smoketest.tests
com.android.soundrecorder
com.android.statementservice
com.android.systemui
com.android.vpndialogs
com.android.wallpaper.livepicker
com.android.webview
com.android.widgetpreview
com.example.android.apis
com.example.android.livecubes
com.example.android.softkeyboard
com.svox.pico
com.tencent.mobileqqi
jp.co.omronsoft.openwnn
  • использоватьmonkeyзапускатьcom.tencent.mobileqqiи сделать2считать:
Язык кода:python
кодКоличество запусков:0
копировать
adb shell monkey -p com.tencent.mobileqqi 2
  • нравиться Если ты хочешьиспользоватьmokeyслучайныйзапускатькто-тоapkи отправитьNслучайные события,использовать:
Язык кода:python
кодКоличество запусков:0
копировать
adb shell monkey -p имя пакета N

4.2 Отображение уровня журнала

4.2.1 Описание параметров

  • использовать-vпараметр,Уровень журнала обратной связи;
  • Есть три журнала:

уровень

параметр

иллюстрировать

Level0

-v

Запуск, завершение теста, информация об окончательном результате

Level1

-v -v

Подробный журнал,каждыйActivityинформация о событии

Level2

-v -v -v

Самый подробный лог

4.2.2 Отображение журнала

  • Level0Информация журнала:
Язык кода:python
кодКоличество запусков:0
копировать
F:\monkey_test>adb shell monkey -p com.tencent.mobileqqi -v 2
:Monkey: seed=1701146443923 count=2
:AllowPackage: com.tencent.mobileqqi
:IncludeCategory: android.intent.category.LAUNCHER
:IncludeCategory: android.intent.category.MONKEY
// Event percentages:
//   0: 15.0%
//   1: 10.0%
//   2: 2.0%
//   3: 15.0%
//   4: -0.0%
//   5: -0.0%
//   6: 25.0%
//   7: 15.0%
//   8: 2.0%
//   9: 2.0%
//   10: 1.0%
//   11: 13.0%
:Switch: #Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;launchFlags=0x10200000;component=com.tencent.mobileqqi/com.tencent.mobileqq.activity.SplashActivity;end
    // Allowing start of Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.tencent.mobileqqi/com.tencent.mobileqq.activity.SplashActivity } in package com.tencent.mobileqqi
:Sending Touch (ACTION_DOWN): 0:(191.0,846.0)
  • Level1Информация журнала:
Язык кода:python
кодКоличество запусков:0
копировать
F:\monkey_test>adb shell monkey -p com.tencent.mobileqqi -v -v 2
:Monkey: seed=1701146536977 count=2
:AllowPackage: com.tencent.mobileqqi
:IncludeCategory: android.intent.category.LAUNCHER
:IncludeCategory: android.intent.category.MONKEY
// Selecting main activities from category android.intent.category.LAUNCHER
//   + Using main activity com.tencent.mobileqq.activity.SplashActivity (from package com.tencent.mobileqqi)
// Selecting main activities from category android.intent.category.MONKEY
// Seeded: 1701146536977
// Event percentages:
//   0: 15.0%
//   1: 10.0%
//   2: 2.0%
//   3: 15.0%
//   4: -0.0%
//   5: -0.0%
//   6: 25.0%
//   7: 15.0%
//   8: 2.0%
//   9: 2.0%
//   10: 1.0%
//   11: 13.0%
:Switch: #Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;launchFlags=0x10200000;component=com.tencent.mobileqqi/com.tencent.mobileqq.activity.SplashActivity;end
    // Allowing start of Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.tencent.mobileqqi/com.tencent.mobileqq.activity.SplashActivity } in package com.tencent.mobileqqi
Sleeping for 0 milliseconds
:Sending Key (ACTION_DOWN): 23    // KEYCODE_DPAD_CENTER
    // Allowing start of Intent { cmp=com.tencent.mobileqqi/com.tencent.mobileqq.activity.LoginActivity } in package com.tencent.mobileqqi
    // activityResuming(com.tencent.mobileqqi)
Events injected: 2
:Sending rotation degree=0, persist=false
:Dropped: keys=0 pointers=0 trackballs=0 flips=0 rotations=0
## Network stats: elapsed time=1915ms (0ms mobile, 0ms wifi, 1915ms not connected)
// Monkey finished
  • Level2Информация журнала:
Язык кода:python
кодКоличество запусков:0
копировать
F:\monkey_test>adb shell monkey -p com.tencent.mobileqqi -v -v -v 2
:Monkey: seed=1701146594293 count=2
:AllowPackage: com.tencent.mobileqqi
:IncludeCategory: android.intent.category.LAUNCHER
:IncludeCategory: android.intent.category.MONKEY
// Selecting main activities from category android.intent.category.LAUNCHER
//   - NOT USING main activity com.android.contacts.activities.PeopleActivity (from package com.android.contacts)
//   - NOT USING main activity com.android.dialer.DialtactsActivity (from package com.android.dialer)
//   - NOT USING main activity com.android.settings.Settings (from package com.android.settings)
//   - NOT USING main activity com.android.browser.BrowserActivity (from package com.android.browser)
//   - NOT USING main activity com.android.calendar.AllInOneActivity (from package com.android.calendar)
//   - NOT USING main activity com.android.deskclock.DeskClock (from package com.android.deskclock)
//   - NOT USING main activity com.android.email.activity.Welcome (from package com.android.email)
//   - NOT USING main activity com.android.camera.GalleryPicker (from package com.android.gallery)
//   - NOT USING main activity com.android.camera.Camera (from package com.android.camera)
//   - NOT USING main activity com.android.music.MusicBrowserActivity (from package com.android.music)
//   - NOT USING main activity com.android.messaging.ui.conversationlist.ConversationListActivity (from package com.android.messaging)
//   - NOT USING main activity com.example.android.apis.ApiDemos (from package com.example.android.apis)
//   - NOT USING main activity com.android.gesture.builder.GestureBuilderActivity (from package com.android.gesture.builder)
//   - NOT USING main activity com.android.widgetpreview.WidgetPreviewActivity (from package com.android.widgetpreview)
//   - NOT USING main activity com.android.backuptester.MainActivity (from package com.android.backuptester)
//   - NOT USING main activity com.android.calculator2.Calculator (from package com.android.calculator2)
//   - NOT USING main activity com.android.customlocale2.CustomLocaleActivity (from package com.android.customlocale2)
//   - NOT USING main activity com.android.development.Development (from package com.android.development)
//   - NOT USING main activity android.app.AliasActivity (from package com.android.development_settings)
//   - NOT USING main activity com.android.providers.downloads.ui.DownloadList (from package com.android.providers.downloads.ui)
//   - NOT USING main activity com.android.quicksearchbox.SearchActivity (from package com.android.quicksearchbox)
//   + Using main activity com.tencent.mobileqq.activity.SplashActivity (from package com.tencent.mobileqqi)
// Selecting main activities from category android.intent.category.MONKEY
//   - NOT USING main activity com.android.launcher3.Launcher (from package com.android.launcher3)
//   - NOT USING main activity com.android.settings.Settings$RunningServicesActivity (from package com.android.settings)
//   - NOT USING main activity com.android.settings.Settings$StorageUseActivity (from package com.android.settings)
// Seeded: 1701146594293
// Event percentages:
//   0: 15.0%
//   1: 10.0%
//   2: 2.0%
//   3: 15.0%
//   4: -0.0%
//   5: -0.0%
//   6: 25.0%
//   7: 15.0%
//   8: 2.0%
//   9: 2.0%
//   10: 1.0%
//   11: 13.0%
:Switch: #Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;launchFlags=0x10200000;component=com.tencent.mobileqqi/com.tencent.mobileqq.activity.SplashActivity;end
    // Allowing start of Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.tencent.mobileqqi/com.tencent.mobileqq.activity.SplashActivity } in package com.tencent.mobileqqi
Sleeping for 0 milliseconds
:Sending Trackball (ACTION_MOVE): 0:(0.0,-1.0)
    // Allowing start of Intent { cmp=com.tencent.mobileqqi/com.tencent.mobileqq.activity.LoginActivity } in package com.tencent.mobileqqi
    // activityResuming(com.tencent.mobileqqi)
Events injected: 2
:Sending rotation degree=0, persist=false
:Dropped: keys=0 pointers=0 trackballs=0 flips=0 rotations=0
## Network stats: elapsed time=5630ms (0ms mobile, 0ms wifi, 5630ms not connected)
// Monkey finished
  • Интерфейс после запуска отображает:
    Вставьте сюда описание изображения
    Вставьте сюда описание изображения

4.2.3 Сохранить журнал

  • Используйте перенаправление для сохранения журналов в указанный каталог, например текущий каталог:
Язык кода:python
кодКоличество запусков:0
копировать
adb shell monkey -p com.tencent.mobileqqi -v -v -v 2 > ./monkey_qq.log
Вставьте сюда описание изображения
Вставьте сюда описание изображения

4.2.4 Устранение ошибок

  • оANRвопрос:Поиск в журналахANRВот и все;
  • окрахвопрос:Поиск в журналахException
  • Нормальное исполнение:существоватьmonkeyПосле выполнения,Отображение количества и времени выполнения событий в конце журнала.,И сmonkey finishedЗаканчивать,Указывает, что выполнение завершено;
    Вставьте сюда описание изображения
    Вставьте сюда описание изображения

4.3 Пропустить операцию выполнения

4.3.1 Игнорировать аномальные сбои

  • использовать--ignore-crashesпараметр Может Игнорировать неожиданные сбои,такmonkeyВсе события будут выполнены;
Язык кода:python
кодКоличество запусков:0
копировать
adb shell monkey -p com.tencent.mobileqqi -v > --ignore-crashes 2

4.3.2 Игнорировать таймауты

  • использовать--ignore-timeoutsИгнорируемый тайм-аут программы,monkeyНе из-за тайм-аутаи Хватит бежать;
Язык кода:python
кодКоличество запусков:0
копировать
adb shell monkey -p com.tencent.mobileqqi -v > --ignore-timeouts 2

4.3.3 Игнорировать ошибки лицензирования

  • использовать--ignore-security-exceptionsМожет Игнорировать ошибки обстоятельстваия, такие как сертификаты, сетевые лицензии и т.п.;
Язык кода:python
кодКоличество запусков:0
копировать
adb shell monkey -p com.tencent.mobileqqi -v > --ignore-security-exceptions 2

4.4 Параметры события

4.4.1 Описание параметров

  • к-pct开头控制событие百分比изпараметр,Нацеленность на непонятноеиз Тип теста Может Процент корректировки;
    Вставьте сюда описание изображения
    Вставьте сюда описание изображения
  • Соответствующие события параметриллюстрировать следующие (все выражены в процентах):

параметр

иллюстрировать

--pct-touch PERCENT

событие клика

--pct-motion PERCENT

линейное скользящее событие

--pct-trackball PERCENT

Событие скольжения кривой

--pct-syskeys PERCENT

Панель навигации(HomeBackждать)

--pct-nav PERCENT

События навигации (вверх, вниз, влево, вправо)

--pct-majornav PERCENT

События навигации (возврат, подтверждение, меню)

--pct-appswitch PERCENT

Activityиззапускатьсоотношение

--pct-flip PERCENT

События, применимые к симулятору

--pct-anyevent PERCENT

Необычные события, такие как нажатия клавиш

--pct-pinchzoom PERCENT

Многоточечное масштабирование жестами

--pct-permission PERCENT

разрешающие события

4.4.2 Укажите процент событий

  • Просто добавьте указанный выше параметр непосредственно в событие запуска;
  • Добавьте числовое значение непосредственно после параметра (выраженное в процентах):
Язык кода:python
кодКоличество запусков:0
копировать
adb shell monkey --pct-motion 40 -p com.tencent.mobileqqi 2

4.5 Задержка события

  • использовать--throttleМожет表示两个событие之间из Задерживать,единицаms
Язык кода:python
кодКоличество запусков:0
копировать
adb shell monkey --throttle 1000 -p com.tencent.mobileqqi 2

4.6. Укажите начальное значение случайного события

  • Используйте -sпараметр для генерации начального значения случайного события:
Язык кода:python
кодКоличество запусков:0
копировать
test01: adb shell monkey -p com.tencent.mobileqqi -s 50 2 
test02: adb shell monkey -p com.tencent.mobileqqi -s 50 2 

4.7 Завершение процесса

4.7.1 Завершение процесса ошибки

  • использовать--kill-process-after-errorОшибка выполнения завершенияизпроцесс。

4.7.2 Мониторинг аварийных событий

  • использовать--monitor-native-crashesмониторкодизкрахсобытие。

4.7.3 Остановить обезьяну

  • использовать--wait-dbgОстановка выполненияизmonkey,пока не будет подключен отладчик.

5 Пример

5.1 Требования к экземпляру

  • Запустить qq;
  • Реализация 3 событийных операций;
  • временной интервал 2 с;
  • Укажите 2 события, на которые приходится 20% и 30%;
  • Игнорировать исключения, сбои и тайм-ауты;
  • Сохраните журнал.

5.2 Пример реализации

  • параметрнравиться Вниз:
Язык кода:python
кодКоличество запусков:0
копировать
adb shell monkey -p com.tencent.mobileqqi --throttle 2000 --pct-touch 20 --pct-motion 30 -v -v -v -s 50 --ignore-crashes --ignore-timeouts --ignore-security-exceptions 3 > ./test.log
Язык кода:python
кодКоличество запусков:0
копировать
:Monkey: seed=50 count=3
:AllowPackage: com.tencent.mobileqqi
:IncludeCategory: android.intent.category.LAUNCHER
:IncludeCategory: android.intent.category.MONKEY
// Selecting main activities from category android.intent.category.LAUNCHER
//   - NOT USING main activity com.android.contacts.activities.PeopleActivity (from package com.android.contacts)
//   - NOT USING main activity com.android.dialer.DialtactsActivity (from package com.android.dialer)
//   - NOT USING main activity com.android.settings.Settings (from package com.android.settings)
//   - NOT USING main activity com.android.browser.BrowserActivity (from package com.android.browser)
//   - NOT USING main activity com.android.calendar.AllInOneActivity (from package com.android.calendar)
//   - NOT USING main activity com.android.deskclock.DeskClock (from package com.android.deskclock)
//   - NOT USING main activity com.android.email.activity.Welcome (from package com.android.email)
//   - NOT USING main activity com.android.camera.GalleryPicker (from package com.android.gallery)
//   - NOT USING main activity com.android.camera.Camera (from package com.android.camera)
//   - NOT USING main activity com.android.music.MusicBrowserActivity (from package com.android.music)
//   - NOT USING main activity com.android.messaging.ui.conversationlist.ConversationListActivity (from package com.android.messaging)
//   - NOT USING main activity com.example.android.apis.ApiDemos (from package com.example.android.apis)
//   - NOT USING main activity com.android.gesture.builder.GestureBuilderActivity (from package com.android.gesture.builder)
//   - NOT USING main activity com.android.widgetpreview.WidgetPreviewActivity (from package com.android.widgetpreview)
//   - NOT USING main activity com.android.backuptester.MainActivity (from package com.android.backuptester)
//   - NOT USING main activity com.android.calculator2.Calculator (from package com.android.calculator2)
//   - NOT USING main activity com.android.customlocale2.CustomLocaleActivity (from package com.android.customlocale2)
//   - NOT USING main activity com.android.development.Development (from package com.android.development)
//   - NOT USING main activity android.app.AliasActivity (from package com.android.development_settings)
//   - NOT USING main activity com.android.providers.downloads.ui.DownloadList (from package com.android.providers.downloads.ui)
//   - NOT USING main activity com.android.quicksearchbox.SearchActivity (from package com.android.quicksearchbox)
//   + Using main activity com.tencent.mobileqq.activity.SplashActivity (from package com.tencent.mobileqqi)
// Selecting main activities from category android.intent.category.MONKEY
//   - NOT USING main activity com.android.launcher3.Launcher (from package com.android.launcher3)
//   - NOT USING main activity com.android.settings.Settings$RunningServicesActivity (from package com.android.settings)
//   - NOT USING main activity com.android.settings.Settings$StorageUseActivity (from package com.android.settings)
// Seeded: 50
// Event percentages:
//   0: 20.0%
//   1: 30.0%
//   2: 1.3333334%
//   3: 10.0%
//   4: -0.0%
//   5: -0.0%
//   6: 16.666668%
//   7: 10.0%
//   8: 1.3333334%
//   9: 1.3333334%
//   10: 0.6666667%
//   11: 8.666667%
:Switch: #Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;launchFlags=0x10200000;component=com.tencent.mobileqqi/com.tencent.mobileqq.activity.SplashActivity;end
    // Allowing start of Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.tencent.mobileqqi/com.tencent.mobileqq.activity.SplashActivity } in package com.tencent.mobileqqi
Sleeping for 2000 milliseconds
:Sending Trackball (ACTION_MOVE): 0:(-2.0,-3.0)
:Sending Trackball (ACTION_MOVE): 0:(-4.0,-4.0)
Events injected: 3
:Sending rotation degree=0, persist=false
:Dropped: keys=0 pointers=0 trackballs=0 flips=0 rotations=0
## Network stats: elapsed time=2732ms (0ms mobile, 0ms wifi, 2732ms not connected)
// Monkey finished

ЯсуществоватьучаствоватьНа третьем этапе специального тренировочного лагеря Tencent Technology Creation 2023 года будет проводиться конкурс сочинений. Соберите команду, чтобы выиграть приз!

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose