2014-01-07 3 views
2

Я хочу создать проект C++ для android ndk.And, я хочу использовать его в каждом проекте, таком как динамическая библиотека. Я не хочу каждый раз менять/экспортировать исходный код. Я импортирую файл * .so и включить его и использовать его класс или что-то еще. Это возможно. Если возможно, как можно импортировать и использовать его.android ndk общаться с другим проектом C++

Или я создаю проект java, и я использую его для связи проекта C++ с использованием jni и i компиляции его. После этого у меня есть файл * .jar, и я использую его вместо android ndk.

Какой из них возможен или эффективен.

ответ

1

Я не совсем уверен, правильно ли понял вопрос, но я предполагаю, что вы предпочитаете писать свои приложения для Android, используя исключительно/главным образом C++, и иметь основную библиотеку/модуль, который вы хотите использовать повторно для каждого последовательного проекта БЕСПЛАТНО, включая файлы файлов SOURCE для библиотек в каждом последующем проекте.

Вы можете опустить, включая исходные файлы, и включить окончательный файл .so в свой новый проект, добавив необходимые библиотеки в ваш файл. Как так:

LOCAL_PATH := $(call my-dir) 

include $(CLEAR_VARS) 
LOCAL_C_INCLUDES := (includes for libraryname) 
LOCAL_MODULE := libraryname 
LOCAL_SRC_FILES := libraryname.so 
include $(PREBUILT_SHARED_LIBRARY) 

include $(CLEAR_VARS) 

--- instructions for custom application code here --- 

LOCAL_SHARED_LIBRARIES := libraryname 

Где «LibraryName» является имя модуля библиотеки и «libraryname.so» это имя файла библиотеки. Обратите внимание, что путь должен быть относительно файла make. Ниже второго «включить $ (CLEAR_VARS)» и над финальным «LOCAL_SHARED_LIBRARIES» вы добавите инструкции для создания исходного кода приложения, которое должно использовать общую библиотеку.

Не забудьте загрузить все библиотеки, чтобы на стороне Java, т.е .:

System.loadLibrary("libraryname"); 
System.loadLibrary("customlib"); 
Смежные вопросы