Как мога да изпращам съобщения напред и назад между обвивката на ADB и приложение за Android?

Търся отговор през последните 3 дни и все още не съм намерил такъв, който да работи. Опитвам се да напиша приложение за Android, което може да се управлява от ADB с персонализирани команди. Мога ли все пак да изпращам низове напред и напред между приложение и обвивка на ADB?

Благодаря предварително и се извинявам за въпроса ми.


person Lai Xue    schedule 18.06.2012    source източник


Отговори (1)


Разбира се, има няколко начина да направите това.

  • Можете да използвате socket на unix домейн и да го отворите както от приложението за android, така и от изпълним файл от командния ред, който бихте изградили чрез злоупотреба с ndk, натиснете до зависимо от версията местоположение на устройството (/data/local, /sqlite_stmt_journals и т.н. ) и бягайте. Редактиране: в по-новите версии на Android може да няма такива записваеми/изпълними директории. Може да се наложи самото приложение да напише изпълнимия файл в личната си директория и да зададе глобални разрешения за четене и изпълнение върху него. Допълнителна редакция: adb също може да препраща unix сокети.

  • Същото нещо с интернет гнездо, само че сега имате възможност да настроите adb порт напред (при условие, че приложението за android е край на „сървъра“), така че да комуникирате от процес, изпълняван на вашата машина за разработка, директно с приложението за android, без предаване на данни през adb shell. Освен ако декларирането на разрешение за интернет не е неприемливо (това трябва да е по-малко притеснение, отколкото да оставите вашето приложение от страна на компютъра да „задвижва“ adb), това вероятно е методът, който ще се придържа най-близо до „официалните“ възможности и ще има най-малка зависимост от версията на Android. Той също така може да бъде тривиално адаптиран за комуникация през wifi.

  • Можете да използвате двойка fifos и да ги пишете и четете с команди на обвивката (за преносимост ги създайте в частното хранилище на приложението, но ги направете годни за четене/запис от целия свят)

  • може да успеете да играете някои игри с pty

  • бихте могли да предполагам, че използвате файлове като пощенски кутии

  • можете да използвате командата 'am', за да изпратите намерения (полезно поне за стартиране на приложението за Android, ако е малко неефективно за комуникацията)

person Chris Stratton    schedule 18.06.2012