Загрузка динамических библиотек OpenSSL для рук и x86 (FMX, C++)

Я могу использовать статические библиотеки OpenSSL (libcrypto.a и libssl.a) в своем приложении для iOS благодаря эта помощь. Теперь я также могу использовать динамические библиотеки OpenSSL (libcrypto.so и libssl.so) в своей версии приложения для Android благодаря эта информация. Скачал файлы для Android в файле OpenSSL_1.0.2g_Android.zip с здесь. Я просто догадался и использовал файлы ARM (папка armeabi-v7a) вместо файлов Intel (папка x86), и это сработало на моем тестовом телефоне Android.

Мой вопрос: как мне сделать сборку Android, которая использует правильные файлы библиотеки на устройствах ARM, а также на Intel? Я не знаю, как развернуть оба набора файлов для этого. Ниже приведен фрагмент окна проекта, показывающий, куда я тестировал добавление второго файла библиотеки libcrytpo.so для x86. Загрузка динамических библиотек OpenSSL для рук и x86 (FMX, C++)

Но эта вторая libcrypto.so не отображается в окне развертывания, остается только первая добавленная версия (версия ARM). Загрузка динамических библиотек OpenSSL для рук и x86 (FMX, C++)

Я надеялся, что смогу как-то использовать директивы компилятора, но, может быть, мне просто нужно всего 2 независимых проекта? Один создан для Android ARM, а другой для Android x86? Кроме того, все, что мне нужно в моем коде, — это IdHTTP1->Get(), так что, может быть, это способ, которым я могу использовать встроенный форк BoringSSL? Если да, то как?

русь

C++Builder 10.3 Версия 26.0.33219.4899

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
619
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

RAD Studio не поддерживает создание приложений Android для Intel, только для ARM, поэтому даже не беспокойтесь о попытках использовать библиотеки x86 на Android.

Кроме того, Indy не поддерживает BoringSSL в это время.

Спасибо, Реми. Я думаю, что ARM в любом случае покрывает> 95% устройств Android. Я только что нашел эта ссылка Embarcadero, в котором говорится, что устройства Intel Android (KitKat и выше) включают библиотеку эмуляции под названием libhoudini. Это библиотека перевода, автоматически вызываемая ОС, позволяющая процессору Intel интерпретировать и выполнять двоичные файлы, скомпилированные для процессора ARM. Также говорится: «Приложения FireMonkey обычно совместимы с библиотекой libhoudini». Я могу попытаться найти Intel Android и проверить это.

relayman357 15.06.2019 03:45

Реми — я купил планшет на базе Intel (Nuvision Solo 8), и мое приложение, созданное с помощью файлов ARM Indy (libcrypto.so и libssl.so), работало нормально! Похоже, libhoudini правильно переводит инструкции ARM для процессора Intel. Таким образом, хотя RAD Studio не поддерживает сборку Intel, сборка ARM будет работать нормально. Единственная функция Indy, которую я сейчас использую, — это IdHTTP1->Get(temp), где temp — это строка с полным URL-адресом, начинающимся с https. Примечание. Процессор — X86 Genuine Intel (R) CPU @ 728 согласно SysCheck.

relayman357 18.06.2019 04:24

Другие вопросы по теме