- {registration_date}
- сообщений: {posts}
- {tel_link}
Basic4android является модульным средством разработки ПО для Android. Все модули программы разбиты на типы: модули активити, модули классов, модули кода и сервисные модули. Давайте разберемся за что они отвечают, зачем они нужны и как в B4A реализована взаимосвязь между ними
Структура модуля Activity
Подпрограммы модуля:
Sub Process_Globals ... End Sub
Sub Globals ... End Sub
Sub Activity_Create(FirstTime As Boolean) ... End Sub
Sub Activity_Resume ... End Sub
Sub Activity_Pause(UserClosed As Boolean) ... End Sub
Атрибуты модуля:
#AdditionalJar
#AdditionalRes
#ApplicationLabel
#BridgeLogger
#CanInstallToExternalStorage
#CustomBuildAction
#DebuggerDisableOptimizations
#DebuggerForceFullDeployment
#DebuggerForceStandardAssets
#ExcludeClasses
#ExcludeFromDebugger
#Extends
#FullScreen
#IgnoreWarnings
#IncludeTitle
#LibraryAuthor
#LibraryName
#LibraryVersion
#MultiDex
#SignKeyPassword
#SupportedOrientations
#VersionCode
#VersionName
Структура модуля класса (Standart Class)
Подпрограммы модуля:
Sub Class_Globals ... End Sub
Public Sub Initialize ... End Sub
Атрибуты модуля:
#CustomBuildAction
#DesignerProperty
#Event
#ExcludeFromDebugger
#ExcludeFromLibrary
#IgnoreWarnings
#RaisesSynchronousEvents
Структура модуля класса (CustomView Class)
Подпрограммы модуля:
Sub Class_Globals ... End Sub
Public Sub Initialize(Callback As Object, EventName As String) ... End Sub
Public Sub DesignerCreateView(Base As Panel, Lbl As Label, Props As Map) ... End Sub
Public Sub GetBase As Panel ... End Sub
Атрибуты модуля:
#CustomBuildAction
#DesignerProperty
#Event
#ExcludeFromDebugger
#ExcludeFromLibrary
#IgnoreWarnings
#RaisesSynchronousEvents
Структура модуля кода
Подпрограммы модуля:
Sub Process_Globals ... End Sub
Атрибуты модуля:
#CustomBuildAction
#ExcludeFromDebugger
#ExcludeFromLibrary
#IgnoreWarnings
Структура сервисного модуля
Подпрограммы модуля:
Sub Process_Globals ... End Sub
Sub Service_Create ... End Sub
Sub Service_Start(StartingIntent As Intent) ... End Sub
Sub Service_TaskRemoved ... End Sub
Sub Application_Error(Error As Exception, StackTrace As String) As Boolean ... End Sub
Sub Service_Destroy ... End Sub
Атрибуты модуля:
#CustomBuildAction
#ExcludeFromDebugger
#ExcludeFromLibrary
#Extends
#IgnoreWarnings
#StartAtBoot
#StartCommandReturnValue
Модуль Activity
Этот модуль является основным в программе на B4A. По сути это командный центр управления всеми модулями вашей программы. В этом модуле декларируются все глобальные константы, переменные, процедуры и события вашей программы, что будут влиять, в первую очередь, в внешний интерфейс программы - как, где и что будет отображаться. Так же в активити декларируются все классы программы, за исключением меж классовых связей. В этом модуле так же обрабатываются все обращения к вашей программе другими программами Android, за исключением ресиверов
Описание подпрограмм модуля:
Process_Globals - В этой подпрограмме декларируются глобальные переменные, которые будет обрабатываться во всех модулях программы
Globals - В этой подпрограмме декларируются только те переменные, которые будут обрабатываться непосредственно в этом активити программы
Activity_Create - В этой подпрограмме (в основном) производится инициализация задекларированных переменных, событий и классов. Подпрограмма имеет наследуемый параметр FirstTime передается в эту подпрограмму системой и принимает значения True или False и означает, что запущенный процесс приложения впервые или повторно создал активити. Если кратко - то код этой подпрограммы выполняется независимо от всех других при запуске вашей программы
Activity_Pause - Данная подпрограмма срабатывает когда вы сворачиваете активити вашей программы, пример - нажатие физ.кнопки Home на устройстве или переход к другой программе свайпом или иным способ управления запущенными приложениями. Подпрограмма имеет наследуемый параметр UserClosed, принимающий значения True или False и означает, что вы свернули свою программу путем переключения на раб.стол итп. способом или же нажали физ.кнопку (вирт.кнопку) назад, тем самым вызвав событие закрытие программы
Activity_Resume - Данная подпрограмма срабатывает когда вы возвращаетесь в активити вашей программы из другой. Данная подпрограмма так же срабатывает при первом запуске вашей программы (так устроен B4A)
Модуль класса (Standart Class)
В этом модуле создаются и обрабатываются объекты и их события как экземпляр уже существующих классов, так и ваших собственных. Что такое классы в объектно-объектно-ориентированных языках программирования можно описать как существительное, такое как человек, место или вещь, или что-то номинализованное. Например, класс "Банан" будет представлять свойства и функциональность бананов в целом. Отдельный конкретный банан будет экземпляром класса "Банан" и/или объектом типа "Банан". Более подробно можно почитать в википедии на
Описание подпрограмм модуля:
Class_Globals - В этой подпрограмме декларируются глобальные переменные, которые будет обрабатываться во всех подпрограммах данного класса
Initialize - Это обязательная к исполнению подпрограмма при инициализации данного класса из других модулей программы. Обычно здесь инциализируются все переменных объявленные в данном классе. Без вызова данной подпрограммы, невозможна работа с другими подпрограммами данного класса из других модулей программы
Модуль класса (CustomView Class)
В этом модуле отрабатывают свой функционал подпрограммы чей целью есть визуальное отображение в Activity ваших личных элементов управления (кнопочки, галочки, листинги итп.). Так как этот модуль есть класс, то наследует все свойства обычного класса (Standart Class) и его подпрограмм.
Описание подпрограмм модуля:
Class_Globals - В этой подпрограмме декларируются глобальные переменные, которые будет обрабатываться во всех подпрограммах данного класса
Initialize - Это необязательная к исполнению подпрограмма с точки зрения пользователя модулей программы и вызывается она автоматически при инициализации класса. При этом, ее содержимое желательно не менять (то содержимое, что предоставляется по-дефолту), но можно дополнять своими инициализациями задекларированными в глобальной подпрограмме этого класса
DesignerCreateView - Эта подпрограмма задействуется когда вы работаете с WYSIWYG редактором элементов управления программой. Она передает ему все требуемые настройки класса вашей вьюшки, так же здесь добавляются на панель вьюшки другие элементы визуального управления программой - кнопочки, галочки итп. Данная подпрограмма имеет наследуемые параметры Base, Lbl и Props в которых в подпрограмму передаются основная панель вашей кастомной вьюшки, ее свойство Text (вызывается через Lbl.Text) и карту кастомных настроек вьюшки соответственно
GetBase - Эта подпрограмма предназначена для получения основной панели вашей вьюшки. Честно говоря, не совсем понимаю актуальность этой подпрограммы как обязательной, но она почему-то создается автоматически при создании нового модуля CustomView Class. Скорее всего это была чья-то просьба разработчику B4A и он автоматизировал добавление этой подпрограммы
Модуль кода
Это всеядный, если так можно охарактеризовать, модуль. Здесь можно разместить весь прикладной функционал вашей программы. Догадываюсь что именно для расчистки активити и был предназначен этот модуль. Но у него есть свои ограничения - в нем нельзя на-прямую обращаться к классам программы, зато к подпрограммам этого модуля легко обращаться из всех других модулей программы. Как этот модуль описывает разработчик B4A - этот модуль содержит статический код, который может быть использован в разных проектах как повторяющийся (дублирующий) однотипные процессы с типами и массивами данных и обычно доступ к таким модулям прописывается в настройках B4A - "Инструменты" - "Конфигурация путей" - "Общие модули". Для меня это модуль позволяющий не захламлять рутинным кодом все остальные модули программы
Описание подпрограмм модуля:
Process_Globals - Эта подпрограмма предназначена для декларации переменных используемых внутри модуля кода и меж-модульных связей модулей кода внутри одной программы
Сервисный модуль
Это пожалуй самый темный модуль программы. Некоторые представители сообщества пингвинов называют подобные конструкции демонами - то, что скрыто от глаз, аля задный фон процесса программы. Ну а по сути так и есть - задний фон вашей программы. Здесь выполняются фоновые процессы когда программа свернута, когда вы включили свое устройство, но не запускали программу, а ее сервисные модули уже работают. Разумеется все это контролируется разрешениями в манифесте и самом Android.
Описание подпрограмм модуля:
Process_Globals - Эта подпрограмма предназначена для декларации переменных используемых внутри модуля кода и меж-модульных связей модулей кода внутри одной программы
Service_Create - Эта подпрограмма выполняется при создании сервиса
Service_Start - Эта подпрограмма выполняется при запуске созданного сервиса. Разница между этой подпрограммой и Service_Create в том, что эта может запускаться, останавливаться и заново запускаться, при этом каждый раз будет срабатывать эта подпрограмма и выполняться код ее содержимого. Эта подпрограмма наследует переменную StartingIntent типа (android.intent) в которой передается данные от процесса вызвавшего этот сервисный модуль. Применяется для перехвата событий ресивера, таких как СМС-сообщения, системные события самого Android итп.
Service_TaskRemoved - Эта подпрограмма выполняется когда вашу программу убирают из списка запущенных в Android, разумеется если это не ограничено в манифесте программы
Application_Error - В этой подпрограмме можно обрабатывать ошибки программы во время выполнения фоновых процессов. По-дефолту она возвращает системе значение True чтобы обработчик ошибок Android перехватывал ошибки программы и сам принимал вердикт - оборвать жизненный цикл вашей программы или ошибка не критическая и можно понизить разрешения и продолжить ее исполнение. Эта подпрограмма наследует переменные Error и StackTrace в которых передаются содержимое вызвавшее ошибку исполнения программы и стек где именно произошел сбой соответственно
Service_Destroy - Это подпрограмма выполняется когда система Android убивает ваш сервис программы, либо это делаете вы сами путем полного завершения процесса программы. Сам Android иногда принимает такое решение если в настройках стоят фильтры на фоновые процессы или просто не хватает оперативной памяти обработать ваш сервисный модуль
AdditionalJar - Позволяет добавлять в функционал программы сторонные JAR библиотеки не имеющие своего B4A wrapper
Пример: #AdditionalJar: picasso-2.2.0
При этом библиотека picasso-2.2.0.jar должна лежать в папке библиотек
AdditionalRes - Позволяет добавлять в конечный APK ресурсы из папки
Пример: #AdditionalRes: resources\
При этом в APK добавяться ресурсы из папки resources лежащей внутри папки с проектом программы
ApplicationLabel - Позволяет зменять название вашей программы в лончере
Пример: #ApplicationLabel: Моя программа
BridgeLogger - Позволяет вести логи вашей программы при подключении к B4A через B4A-BridgeLogger
Пример: #BridgeLogger: True
Возможные варианты: True или False
CanInstallToExternalStorage - Позволяет устанавливать вашу программу на внешний накопитель (External SD card)
Пример: #CanInstallToExternalStorage: True
Возможные варианты: True или False
CustomBuildAction - Позволяет запускать внешние приложения Windows на определенных этапах компиляции вашей программы
Пример: #CustomBuildAction: 1, c:\windows\system32\attrib.exe, +r resources\*.* /s
При этом на 1ом этапе папке resources внутри папки проекта вашей программы будет присвоен атрибут "Системный"
Параметры: {id}, {app}, {args}
Где id это этам компиляции вашей программы, app это внешнее приложение, в args это параметры запуска приложения
Варианты id:
1 - До того как компилятор очистит папку objects (это происходит после того как B4A отпарсил код вашей программы).
2 - До того как компилятор генерирует файл R.java
3 - До того как пакет вашей программы будет подписан (на этом этапе ваш APK лежит здесь bin\temp.ap_)
4 - До того как APK вашей программы будет установлен на устройство
5 - После того как APK вашей программы будет установлен на устройство
6 - После компиляции Java кода вашей программы
DebuggerDisableOptimizations - Позволяет отключать оптимизацию в отладчике B4A
Пример: #DebuggerDisableOptimizations: True
Возможные варианты: True или False
DebuggerForceFullDeployment - Позволяет Rapid отладчик повторно развертывать весь проект при каждой компиляции и может быть полезно, если вы видите низкую производительность после изменения кода. Это так же отключит функцию быстрого повторного развертывания Rapid отладчика
Пример: #DebuggerForceFullDeployment: True
Возможные варианты: True или False
DebuggerForceStandardAssets - Отключает функцию виртуальных ресурсов Rapid отладчика. По-дефолту Rapid отладчик не использует стандартную папку ресурсов. Это позволяет отладчику повторно развертывать только обновленные файлы
Пример: #DebuggerForceStandardAssets: True
Возможные варианты: True или False
DesignerProperty - Позволяет для WYSIWYG редактора добавлять кастомные свойства вашей кастомной вьюшки из вашего модуля CustomView Class
Пример: #DesignerProperty: Key: Param1, DisplayName: Параметр1, FieldType: Boolean, DefaultValue: True, Description: Пример
Где Param1 это название параметра, Параметр1 это то как параметр будет называться в WYSIWYG, Boolean это тип параметра, True это дефолтное значение параметра, а Пример это описание вашего параметра в WYSIWYG. Возможные типы параметров FieldType: Boolean, Int, String, Color
Event - Позволяет декларировать события для вашего класса. Сами события будут вызываться через CallSub/CallSubDelayed
Пример: #Event: Kapec ( Result As String )
При этом для вашего класса будет задекларировано новое событие капец (Kapec) с наследуемым параметром Result типа String
ExcludeFromLibrary - Позволяет исключать из компилируемой библиотеки (если проект вашей программы есть библиотека) тот модуль, где выставлен этот атрибут
Пример: #ExcludeFromLibrary: True
Возможные варианты: True или False
ExcludeClasses - Позволяет исключать выбранные классы из подключенных JAR библиотек при компиляции вашей программы
Пример: #ExcludeClasses: android.support.v7.recyclyerview
При этом класс recyclyerview будет исключен
ExcludeFromDebugger - Позволяет исключать из отладки тот модуль, где выставлен этот атрибут
Пример: #ExcludeFromDebugger: True
Возможные варианты: True или False
Extends - Позволяет подключать сторонние SDK к вашей программе
Пример: #Extends: android.support.v7.app.AppCompatActivity
FullScreen - Позволяет делать активити вашей программы во весь экран (без Status)
Пример: #FullScreen: True
Возможные варианты: True или False
IgnoreWarnings - Позволяет B4A игнорировать определенные уровни ошибок отладчика и парсера B4A
Пример: #IgnoreWarnings: 1, 6, 10
Список уровней:
1: Unreachable code detected.
2: Not all code paths return a value.
3: Return type (in Sub signature) should be set explicitly.
4: Return value is missing. Default value will be used instead.
5: Variable declaration type is missing. String type will be used.
6: The following value misses screen units ('dip' or %x / %y): {1}.
7: Object converted to String. This is probably a programming mistake.
8: Undeclared variable '{1}'.
9: Unused variable '{1}'.
10: Variable '{1}' is never assigned any value.
11: Variable '{1}' was not initialized.
12: Sub '{1}' is not used.
13: Variable '{1}' should be declared in Sub Process_Globals.
14: File '{1}' in Files folder was not added to the Files tab.\nYou should either delete it or add it to the project.\nYou can choose Tools - Clean unused files.
15: File '{1}' is not used.
16: Layout file '{1}' is not used. Are you missing a call to Activity.LoadLayout?
17: File '{1}' is missing from the Files tab.
18: TextSize value should not be scaled as it is scaled internally.
19: Empty Catch block. You should at least add Log(LastException.Message).
20: View '{1}' was added with the designer. You should not initialize it.
21: Cannot access view's dimension before it is added to its parent.
22: Types do not match.
23: Modal dialogs are not allowed in Sub Activity_Pause. It will be ignored.
24: Accessing fields from other modules in Sub Process_Globals can be dangerous as the initialization order is not deterministic.
25: Sub '{1}' not found.
' Runtime warnings
1001: Panel.LoadLayout should only be called after the panel was added to its parent.
1002: The same object was added to the list. You should call Dim again to create a new object.
1003: Object was already initialized.
1004: FullScreen or IncludeTitle properties in layout file do not match the activity attributes settings.
IncludeTitle - Позволяет показывать или скрывать Titlebar активити вашей программы
Пример: #IncludeTitle: True
Возможные варианты: True или False
LibraryAuthor - Позволяет установить имя автора библиотеки (если проект вашей программы есть библиотека и вы хотите как-то себя идентифицировать как ее автора)
Пример: #LibraryAuthor: c1cl0n
LibraryName - Позволяет установить имя библиотеки (если проект вашей программы есть библиотека)
Пример: #LibraryName: DVapi
LibraryVersion - Позволяет установить версию библиотеки (если проект вашей программы есть библиотека)
Пример: #LibraryVersion: 1.13
MultiDex - Позволяет компилятору разбивать DEX файл проекта на классы
Пример: #MultiDex: True
Возможные варианты: True или False
Данный атрибут рекомендуется использовать только если компилятор ругается на Too many field references или Too many method references
RaisesSynchronousEvents - Позволяет установить название подпрограмм вашего модуля класса котрым требуется синхронный вызов RiseEvent
Пример: #RaisesSynchronousEvents: {имя_подпрограммы}
Подробнее можно посмотреть на сайте разработчика
SignKeyAlias
SignKeyFile
SignKeyPassword
Эти три атрибута позволяют задать Alias, ключ и пароль к файлу для подписи вашей программы. Рекомендуется это делать через саму B4A (начиная с версии 8.0)
StartAtBoot - Позволяет автоматически запускать сервисный модуль при запуске Android, где этот атрибут выставлен
Пример: #StartAtBoot: True
Возможные варианты: True или False
StartCommandReturnValue - В ранних версиях B4A этот атрибут использовался для прикрепления сервисного модуля к таскеру, чтобы тот не выгружался самим Android и работал в фоновом режиме. В новых версиях этот атрибут не требуется
Пример: #StartCommandReturnValue: android.app.Service.START_STICKY
Подробнее можно посмотреть на сайте разработчика
SupportedOrientations - Задание вариантов ориентации экрана устройства для вашей программы
Пример: #SupportedOrientations: unspecified
Возможные варианты: unspecified, landscape или portrait
VersionCode
VersionName
Эти атрибуты задают версию вашей программы, пример:
#VersionCode: 1
#VersionName: 1.0a
Пример: #AdditionalJar: picasso-2.2.0
При этом библиотека picasso-2.2.0.jar должна лежать в папке библиотек
AdditionalRes - Позволяет добавлять в конечный APK ресурсы из папки
Пример: #AdditionalRes: resources\
При этом в APK добавяться ресурсы из папки resources лежащей внутри папки с проектом программы
ApplicationLabel - Позволяет зменять название вашей программы в лончере
Пример: #ApplicationLabel: Моя программа
BridgeLogger - Позволяет вести логи вашей программы при подключении к B4A через B4A-BridgeLogger
Пример: #BridgeLogger: True
Возможные варианты: True или False
CanInstallToExternalStorage - Позволяет устанавливать вашу программу на внешний накопитель (External SD card)
Пример: #CanInstallToExternalStorage: True
Возможные варианты: True или False
CustomBuildAction - Позволяет запускать внешние приложения Windows на определенных этапах компиляции вашей программы
Пример: #CustomBuildAction: 1, c:\windows\system32\attrib.exe, +r resources\*.* /s
При этом на 1ом этапе папке resources внутри папки проекта вашей программы будет присвоен атрибут "Системный"
Параметры: {id}, {app}, {args}
Где id это этам компиляции вашей программы, app это внешнее приложение, в args это параметры запуска приложения
Варианты id:
1 - До того как компилятор очистит папку objects (это происходит после того как B4A отпарсил код вашей программы).
2 - До того как компилятор генерирует файл R.java
3 - До того как пакет вашей программы будет подписан (на этом этапе ваш APK лежит здесь bin\temp.ap_)
4 - До того как APK вашей программы будет установлен на устройство
5 - После того как APK вашей программы будет установлен на устройство
6 - После компиляции Java кода вашей программы
DebuggerDisableOptimizations - Позволяет отключать оптимизацию в отладчике B4A
Пример: #DebuggerDisableOptimizations: True
Возможные варианты: True или False
DebuggerForceFullDeployment - Позволяет Rapid отладчик повторно развертывать весь проект при каждой компиляции и может быть полезно, если вы видите низкую производительность после изменения кода. Это так же отключит функцию быстрого повторного развертывания Rapid отладчика
Пример: #DebuggerForceFullDeployment: True
Возможные варианты: True или False
DebuggerForceStandardAssets - Отключает функцию виртуальных ресурсов Rapid отладчика. По-дефолту Rapid отладчик не использует стандартную папку ресурсов. Это позволяет отладчику повторно развертывать только обновленные файлы
Пример: #DebuggerForceStandardAssets: True
Возможные варианты: True или False
DesignerProperty - Позволяет для WYSIWYG редактора добавлять кастомные свойства вашей кастомной вьюшки из вашего модуля CustomView Class
Пример: #DesignerProperty: Key: Param1, DisplayName: Параметр1, FieldType: Boolean, DefaultValue: True, Description: Пример
Где Param1 это название параметра, Параметр1 это то как параметр будет называться в WYSIWYG, Boolean это тип параметра, True это дефолтное значение параметра, а Пример это описание вашего параметра в WYSIWYG. Возможные типы параметров FieldType: Boolean, Int, String, Color
Event - Позволяет декларировать события для вашего класса. Сами события будут вызываться через CallSub/CallSubDelayed
Пример: #Event: Kapec ( Result As String )
При этом для вашего класса будет задекларировано новое событие капец (Kapec) с наследуемым параметром Result типа String
ExcludeFromLibrary - Позволяет исключать из компилируемой библиотеки (если проект вашей программы есть библиотека) тот модуль, где выставлен этот атрибут
Пример: #ExcludeFromLibrary: True
Возможные варианты: True или False
ExcludeClasses - Позволяет исключать выбранные классы из подключенных JAR библиотек при компиляции вашей программы
Пример: #ExcludeClasses: android.support.v7.recyclyerview
При этом класс recyclyerview будет исключен
ExcludeFromDebugger - Позволяет исключать из отладки тот модуль, где выставлен этот атрибут
Пример: #ExcludeFromDebugger: True
Возможные варианты: True или False
Extends - Позволяет подключать сторонние SDK к вашей программе
Пример: #Extends: android.support.v7.app.AppCompatActivity
FullScreen - Позволяет делать активити вашей программы во весь экран (без Status)
Пример: #FullScreen: True
Возможные варианты: True или False
IgnoreWarnings - Позволяет B4A игнорировать определенные уровни ошибок отладчика и парсера B4A
Пример: #IgnoreWarnings: 1, 6, 10
Список уровней:
1: Unreachable code detected.
2: Not all code paths return a value.
3: Return type (in Sub signature) should be set explicitly.
4: Return value is missing. Default value will be used instead.
5: Variable declaration type is missing. String type will be used.
6: The following value misses screen units ('dip' or %x / %y): {1}.
7: Object converted to String. This is probably a programming mistake.
8: Undeclared variable '{1}'.
9: Unused variable '{1}'.
10: Variable '{1}' is never assigned any value.
11: Variable '{1}' was not initialized.
12: Sub '{1}' is not used.
13: Variable '{1}' should be declared in Sub Process_Globals.
14: File '{1}' in Files folder was not added to the Files tab.\nYou should either delete it or add it to the project.\nYou can choose Tools - Clean unused files.
15: File '{1}' is not used.
16: Layout file '{1}' is not used. Are you missing a call to Activity.LoadLayout?
17: File '{1}' is missing from the Files tab.
18: TextSize value should not be scaled as it is scaled internally.
19: Empty Catch block. You should at least add Log(LastException.Message).
20: View '{1}' was added with the designer. You should not initialize it.
21: Cannot access view's dimension before it is added to its parent.
22: Types do not match.
23: Modal dialogs are not allowed in Sub Activity_Pause. It will be ignored.
24: Accessing fields from other modules in Sub Process_Globals can be dangerous as the initialization order is not deterministic.
25: Sub '{1}' not found.
' Runtime warnings
1001: Panel.LoadLayout should only be called after the panel was added to its parent.
1002: The same object was added to the list. You should call Dim again to create a new object.
1003: Object was already initialized.
1004: FullScreen or IncludeTitle properties in layout file do not match the activity attributes settings.
IncludeTitle - Позволяет показывать или скрывать Titlebar активити вашей программы
Пример: #IncludeTitle: True
Возможные варианты: True или False
LibraryAuthor - Позволяет установить имя автора библиотеки (если проект вашей программы есть библиотека и вы хотите как-то себя идентифицировать как ее автора)
Пример: #LibraryAuthor: c1cl0n
LibraryName - Позволяет установить имя библиотеки (если проект вашей программы есть библиотека)
Пример: #LibraryName: DVapi
LibraryVersion - Позволяет установить версию библиотеки (если проект вашей программы есть библиотека)
Пример: #LibraryVersion: 1.13
MultiDex - Позволяет компилятору разбивать DEX файл проекта на классы
Пример: #MultiDex: True
Возможные варианты: True или False
Данный атрибут рекомендуется использовать только если компилятор ругается на Too many field references или Too many method references
RaisesSynchronousEvents - Позволяет установить название подпрограмм вашего модуля класса котрым требуется синхронный вызов RiseEvent
Пример: #RaisesSynchronousEvents: {имя_подпрограммы}
Подробнее можно посмотреть на сайте разработчика
SignKeyAlias
SignKeyFile
SignKeyPassword
Эти три атрибута позволяют задать Alias, ключ и пароль к файлу для подписи вашей программы. Рекомендуется это делать через саму B4A (начиная с версии 8.0)
StartAtBoot - Позволяет автоматически запускать сервисный модуль при запуске Android, где этот атрибут выставлен
Пример: #StartAtBoot: True
Возможные варианты: True или False
StartCommandReturnValue - В ранних версиях B4A этот атрибут использовался для прикрепления сервисного модуля к таскеру, чтобы тот не выгружался самим Android и работал в фоновом режиме. В новых версиях этот атрибут не требуется
Пример: #StartCommandReturnValue: android.app.Service.START_STICKY
Подробнее можно посмотреть на сайте разработчика
SupportedOrientations - Задание вариантов ориентации экрана устройства для вашей программы
Пример: #SupportedOrientations: unspecified
Возможные варианты: unspecified, landscape или portrait
VersionCode
VersionName
Эти атрибуты задают версию вашей программы, пример:
#VersionCode: 1
#VersionName: 1.0a
ответ опубликован:
Рейтинг: 5
голосов: 2
- 5
- 1
- 2
- 3
- 4
- 5