Основни положения в Android NDK работа с в

Основни положения в Android NDK работа с в

Използването на родния код, написани на C или C ++ - това е тема, която много фирми не се отразяват на всички. Но понякога използването на C ++ приложения много по-лесно / по-бързо развитие. В тази статия ще обсъдим основните принципи на работа с родния код.







Предварително

Ако не се създаде Eclipse, четете как да се създаде Eclipse да работи с Android. Само в допълнение към това, което се казва в статията, когато инсталирате повече нужда, за да изберете и инсталирате плъгина НДК.

Просто трябва да инсталирате CDT за Eclipse. Под Windows вие като че ли все още искате да инсталирате Cygwin.

Сега трябва да се създаде проект и да се регистрирате начини.

  • Създаване на приложението си за Android.
  • Eclipse -> Window -> Preferences -> Android -> зададете пътя до SDK

Основни положения в Android NDK работа с в

  • Eclipse -> Window -> Настройки -> Android -> НДК -> зададете пътя до НДК

    Основни положения в Android NDK работа с в

  • Щракнете с десния бутон на проекта и изберете Tools Android -> Добавяне на вградената поддръжка
  • JNI в папката на проекта ще бъдат създадени, където можете да поставите файловете от C ++ код. В по-ранни версии имаше бъг, при който Eclipse не може да конфигурирате правилно пътя към някои заглавни файлове от НДК. Най-новата версия на всичко е нормално. Просто почистване на проекта (Clean проект), и след това да го възстанови (Build проект).

    Защо имаме нужда от НДК?

    Мисля, че първо трябва да се обясни, когато всички разходи (и то си струва?) Използвайте НДК. Много от тях се препоръчва да се използва C ++, когато се изисква някои големи / сложни изчисления. Какво означава това, трудно? = / В общи линии, това ще се обадя на конкретните случаи, в които използването на НДК е оправдано:

    • Работа с OpenGL ES. Мисля, че повечето от тези, които използват НДК, той yuzayut само за писане на игри.
    • Използването на междуплатформени двигатели, като кокосов орех.
    • Най-очевидният случай - това е, когато трябва да се използва вече написан на C ++ код. С течение на десетилетията в C ++ вече написан цял куп. Защо пренапише неща в Java, ако можете просто да използвате Отворени развитието на източника. И не всичко може да бъде пренаписана, мисля, че една и съща OpenCV безсмислено би било да се пренапише, в момента, когато можете просто да включите готови източници.






    Възможностите са огромни НДК. Можете да се позове на Java от методи C ++. В същото време, вие не правите нищо маха повикване Java методи от C ++. Дори можете да създадете приложение, почти без използване на Java, като се използват NativeActivity (API 9 и по-горе).

    Java. Пътуване до Native (или връщане).

    Бог да ми прости, че споменавам професорът от неговата работа (: И така, помислете за всичко в една статия не е възможно поради това, за да се пристъпи към прилагането на повикване местни методи на Java ..

    Изброяват прави кратко, когато се занимават с родната:

    • Създаване на файлове с C ++ код.
    • Определяне на C ++ методи за износ.
    • Създаване .mk файлове.
    • Generation библиотека.
    • Библиотека Connection в Java и C ++ метод повикване.

    Създаване на C ++ източник файл

    Родната определят всички 3 методи: преносни линии, линии промени за извличане на един ред.

    Създайте файл за стартиране def.h. Свързване на чифт необходими файлове и определяне на методите за изход към конзолата.

    MyNative.h създадете файл и да го определи в спецификацията на метода за износ да им се обадя от Java код след това.

    Сега трите метода могат да бъдат извикани от Java код. Написах този код дръжки. Но вие можете да zayuzat javah. което от своя страна ще generit тези заглавки. ученик "C" е необходима за C ++ компилатор не се променя имената на обявените функции.

    Така се създаде MyNative.cpp с методите на изпълнение.

    Работа с Application.mk

    Този файл описва глобалните настройки за натрупването в празното.

    Работа с Android.mk

    Ето това посочвате / настройки чрез свързване и т.н., да се съберат libu.

    След като сте създали C ++ файлове и .mk готови, можете да zabildit проект, а след това в папката OBJ показва библиотека libAndroidNDK.so.

    Библиотека Connection в Java и C ++ метод повикване.

    Основни положения в Android NDK работа с в

    Сега остава само да пишат Java код. Смятате непретенциозен приложение. Поставете текстовото поле, трите бутона (за трансфер в родния текст, да промените текста на родения и връща модифицирана низ от родната) и поле за нов текст, който се извлича от родния код.

    За да използвате естествени методи създават клас AndroidNDK.

    Този код ще изтегли нашата библиотека, която реализира методите. Обърнете внимание отново на класа и методи, както и да си спомня името на методи за износ в родния код: Java_ru_suvitruf_androidndk_AndroidNDK_ChangeString.

    Java код за обработка на натискания на клавиши, няма да пиша за ключа, защото това е тривиална задача. Във всеки случай, ако е необходимо, можете да видите изходния код на тази статия. Дневникът на файла ще бъде това:

    За въведение в родния достатъчно писано. Можете да изтеглите източник AndroidNDK.rar.