Перейти к содержанию
Fire Monkey от А до Я

Камышев Александр

Пользователи
  • Постов

    235
  • Зарегистрирован

  • Посещение

  • Победитель дней

    9

Активность репутации

  1. Like
    Камышев Александр получил реакцию от AngryOwl в Failed to load libssl.so   
    что ж теперь не пользоваться indy? ssl и в других проектах пригодится, вот тут про сборку https://habrahabr.ru/company/intel/blog/271013/
    Библиотеки OpenSSL

    Рассмотрим сборку библиотек OpenSSL для Android-устройств, построенных на базе архитектуры x86.
     
    Предварительная подготовка

    Для дальнейшей работы нам понадобится следующее.
     
    Главный компьютер, работающий под управлением ОС Windows 7 или более поздней.
      Так как библиотеки OpenSSL написаны на чистом C, для сборки будет достаточно Android NDK, в который встроена поддержка для кросс-компиляции библиотек для заданных платформ (ARM, x86 и других).
    Исходный код библиотек OpenSSL для Android можно загрузить из репозиториев eighthave или guardianproject.
     
    Сборка для платформы x86

    Выбрать целевую платформу сборки можно так же, как и для любого другого Android-приложения, используя установки Application Binary Interface (ABI). В нашем случае в файле jni/Application.mk должно присутствовать следующее:
     
    APP_ABI := x86
    Итак, после того, как NDK загружен и установлен, исходный код Android OpenSSL так же загружен и размещён в локальной папке (например, в C:\openssl-android-master), для сборки библиотек нужно будет сделать следующее.
     
    Откройте окно командной строки (cmd.exe). Перейдите в папку, где расположены файлы OpenSSL для Android. Например, такой командой:
    Не забудьте указать для сборки целевую платформу x86:
     
    APP_ABI := x86
    Выполните команду NDK для запуска сборки:
     
    C:\openssl-android-master > ndk-build
    После её успешного завершения будут созданы OpenSSL-библиотеки libssl и libcrypto, расположенные, в нашем случае, здесь:
     
    C:\openssl-android-master\libs\x86\libcrypto.so C:\openssl-android-master\libs\x86\libssl.so
  2. Like
    Камышев Александр получил реакцию от Rusland в Функция нечеткого сравнения строк   
    в Berlin FMX нет AnsiString? да как так то, не может быть, в Seattle же есть...
    со строками есть момент такой, сразу код, так понятней:
    host = url; int pos = host.AnsiPos( "://" ); #ifdef WIN32 if ( pos ) host.Delete( 1, pos + 2 ); #endif #ifdef __ANDROID__ if ( pos ) host.Delete( 0, pos + 2 ); #endif в общем начало строки с 1 либо с 0
  3. Like
    Камышев Александр получил реакцию от AngryOwl в Failed to load libssl.so   
    По всему не установлены SDK Intel x86, соответственно проблема не в них. 
    Анекдот. При головных болях Врач пациенту: бросай курить, Пациент: я не курю, Врач: попробуй закурить.
    1. поискать libssl под х86,  пишут что они где-то уже есть в системе у GT.
    2. попробовать обновить библиотеки SDK для x86, т.е. если нельзя удалить х86 то надо их поставить
    применить метод научного тыка
  4. Like
    Камышев Александр получил реакцию от Brovin Yaroslav в Какую БД лучше использовать для хранения большога кол-ва аудиозаписей?   
    Хранить в реляционной БД медиафайлы тоже ни разу не идеально, скорее жуткий моветон.
    Если качать с сервера файлы не алё, то вот здесь обсуждался вариант с менеджером ресурсов http://fire-monkey.ru/topic/31-vklyuchenie-svoih-faylov-v-prilozhenie/?do=findComment&comment=83
  5. Like
    Камышев Александр получил реакцию от Andrey Efimov в Какую БД лучше использовать для хранения большога кол-ва аудиозаписей?   
    Хранить в реляционной БД медиафайлы тоже ни разу не идеально, скорее жуткий моветон.
    Если качать с сервера файлы не алё, то вот здесь обсуждался вариант с менеджером ресурсов http://fire-monkey.ru/topic/31-vklyuchenie-svoih-faylov-v-prilozhenie/?do=findComment&comment=83
  6. Like
    Камышев Александр получил реакцию от Равиль Зарипов (ZuBy) в Какую БД лучше использовать для хранения большога кол-ва аудиозаписей?   
    Хранить в реляционной БД медиафайлы тоже ни разу не идеально, скорее жуткий моветон.
    Если качать с сервера файлы не алё, то вот здесь обсуждался вариант с менеджером ресурсов http://fire-monkey.ru/topic/31-vklyuchenie-svoih-faylov-v-prilozhenie/?do=findComment&comment=83
  7. Like
    Камышев Александр отреагировална Евгений Корепов в Программно закрыть клавиатуру   
    Один из способов Edit1.KillFocusByReturn:=True;
    Или можно использовать более гибкий метод, скрывать клавиатуру когда вам захочется:
    В Uses добавьте FMX.VirtualKeyboard, FMX.Platform. Код примерно такой:
    procedure TForm1.Edit1ChangeTracking(Sender: TObject); begin If Edit1.Text.ToLower.Contains('карамба') Then HideVirtualKeyboard; end; procedure TForm1.HideVirtualKeyboard; var Keyboard: IFMXVirtualKeyboardService; begin if TPlatformServices.Current.SupportsPlatformService( IFMXVirtualKeyboardService, IInterface( Keyboard ) ) then Keyboard.HideVirtualKeyboard; end;  
  8. Like
    Камышев Александр отреагировална Kitty в Eddystone   
    Удалось увидеть уведомление в шторке телефона. Выяснилось, что протокол ссылки должен быть https. Поэтому не удалось получить в шторке url для fire-monkey.ru
  9. Like
    Камышев Александр получил реакцию от Kitty в Потоки рушат приложение.   
    В Synchronize еще и critical section - это финт ушами, достаточно critical_section.
    По скрину видно только туеву хучу срэдов, где проблема? где краш? приложение зависает или черный экран?
  10. Like
    Камышев Александр получил реакцию от Rusland в Пробежать по компонентам на Layout   
    Align = Scale - удачный выбор, в oldschool Delphi и CBuilder такого не было, в Anchors выставляли руками масштабирование.
    Кстати, если кнопки надо изменять только в ширину, то это в Anchors
  11. Like
    Камышев Александр отреагировална POV в Пробежать по компонентам на Layout   
    Накидал компоненты на форму как тебе нравится и задал всем это свойство.
    При изменении размеров формы всё пропорционально масштабируется.
  12. Like
    Камышев Александр получил реакцию от Rusland в Failed to load libssl.so   
    По всему не установлены SDK Intel x86, соответственно проблема не в них. 
    Анекдот. При головных болях Врач пациенту: бросай курить, Пациент: я не курю, Врач: попробуй закурить.
    1. поискать libssl под х86,  пишут что они где-то уже есть в системе у GT.
    2. попробовать обновить библиотеки SDK для x86, т.е. если нельзя удалить х86 то надо их поставить
    применить метод научного тыка
  13. Like
    Камышев Александр получил реакцию от Kitty в Failed to load libssl.so   
    счастливые обладатели Intel Atom...
    Причина - некорректная работа SDK для x86,
    Как вариант - Android на Atom умеет эмулировать armeabi, удали из Deploy или прямо из APK/lib/ папку x86.
    При установке андроид не найдет ее и установит приложение в режиме эмуляции arm, скорее всего будет работать.
  14. Like
    Камышев Александр получил реакцию от Andrey Efimov в Удаление записи из таблицы БД связанной с ListView   
    имхо... Bind Visually противоречит шаблонам MVC, и полезен скорее для "HelloWord" проектов,
    да и с СУБД лучше воевать вручную, хотя SQLite - "недобаза", однако лучше сразу "по-взрослому".
    Bind Visually работает в блокирующем режиме? - неясно, скорее всего блокирует интерфейс;
    насколько корректно работает AutoCommit? - неясно, видимо на каждое действие проходит commit;
    какая будет ситуация с уровнями изоляции? - непонятно... слишком много потенциальных проблем.
  15. Like
    Камышев Александр получил реакцию от chaplin.u@gmail.com в строка из массива шестнадцатиричных чисел   
    вот все злые, пристали к программеру, наговорили всякого,
    человек хочет тупо массив данных в HEX просматривать, что от него уходит...
    IntToHex используй, вот код на си:
    AnsiString s; for ( unsigned int i = 0; i < size; i++ ) s += IntToHex( ( (unsigned __int8)(data[i] ), 2 ) + " "; на выходе строка HEXов через пробел
  16. Like
    Камышев Александр получил реакцию от Rusland в строка из массива шестнадцатиричных чисел   
    вот все злые, пристали к программеру, наговорили всякого,
    человек хочет тупо массив данных в HEX просматривать, что от него уходит...
    IntToHex используй, вот код на си:
    AnsiString s; for ( unsigned int i = 0; i < size; i++ ) s += IntToHex( ( (unsigned __int8)(data[i] ), 2 ) + " "; на выходе строка HEXов через пробел
  17. Like
    Камышев Александр получил реакцию от Kitty в Можно ли собрать APK без смартфона ?   
    Project->Build
    APK будет лежать в папке Android\Debug(либо Release)\<имя>\bin\
  18. Like
    Камышев Александр получил реакцию от rareMax в Убить поток TThread?   
    Ответ - никак, нет такого механизма, в винде можно принудительно хэндл потока закрыть, но это тоже заканчивается крахом.
    метод Terminate только выставляет флаг Terminated и все,
    по флагу FreeOnTerminate, после отработки потока, т.е. после выхода из процедуры TBufferThread.Execute поток  будет удален автоматически.
    Без необходимости не надо применять потоки, или применять потокозащищенные методы,
    если уж никак, то работать с ними нужно трепетно: 
    - не использовать засыпающие надолго функции типа Sleep(10000);
    - в компонентах типа доступа к базам данных, tcp, http и т.п. жестко контролировать таймауты;
    - не обращаться к компонентам основного потока, особенно к визуальным;
    - для потоковой защиты использовать TInterlocked, TEvent или TSimpleEvent; 
    - при большом объеме кода, расставлять проверки флага для выхода из цикла if ( Terminated ) break;
    - дожидаться корректного окончания работы потока.
  19. Like
    Камышев Александр получил реакцию от Rusland в События при переходе в спящий режим и выходе из него   
    Rusland, вот обсуждение 
    и код оттуда 
     
    BroadcastReceiver:= TCSBroadcastReceiver.Create(nil); BroadcastReceiver.OnReceive:= BroadcastReceiverOnReceive; BroadcastReceiver.RegisterReceive; BroadcastReceiver.Add('android.intent.action.PHONE_STATE'); BroadcastReceiver.Add('android.intent.action.NEW_OUTGOING_CALL'); а если попробовать: 
    BroadcastReceiver.Add('android.os.action.POWER_SAVE_MODE_CHANGED');  
  20. Like
  21. Like
    Камышев Александр получил реакцию от Ingalime в Сглаживание при рисовании в буфер bitmap   
    протестировал 3 варианта:
    1. правка FMX.Graphics.pas как указано выше
    2. пишу на с++, можно исправить файл FMX.Graphics.hpp
     заменить код 
    __property TCanvasQuality Quality = {read=FQuality, nodefault}; на 
    __property TCanvasQuality Quality = {read=FQuality, write=FQuality, nodefault}; после этого можно 
    bmp_buf->Canvas->Quality = TCanvasQuality::HighQuality; 3. Создать новую канву как указано выше
    TCanvas *MyCanvas = TCanvasManager::CreateFromBitmap( bmp_buf, TCanvasQuality::HighQuality ); во всех трех случаях свойство Quality под debug имеет значение HighQuality, проверял перед DrawPath:
    bool b = MyCanvas->Quality == TCanvasQuality::HighQuality; и во всех вариантах эффекта не было...
    неспроста Quality для формы нужно ставить в design-time
    что происходит при сборке, из-чего включается антиалиасинг?
    .
  22. Like
    Камышев Александр получил реакцию от Mantikor в Альтернатива FMX   
    Ядро Андроида - Linux Kernel, написан, в основном, на си, и серьезность проекта коррелируется скорее с навыками программера чем со средой RAD.
     
    Приложения под операционную систему Android являются программами в нестандартном байт-коде для виртуальной машины Dalvik.
     
    Программы для Dalvik пишутся на языке Java. Несмотря на это, стандартный байт-код Java не используется, вместо него Dalvik исполняет байт-код собственного формата. После компиляции исходных текстов программы на Java (при помощи javac) утилита dx из Android SDK преобразует файлы классов (расширение .class) в файлы собственного формата (с расширением .dex), которые и включаются в пакет приложения (.apk).
     
     Android Native Development Kit позволяет портировать библиотеки и компоненты приложений, написанные на Си и других языках.
     
  23. Like
    Камышев Александр получил реакцию от Martifan в Альтернатива FMX   
    Ядро Андроида - Linux Kernel, написан, в основном, на си, и серьезность проекта коррелируется скорее с навыками программера чем со средой RAD.
     
    Приложения под операционную систему Android являются программами в нестандартном байт-коде для виртуальной машины Dalvik.
     
    Программы для Dalvik пишутся на языке Java. Несмотря на это, стандартный байт-код Java не используется, вместо него Dalvik исполняет байт-код собственного формата. После компиляции исходных текстов программы на Java (при помощи javac) утилита dx из Android SDK преобразует файлы классов (расширение .class) в файлы собственного формата (с расширением .dex), которые и включаются в пакет приложения (.apk).
     
     Android Native Development Kit позволяет портировать библиотеки и компоненты приложений, написанные на Си и других языках.
     
  24. Like
    Камышев Александр получил реакцию от Kitty в Альтернатива FMX   
    Ядро Андроида - Linux Kernel, написан, в основном, на си, и серьезность проекта коррелируется скорее с навыками программера чем со средой RAD.
     
    Приложения под операционную систему Android являются программами в нестандартном байт-коде для виртуальной машины Dalvik.
     
    Программы для Dalvik пишутся на языке Java. Несмотря на это, стандартный байт-код Java не используется, вместо него Dalvik исполняет байт-код собственного формата. После компиляции исходных текстов программы на Java (при помощи javac) утилита dx из Android SDK преобразует файлы классов (расширение .class) в файлы собственного формата (с расширением .dex), которые и включаются в пакет приложения (.apk).
     
     Android Native Development Kit позволяет портировать библиотеки и компоненты приложений, написанные на Си и других языках.
     
  25. Like
    Камышев Александр получил реакцию от Cody71727172 в Не сохраняются данные в ini, На Android.   
    В Seattle поменялся путь к документам, и то что в GetDocumentsPath не видно - ибо не Shared теперь, в файловом менеджере не видно, однако файлы пишутся, проверяли их на чтение?
    В XE7 GetSharedDocumentsPath выводил в Android/data/com.embarcadero.имя, в Seattle путь в папку Documents в корне. 
    GetDocumentsPath в Seattle указывает  в Android/data/com.embarcadero.имя и файлы скрытые.
     
    Еще момент, были проблемы с файлами после перехода с XE7, если работа с файлами в конструкторе формы, помог вынос в OnCreate, что-то там поменялось.
×
×
  • Создать...