Jump to content

Benten

Members
  • Posts

    121
  • Joined

  • Last visited

  • Days Won

    10

Blog Comments posted by Benten

  1. 2 минуты назад, Viktor Akselrod сказал:

    У вас есть необходимость использовать старые версии Java?

    Спасибо, уже поставил 18-ю версию Java. Использовать 8-ю версию большого смысла нет.

  2. Добрый день!

    Для новой версии FGX-Native теперь таки минимальная версия Java 18?  C Java 8 работать уже не будет?

    И да, 18 версия считается устаревшей. Использовать 19-ю последнюю или 17-ю LTS ?

    img-2022-12-23-15-43-07.png

  3. 13 часов назад, Yaroslav Brovin сказал:
    • Натив - как последовательность инструкций, выполняемых напрямую на процессоре.
    • Натив - как использующее родное API для операционной системы/приложения. Даже если это и байт код.

    Ярослав, спасибо.

    Стало чуть понятнее. Но есть просьба, когда вы пишите "натив" уточняйте, пожалуйста, это натив, как набор процессорных команд или натив, как код, использующий родной андроид API. Может даже придумать разные термины для этих понятий.

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

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

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

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

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

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

  5. Спасибо, ребята, все получилось.

    Осталось разобраться, как со всем этим хозяйством заголовочника работать в Delphi.  Буду изучать матчасть.

    Полученный заголовочник прикладываю, вдруг кому пригодится, все-таки проделана немалая работа по переводу из файлов описания интерфейсов *.aidl   в  pascal header

     

    com.multisoft.drivers.fiscalcore.api.pas

    • Like 1
    • Thanks 1
  6. 4 часа назад, Viktor Akselrod сказал:

    Уберите запятую в у последнего элемента массива

    "com.multisoft.drivers.fiscalcore.*"

    Спасибо, мне очень стыдно  🙃

    7 часов назад, Benten сказал:

    И еще. Я так и не понял, если я хочу создать заголовочник только для классов из jar-библиотеки C:\Android\AIDL\output\jar\IFiscalCore.jar,  мне обязательно добавлять  всю андроид библиотеку C:\Android\SDK\platforms\android-30\android.jar и все классы из этой библиотеки в мой заголовочник?

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

    Просто я впервые интегрируюсь с java библиотекой, даже не зная по сути языка java, поэтому буду рад любой подсказке.

    P.S. Очень надеюсь, что так и не придется глубже вникать в язык Java, хватит только знаний Delphi и отличной FGX-Native

  7. Добрый день, Ярослав!

    Большое спасибо за подробное описание утилиту Java2Delphi, но с пол пинка оно не работает 😪

    Как только я не пытаюсь изменить настройки, всегда получаю ошибку:

    Цитата

    FGX Native Java to Delphi generator, version 2.2
    Copyright c 2021, Brovin Yaroslav
    All rights reserved

    Value 'outputDir' not found
    Generation of java wrappers is completed.

    {
        "javap": "C:\\Program Files\\AdoptOpenJDK\\jdk-8.0.242.08-hotspot\\bin\\javap.exe",
        "jar": "C:\\Program Files\\AdoptOpenJDK\\jdk-8.0.242.08-hotspot\\bin\\jar.exe",
        "outputDir": ".\\Headers",
        "signatureOutputDir": ".\\Signatures",
        "xmls": [
            "$(FGX)\\Tools\\JavaToDelphi\\api-versions.android-28.xml"
        ],
        "jars": [
            "C:\\Android\\SDK\\platforms\\android-30\\android.jar",
            "C:\\Android\\AIDL\\output\\jar\\IFiscalCore.jar"
        ],
        "classes": [
            "java.lang.Object",
            "java.lang.CharSequence",
            "java.lang.String",
            "java.lang.Class",
    .....

    И еще. Я так и не понял, если я хочу создать заголовочник только для классов из jar-библиотеки C:\Android\AIDL\output\jar\IFiscalCore.jar,  мне обязательно добавлять  всю андроид библиотеку C:\Android\SDK\platforms\android-30\android.jar и все классы из этой библиотеки в мой заголовочник?

     

    config.json.txt

×
×
  • Create New...