首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >App Inventor 2 扩展开发实战:从Java小白到发布第一个.aix自定义插件

App Inventor 2 扩展开发实战:从Java小白到发布第一个.aix自定义插件

原创
作者头像
用户10956490
发布2026-07-24 12:22:50
发布2026-07-24 12:22:50
30
举报

App Inventor 2 扩展开发实战:从Java小白到发布第一个.aix自定义插件

刚接触App Inventor 2时,大部分人会被它现成的组件库"惯坏"——想听歌有Player、想拍照有Camera、想存数据有TinyDB。但做着做着就发现,有些需求官方组件根本覆盖不了:比如需要批量图像处理、声波频率分析、多点触控缩放画布……这时候再转去学原生Android开发,成本又太高。

其实App Inventor 2一直留着一扇"后门"——拓展组件(Extension)。你只需写少量Java代码,把功能打包成一个.aix文件,就能像拖普通组件一样拖进项目里用。

一、为什么需要Extension?

当官方积木无法满足这些场景时,Extension就是答案:

  • 图像像素级加权混合
  • 音频音高识别(口哨/拍手触发)
  • Canvas双指捏合缩放
  • 任何需要原生运算性能的功能

二、搭建开发环境

代码语言:bash
复制
git clone https://github.com/mit-cml/appinventor-sources.git
cd appinventor-sources
ant MakeExtensions

确保JDK 8已安装。环境就绪后,你可以先做练习——把Camera组件改名导出为AltCamera.aix。

三、实战:写一个向量运算Extension

代码语言:java
复制
@SimpleFunction(description = "返回两个向量的和")
public float[] addVectors(float[] v1, float[] v2) {
    return new float[]{v1[0] + v2[0], v1[1] + v2[1]};
}

编译得到 .aix,导入项目后,积木区自动出现 AddVectorsDotProduct 两个函数块。

四、使用注意事项

  1. 导入后重启Companion,否则报找不到Extension
  2. Extension目前不支持可视组件(只能做非可视组件)
  3. 分享项目时 .aix 会自动打包在 .aia 中,对方无须额外导入
  4. 重名冲突:不同开发者同名Extension可通过重命名弹窗区分

五、更多示例

社区已有 ImageProcessor、SoundAnalysis、ScaleDetector 等开源Extension,可在 MIT Extension Repository 下载试用。

参考文档:App Inventor 2 中文网 (fun123.cn)

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • App Inventor 2 扩展开发实战:从Java小白到发布第一个.aix自定义插件
    • 一、为什么需要Extension?
    • 二、搭建开发环境
    • 三、实战:写一个向量运算Extension
    • 四、使用注意事项
    • 五、更多示例
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档