После того как API станет общедоступным, они не могут изменить его таким образом, который повлияет на существующие приложения, которые его используют, то есть он может быть расширен только и не изменен. Это добавляет некоторую нагрузку на любое развитие вокруг него и ограничивает, каким образом он может быть разработан. Из-за этого нужно тщательно решить, какие API-интерфейсы они готовы поддерживать публично, и взвешивать это с тем, какую выгоду от него станет публичной.
Поскольку дизайн Android - это то, что главный публичный API находится в java, поэтому все, что доступно в NDK, будет огромным дублированием. (Даже если компоненты нижнего уровня являются C/C++, они не предназначены для публичного использования, они предназначены только для использования публичными API-интерфейсами более высокого уровня.) На практике только несколько собственных API-интерфейсов были открыты которые необходимы для достижения хорошей производительности и некоторых ограниченных частей для удобства.
Google не пытается поддерживать двоичную совместимость для этих библиотек в версиях Android. Если вы ссылаетесь на библиотеки за пределами стабильного списка, ваше приложение может не загрузиться в некоторых версиях Android, поскольку символы, на которые вы полагаетесь, не были изменены, и т. Д. – CommonsWare
Оба типа библиотек создаются из файлов C++, так в чем смысл бинарной совместимости? спасибо. – ransh