Создание и использование jar «общей платформы» в Android - что работает? - PullRequest
0 голосов
/ 01 сентября 2010

Я делю приложение, которое у меня есть, на уровни «платформа» и «приложение», чтобы я мог распространять платформу в виде баночки для использования партнерами - при этом защищая свой IP.

Теперь у меня есть два проекта Eclipse. Сборка не имеет возможности скомпилировать какие-либо ресурсы в jar-файл, поэтому я переместил все ссылки на ресурсы в проект приложения (каталог платформы gen / каталог пуст). Я скомпилировал платформу, а затем вручную использовал jdk для ее jar-файла, импортировал этот jar-файл в проект приложения, пометил jar-файл для экспорта в проекте приложения и успешно скомпилировал и установил тестовое приложение:

public class NotifyService extends Service {
    ...
    @Override
    public void onStart(Intent intent, int startId) {
        myNotify(intent.getIntExtra(EXTRA_ICON),...));
    }

    private void myNotify(int iconResource, String s1, String s2, String s3) {
        Context c = getApplicationContext();
        if (H.VERBOSE) Log.d(TAG, "myNotify()"); //$NON-NLS-1$
        Notification n = new Notification(iconResource, s1, currentTime);
        Intent nextStep = new Intent(Intent.ACTION_VIEW,Uri));
        PendingIntent pending = PendingIntent.getActivity(c, 0, nextStep, 0);
        n.setLatestEventInfo(c, s2, s3, pending);
        mgr.notify(1, n);
    }... 

Тестовая операция запускается, как и ожидалось, и я получаю сообщение LogCat () от этой службы. Но никакое уведомление не показывается, и никакая ошибка не зарегистрирована - это просто тихо. ...

В любом случае, я хочу, чтобы партнерские приложения использовали мою платформу, которая подключается к сервисам, контент-провайдерам, Интернету, работам. Кто-нибудь предлагает какое-нибудь руководство?

UPDATE!

Ха-ха ... типично ... когда я переместил все ресурсы с моей платформы в свое приложение, я не передал их должным образом со слоя приложения. Таким образом, приведенный мной пример кода не содержит ошибок. Использование намерения вместо связывания разъединяет «переданные аргументы» от «ожидаемых аргументов», конечно, - и компилятор не жалуется. С исправленным приложением это работает.

Хотя я думаю, что создание платформы для бинарного распространения не является чем-то необычным, я не нахожу много документов по этому вопросу, поэтому я буду добавлять любые важные открытия, когда я открою двери ... надеюсь, что это кому-то пригодится.

Ответы [ 2 ]

1 голос
/ 01 сентября 2010

Вам следует взглянуть на концепцию «библиотечного проекта».

Работа с библиотечными проектами

[Редактировать]

@ DJC - я вижу ... в этом случае я бы предложил посмотреть на проект AndEngine.Результатом этого проекта является JAR, который затем используется в проекте AndEngineExamples (пример приложения, которое его использует).

AndEngine - автономная библиотека, распространяемая как JAR

AndEngineExamples - приложение Примеры, которое использует AndEngine JAR

0 голосов
/ 01 сентября 2010

Посмотрите на использование посылок, это похоже на Jar, только для конкретного андроида.У меня нет большого опыта с ними, но я думаю, что они довольно мощные с точки зрения повторного использования действий, представлений и вещей.

"Это (пакет) оборачивает JAR и другие Androidсвязанные файлы, которые вам нужны, чтобы эффективно использовать этот JAR. "-Расширенная Android-разработка

...