- меню Файл | Новые | Project ...
- Выберите проект Android, Next
- Название проекта: Это имя проекта, указанное в Проводнике пакетов. Это просто строка, хранящаяся в файле
.project
, который создает Eclipse. Никакого файла или папки с этим именем не создается, а выходные двоичные файлы, похоже, не содержат этого имени.
- Нажмите «Создать проект из существующего источника»
- Местоположение: выберите корневую папку проекта, например. .../android-ndk-r7b/samples/bitmap-plasma
- Нажмите «Далее» и выберите целевой API. Eclipse, похоже, не позволяет это изменить позже, по крайней мере, не из графического интерфейса. Я не знаю, почему Eclipse не просто получает эту информацию от
<uses-sdk>
в AndroidManifest.xml или из целевой страницы в default.properties. Я также не знаю, почему эти два могут быть разными (например, в образце битмап-плазмы, target=android-9
, но <uses-sdk android:minSdkVersion="8"/>
.)
- Нажмите дальше и подумайте об изменении поля «Имя пакета», которое по умолчанию соответствует «your.package.namespace», , Однако проект будет работать нормально, если вы не измените это поле. Оставьте «Создать мероприятие» и «Создать тестовый проект» непроверенным.
- Нажмите «Готово». Eclipse создаст множество дополнительных файлов (например .classpath, .project, project.properties) и папок (bin, gen, assets) вместе с существующим кодом. Это в дополнение к выходным папкам, созданным ndk-build (obj и libs).
Затмение не будет строить собственный код сам по себе, но он автоматически развернет машинный код (например, libplasma.so) если он знает об этом. После того, как вы создадите собственный код в командной строке, например.:
C:\...\android-ndk-r7b\samples\bitmap-plasma>..\..\ndk-build
Gdbserver : [arm-linux-androideabi-4.4.3] libs/armeabi/gdbserver
Gdbsetup : libs/armeabi/gdb.setup
Gdbserver : [arm-linux-androideabi-4.4.3] libs/armeabi-v7a/gdbserver
Gdbsetup : libs/armeabi-v7a/gdb.setup
"Compile thumb : plasma <= plasma.c
SharedLibrary : libplasma.so
Install : libplasma.so => libs/armeabi/libplasma.so
"Compile thumb : plasma <= plasma.c
SharedLibrary : libplasma.so
Install : libplasma.so => libs/armeabi-v7a/libplasma.so
правой кнопкой мыши проект и выберите «Обновить», в противном случае Eclipse, может не загружать собственный код, когда он запускает эмулятор.
Наконец, чтобы запустить образец, щелкните правой кнопкой мыши проект и выберите «Запустить как | Android-приложение. See here о выборе эмулятора.
See here о настройке Eclipse для автоматического создания собственного кода.
Мне любопытно, почему NDK создает два файла * .so с очень разными размерами для каждого ABI, например. он создает libs/armeabi-v7a/libplasma.so
(15 КБ), но также obj/local/armeabi-v7a/libplasma.so
(63 KB). Кто-нибудь знает разницу?