NotificationBroadcast не зарегистрирован, так как я использую явное намерение
blockquote>Это не имеет значения. Все получатели должны быть зарегистрированы либо через манифест, либо через вызов
registerReceiver()
наContext
. В вашем случае, поскольку вы используетеPendingIntent
для действия уведомления, вам нужно использовать опцию манифеста.Ваш
<receiver>
в манифесте не должен иметь<intent-filter>
, так как вы используете явную трансляцию. Тем не менее, элемент<receiver>
все еще должен быть там.Кроме того, поскольку вы выбрали, чтобы ваш получатель был
static
классом, вашandroid:name
для вашего<receiver>
должен принять это во внимание.
Если Вы рассматриваете C и даже ассемблер, смотрите на LLVM сначала: http://llvm.org
Я мог бы пропускать некоторый контекст здесь, но Вы могли просто прикрепить себя к определенной версии? Например.NET 2.0 может быть установлена бок о бок с.NET 1.1 и.NET 3.5, а также другие версии, которые выйдут в будущем. Таким образом, пока Ваш код использует определенную версию компилятора, какова проблема?
Я рассмотрел возможно генерирующий ассемблер, чтобы выйти из беговой дорожки версии компилятора, но ассемблеры являются все определенными для машины.
Это назвали бы компилятором :)
Почему Вы не придерживаетесь C90
?
Я не услышал большую часть о серьезных нарушениях стандартов от gcc
сторона, если Вы не используете расширения.
И можно всегда распределять определенную версию gcc
наряду с Вашим продуктом, скажем, 4.3.2
, предоставление опции пользователям использовать их собственный компилятор в их собственном риске.
Пока весь код сгенерирован Вами (т.е. Вы не встраиваете свои инструкции в код других), не должно быть никаких проблем в тестировании против этой версии и использовании его для компиляции библиотек.
Одна опция состояла бы в том, чтобы использовать язык/среду, который обеспечивает доступ к компилятору в коде; Например, вот пример C#.
Почему бы не поставлять компилятор C GNU с Вашим генератором кода? Тем путем у Вас нет проблем версии, и клиент может постоянно генерировать код, который применим.
Я придерживался бы того языка, который Вы используете для генерации того языка. Можно генерировать и скомпилировать код Java в Java, код Python в Python, C# в C# и даже Lisp в Lisp, и т.д.
Но не ясно, достаточно ли такие языки быстры для Вас. Для максимальной скорости я принял бы решение генерировать C++ и использовать GCC для компиляции.
Почему бы не использовать что-то как SpiderMonkey или Носорог (поддержка JavaScript в Java или C++). Можно экспортировать объекты в пространства имен JavaScript, и пользователи ничего не должны компилировать.
Если вы хотите сгенерировать код на языке ассемблера, вы можете взглянуть на asmjit .