Библиотека, вероятно, использует Renderscript или интерфейсы с Android NDK в некотором роде. Как только вы покинете мир Java и погрузитесь в мир C/C++, ваш код может стать зависимым от платформы при использовании предварительно скомпилированного кода.
При использовании NDK вы должны скомпилировать отдельную версию своего кода для разных архитектур при создании, и Android выберет правильный вариант, основанный на архитектуре системы. Таким образом, каждый файл jar, скорее всего, содержит предварительно скомпилированный код, например, CommonsWare.
редактировать
Некоторые примеры предварительно скомпилированных кода:
- Database library - Этот человек написал библиотеку базы данных в C++, потому что это быстрее, чем с помощью Java.
- Digital Image Processing - Специализированный код, который может выполнять действия над растровыми изображениями, выполняет быстрее на C, чем на Java.
Все эти предварительно скомпилированные фрагменты кода скомпилированы для разных архитектур в двоичные файлы, чтобы их можно было запустить без необходимости их интерпретации в первую очередь. К ним обычно обращаются из кода C/C++, который не был предварительно скомпилирован, но живет где-то в приложении, которое включает в себя предварительно скомпилированный код. Он позволяет ключевым функциям жить изолированно в этих двоичных файлах.
Вы заглянули в эти JAR? Я предполагаю, что они содержат скомпилированные прикладные двоичные файлы. – CommonsWare
@CommonsWare Я заглянул в эти JARs с помощью zip-инструмента. Существуют только файлы классов. что такое ** скомпилированные бинарные файлы приложения **? –