框架设计参考

轻语言安卓框架底层采用 Java 语言结合安卓标准SDK设计,由轻语言驱动运行。

框架核心特性

1. 单 Activity 设计理念

该设计理念参考并借鉴了谷歌 2009 年发布的一款实验性 Simple 编程语言及 App Inventor 编程工具,轻语言安卓框架优化了底层设计,旨在简化安卓开发工作。

  • 核心机制 整个应用仅存在一个 MainActivity,所有界面切换通过替换 Activity 的根视图(setContentView)实现,避免传统多 Activity 的启动开销和生命周期复杂性。

  • 视图即窗口 每个独立界面对应一个 窗口(如 登录窗口信息窗口),通过动态加载/卸载视图模拟“窗口切换”。

  • 代码示例

    // MainActivity.java
    public class MainActivity extends Activity {
        public void switchToView(Class<? extends View> viewClass) {
            try {
                View newView = viewClass.newInstance();
                setContentView(newView);
            } catch (Exception e) { /* 异常处理 */ }
        }
    }
    

为什么采用单一Activity而不采用原生式多Activity?

首先轻语言的设计目的是简化开发,节约成本,将编程尽可能变简单,轻语言安卓框架的主要应用场景为:开发轻量级APP应用,如工具类、行业通用类,个人学习,简单实用的中小型APP程序,因此如果使用原生多 Activity 时,对窗口上下文的处理与封装会变得更复杂,不利于用户使用,也不利于类库组件的封装。

单一 Activity 是否会存在性能问题?

性能问题主要看框架底层设计,轻语言安卓框架采用纯原生架构,无运行时 RunTime 损耗,视图类窗口自带栈堆储存与销毁,按下返回键,关闭窗口即回收内存,单一 Activity 的设计,让APP始终只存在一个 Activity 实例,相同界面内容,系统占用资源更低,因此只要代码逻辑合理,基本不会有任何性能问题。

轻语言安卓框架与原生安卓的比较

对比维度轻语言安卓框架原生安卓
启动速度✅ 视图切换更快(无系统级开销)❌ 每次跳转需初始化新Activity
内存占用✅ 窗口自带栈堆管理,关闭即销毁,系统自动回收资源。✅ 通过系统回收机制自动释放非活跃Activity
导航灵活性✅ 完全自定义路由逻辑,支持从入口文件启动指定窗口❌ 依赖系统 Back Stack,灵活性受限
模块化开发✅ 支持自定义窗口视图,自定义组件、模块✅ 按 Activity 拆分模块,易于隔离
系统兼容性✅ 与原生安卓兼容性完全一致✅ 系统原生支持所有特性
学习曲线✅ 中文语法编程,简单易学,组件丰富❌ 需要会 Java 语言,需要学习安卓官方SDK及文档
开发大型应用❌不建议开发超过125个窗口的App应用。✅ 支持开发大型,专业级复杂APP

2. 窗口管理模块

  • 窗口生命周期
    • 窗口创建完毕():窗口视图初始化(替代Activity的onCreate)。
    • 窗口切换完毕():窗口视图显示时触发(类似Activity的onStart)。
    • 窗口被关闭():窗口视图被销毁时触发(类似Activity的onDestroy)。
  • 视图栈管理
    • 使用栈结构(ViewStack)记录历史视图,支持返回操作(类似浏览器后退逻辑)。
    • 示例:用户从 主页窗口 → 信息窗口,按返回键时弹出栈顶视图并显示前一个视图。

3. 事件绑定与通信

  • 声明式事件处理

    • 通过定义事件语句块或设置回调,监听组件事件(如按钮被点击)。

    • 示例(类似VB语法):

      事件 按钮1.被单击(来源对象 为 视图)
          弹出提示("按钮1被单击")
      结束 事件
      
  • 跨视图数据传递

    • 全局单例 AppContext 存储共享数据。
    • 自定义事件消息跨窗口传递

4. 资源与布局管理

  • 动态资源生成及加载

    • 每个窗口关联独立的布局XML文件(如 登录窗口.xml),但编译时自动生成对应的组件创建代码。

    • 每个窗口的组件根据组件名称动态生成组件对象,例如:向窗口中添加了一个按钮组件、无需使用 findViewByID 寻找组件,编译时自动生成。

  • 开放布局描述

    • 每个窗口的布局采用XML描述,支持自定义、使用第三方工具设计。

语言核心特性

1. 纯中文编写上层应用

轻语言安卓框架核心采用 Java 设计,但运行到框架的上层应用采用轻语言编写,而轻语言是纯中文编程语言。

2. 类VB语法

轻语言语法与 Visual Basic 的语法类似,简单易懂,易学。

运行时架构

1. 编译与执行流程

  • 编译阶段:轻语言代码 → 轻语言编译器 → 安卓标准原生项目 → 通过 Android 官方 SDK 工具链打包并生成APK。

  • 运行时引擎:内置轻量级虚拟机,负责视图切换、事件分发及资源管理。

2. 资源管理机制

  • 动态资源加载:资源文件(如图片、字符串)按视图模块分包,运行时按需加载。
  • 全局资源池:通过 AppContext.Resources 访问共享资源,避免重复初始化。

3. 与Android原生交互

  • API桥接层:直接通过内嵌编译符 @{ } 嵌入原生代码:

    引用 android.widget.Toast;
    函数 弹出自定义提示(信息 为 文本型)
        Toast.makeText(MainActivity.getContext(), 信息, Toast.LENGTH_SHORT).show();
    结束 函数
    
  • 组件扩展支持:允许开发者通过 Java 编写自定义组件。