Stwórz bezpieczniejszy proces automatycznego rozpoznawania obrazu w systemie Android: dopasuj bieżący stan, dotknij wykrytego celu, poczekaj i sprawdź następny ekran.

Narzędzie do automatycznego rozpoznawania obrazu powinno najpierw sprawdzić stan ekranu
Funkcja automatycznego klikania ze stałymi współrzędnymi zakłada, że za każdym razem ta sama kontrolka będzie nadal znajdować się pod tym samym punktem. To założenie załamuje się, gdy pojawia się okno dialogowe, animacja jest nadal uruchomiona, zmienia się skala wyświetlania, przesuwa się lista lub otwiera się aplikacja na innej stronie. Kliknięcie może nadal zostać pomyślnie zrealizowane, ale do niewłaściwego elementu sterującego.
Rozpoznawanie obrazu poprawia to, obserwując widoczny ekran przed podjęciem działania. Jednak samo wykrycie nie wystarczy. Niezawodny przepływ automatycznego kliknięcia w Androidzie musi oddzielić cztery pytania: Czy oczekiwany cel jest widoczny? Czy dopasowanie jest wystarczająco mocne i mieści się w oczekiwanym obszarze? Czy kran dotarł do wykrytego celu? Czy ekran przeszedł w kolejny oczekiwany stan?
W tym przewodniku zastosowano wzorzec sprawdzania stanu dla automatyzacjina urządzeniu z systemem Android za pomocą LaiCai Flow Inside. Zgodny profil i jego zasoby wizualne są przygotowywane i wdrażane na komputerze, a następnie LaiCai Android Agent może uruchomić zatwierdzony przepływ lokalnie na telefonie. Celem nie jest szybsze stukanie w ciemno. Jest to sekwencja, która kończy się w momencie, gdy ekran nie odpowiada już założeniom.
Pięciostopniowy wzór kranu ze sprawdzaniem stanu
- Zdefiniuj stan początkowy i uchwyć stabilny cel wizualny, taki jak charakterystyczny przycisk lub ikona.
- Uruchom jedno dopasowanie obrazu do bieżącej klatki z celowym progiem ufności i obszarem wyszukiwania.
- Tylko po udanym dopasowaniu przekaż wykryty prostokąt lub środek do akcji dotknięcia.
- Poczekaj na zmianę interfejsu, zamiast natychmiast sprawdzać tę samą klatkę.
- Obserwuj oczekiwany następny stan. Kontynuuj sukces; w przeciwnym razie zatrzymaj się, spróbuj ponownie w określonym limicie lub poproś o sprawdzenie.
Pomyśl o każdym dotknięciu jako o zmianie stanu, a nie o pojedynczym geście. Pierwsza obserwacja jest warunkiem wstępnym. Kran to operacja. Druga obserwacja to warunek końcowy. Jeśli brakuje jakiejś części, automatyzacja nie jest w stanie odróżnić sukcesu od gestu, który wylądował na niewłaściwym ekranie lub nie przyniósł żadnego efektu.
Ten wzorzec jest również łatwiejszy do debugowania. Błąd przed dotknięciem wskazuje szablon, próg, region wyszukiwania lub ekran startowy. Błąd po dotknięciu wskazuje na czas, pozwolenie, zablokowany gest, nieoczekiwane okno dialogowe lub inny następny stan. Jedno długie makro, które zgłasza jedynie „niepowodzenie”, ukrywa to rozróżnienie.
Wybierz odpowiedni sygnał ekranowy
| Sygnał | Użyj go, kiedy | Główne ryzyko |
|---|---|---|
| Dopasowanie obrazu | Przycisk, ikona, karta lub okno dialogowe mają stabilny wygląd | Motywy, skala, animacja lub przeprojektowanie mogą obniżyć wynik |
| Selektor interfejsu użytkownika | Aplikacja udostępnia stabilny tekst, opisy treści lub identyfikatory zasobów | Treść rysowana na zamówienie lub na płótnie może nie eksponować przydatnych elementów |
| OCR | Widoczne słowa mają większe znaczenie niż dokładne piksele | Język, czcionka, kontrast i wybór regionu wpływają na rozpoznawanie |
| Wykrywanie obiektów | Cel należy do szerszej klasy, a nie do jednego dokładnego szablonu | Wymagany jest zgodny model i prawidłowa klasa |
| Stałe współrzędne | Układ jest kontrolowany i nie ma lepszego sygnału stanu | Każdy ruch może przekierować kran |
Użyj najprostszego sygnału, który dokładnie opisuje stan. Zapisany szablon obrazu dobrze pasuje do charakterystycznej ikony, która wygląda tak samo przy każdym uruchomieniu. OCR jest zwykle lepszy, gdy słowo jest stabilne, ale jego styl może się zmienić. Selektory interfejsu użytkownika mogą być silniejsze niż piksele, gdy aplikacja udostępnia dostępną strukturę. Wykrywanie obiektów jest przydatne w przypadku rozpoznanych klas, a nie jako substytut brakującego szablonu przycisku.
Powiązany przewodnikAndroid OCR i automatyzacji rozpoznawania obrazuporównuje te metody obserwacji bardziej szczegółowo. W tym artykule skupiono się na granicy decyzji na urządzeniu: obserwacja musi zakończyć się sukcesem, zanim gest będzie mógł wykorzystać swój wynik.
Zbuduj wzór w LaiCai Flow Inside
1. Przygotuj stabilny szablon i stan początkowy
Wybierz cel z wyraźnymi krawędziami i wystarczającą liczbą unikalnych szczegółów, aby odróżnić go od pobliskich elementów sterujących. Unikaj przechwytywania dużego regionu, który obejmuje zmieniające się liczniki, znaczniki czasu, nazwy użytkowników lub animacje. Pierwszy profil i przywoływane zasoby obrazu są przygotowywane na komputerze. Podczas wdrażania zgodny szablon jest dołączany do LaiCai Android Agent.
2. Dopasuj raz bieżącą klatkę
Węzeł `vision.match` jednokrotnie obserwuje bieżącą ramkę. Wymaga jednego lub więcej zapisanych identyfikatorów szablonów, wymaganego minimalnego wyniku, trybu dopasowania i interesującego obszaru proporcji ekranu. Pomyślne dopasowanie zapewnia najlepszy wynik oraz wykryty środek i prostokąt. Żadne dopasowanie nie następuje po niepowodzeniu; węzeł nie jest ukrytą pętlą oczekującą.
3. Kliknij wykryty wynik, a nie starą współrzędną
Połącz udane dopasowanie z `pointer.tap` i użyj wykrytego prostokąta jako `positionFrom`, zwykle z kotwicą środkową. Dzięki temu działanie jest powiązane z obserwacją, która je autoryzowała. Nie kopiuj współrzędnych z jednego przebiegu i zamień następny przebieg z powrotem w makro ze stałymi współrzędnymi.
4. Dodaj widoczne oczekiwanie
Po dotknięciu dodaj jawne `flow.wait` przed następną obserwacją zależną od ekranu. Prawidłowy czas trwania zależy od aplikacji, urządzenia, sieci i animacji. Widoczny czas oczekiwania można przeglądać i regulować; natychmiastowa ponowna kontrola może po prostu sprawdzić starą ramę.
5. Sprawdź następny stan lub zatrzymaj
Użyj drugiego obrazu, wyniku OCR lub stanu interfejsu użytkownika, aby udowodnić, że interfejs zmienił się zgodnie z oczekiwaniami. Na przykład wykrycie okna dialogowego „Potwierdź” po kliknięciu „Usuń” oznacza jedynie, że pojawił się etap potwierdzenia; nie oznacza to, że element został usunięty. Późniejsze sprawdzenie powinno potwierdzić ostateczny stan listy lub komunikat o powodzeniu. Pozostaw nieobsługiwany błąd obserwacji jako prawdziwy błąd lub zaimplementuj ograniczoną ponowną próbę, gdy częścią wymagania jest wielokrotne sprawdzanie.
Dostosuj pewność, obszar wyszukiwania, czas i szablony
- Zacznij od zmierzonego progu, a następnie przetestuj zarówno prawdziwe dopasowania, jak i wizualnie podobnych fałszywych kandydatów. Im wyższa, tym bardziej rygorystyczna, ale dowolne maksimum może odrzucić uzasadnione zmiany skali lub renderowania.
- Ogranicz obszar wyszukiwania, gdy cel należy do znanej części ekranu. Mniejszy region może ograniczyć liczbę fałszywych alarmów i działać, ale odgadnięty region może ukryć prawidłowy przeniesiony cel.
- Wybierz tryb dopasowania właściwości wizualnej, który pozostaje stabilny. Kolor może pomóc, gdy kolor ma znaczenie; tryby szary lub krawędziowy mogą tolerować pewne zmiany kolorów; szczegóły należy sprawdzić na rzeczywistym ekranie.
- Zachowaj alternatywne szablony razem, jeśli reprezentują tę samą kontrolkę w znanych stanach, takich jak włączone i wyłączone motywy. Nie dodawaj niepowiązanych celów do jednego dopasowania.
- Przetestuj dokładną skalę urządzenia, jego orientację, motyw i wersję aplikacji, na których będzie działać Flow. Przetestuj ponownie po znaczącej aktualizacji interfejsu.
- Zapisz, gdzie wystąpiła awaria. Wynik dopasowania, wybrany zasób, wykryty prostokąt, czas oczekiwania i wynik następnego stanu są bardziej przydatne niż ogólny błąd makra.
Nie nastawiaj się tylko na udane przykłady. Zacznij od oczekiwanego ekranu, ekranu, na którym nie ma celu, ekranu z podobną ikoną, powolnego przejścia i wyskakującego okienka zakrywającego cel. Automatyka jest godna zaufania, gdy negatywne przypadki kończą się bezpiecznie, a nie tylko wtedy, gdy szczęśliwa ścieżka zakończy się raz.
Praktyczne zastosowania kranów obrazu ze sprawdzaniem stanu
Mobilna kontrola jakości i testy dymne
Upewnij się, że pojawił się znany ekran, dotknij jednego elementu sterującego, poczekaj i przechwyć następny stan. Jest to przydatne w przypadku powtarzalnej ścieżki testu dymu na autoryzowanych urządzeniach.Kopiowanie ekranu Androida na komputer PC lub Macpomaga testerowi sprawdzić prawdziwy telefon podczas przygotowywania i debugowania Flow.
Obsługa dialogów i odzyskiwania
Wykryj określone okno dialogowe ponownej próby, uprawnienia lub połączenia przed wybraniem pasującej akcji. Nie buduj jednego uniwersalnego kliknięcia „OK”: to samo słowo może zatwierdzać bardzo różne działania w różnych oknach dialogowych.
Powtarzające się wewnętrzne operacje aplikacji
W przypadku kontrolowanej aplikacji biznesowej przepływ może sprawdzić bieżącą stronę przed otwarciem następnego elementu lub przesłaniem zatwierdzonego formularza. Połącz kontrolę wizualną z wyraźnymi granicami wejściowymi, kontrolą stanu końcowego i ręcznym przekazaniem wyjątków.
Osobiste procedury na urządzeniu
Zgodny Flow może być kontynuowany na telefonie po wdrożeniu bez konieczności utrzymywania połączenia z komputerem stacjonarnym. Zachowaj lokalne przepływy pracy; jeśli profil wywołuje punkt końcowy HTTP, model zdalny, element webhook lub usługę komunikatów, ten konkretny przepływ pracy wymaga dostępu do sieci.
Uprawnienia i granice bezpieczeństwa
W systemie Android automatyzacja wizualna i automatyzacja gestów wykorzystują wrażliwe możliwości systemu. Dokumenty Androida wskazują, że usługi ułatwień dostępu muszą deklarować możliwość wysyłania gestów za pomocą gestów, natomiast przechwytywanie ekranu wymaga własnej autoryzacji i cyklu życia. W LaiCai Flow Inside dopasowywanie obrazów wykorzystuje aktywną sesję ekranową MediaProjection i wykonywanie na pierwszym planie po stronie telefonu; stuknięcie powoduje korzystanie z ułatwień dostępu.
Korzystaj z automatyzacji tylko na urządzeniach, kontach i aplikacjach, do obsługi których masz uprawnienia. Niektóre aplikacje lub wersje urządzeń mogą blokować lub ignorować gesty ułatwień dostępu. Pomyślne dopasowanie obrazu nie gwarantuje, że późniejsze dotknięcie zostanie zaakceptowane. Diagnozuj oddzielnie obserwację i dostarczanie gestów.
Trzymaj płatności, zmiany kont, destrukcyjne usunięcia, prywatne dane i nieodwracalne działania pod jawną kontrolą lub bardzo wąskimi warunkami. Nie używaj automatycznych kliknięć w celu fałszywego zaangażowania, obejścia kontroli platformy lub naruszenia warunków aplikacji. Najbezpieczniejszy przepływ to taki, którego dozwolony stan, działanie, stan zatrzymania i dowody są widoczne przed jego uruchomieniem.
Sprawdź listę kontrolną przed użyciem bez nadzoru
- Uruchom trzy razy dokładnie od oczekiwanego ekranu startowego.
- Zacznij od niewłaściwego ekranu i upewnij się, że nie następuje żadne dotknięcie.
- Zakryj lub usuń cel i potwierdź, że dopasowanie następuje po niepowodzeniu.
- Przedstaw podobnie wyglądającą kontrolę i sprawdź, czy próg i region ją odrzucają.
- Spowolnij aplikację lub sieć i potwierdź, że oczekiwanie i warunek końcowy zachowują się bezpiecznie.
- Obróć urządzenie lub zmień skalę wyświetlacza tylko wtedy, gdy te tryby są obsługiwane, a następnie ponownie przetestuj szablony.
- Wyłącz lub przerwij wymagane funkcje przechwytywania ekranu lub ułatwień dostępu i sprawdź, czy błąd jest widoczny.
- Przejrzyj końcowy ekran, dzienniki, zrzuty ekranu lub dane wyjściowe potwierdzające wynik zadania.
Zacznij od jednego ograniczonego przejścia. Gdy będzie już niezawodny, wyodrębnij powtarzające się akcje wielowęzłowe do małego przepływu podrzędnego o nazwie i zachowaj czytelność głównego przepływu. SamouczekLaiCai Flow Insidewyjaśnia granice przygotowania i wdrożenia; strona automatyzacji systemu AndroidAIobejmuje tworzenie i debugowanie przepływu pracy wspomaganego komputerowo.
Często zadawane pytania dotyczące automatycznego rozpoznawania obrazu w systemie Android
Czy rozpoznawanie obrazu jest zawsze bezpieczniejsze niż stałe współrzędne?
Jest bezpieczniej tylko wtedy, gdy testowany jest szablon, próg, region, czas i ścieżka awarii. Słabe lub zbyt szerokie dopasowanie może nadal powodować wybranie niewłaściwego celu.
Czy przepływ powinien być dopasowywany do czasu pojawienia się obrazu?
Pojedynczy węzeł dopasowujący obraz powinien obserwować raz. Jeśli wymagane jest oczekiwanie, użyj jawnej struktury ponownej próby lub do momentu z wyraźnym interwałem, limitem czasu lub limitem prób, aby zachowanie pozostało widoczne.
Czy wykrytą pozycję można wykorzystać bezpośrednio do gwintowania?
Tak. Użyj wykrytego prostokąta lub środka udanego węzła wizualnego jako źródła kranu. Zachowuje to związek między obserwacją a działaniem.
Czy to może działać w trybie offline na telefonie?
Jest to możliwe, gdy każdy węzeł i zasób we wdrożonym profilu działa lokalnie. Dopasowywanie obrazów, oczekiwania, gesty i kontrole lokalne mogą pozostać na urządzeniu. Dowolny model zdalny, żądanie HTTP, element webhook, synchronizacja w chmurze lub usługa wiadomości dodaje zależność sieciową.
Spraw, aby każde dotknięcie było kontrolowaną zmianą stanu
Kluczowe ulepszenie ma charakter koncepcyjny: nie pytaj tylko, gdzie dotknąć. Zapytaj, co musi być prawdą przed dotknięciem, jaki zaobserwowany wynik autoryzuje gest, jak długo interfejs musi się zmieniać i co świadczy o tym, że nadszedł kolejny stan.
LaiCai Screen Mirroring zawiera LaiCai Flow Inside dla tego deterministycznego wzorca po stronie telefonu: obserwuj raz, śledź wynik sukcesu lub niepowodzenia, dotknij wykrytego wyniku proporcji ekranu, poczekaj w widoczny sposób i obserwuj ponownie. Przygotuj i zweryfikuj zgodny profil na komputerze, wdróż go z zatwierdzonymi zasobami i pozwól LaiCai Android Agent uruchamiać tylko zdefiniowane stany i przejścia.
- Interfejs API usługi ułatwień dostępu dla systemu Android
- Przewodnik po usługach ułatwień dostępu w Androidzie
- Projekt Klick'r Smart AutoClicker
- Rozwiązywanie problemów z kliknięciem i wykrywaniem
- Makra do rozpoznawania obrazów EmuloMobile
- Żądanie użytkownika dotyczące automatycznego kliknięcia rozpoznawającego obraz
- Zgłoszenie użytkownika dotyczące nieprawidłowego kliknięcia w interfejsie użytkownika