Я хочу создать небольшое приложение для Android, которое я могу запустить из командной строки android, пока я удаленно подключен к устройству Android через ssh. Я не хочу кнопки/launcher/icon или gui-интерфейса любого типа.Как создать приложение командной строки для Android?
Я предпочитаю делать это в golang, если это возможно.
Я попытался с помощью gomobile
(golang.org/x/mobile
), но когда я ставлю APK на устройстве и попробуйте запустить его, я получаю сообщение об ошибке:
[email protected]:/data/data/berserker.android.apps.sshdroid/home $ am start gserv.apk
Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] pkg=gserv.apk }
java.lang.SecurityException: Permission Denial: startActivity asks to run as user -2 but is calling from user 0; this requires android.permission.INTERACT_ACROSS_USERS_FULL
at android.os.Parcel.readException(Parcel.java:1546)
at android.os.Parcel.readException(Parcel.java:1499)
at android.app.ActivityManagerProxy.startActivityAsUser(ActivityManagerNative.java:2504)
at com.android.commands.am.Am.runStart(Am.java:770)
at com.android.commands.am.Am.onRun(Am.java:307)
at com.android.internal.os.BaseCommand.run(BaseCommand.java:47)
at com.android.commands.am.Am.main(Am.java:98)
at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:249)
приложение является лишь небольшой привет мир сервер HTTP. Как я могу установить и запустить его таким образом, чтобы я мог использовать его, как другие программы командной строки, встроенные в android, для которых не требуются gui (ls
, cat
, cd
и т. Д.).
'я start' не принимает APK в качестве аргумента. Это для запуска Android-активности (которой у вас нет) с помощью «Intent» (которого у вас нет). У APK нет интерфейса командной строки, такого как тот, который вы ищете. Вы можете скомпилировать собственный бинарный файл, загрузить его на устройство, пометить как исполняемый файл и попытаться запустить его из командной строки. – CommonsWare
Да, я не очень умный. Я смог построить его, установив android-ndk и выполнив 'CC =" $ NDK_ROOT/bin/arm-linux-androideabi-gcc "GOOS = linux GOARCH = arm GOARM = 7 CGO_ENABLED = 0 go build -v -o goserv main.go' – hermancain