关于b4a ,b4x 的 许多 不解

acj200301

Member
用了 一段 时间 b4a 了 , 也 写 了 几个 工程 , 但是 , 因为 英文 水平 一般 ,及 对 java 的 不 了解 ,

现在 对 B4A仍 有 很多 迷惑 和 不清楚 的 地方 , 现举 出 几处 ,望 能 得到 论坛 中 朋友 的 解答 ,

我 写 的 几个 工程 ,都 是 b4a , 不涉及 b4i 等 , 感觉 说明书 里 说 的 ,要想 让 苹果系统 和 安卓 都能 用 ,就得 写 b4x 工程 , b4a 工程 是 不能 被 苹果 手机 用 的 ,我 这个 理解 对吗 ?

论坛 里 贴 出 的 许多 代码 ,【其 左上角 都 标注 着 b4x 这个 字符 】, 是否 这样 的 代码 都是 在 b4x 工程 里 写 的 ?所以 或许 b4a 能用 这样 的 代码 ,或许 b4a 不能用 这样 的 代码 ?

论坛 里 的 一些 代码 ,比如 ,
#AdditionalJar: alipaysdk-15.8.03.210428205839.aar ' 应用 aar 等 其他 类库 ,
#AdditionalJar: classes.jar
'import anywheresoftware.b4a.BA.DependsOn
@DependsOn(values={"alipaysdk-15.8.03.210428205839.aar"})

似乎 只能在 b4x 工程 里 才 能 用 , 似乎 在 b4a 工程 里 不能 用 这样 的 代码 ?

综上所述 , 【似乎 我 应该 把 我 已经 写 好 的 几个 b4a 工程 改为 b4x 工程 ??? 这样 才能 让 我 的 工程 能 有 更多 的 功能 】,

感觉 教程 里 b4x 包括 b4a ,看 论坛 里 的 代码 时 ,感觉 b4x 和 b4a 却 是 不同 的 东西 ,

论坛 中 很多 朋友 使用 b4a 的时间 更 久 ,特别 是 aeric 先生 ,更 是 中文 方面 的 专家 ,一定 比 我们 理解 的 更 多 。
 

aeric

Expert
Licensed User
Longtime User
要想 让 苹果系统 和 安卓 都能 用 ,就得 写 b4x 工程 , b4a 工程 是 不能 被 苹果 手机 用 的 ,我 这个 理解 对吗 ?
传统上,我们使用 B4A 进行开发,然后将部分代码复制到 B4i。 有时某些代码仅适用于 B4A 而不适用于 B4i。

现在,我们可以选择使用 XUI View 控件和一个名为 B4XPages 的新框架。 正如 Erel 所说,使用 B4XPages 开发跨平台应用程序要容易得多。

起初,如果您一直只为 B4A 编写代码,那么理解 B4XPages 概念有点困难。 尝试下载示例工程并运行它。 概念是只写 1 个由 3 个平台共享的 BAS 文件。

论坛 里 贴 出 的 许多 代码 ,【其 左上角 都 标注 着 b4x 这个 字符 】, 是否 这样 的 代码 都是 在 b4x 工程 里 写 的 ?所以 或许 b4a 能用 这样 的 代码 ,或许 b4a 不能用 这样 的 代码 ?
[B4X] 标签意味着它不仅限于 1 个平台。 这意味着该工程适用于 B4A,并且还支持 1 个以上的其他平台。
B4X = B4A + B4i
或者
B4X = B4A + B4i + B4J
或者
B4X = B4A + B4i + B4J + B4R
或者 ...

论坛 里 的 一些 代码 ,比如 ,
#AdditionalJar: alipaysdk-15.8.03.210428205839.aar ' 应用 aar 等 其他 类库 ,
#AdditionalJar: classes.jar
'import anywheresoftware.b4a.BA.DependsOn
@DependsOn(values={"alipaysdk-15.8.03.210428205839.aar"})

似乎 只能在 b4x 工程 里 才 能 用 , 似乎 在 b4a 工程 里 不能 用 这样 的 代码 ?
没有 B4X 工程。 我们需要使用相应的IDE分别开发各个平台。 但是正如我上面提到的,我们使用一个通用模块在不同平台之间共享代码。B4A编译成apk和B4J编译成jar都是Java代码存档。我们可以使用 JavaObject 库并编写 "inline Java" 来添加到我们的 B4A 和 B4J 工程中。在 B4i 中,我们不能添加 "inline Java",但我们可以使用 NativeObject 库来包含等效的 Objective-C 代码。但是,有时第三方 .jar 或 .aar 不能直接在 B4A 或 B4J 中使用。 我们需要先包装这些jar库。

