Я портирую менеджер соединений модема, написанный на C ++, из linux в gingerbread.В конечном итоге это не «приложение» с «графическим интерфейсом», которое я использовал бы в качестве оболочки Java с NDK, а служба, которая вызывается при загрузке из «init.rc».Я нашел несколько устаревших документов, связанных с системой сборки Android в build / core /.Там вы найдете несколько html-файлов, объясняющих основы системы сборки Android, и несколько «file.mk», которые представляют собой шаблоны для типичной ситуации, такой как создание исполняемого файла c ++, статических библиотек, разделяемой библиотеки и т. Д.
Я размещаю свое деревосо всеми исходниками в external / myservice, и он должен быть скомпилирован одновременно с самим Android.(Я уже перенес ядро на свою платформу, и оно работает, только модем ушел)
В подпапке в файле Android.mk у меня есть куча файлов ".cpp", перечисленных спеременная LOCAL_SRC_FILES: = cppfile1.cpp cppfile2.cpp .... Это сгенерирует cppfile1.o cppfile2.o ...
Мне нужно связать эти cppfile * .o с objfile.o для формирования libfile.так.Я нашел правила о том, как сгенерировать libfile.so из набора файлов .o.
Когда все усложняется, это перенести команду "linux makefile" для создания objfile.o.Вот как это выглядит
$(LD) $(LDFLAGS) -r -b binary -o QMIDB.o \
QMI/Entity.txt \
QMI/EnumEntry.txt \
QMI/Enum.txt \
QMI/Field.txt \
QMI/Struct.txt
Это означает, что это задача компоновщика - объединить кучу текстовых файлов для создания этого objfile.o.Этот файл является просто набором инициализированной структуры данных, в нем нет кода для выполнения, но довольно уродливо просматривать все файлы .txt с помощью текстового редактора.
Понятия не имею, как интегрировать это в файл Android.mk.Как это можно сделать?Я даже ценю подсказку, где я могу найти больше информации.Легко найти информацию о создании приложений для Android, но это другая история, чтобы найти что-то ближе к самому Android / Kernel.