Câu trả lời:
adb shell
am start -n com.package.name/com.package.name.ActivityName
Hoặc bạn có thể sử dụng trực tiếp:
adb shell am start -n com.package.name/com.package.name.ActivityName
Bạn cũng có thể chỉ định các hành động được lọc theo các bộ lọc ý định của mình:
am start -a com.example.ACTION_NAME -n com.package.name/com.package.name.ActivityName
function androidrun(){ ant clean debug adb shell am start -n $1/$1.MainActivity }
và cách sử dụngandroidrun com.example.test
adb shell am
sẽ cung cấp cho bạn một danh sách các tùy chọn khác để truyền vào am
lệnh. Bạn có thể tìm hiểu thêm tại developer.android.com/tools/help/adb.html#am
adb logcat | grep --line-buffered ActivityManager | grep --line-buffered
để liệt kê tất cả các ứng dụng đã được hiển thị.
Bạn chỉ có thể chạy ứng dụng chỉ định tên gói bằng cách sử dụng công cụ khỉ bằng cách làm theo mẫu này:
adb shell monkey -p your.app.package.name -c android.intent.category.LAUNCHER 1
Lệnh được sử dụng để chạy ứng dụng bằng công cụ khỉ tạo ra đầu vào ngẫu nhiên cho ứng dụng. Phần cuối của lệnh là số nguyên xác định số lượng đầu vào ngẫu nhiên được tạo cho ứng dụng. Trong trường hợp này, số này là 1, trên thực tế được sử dụng để khởi chạy ứng dụng (nhấp vào biểu tượng).
adb shell monkey -p your.app.package.name 1
adb shell am startservice com.some.package.name/.YourServiceSubClassName
xem tại đây: stackoverflow.com/a/18703083/211292
Hoặc, bạn có thể sử dụng điều này:
adb shell am start -n com.package.name/.ActivityName
monkey -p com.package.name 1
thông quaadb shell
Người dùng linux / mac cũng có thể tạo một tập lệnh để chạy apk với nội dung như sau:
tạo một tệp có tên "adb-run.sh" với 3 dòng sau:
pkg=$(aapt dump badging $1|awk -F" " '/package/ {print $2}'|awk -F"'" '/name=/ {print $2}')
act=$(aapt dump badging $1|awk -F" " '/launchable-activity/ {print $2}'|awk -F"'" '/name=/ {print $2}')
adb shell am start -n $pkg/$act
sau đó "chmod + x adb-run.sh" để thực hiện.
bây giờ bạn có thể chỉ cần:
adb-run.sh myapp.apk
Lợi ích ở đây là bạn không cần biết tên gói hoặc tên hoạt động có thể khởi chạy. Tương tự, bạn có thể tạo "adb-uninstall.sh myapp.apk"
Lưu ý: Điều này đòi hỏi bạn phải có aapt trong đường dẫn của bạn. Bạn có thể tìm thấy nó trong thư mục công cụ xây dựng mới trong SDK.
Ngoài ra, tôi muốn đề cập đến một điều nữa.
Khi bạn khởi động một ứng dụng từ đóadb shell am
, nó sẽ tự động thêm cờ FLAG_ACTIVITY_NEW_TASK để thay đổi hành vi. Xem mã .
Ví dụ: nếu bạn khởi chạy hoạt động Cửa hàng Play từ đó adb shell am
, nhấn nút ' Quay lại ' (nút quay lại phần cứng) sẽ không đưa bạn đến ứng dụng của bạn, thay vào đó, nó sẽ đưa bạn hoạt động Cửa hàng Play trước đó nếu có một số (Nếu không có nhiệm vụ Cửa hàng Play , sau đó nó sẽ đưa bạn ứng dụng của bạn). Tài liệu FLAG_ACTIVITY_NEW_TASK nói:
nếu một tác vụ đã chạy cho hoạt động mà bạn hiện đang bắt đầu, thì một hoạt động mới sẽ không được bắt đầu; thay vào đó, tác vụ hiện tại sẽ đơn giản được đưa ra phía trước màn hình với trạng thái cuối cùng
Điều này khiến tôi mất vài giờ để tìm hiểu những gì đã sai.
Vì vậy, hãy nhớ rằng adb shell am
thêm cờ FLAG_ACTIVITY_NEW_TASK .
Chúng ta cũng có thể bắt đầu một ứng dụng bằng cách biết loại ứng dụng và cung cấp cho nó dữ liệu:
adb shell am start -d "file:///sdcard/sample.3gp" -t "video/3gp" -a android.intent.action.VIEW
Lệnh này hiển thị Trình phát video có sẵn để phát tệp sample.3gp
Bước 1: Trước tiên, lấy tất cả tên gói của các ứng dụng được cài đặt trong Thiết bị của bạn, bằng cách sử dụng:
adb shell pm list packages
Bước 2: Bạn sẽ nhận được tất cả các tên gói, sao chép tên bạn muốn bắt đầu sử dụng adb.
Bước 3: Thêm tên gói mong muốn của bạn trong lệnh bên dưới.
adb shell monkey -p 'your package name' -v 500
Ví dụ:
adb shell monkey -p com.estrongs.android.pop -v 500
để bắt đầu trình thám hiểm Es.
mở ~ / .bash_profile và thêm các hàm bash này vào cuối tệp
function androidinstall(){
adb install -r ./bin/$1.apk
}
function androidrun(){
ant clean debug
adb shell am start -n $1/$1.$2
}
sau đó mở thư mục dự án Android
androidinstall app-debug && androidrun com.example.app MainActivity
app-debug
không?
monkey --pct-syskeys 0
cho các ban phát triển
Không có đối số này, ứng dụng sẽ không mở trên bảng phát triển mà không có khóa / màn hình:
adb shell monkey --pct-syskeys 0 -p com.cirosantilli.android_cheat.textviewbold 1
và không thành công với lỗi:
SYS_KEYS has no physical keys but with factor 2.0%
Đã thử nghiệm trên HiKey960, Android O AOSP.
Học từ: https://github.com/ARM-software/lisa/pull/408
Cũng được hỏi tại: kiểm tra khỉ: Nếu hệ thống Android không có khóa vật lý, các tham số cần được đưa vào lệnh là gì
Hãy thử điều này, để mở một ứng dụng ảnh android & với tệp hình ảnh cụ thể để mở dưới dạng tham số.
adb shell am start -n com.google.android.apps.photos/.home.HomeActivity -d file:///mnt/user/0/primary/Pictures/Screenshots/Screenshot.png
Nó sẽ hoạt động trên Android mới nhất, không có cửa sổ bật lên nào sẽ chọn một ứng dụng để mở vì bạn đang cung cấp ứng dụng cụ thể mà bạn muốn mở hình ảnh của mình