综上所述 , 【似乎 我 应该 把 我 已经 写 好 的 几个 b4a 工程 改为 b4x 工程 ??? 这样 才能 让 我 的 工程 能 有 更多 的 功能 】,
你指的是什么功能?

感觉 教程 里 b4x 包括 b4a ,看 论坛 里 的 代码 时 ,感觉 b4x 和 b4a 却 是 不同 的 东西 ,
也许 B4X 的定义存在混淆。
B4X 是 B4A、B4i、B4J 和 B4R IDE 使用的一种编程语言
B4A、B4i、B4J 和 B4R 是集成开发环境 (IDE) 软件
B4X 还意味着它支持多个平台,即那些工程或库可以使用在 B4A IDE 进行编译时作为 Android 和 B4i 作为 iOS app。
实际上,我们可以使用两种方法开发 Android 和 IOS 应用程序。 在每个 IDE 中创建 Default 工程或使用一个 IDE(推荐使用 B4J)为 3 个平台创建 B4XPages 工程。

论坛 中 很多 朋友 使用 b4a 的时间 更 久 ,特别 是 aeric 先生 ,更 是 中文 方面 的 专家 ,一定 比 我们 理解 的 更 多 。
事实上,我不是中文专家。 我仍在使用谷歌翻译来阅读您的消息。 我尽量尝试把我的英文信息翻译成中文,希望没有离开原本的意识太远。
 

aeric

Expert
Licensed User
Longtime User
我举个例子。 我使用 B4J 开发的“Web API”服务器项目,在里面我附加了一个“Web API Client”项目。 我可以将项目视为 B4X,因为在内部我有 3 个不同平台的项目。 我使用“B4XPages”和“XUI Views”来创建所有应用程序。 布局的设计 (Layout Design) 可以从一个平台复制到另一个平台,然后做一些微调。


GitHub:
 

acj200301

Member
aeric 先生 的 解答 解决了 我 对 b4x 和 b4a 的 混淆 ,我 基本 确定 了 ,我 需 使用 XUI View 控件和 B4XPages 新框架 来 改造 我 已经 写好 的 工程 ,当然 ,这 需 重新 开始 学习 XUI View 控件和 B4XPages 。

并且 ,解决 了 【 论坛 里 贴 出 的 许多 代码 ,其 左上角 都 标注 着 b4x 这个 字符 】的 困惑 ,

对于 ,
#AdditionalJar: classes.jar
'import anywheresoftware.b4a.BA.DependsOn
@DependsOn(values={"alipaysdk-15.8.03.210428205839.aar"})

这样 的 句子 ,在 使用 .aar 类库 方面 的 作用 , 只有 ,待 我 学习 B4XPages 后 ,才能 进一步 了解 ,

若 使用 JavaObject 库 处理 .aar , 更是 需要 学习 更多 的 东西 后 才 能 掌握 ,

我 指 的 让 我 的 工程 增加 更 多 的 功能 ,就 是 ,指 ,增加 能够 使用 .aar 类库 的 功能 ,这样 ,才能 使用 外部 的 .aar 类库 ,处理 一些 事情 ,比如 中国内 的 公司 的 支付模块 等 ,

我 指 的 让 我 的 工程 增加 更 多 的 功能 ,也 包括 让 我的 工程 不仅 能 用于 安卓 手机 ,也能 用于 苹果 手机 ,

现在 的 难点 ,就 是 ,.aar 类库 的 使用 , 下载 了 阿里 公司 的 支付模块 ,sdk ,它 是 .arr 后缀 的 文件 , 查看 了 论坛 里 关于 .aar 的 帖子 , 帖子 提到 JavaObject 库 处理 .aar ,但是 我 的 代码基础 比较 差 ,【 目前 依然 无法 入手 试验 吧 】,

虽然 ,aeric 先生 说 他 不是 中文 方面 的 专家 ,但是 ,当 我 看到 这个 回复 文章 , 我 的 第 一 感觉 是 ,aeric 先生 的 中文 真好 ,这篇 文章 的 中文 表达 比 他 以前 写 的 中文 文章 还要 好 , 我 觉得 ,这篇 回复 里 中文 表达 的 效果 和 水平 和 我们 国内 网友 的 中文 表达 完全 没有 区别 ,
甚至 比 我 的 中文 表达 还 要 好 ,

如果 ,是 用 谷歌 翻译 的 ,那么 ,现在 这 谷歌 的 翻译 水平 也 太 好 了 (谷歌 翻译 的 水平 进步 很 多 ),:)

最后 ,多谢 aeric 先生 的 解答 ,论坛 里 有 您 这样 的 专家 ,真是 论坛 的 幸运 ,
 
Top