Muszę napisać skrypt powłoki, aby uruchomić i zatrzymać usługę Android.Jak uruchomić i zatrzymać serwis android z powłoki adb?
Odpowiedz
Jeśli chcesz uruchomić skrypt w powłoce adb, to próbuję zrobić to samo, ale z aplikacją. Myślę, że można użyć "am zacząć" polecenie
Zastosowanie: AM [podpolecenia] [opcje]
start an Activity: am start [-D] [-W] <INTENT>
-D: enable debugging
-W: wait for launch to complete
**start a Service: am startservice <INTENT>**
send a broadcast Intent: am broadcast <INTENT>
start an Instrumentation: am instrument [flags] <COMPONENT>
-r: print raw results (otherwise decode REPORT_KEY_STREAMRESULT)
-e <NAME> <VALUE>: set argument <NAME> to <VALUE>
-p <FILE>: write profiling data to <FILE>
-w: wait for instrumentation to finish before returning
start profiling: am profile <PROCESS> start <FILE>
stop profiling: am profile <PROCESS> stop
start monitoring: am monitor [--gdb <port>]
--gdb: start gdbserv on the given port at crash/ANR
<INTENT> specifications include these flags:
[-a <ACTION>] [-d <DATA_URI>] [-t <MIME_TYPE>]
[-c <CATEGORY> [-c <CATEGORY>] ...]
[-e|--es <EXTRA_KEY> <EXTRA_STRING_VALUE> ...]
[--esn <EXTRA_KEY> ...]
[--ez <EXTRA_KEY> <EXTRA_BOOLEAN_VALUE> ...]
[-e|--ei <EXTRA_KEY> <EXTRA_INT_VALUE> ...]
[-n <COMPONENT>] [-f <FLAGS>]
[--grant-read-uri-permission] [--grant-write-uri-permission]
[--debug-log-resolution]
[--activity-brought-to-front] [--activity-clear-top]
[--activity-clear-when-task-reset] [--activity-exclude-from-recents]
[--activity-launched-from-history] [--activity-multiple-task]
[--activity-no-animation] [--activity-no-history]
[--activity-no-user-action] [--activity-previous-is-top]
[--activity-reorder-to-front] [--activity-reset-task-if-needed]
[--activity-single-top]
[--receiver-registered-only] [--receiver-replace-pending]
[<URI>]
am startservice <INTENT>
lub faktycznie z powłoki OS
adb shell am startservice <INTENT>
Mogę rozpocząć świadczenie usługi przez
am startservice com.xxx/.service.XXXService
ale nie wiem jak to jeszcze zatrzymać.
Możesz użyć odbiornika, aby zatrzymać usługę, a następnie wysłać transmisję do tego odbiornika. – shaobin0604
Odpowiadanie na informacje zwrotne pzulw do sandroida dotyczące określenia zamiaru.
Format nazwy komponentu jest opisane w docs API dla ComponentName.unflattenFromString
It splits the string at the first '/', taking the part before as the package name and the part after as the class name. As a special convenience (to use, for example, when parsing component names on the command line), if the '/' is immediately followed by a '.' then the final class name will be the concatenation of the package name with the string following the '/'. Thus "com.foo/.Blah" becomes package="com.foo" class="com.foo.Blah".
jestem początkujący w Androidzie, ale mnie to działa tak:
w AndroidManifest.xml, zrobić upewnij się, wewnątrz <application>
, mieć coś takiego:
<service android:name="com.some.package.name.YourServiceSubClassName" android:permission="com.some.package.name.YourServiceSubClassName">
<intent-filter>
<action android:name="com.some.package.name.YourServiceSubClassName"/>
</intent-filter>
</service>
gdzie YourServiceSubClassName
przedłużyć android.app.Service
jest Twój klasa java, która jest usługą. Gdzie com.some.package
to nazwa pakietu, dla mnie zarówno w AndroidManifest.xml, jak i Java. Używane a javabeat.net article jako pomoc, poszukaj <service>
Uwaga również, jakoby między nazwą pakietu i nazwy klasy nie powinno być .service.
w tekście, to chyba jest jakaś konwencja, ale dla mnie to spowodowane ClassNotFoundException
że jestem jeszcze do rozwiązania.
Następnie zainstaluj apk. Zrobiłem z zaćmienia, ale powinno również działać adb install -r yourApkHere.apk
. Odinstaluj jest adb uninstall com.some.package.name
, btw.
Można rozpocząć go z systemu hosta w ten sposób, dzięki Just a Tim i MrRoy:
adb shell am startservice com.some.package.name/.YourServiceSubClassName
ciekawe, nie trzeba -n
.
Aby przystanek, używam
adb shell am force-stop com.some.package.name
Nadzieję, że to pomaga.
Jako że jestem początkującym, proszę poczuć się wolnym od edycji/komentarza, aby naprawić wszelkie nieporozumienia (np. Prawdopodobnie dotyczące .service.
w nazwie składnika (?)).
Trzeba dodać 'android: exported =" true "', aby zamanifestować – Atul
. Dlatego dostaję ten błąd? $ am startservice com.adguard.android/.vpn.AdguardVpnService Uruchamianie usługi: Intent {act = android.intent.action.MAIN cat = [android.intent.category.LAUNCHER] cmp = com.adguard.android/.vpn. AdguardVpnService} Błąd: wymaga pozwolenia android.permission.BIND_VPN_SERVICE –
Powinieneś ustawić android: eksportowany atrybut usługi na "true", aby umożliwić innym komponentom wywołanie go. W pliku AndroidManifest.xml dodaj następujący atrybut:
<service android:exported="true" ></service>
Następnie powinieneś być w stanie uruchomić usługę poprzez adb:
adb shell am startservice com.package.name/.YourServiceName
Aby uzyskać więcej informacji na temat Androida: eksportowane atrybut zobaczyć this page .
Zaczynając usługa:
adb shell am startservice ...
start a Service. Options are: --user | current: Specify which user to run as; if not specified then run as the current user.
Zatrzymanie usługę:
adb shell am stopservice ...
stop a Service. Options are: --user | current: Specify which user to run as; if not specified then run as the current user.
Dla każdego, kto jeszcze nie zna, jak zdefiniować parametr nazwy usług, przedni ukośnik przechodzi natychmiast y po nazwie pakietu aplikacji we w pełni kwalifikowanej nazwie klasy.
Więc podawany jest nazwa aplikacji pakietu: app.package.name
i pełną ścieżkę do służby: app.package.name.example.package.path.MyServiceClass
Następnie polecenie będzie wyglądać następująco:
adb shell am startservice app.package.name/.example.package.path.MyServiceClass
adb shell pm StartService ... rozpocząć usługę. Dostępne opcje to: --user | current: Określ, który użytkownik uruchomić jako; jeśli nie określono, uruchom jako bieżący użytkownik. Zatrzymywanie usługi:
adb shell pm stopservice ...
Sformatuj kod, proszę –
trzeba dodać android:exported="true"
aby uruchomić usługę z ADB linii poleceń. Wtedy twój manifest wygląda mniej więcej tak:
<!-- Service declared in manifest -->
<service
android:name=".YourServiceName"
android:exported="true"
android:launchMode="singleTop">
<intent-filter>
<action android:name="com.your.package.name.YourServiceName"/>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</service> <!-- Note: Service is exported to start it using ADB command -->
a następnie od ADB
Aby uruchomić usługę:
adb shell am startservice com.your.package.name/.YourServiceName
Aby zatrzymać usługę (na Marshmallow):
adb shell am stopservice com.your.package.name/.YourServiceName
Aby zatrzymać usługę (na Jelly Bean):
adb shell am force-stop com.your.package.name
- 1. Wget z powłoki adb
- 2. BroadcastOdpowiedźReceiver dla powłoki adb
- 3. Jak zbadać SharedPreferences z powłoki adb?
- 4. Jak zatrzymać i uruchomić TGitCache.exe z wdziękiem
- 5. Jak uruchomić adb na terminalu Mac?
- 6. Emulacja zatrzymywania siły z poleceń ADB/powłoki
- 7. Co robi "uruchamianie/zatrzymywanie powłoki adb"?
- 8. Jak kontrolować operacje Bluetooth za pomocą powłoki adb?
- 9. Jak przetestować zdalny serwis pomocy Android
- 10. Jak uruchomić/zatrzymać Runnable/Handler?
- 11. Jak uruchomić i zatrzymać usługę Redis z uwierzytelnianiem?
- 12. Uruchomić Bluetooth z ADB lub przy starcie?
- 13. jak uruchomić skrypt powłoki z Gradle i czekać na zakończenie?
- 14. Jak zatrzymać kompilację Xcode ze skryptu powłoki
- 15. Adb android konflikt z Genymotion
- 16. adb polecenie powłoki: mkdir (do tworzenia katalogu)
- 17. Android: parametr piłki serwis z działalności
- 18. Android adb usb speed
- 19. Odśwież Android mediastore za pomocą adb
- 20. Dlaczego polecenie SQLite 3 korzystające z powłoki protokołu ADB systemu Android zwraca "odmowa uprawnień"?
- 21. Jak mogę uzyskać rozmiar systemu Android w bajtach z powłoki adb?
- 22. Android: Jak zatrzymać i wznowić licznik odliczania?
- 23. Jak uruchomić aplikację systemu Android bez uprawnienia root?
- 24. Jak uruchomić i zatrzymać serwer jboss za pomocą zadania Ant?
- 25. ansibl Playbook uruchomić poleceń powłoki
- 26. Jak możemy wykonać plik skryptu powłoki z mojej aplikacji Android?
- 27. jak uruchomić i zatrzymać serwer w netbeans 6.8?
- 28. Jak programowo uruchomić i zatrzymać wystąpienie Amazon EC2 w java
- 29. Jak uruchomić i zatrzymać interwał obserwowalny w RXJS?
- 30. Jak uruchomić aplikację Erlang wewnątrz powłoki Erlang
To strona pomocy naprawdę nie pomoże Ci dowiedzieć się, jak określić intencję. W szczególności składnia dla jest tajemnicza. –
pzulw
@pzulw [Tylko odpowiedź Tima] (http://stackoverflow.com/a/11867567/611007) w połączeniu z [MrRoy's] (http://stackoverflow.com/a/8469325/611007) i umieszczaniem rzeczy w AndroidManifest.xml zgodnie z [ pod tym linkiem] (http://www.javabeat.net/2013/04/how-to-write-androidmanifest-xml/) pomógł. –
n611x007