Jump to content

Yaroslav Brovin

Administrators
  • Posts

    2,565
  • Joined

  • Last visited

  • Days Won

    646

Blog Comments posted by Yaroslav Brovin

  1. Добрый вечер,

    23 hours ago, Alex O said:

    есть ли возможность задать свое имя и расположение получаемого фото при использовании PickPhotoFromCamera во время использования? 

    Нет, на текущий момент такой возможности нет. Можно выполнить ручное переименование файла уже после получения.

    • Thanks 1
  2. Добрый день, Дмитрий.

    Ваш файл не будет корректно отображен. Потому что он использует SVG эффекты, которые нами не поддерживаются на текущий момент.

    Спасибо

  3. 9 hours ago, Michal said:

    I tried to import svg created with Inkscape but I got " SVG File is not supported". However it is correctly rendered in  preview on the left side but not on the form. I have attached sample (had to change extension to txt) 

    test svg.txt 2.31 kB · 1 download

    If you are using Inkscape, use "Optimized SVG" format, when you save SVG file. It simplificates content and makes final SVG file faster for rendering and parsing. 

    • Like 1
  4. 17 часов назад, sebekin сказал:

    Убрать, например, туда же, ку да и бинарники, то-есть DCC_DcuOutput и DCC_ExeOutput.

    .android-build - это общие скрипты на все конфигурации. Она используется для сборки и релиза и отладочной версии и AAB. Поэтому если размещать такую папку согласно конфигурации приведет к дублированию этого каталога для каждой конфигурации.

  5. Добрый вечер,

    7 минут назад, r3h0soft сказал:

    Здравствуйте, сделал все как в описании, но вот проблема, нет такой библиотеки в репозитории

    Просто введите название библиотеки вручную в первое поле "com.google.firebase:firebase-analytics:21.2.0". Поиск сделан только для одного репозитория из двух (maven). Для Google репозитория апи поиска не доступно.

    • Like 1
  6. 7 минут назад, Михаил Басов сказал:

    Да, каждый,

    Это очень странно...  Проверьте тогда без виртуалки и дайте знать.

    Сколько времени занимает запуск FMX приложения?

  7. Добрый вечер,

    12 минут назад, Михаил Басов сказал:

    но для реальной работы ~ 3-5 минут до запуска простого демо конечно треш полный... с обычным старым проектом на ХE2 вообще полное отсутствие проблем с быстродействием

    Только первый запуск выполняется долго. Последующие должны выполняться на порядок быстрее. Уточните, у вас каждый запуск одного и того же проекта занимает 3-5 минут?

  8. 20 часов назад, sebekin сказал:

    А правильно ли я понимаю, что с устройствами Huawei без Google Apps это не будет работать?

    Если я не ошибаюсь, то Firebase строится на основе GooglePlay. А Google Play не работает на Huawei OS, так что скорее всего нет, не будет.

    P.S. Проверил зависимости, на Huawei работать не будет .

  9. В 02.11.2022 в 11:36, Benten сказал:

    И еще маленькое уточнение - получается, что android API - это полностью байткод под JVM, и не является нативом процессора. Т.е., по сути, android API - это натив JVM. Я правильно понимаю?

    Не совсем. API - это просто набор публичных интерфейсов для использования на любой операционной системы. Реализация API может быть разной. В Android есть как минимуму две:

    1. Реализация через Байт код. Этот набор API находится в Android SDK.
    2. Реализация через нативный код (инструкции процессора). Этот набор объявлен в Android NDK.

    В реализации FGX Native под Андроид мы используем и NDK и SDK (по большей части). Если с работой с NDK все довольно просто. Нужно написать заголовочные файлы для С-headers. То с использованием байт кода из делфи не все так просто. Для этих целей используется JNI. 

    Цитата

    А JVM, в свою очередь  общается с процессорным нативом посредством JNI (Java Native Interface). Верно?

    Нет. JVM выполняет байт код в виртуальной машине. Но по скольку байт код и Java существует не первый десяток. То за это время уже давно существуют всякого рода оптимизации. Одна из них - это JIT-компиляция. Это компиляция байткода в машинный код во время выполнения байт-кода. 

    А JNI - это API для работы с JVM из нативного кода. А именно JNI позволяет осуществлять использование Java объектов из нативного кода (где нет сборщика мусора и тд). 

    • Like 1
  10. 23 минуты назад, Benten сказал:

    Все понятно, Google рулит.

    Не совсем так. Выбор решения зависит от целесообразности, обычно выраженная в требуемых финансовых средств. Если у компании есть большой штат сотрудников, которые могут заниматься системой сборкой, развивать и поддерживать, то почему бы и не делать свою. Но когда есть проверенное, рабочее решение. То зачем нам заниматься созданием своего велосипеда, когда есть Google с тысячами сотрудников, которые этим занимаются и поддерживают актуальность. Можно потратить это время на что-то более ценное для пользователей. В данном случае, Embarcadero судя по релизам не хватает средств для расширенной поддержки билд системы. Поэтому мы выбираем Gradle, как гарантированно рабочее, стабильное решение, не зависимое от версии Delphi. 

    Со временем мы превращаемся из Delphi разработчиков в java-программистов на языке Opjeсt Pascal.

    Сложно представить любой язык без использования стороннего API. Вас же не удивляет, что на VCL вы используете WinAPI на Delphi, а не на С++ или C? Использование WinAPI в Delphi не делает из вас C++ разработчика 🙂 

    Обратите внимание, что на FGX Native вы пишите кроссплатформенный код на Delphi и вы можете ограничиться только этим. И мы занимаемся постепенным расширением его, чтобы гарантировать работу на iOS и Android. С другой стороны у вас есть возможность использовать все возможности операционной системы по полной, как с WinAPI. В итоге вам выбирать, что использовать. Если вам надо решить задачу, то какая разница какого типа код вы вызываете? Так что больше возможностей, больше возможности продукта.

    Цитата

    Например, я пришел в разработку Android из Windows десктопа, где все просто и понятно, где windows натив - это значит машинный код в командах архитектуры x86, который выполняется процессором напрямую, без всяких там оберток, wrapper и VM, можешь даже ASM код внедрять прямо в код delphi, если очень сильно хочется.

    Так и в Android почти так. Есть Байт-код, а есть ваш натив - машинный код в командах архитектуры ARM, который так же выполняется напрямую. Обертки - это внутренний механизм для возможности взаимодействия нативного кода с JVM. Которая в конечном итоге так же выражается в виде байткода, который в конечном счете через JIT компиляцию выражается в нативных инструкциях процессора. Я думаю, вы это понимаете.

    А так есть архитектура Андроид приложения, разработанная Google, и поэтому хочешь не хочешь, а ее надо придерживаться или приложения не будет.

    Цитата

    А тут, я читаю у Ярослава про "натив" на Android и недоумеваю, какой тут может быть натив, если весь код в андроид выполняется исключительно на java виртуальной машине. Dalvik, кажется, называется, но суть от этого не меняется - это JVM - виртуальная машина. Значит мы имеем дело с неким байт-кодом, в который компилируется наше delphi приложение с java-библиотеками или без оных, но это же не натив, это именно промежуточный байт-код, выполняемый виртуальной машиной Dalvik. 

    Все верно. У слова "натив" есть несколько смыслов:

    1. Натив - как последовательность инструкций, выполняемых напрямую на процессоре.
    2. Натив - как использующее родное API для операционной системы/приложения. Даже если это и байт код.

    С этой точки зрения. FGX Native является и тем и другим. FGX Native использует напрямую Android API (представляющее собой байт код) и взаимодействует с JMV, но с другой стороны код вашего приложения является по большей части инструкциями к процессору. 

    23 минуты назад, Benten сказал:

    В Андроид разработке нет полноценного натива, поправьте меня, если я не прав, буду премного благодарен.

    Так же верно. Андроид приложение - это стартовый байт код, которые загружает нативный код и передает ему управление (если мы говорим про FGX Native или FMX).

    • Like 1
  11. 2 минуты назад, Benten сказал:

    А как быть со второй частью вопроса?  Можно не добавлять всю библиотеку android.jar в свой зоголовочник, или это обязательное условие?

    Обязательно нужно добавлять. Android.jar - это по сути Java часть реализации Андроида. В нее входит в том числе Java SDK, это базовые типы (как в делфи RTL). Любая Андроид библиотека использует как минимум классы из Java SDK, поэтому необходимо для генератора добавить android.jar. В противном случае, если генератор не найдет нужные классы, которые использует ваша библиотека, она просто не будет включать их обертку в делфи хедер.

    • Like 1
×
×
  • Create New...