Слишком мало памяти в телефонах и планшетах HW, но HAXM отлично работает?Создание Android Studio JNI static lib для чтения JNI
Основная проблема заключается в том, что мое приложение (скорее всего, динамическая библиотека JNI, загруженное моим Java-приложением) слишком велико. Приложение Java падает без вызова инструкций JNI с использованием HW-телефонов и шаблонов. Однако он отлично работает с эмулятором HAXM, который просто увеличивает первичную память.
Как я полагаю, мне нужно уменьшить размер динамической библиотеки JNI.
У меня есть огромное количество C-функций, большинство из них не используются?
При использовании тематической области прикладного программирования используется более 64000 записей и 995. Создание C-программы в Win32 фильтра компоновщика неиспользуемого материала. Настоящий плавный.
Тем не менее, в Android Studio у меня, как обычно, приложение Java, написанное с использованием динамической библиотеки JNI, используемой стандартным для Android JNI. Нет линкера, который определяет, какие функции используются или нет. Однако у меня есть интерфейсный JNI-файл, который вызывает другую группу C-функций. Система Java не анализирует, какие функции JNI вызываются и находят дерево вызовов, способных их сортировать, я предполагаю? (И не будет DLL в WIn32, потому что он не знает, что будет называться, я предполагаю.)
Статический метод lib может работать, как мне это сделать?
Одна из идей заключается в создании статической библиотеки огромного количества C-функций, и когда стандартный JNI для Android использует ее по вызовам из JNI-файла, я предполагаю, что это будет использовать только функции статического необходима библиотека и отбросить все остальное, например, при подключении к C-программе Win32. Я могу быть не прав?
Ну, я попытался выяснить, как сделать статическую библиотеку в Android Studio, а также как использовать проприетарную статическую библиотеку lib для связи в динамической библиотеке JNI. Тем не менее, очень сложно выяснить, как искать или искать в stackoverflow. Я предполагаю, что этот подход встречается редко.
- Кто-нибудь знает, как сделать статический JNI LIB в Android Studio
- Кто-нибудь знает, как использовать статический JNI LIB в Android Studio делает Android приложения с JNI переднего конца вызывающего статическую LIB функции?
- И способен ли это описать?
- Возможно, это невозможно в JNI, и тогда хорошо знать, что это невозможно. Можно ли сделать эту оптимизацию таким образом?
Вы пытались установить видимость символа по умолчанию на 'hidden 'и сбор мусора, который не использовался в разделе кода/данных? См. Https://blog.algolia.com/android-ndk-how-to-reduce-libs-size/ – Michael
Этот вопрос не показывает каких-либо исследований -1 нечестен на мой взгляд. Послушайте, вся среда Android NDK изменилась на версию 1.3 несколько месяцев назад, даже не вижу, что есть файл android.mk, но build.gradle. Руководство для студии Android на самом деле не полностью обновлено, а страницы NDK - нет. Даже если нет, запуск NDK в качестве отдельных установок, статические проблемы с lib очень редки в stckoverflow. Информация об оптимизации компоновщика android/gradle, скажите мне, где его найти? –
Если вы хотите использовать свой Android.mk при построении с Gradle, есть несколько вопросов о том, как это сделать. Например. http://stackoverflow.com/questions/32970094/how-to-use-custom-android-mk-with-new-gradle-build-system – Michael