PureBasic - форум

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » PureBasic - форум » SpiderBasic » Установка и настройка SpiderBasic


Установка и настройка SpiderBasic

Сообщений 1 страница 5 из 5

1

Установка и настройка SpiderBasic

1. Перед установкой SpiderBasic нужно учесть, что проблема может быть в имени пользователя. Русские буквы в пути к папке %temp% компилятор просто не видит, там может быть любая абракадабра, например:
C:\Users\пїЅпїЅпїЅпїЅпїЅпїЅ2\AppData
как видно в пути между Users и AppData какие то повторения Ѕпї, хотя должно быть "Андрей2"
То есть первый делом при русском имени пользователя создаём нового пользователя латинскими буквами (a-z).
Описание этой проблемы показано тут
2. Установить SpiderBasic (проверено на 2.40)
3. Установить JDK 8 (JDK 9+ то есть 9 и выше не поддерживается). Должен быть такой путь:
C:\Program Files (x86)\Java\jdk1.8.0_202
тут надо ещё заметить 32-разрядная Java
Этот путь указать в настройках File -> Preferences -> Compiler
Не уверен, но если компиляция не будет работать, то добавить переменные окружения для пользователя:
JAVA_HOME = C:\Program Files (x86)\Java\jdk1.8.0_202\
4. Тест. Нажать F5, чтобы запустить приложение в браузере и протестировать его работу. Справа окно отладчика куда можно выводить информацию использую в коде Debug.
5. Для создания приложения естественно открыть любой пример с официального форума или в "C:\ProgramData\SpiderBasic\Examples" открыть меню Compiler -> CreateApp... -> Вкладка "Android".
Заполнить поля на вкладке "Android"
App name: "Любое имя на англ. яз." Version: 1.0.0.0 Code: 0
Icon: icon.png - иконка в папке с кодом, если путь не указан.
Package ID: com.mysoft.appname где appname это имя вашей программы в нижнем регистре; mysoft это типа имя вашей компании, разработчика, вместо com может быть ru. Если прога не на "Google Play", то не стоит придавать идентификатору пакета особое внимание, разве что на будущее учесть.
IAP Key: оставляем пустым, это типа подпись
Startup image: оставляем пустым, это картинка, которая отображается во время запуска программы вместо стандартной картинки паука логотипа SpiderBasic (по умолчанию \SpiderBasic\Compilers\splashscreen.png). Ну или можно указать имя файла и рядом с исходником положить png-файл соответствующего размера и формата.
Orientation: здесь 3 значения Any - любое, Portrait - Портрет, Landscape - Пейзаж. Здесь то как будет открыто приложение. Если при повороте телефона в горизонтальное положение программа не умещается в экран (не трансформируется, не перестраивается, без события #PB_Event_SizeDesktop), то выбрать Portrait - Портрет и программа всегда останется в вертикальном положении.
Fullscreen - на весь экран, не будут отображаться строка состояния где показан процент зарядки, время, индикатор сети и т.д. и не будут отображаться кнопки круг, треугольник, квадрат. В этом режиме нужно продумать кнопку выхода из приложения. При тесте можно сделать ссылку на свой сайт (стиль target="blank" для ссылки), чтобы открыть внешний браузер и стали доступны кнопки круг, треугольник, квадрат, т.е. перестраховаться, чтобы не перезагружать телефон.
Resource directory: здесь можно указать data\ это папка, в которой будут лежать файлы, которые можно открывать напрямую без диалога "Открыть", например музыка, картинки, тексты. Рядом с исходным файлом также нужно создать папку data\ и положить туда нужные программе файлы, они будут добавлены в приложение. Можно открыть потом созданный apk-файл с помощью 7zip и в папке \assets\www\data\ найти свои файлы.
Automatically upload on USB connected device (requires enabled debugger) - Автоматическая загрузка на устройство, подключенное через USB (требуется включенный отладчик). С этой галкой при тесте в телефоне будет присутствовать окно отладки.
Enable debugger - Включить отладчик
Так как приложение требует подпись: IAP Key, а получить её можно только зарегистрировавшись разработчиком на сервисе "Google Play", то для нормальной работы приложения требуется скачать программу "APK.Tool.GUI.v3.0.2.0" и бросить apk-файл в окно программы в поле "APK file to align:", при этом в логе появится информация буквально в течении секунды в строке состояния появится надпись "Готово". Теперь можно подключать телефон к компу и переносить файл и запускать установку приложения.
6. При установке на телефон появится запрос на разрешения установить из недостоверного источника, надо разрешить, чтобы продолжить. На разных версиях андроида этот диалог может отображаться по разному иногда даже не предлагая эту возможность, главное что она есть и надо поискать в интернете последовательность действия для разрешения на конкретной версии андроида или даже модели телефона с конкретной версией андроида и со стандартными настройками в данной прошивке.
7. При ошибке компиляции можно захватить текст в отладчике с помощью CaptureText
8. При компиляции html на вкладке Web на выходе появляется файл NameApp.html и NameApp.js. Для их работы требуется рядом с ними положить папку библиотек "javascript", которая находится в "\SpiderBasic\Libraries\javascript" и переименовать папку "javascript" в "spiderbasic", потому что файл NameApp.html на неё ссылается.Теперь если всё это переместить на веб-сервер и открыть веб-страницу NameApp.html, то приложение будет работать в браузере загружаясь с веб-сервера.

Второстепенная часть
1. Инструменты. Так как IDE имеет такой же функционал как и IDE PureBasic, разве что с некоторыми изменениями специфичными для компилятора под андроид, то такие вещи как инструменты (см. IDE-Tool), подсветка и прочие настройки полностью поддерживаются и совпадают, просто импортировать подсветку и указать пути на инструменты, предположительно можно просто скопировать конфиги в AppData.
2. Шаблон. При создании очередного приложения можно просто скопировать заготовленный шаблон файла sb, который открыть в AkelPad, чтобы были видны системные поля в конце файла и заменить имя проги на новое во всех полях, вместо того чтобы заполнять их перед первой компиляцией. Только в поле "Package ID" надо перевести имя в нижний регистр.
3. Стили. В настройках "Compiler -> Compiler Options..." можно выбрать стиль aeroglass или flat для окна и claro или flat для гаджетов. По умолчанию flat, так как видно из последующей инструкции, что для правки использовались файлы из папки "flat".
Можно изменить стиль индивидуально, распаковав apk-файл с помощью "APK.Tool.GUI.v3.0.2.0" и изменять файлы в папке "\assets\www\spiderlibraries\", а потом запаковать, а можно глобально в папке "SpiderBasic\Libraries\javascript", сделав копию папки, в этом случае каждый собранный apk-файл будет иметь заранее заданный стиль. Можно почитать тут
При запуске приложения в телефоне на экране появляется картинка логотип, в apk-файле она находится в \res\drawable-port-..dpi-v4\screen.png (многоточие это разные DPI, там несколько копий), а в SpiderBasic путь "\SpiderBasic\Compilers\splashscreen.png".
В основном стили находятся в папке:
\dojo\themes\flat\flat.css - здесь много изменений цвета отдельно выбранных элементов окна. Также поменял размер шрифта для меню, чтобы попадать на него пальцем не захватывая сразу 2 пункта  меню (dijitMenuItem 16px).
\themes\flat\window.css - здесь в ".spiderwindow-title" поменять порядок шрифтов "font:normal 12px/16px Arial,"Segoe UI",sans-serif;"
\dojo\dgrid\css\dgrid.css
в apk-файле \assets\www\css\index.css - здесь в body поменять background-color: #E4E4E4; на другой цвет, это при запуске, чтобы фон после логотипа был сразу чёрный, а не белый, до того как на нём нарисуются гаджеты, особенно, когда их рисование происходит с задержкой из-за сложного кода.
Можно распаковать любые два apk-файла с авторской темой и стандартный, и сравнить папки "\assets\www\spiderlibraries\" в программе сравнения Meld. Но учитывая что исправлялись цвета только используемых элементов приложения, а не всех существующих в SpiderBasic и возможно другие элементы могут выглядеть не так как хотелось бы/
Также можно в папке "\dojo\themes\" сделать копию папки "flat" и назвать её своим именем, например nic или mytheme, при этом в настройке компилятора при выборе тем гаджетов появится выбор этой новой темы. И настроить конкретно свою выбранную тему. Аналогично и в папке "\themes\" для окон.
4. При первом обновлении "APK.Tool.GUI.v3.0.2.0" решил обновить, но после подписи apk-файл не работал на телефоне, поэтому уточняю, если не будет работать, то надо пробовать конкретно эту версию. Ещё раз проверил последнюю версию v3.2.2.0, после применения apk-файл не работает, андроид пишет что файл повреждён, а телефон не может отсоединиться кнопкой в трее "Извлечь "MTP".

Если есть что добавить полезное к инструкции пишите.

Отредактировано AZJIO (08.09.2023 23:27:59)

0

2

Скопировал лог, может кому пригодится, чтобы знать какие операции происходят в нём.
Видно что в логе фигурируют переменные: JAVA_HOME и ANDROID_HOME, а значит если что-то не получается можно вручную их добавить в переменные среды. По крайней мере переменной "ANDROID_HOME" у меня нет в переменные среды.

Код:
Compilation in progress...
You have been opted out of telemetry. To change this, run: cordova telemetry on.
Creating a new cordova project.
Creating app...
You have been opted out of telemetry. To change this, run: cordova telemetry on.
Adding android project...
Creating Cordova project for the Android platform:
Subproject Path: CordovaLib
Android project created with cordova-android@6.1.2
Discovered plugin "cordova-plugin-whitelist" in config.xml. Adding it to the project
Fetching plugin "cordova-plugin-whitelist@1" via npm
Installing "cordova-plugin-whitelist" for android
You have been opted out of telemetry. To change this, run: cordova telemetry on.
Fetching plugin "cordova-plugin-splashscreen@6.0.2" via npm
Installing "cordova-plugin-splashscreen" for android
You have been opted out of telemetry. To change this, run: cordova telemetry on.
Fetching plugin "cordova-plugin-nativeaudio" via npm
Installing "cordova-plugin-nativeaudio" for android
You have been opted out of telemetry. To change this, run: cordova telemetry on.
ANDROID_HOME=C:\D\SpiderBasic\Android\android\sdk
JAVA_HOME=C:/Program Files (x86)/Java/jdk1.8.0_202
Subproject Path: CordovaLib
Incremental java compilation is an incubating feature.
:preBuild UP-TO-DATE
:preReleaseBuild UP-TO-DATE
:checkReleaseManifest
:CordovaLib:preBuild UP-TO-DATE
:CordovaLib:preReleaseBuild UP-TO-DATE
:CordovaLib:checkReleaseManifest
:CordovaLib:prepareReleaseDependencies
:CordovaLib:compileReleaseAidl
:CordovaLib:compileReleaseNdk UP-TO-DATE
:CordovaLib:compileLint
:CordovaLib:copyReleaseLint UP-TO-DATE
:CordovaLib:mergeReleaseShaders
:CordovaLib:compileReleaseShaders
:CordovaLib:generateReleaseAssets
:CordovaLib:mergeReleaseAssets
:CordovaLib:mergeReleaseProguardFiles
:CordovaLib:packageReleaseRenderscript UP-TO-DATE
:CordovaLib:compileReleaseRenderscript
:CordovaLib:generateReleaseResValues
:CordovaLib:generateReleaseResources
:CordovaLib:packageReleaseResources
:CordovaLib:processReleaseManifest
:CordovaLib:generateReleaseBuildConfig
:CordovaLib:processReleaseResources
:CordovaLib:generateReleaseSources
:CordovaLib:incrementalReleaseJavaCompilationSafeguard
:CordovaLib:compileReleaseJavaWithJavac
:CordovaLib:compileReleaseJavaWithJavac - is not incremental (e.g. outputs have changed, no previous execution, etc.).
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
:CordovaLib:processReleaseJavaRes UP-TO-DATE
:CordovaLib:transformResourcesWithMergeJavaResForRelease
:CordovaLib:transformClassesAndResourcesWithSyncLibJarsForRelease
:CordovaLib:mergeReleaseJniLibFolders
:CordovaLib:transformNative_libsWithMergeJniLibsForRelease
:CordovaLib:transformNative_libsWithSyncJniLibsForRelease
:CordovaLib:bundleRelease
:prepareAndroidCordovaLibUnspecifiedReleaseLibrary
:prepareReleaseDependencies
:compileReleaseAidl
:compileReleaseRenderscript
:generateReleaseBuildConfig
:generateReleaseResValues
:generateReleaseResources
:mergeReleaseResources
:processReleaseManifest
:processReleaseResources
:generateReleaseSources
:incrementalReleaseJavaCompilationSafeguard
:compileReleaseJavaWithJavac
:compileReleaseJavaWithJavac - is not incremental (e.g. outputs have changed, no previous execution, etc.).
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
:compileReleaseNdk UP-TO-DATE
:compileReleaseSources
:lintVitalRelease
:mergeReleaseShaders
:compileReleaseShaders
:generateReleaseAssets
:mergeReleaseAssets
:transformClassesWithDexForRelease
:mergeReleaseJniLibFolders
:transformNative_libsWithMergeJniLibsForRelease
:processReleaseJavaRes UP-TO-DATE
:transformResourcesWithMergeJavaResForRelease
:packageRelease
:assembleRelease
:cdvBuildRelease
BUILD SUCCESSFUL
Total time: 7.279 secs
Built the following apk(s):

0

3

Собираюсь потрогать SpiderBasic.

JDK 8 (JDK 9+ то есть 9 и выше не поддерживается).

это до сих пор так или что-то изменилось?

И еще такой вопрос, весьма расплывчатый, но все же. Если у меня есть прога на PB под винду, большая прога. Есть ли шанс ее с разумными усилиями за разумные сроки портировать на SB?

Отредактировано Goga (22.06.2024 07:47:54)

0

4

Если что-то не сложное, то работает почти сразу. Если нужно считывать файлы и сохранять, то можно столкнуться почти с невозможностью выполнения. Проблема с конкретными функциями. Можно написать большой код и он сразу будет работать, а можно маленький код, но с проблемными функциями. Чтение ini-файлов нужно разбираться, он может храниться в проге (оригинальны), а потом сохранять в кеш. Прямого доступа к файловой системе нет, есть только через "Открыть файл". Сохранение в виде экспорта, как будто браузер скачал файл в папку "Загрузки". В общем, чтобы понять надо пробовать. И цикла событий там нет, нужно через функции Bind...()

На счёт JDK я использую старую версию SB.

0

5

Понял. Спасибо. Файловых операций как раз много. Есть Api, да всего много. Но это значит, что надо что-то принципиально новым заменять.

0

Похожие темы


Вы здесь » PureBasic - форум » SpiderBasic » Установка и настройка SpiderBasic