Как я использую инструмент AIDL из командной строки с помощью кода кода SDK?

Мои проблемы вопроса с помощью aidl.exe (в системе Windows) из командной строки. Этот вопрос не имеет никакого отношения к Eclipse, Netbeans, и т.д.

Включенный с SDK Android следующие три файла определения AIDL:

IRemoteService.aidl IRemoteServiceCallback.aidl ISecondary.aidl

расположенный в следующем каталоге:

C:\android-sdk-windows\platforms\android-2.1\samples\ApiDemos\src\com\example\android\apis\app

Ради простоты я скопировал aidl.exe в вышеупомянутый каталог. Затем из консоли я успешно использовал следующие две команды для генерации .java файлов:

C:\Android-project\ApiDemos\src\com\example\android\apis\app> aidl IRemoteServiceCallback.aidl C:\Android-project\ApiDemos\src\com\example\android\apis\app> aidl ISecondary.aidl

Вызов этих команд произвел файлы IRemoteServiceCallback.java и ISecondary.java, соответственно. Пока неплохо.

Я отмечаю, что оба .aidl файлы просты; они не включают операторов 'импорта'.

Остающийся .aidl файл, IRemoteService.aidl, действительно включает следующего оператора импорта в строку 19:

импорт com.example.android.apis.app. IRemoteServiceCallback;

Проблема возникает, когда я выполняю инструмент AIDL на этом файле:

  C:\Android-project\ApiDemos\src\com\example\android\apis\app>aidl IRemoteService.aidl

Выполнение так заставляет следующее сообщение об ошибке быть распечатанным в консоли:

IRemoteService.aidl:19: не мог найти импорт для класса com.example.android.apis.app. IRemoteServiceCallback

Инструмент AIDL очевидно не мог определить местоположение файла IRemoteServiceCallback.aidl в том же каталоге, в котором он работал. Согласно сообщению "использования" инструмента AIDL, существует команда, которая, по-видимому, может использоваться для разрешения этой проблемы:

  -I<DIR>    search path for import statements.

Проблема: Я не был в состоянии определить-I таким способом как, чтобы избежать, чтобы сообщение об ошибке и иметь инструмент AIDL генерировало .java файл из .aidl файла с оператором 'импорта'. (Отметьте: Я установил переменную среды Windows 'путь' к моему текущему каталогу.) Вот несколько изменений, которые я попробовал:

-Ic:\com\example\android\apis\app
-Ic:/com/example/android/apis/app
-I.\
-I.

Я должен пропускать что-то простое. Удивительно, даже при том, что я видел изменения этого вопроса, отправленного в различных местах, я должен все же видеть ответ или любую документацию об использовании командной строки AIDL (кроме информации об ИСПОЛЬЗОВАНИИ aidl.exe). Может кто-то подсказка меня в?

Спасибо, матовое

11
задан Matt 1 February 2010 в 19:30
поделиться

2 ответа

Вы должны указать путь к папке с исходными файлами, но БЕЗ пути после базовой папки src. Итак, в вашем случае правильная команда:

C:\Android-project\ApiDemos\src\com\example\android\apis\app>aidl -IC:\Android-project\ApiDemos\src\ IRemoteService.aidl
11
ответ дан 3 December 2019 в 06:46
поделиться

Вы можете получить Zephyr . Никогда не использовал его сам, я просто знаю, что это в основном для приложений AJAX.

-121--4013051-

Это можно сделать несколькими способами. Я не собираюсь углубляться, так как на эту тему много литературы.

  • Прежде всего, лучше использовать что-то вроде SHA256 , чтобы уменьшить вероятность столкновений.
  • Вы также должны использовать соление или двойное соление с одной переменной солью (например, IP - чтобы предотвратить красть сеансы). Перед хэшированием файл cookie последовательности будет выглядеть как YOURSALT123.123.123.123USERNAMEPASSWORD .
  • Используйте сеансы совместно с собственными файлами cookie.
  • В зависимости от требований безопасности используйте протокол SSL.

Все зависит от того, насколько безопасно вам нужно . Веб-сайт сообщества о lolcats имеет другие требования безопасности по сравнению с банковским веб-сайтом.

-121--1672127-

Как вы упоминаете, документации не так много.

Поэтому, если вы включите подробный вывод сборки в Eclipse (в разделе Окно > Настройки > Android > Сборка, я думаю), вы можете увидеть в консоли, какие команды, включая aidl и aapt , выполняются, когда плагин Eclipse выполняет сборку.

Если вы понимаете C, вы можете проверить исходный код aidl в AOSP.

3
ответ дан 3 December 2019 в 06:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: