Сбой приложения Android: запуск демонстрационного приложения NaCl (pexe) на мобильном устройстве с использованием Apache Cordova
Я пытаюсь запустить приложение Chrome на Android Mobile, используя инструкции: developer.chrome.com/apps/chrome_apps_on_mobile
С вышеупомянутого URL я мог нормально запустить приложение калькулятора в Android Emulator 5.0.1. Без вопросов.
github.com/GoogleChrome/chrome-app-samples/tree/master/samples/calculator
Калькулятор приложения Chrome на скриншоте Android
Затем я попытался запустить приложение "Native Client" на рабочем столе из примера каталога API nacl_sdk: developer.chrome.com/native-client/sdk/download
nacl_sdk поставляется с несколькими примерами, включая демонстрационные и основные примеры API. Все примеры отлично работают на рабочем столе. Из них я взял пример API file_io, который прекрасно работает после компиляции (make). Я взял эту папку и использовал следующую команду для создания приложения cca cordova:
cca create FileApp --copy-from=/path/to/file_io/manifest.json
Затем перейдите к FileApp
а также cca prepare
После этого запустил команду Android eumlate:
cca run android --target=avd5
Все обработано нормально, и я не вижу ошибок при создании этого приложения Cordova, такого как приложение калькулятор. Но после запуска LAUNCH SUCCESS при запуске приложения эмулятор Android рухнул. Окна эмулятора закрыты.
Я запустил эмулятор Android из AVD Manager, и после загрузки Android я попытался запустить приложение File I/O, которое в результате показало мне сообщение
"К сожалению, файловый ввод-вывод остановлен". Скриншот
Означает ли это, что приложения PNaCl/NaCl по-прежнему не поддерживаются в ОС Android? Приложение NaCl содержит файл.pexe. Есть ли какой-то шаг между мной, которого я мог бы пропустить?
Я был бы очень признателен за любую помощь в этом вопросе, чтобы проверить, могу ли я запускать Native Client Apps на ОС Android так же, как мобильные приложения Chrome с использованием примеров Apache Cordova.
1 ответ
Собственный клиент (NaCl) не поддерживается в Chrome для Android (и, как следствие, в WebView Chrome / Chromium).
Смотрите: http://developer.chrome.com/multidevice/faq
Q: Does Native Client work on Chrome for Android?
A: It does not, and we have no plans to announce at this time.
Но затем ОП читают по адресу: https://github.com/MobileChromeApps/mobile-chrome-apps/blob/master/docs/faq.md#is-nacl--pnacl-supported
Q: Is NaCl/PNaCl supported [in Cordova]?
A: No. However, you can still compile and use native code
by writing a custom Cordova plugin.
И, к сожалению, слово native - это перегруженное слово с различными значениями в зависимости от контекста, поэтому OP начал задавать вопросы о Android Native Development Kit (NDK).
Android NDK, который использует собственный интерфейс Java (JNI) для кода C/C++ для взаимодействия с платформой Java Java. Как правило, приложения Android используют NDK только в том случае, если необходимо портировать существующие библиотеки C/C++ или требуется вычислительная производительность, например физическое моделирование или обработка изображений.
Когда Cordova ссылается на "собственный код", это означает код, написанный на Android Java, который должен быть соединен через плагин Cordova со стороной JavaScript.
И, конечно, почему использовать любую из вышеперечисленных платформ /API, зависит от того, что хочет сделать OP.