Могу ли я использовать библиотеки android.os. * В отдельном проекте? - PullRequest
2 голосов
/ 03 мая 2010

Я пытаюсь разработать внешнюю библиотеку (не уверен, что это правильный термин) для обеспечения предварительно упакованных функций в проектах Android. Работая в Eclipse, я добавил соответствующий файл android.jar в путь сборки, и все хорошо как при редактировании, так и при компиляции.

Однако, когда я использую классы Android и Handler (android.os.Handler, android.os.Message) для связи между потоками, я получаю исключения, если я не работаю в приложении Android, на эмуляторе или устройство. Я больше не могу тестировать свою библиотеку "автономным" способом без необходимости проходить через цель Android.

Можно ли как-нибудь включить эти два класса Android и по-прежнему иметь возможность тестировать мою библиотеку автономно? Нужно ли иметь доступный источник Android? Или это потребовало бы какой-то условной компиляции, выполняемой вручную?

Ответы [ 2 ]

4 голосов
/ 03 мая 2010

Есть ли способ для меня включить эти два класса Android и до сих пор Можно ли проверить мою библиотеку в автономном режиме?

Нелегко, во всяком случае, я могу думать.

Нужно ли иметь источник Android доступны

Я не знаю, где еще вы могли бы получить реализацию. Но, что более важно, эти вещи не предназначены для изолированной работы вне операционной системы, так же как вы не могли бы просто взять один-два класса Какао и вставить их в свою библиотеку Objective-C и ожидать, что они будут работать на компьютере с Windows.

Не обращая внимания, ничего не зная о том, что вы строите, я бы сделал любую подключаемую зависимость от Handler и Message более доступной. Протестируйте вне Android, используя реализацию на чистом Java, возможно, даже с помощью некоторых издевательств. Протестируйте внутри Android, используя реальную реализацию.

1 голос
/ 25 февраля 2014

Вы можете попробовать lib Robolectric, которая реализует API Android, чтобы вы могли создавать тесты JUnit для некоторого изолированного кода, который у вас есть:

http://robolectric.org/

...