При генерировании кода, какой язык необходимо генерировать?

NotificationBroadcast не зарегистрирован, так как я использую явное намерение

Это не имеет значения. Все получатели должны быть зарегистрированы либо через манифест, либо через вызов registerReceiver() на Context. В вашем случае, поскольку вы используете PendingIntent для действия уведомления, вам нужно использовать опцию манифеста.

Ваш <receiver> в манифесте не должен иметь <intent-filter>, так как вы используете явную трансляцию. Тем не менее, элемент <receiver> все еще должен быть там.

Кроме того, поскольку вы выбрали, чтобы ваш получатель был static классом, ваш android:name для вашего <receiver> должен принять это во внимание.

6
задан Mike Dunlavey 25 February 2009 в 17:43
поделиться

10 ответов

Если Вы рассматриваете C и даже ассемблер, смотрите на LLVM сначала: http://llvm.org

8
ответ дан 8 December 2019 в 03:28
поделиться

Я мог бы пропускать некоторый контекст здесь, но Вы могли просто прикрепить себя к определенной версии? Например.NET 2.0 может быть установлена бок о бок с.NET 1.1 и.NET 3.5, а также другие версии, которые выйдут в будущем. Таким образом, пока Ваш код использует определенную версию компилятора, какова проблема?

3
ответ дан 8 December 2019 в 03:28
поделиться

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

Это назвали бы компилятором :)

Почему Вы не придерживаетесь C90?

Я не услышал большую часть о серьезных нарушениях стандартов от gccсторона, если Вы не используете расширения.

И можно всегда распределять определенную версию gcc наряду с Вашим продуктом, скажем, 4.3.2, предоставление опции пользователям использовать их собственный компилятор в их собственном риске.

Пока весь код сгенерирован Вами (т.е. Вы не встраиваете свои инструкции в код других), не должно быть никаких проблем в тестировании против этой версии и использовании его для компиляции библиотек.

3
ответ дан 8 December 2019 в 03:28
поделиться
2
ответ дан 8 December 2019 в 03:28
поделиться

Одна опция состояла бы в том, чтобы использовать язык/среду, который обеспечивает доступ к компилятору в коде; Например, вот пример C#.

2
ответ дан 8 December 2019 в 03:28
поделиться

Почему бы не поставлять компилятор C GNU с Вашим генератором кода? Тем путем у Вас нет проблем версии, и клиент может постоянно генерировать код, который применим.

2
ответ дан 8 December 2019 в 03:28
поделиться

Это кажется на поиск LLVM.

2
ответ дан 8 December 2019 в 03:28
поделиться

Я придерживался бы того языка, который Вы используете для генерации того языка. Можно генерировать и скомпилировать код Java в Java, код Python в Python, C# в C# и даже Lisp в Lisp, и т.д.

Но не ясно, достаточно ли такие языки быстры для Вас. Для максимальной скорости я принял бы решение генерировать C++ и использовать GCC для компиляции.

1
ответ дан 8 December 2019 в 03:28
поделиться

Почему бы не использовать что-то как SpiderMonkey или Носорог (поддержка JavaScript в Java или C++). Можно экспортировать объекты в пространства имен JavaScript, и пользователи ничего не должны компилировать.

1
ответ дан 8 December 2019 в 03:28
поделиться

Если вы хотите сгенерировать код на языке ассемблера, вы можете взглянуть на asmjit .

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

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