appinventor拓展开发

article/2025/10/31 15:38:51

为什么要开发拓展?

想要使用appinventor标准支持的以外功能只有两种方式。

1.直接修改appinventor的源码,添加新的功能,然后使用这个私人定制的服务器。

2.编写拓展,可以添加到任何可以正常使用的appinventor服务上。

第二种的优势很明显,官方支持的拓展形式,让使用者免去了搭建appinventor服务的功夫。

拓展开发环境

如果已经搭建出了标准的appinventor服务,可以直接使用该环境进行开发。

但是如果你还没有搭建appinventor服务,由于该整体的服务搭建过程毕竟慢,且包含多余的服务部分(2G多),所以我们可以使用专门做extension的开发环境:

GitHub - mit-cml/extension-template: Template repository for creating App Inventor extensionshttps://github.com/mit-cml/extension-template

基础开发步骤

首先下载该库:

git clone --recurse-submodules https://github.com/mit-cml/extension-template.git my-extension

然后在src文件夹内新建MyExtension.java项目:

package cn.temp;import com.google.appinventor.components.annotations.*;//注解
import com.google.appinventor.components.common.ComponentCategory; //组件类别
import com.google.appinventor.components.runtime.*;
ava的实用工具类库java.util包。在这个包中,Java提供了一些实用的方法和数据结构。例如,Java提供日期(Data)类、日历(Calendar)类来产生和获取日期及时间,提供随机数(Random)类产生各种类型的随机数,还提供了堆栈(Stack)、向量(Vector) 、位集合(Bitset)以及哈希表(Hashtable)等类来表示相应的数据结构。
import com.google.appinventor.components.runtime.util.*;
import com.google.appinventor.components.runtime.errors.YailRuntimeError;@DesignerComponent(version = MyExtension.VERSION, //设计器组件description = "by Aheadtechs.",  //备注,描述category = ComponentCategory.EXTENSION, //类别:展示在appinventor的哪个模块下nonVisible = true, //不可见iconName = "images/extension.png") //组件图标@SimpleObject(external = true) //外部插件public class MyExtension extends AndroidNonvisibleComponent {public static final int VERSION = 1; //如果一个数据既是static又是final,那么它会拥有一块无法改变的存储空间private static final String LOG_TAG = "MyExtension";public MyExtension(ComponentContainer container) { //记忆技巧:contain 包含,容纳 + er 表物 → 容器//调用父类的属性或方法可以通过super关键字。通过super来获取父类的私有属性super(container.$form());}//计算a+b的和然后转换成字符串@SimpleFunction(description = "add up a and b")public String addab(int a,int b) {return ""+(a+b);}
}

然后就可以调用:

ant extensions

编译成功之后就会在项目的根目录生成一个 out文件夹,其中便有我们需要的.aix后缀的文件。

注意拓展的形式就是.aix后缀的文件。

高级开发

这里虽然可以满足我们的基础需求,但是真实开发的过程中不仅仅需要这个的简单例子,我们可能需要第三方库的添加!

例如一个特殊的通信协议:opcua之类的。

具体步骤如下:

1.下载对应的库的jar文件,并拷贝到lib/deps文件夹:

然后在Myextension.java文件中添加:

@SimpleObject(external = true) //外部插件
//这个位置不能放上面!必须在SimpleObject下面
@UsesLibraries(libraries = "opc-ua-stack-1.4.1-224.jar,slf4j-api-1.7.0.jar")

 重新进行编译,就可以将该jar的内容添加到生成的.aix文件中,从文件的大小就可以轻松看出。

调用就和普通调用一样了:

import org.opcfoundation.ua.application.Client;
...

参考文档:

https://saitwalshreyash19.medium.com/writing-extensions-for-app-inventor-2-and-kodular-7d20092bff16https://saitwalshreyash19.medium.com/writing-extensions-for-app-inventor-2-and-kodular-7d20092bff16


http://chatgpt.dhexx.cn/article/ar63sjTI.shtml

相关文章

uni-app开发环境配置及混合开发流程

uni-app开发环境配置及混合开发流程 NodeJS开发环境 安装NVM 下载安装 NVM是一个支持多版本NodeJS的版本管理工具,如果本机已安装了NodeJS建议先卸载。 下载NodeJS 解压后直接运行安装:设置好安装目录及后面NodeJs的安装目录。 配置环境变量 路径…

create-react-app 开发环境编译太慢的解决方案

项目环境:windows 10 1089版本 create-react-app:3.0.0 react:16.8.6 react-router-dom:5.0.0 方案一 使用 babel-plugin-dynamic-import-node 原理:转换 import()为 require(),将所有异步组件都用同步的…

Android音乐App开发准备( 简易音乐 一 )

Android音乐App开发准备( 简易音乐 一 ) 关于第一步,获取音乐来源第二步,开发环境第三步,引用三方第四步,添加唯一进程App.java 关于 年前学习网易云因为app,想着学习网易云app的界面以及功能开…

uniapp开发环境搭建

一、下载并安装开发工具 uniapp的开发工具为HbuilderX,下载地址为:去下载 这里选择windows版本。windows 版本下载完成之后会得到一个 zip 的压缩包文件,解压完成即可使用,是不需要安装的绿色版本。 二、安装sass和scss插件 打开…

uni-app开发环境搭建创建uni-app项目

uni-app修炼之路(一) 导语uni-app开发环境搭建1.进入官网下载HBuilder-X2.打开HBuilder-X,进行开发环境配置 创建uni-app项目快速上手 导语 uni-app使用了快半个月了,现在准备来系统的学习一下uni-app,并做一些笔记&a…

搭建iOS开发环境

1.准备 当前移动开发主要分为安卓开发和iOS开发,安卓是谷歌在2007年宣布开源的移动操作系统,iOS是苹果2007年发布的。两个系统出现的时间大致相同,在随后的十年间引领了移动开发浪潮。如今各种移动开发技术层出不穷,一些跨平台的…

HBuilderX App开发环境搭建

1. Nox 模拟器 1). 无脑式安装 Nox模拟器平板界面.png 2). 屏幕修改 点击右侧上方的设置按钮,在系统设置中选择手机版,点击保存并重启。 Nox设置界面.png 3). 端口设置 Nox模拟器默认端口:62001 2. HBuilderX 1). 点击右侧的Download&#…

模型部署,移动端安卓App开发环境搭建和配置教程 ~

点击上方“码农的后花园”,选择“星标” 公众号 精选文章,第一时间送达 在深度学习中,算法模型部署到移动端中应用是最终的目的,上期中讲解了App开发目前主要有以下三种方式: 第一种:Eclipse JDK Android…

安卓开发环境搭建

1.下载JDK 7(1.7)或者8 (1.8)SE 现在一般是8 安装 然后配置环境变量后 执行命令 javac 看看是否成功,java -version可以查看版本 oracle登录账号可用 oracle.com passwords - BugMeNothttp://bugmenot.com/vie…

Android app 开发环境搭建

Android app 开发环境搭建(AMD和intel环境下) 下载Anaroid studio 安装 选择你想要安装的Android Studio的功能。检查想要安装的组件,取消检查不想安装的组件。单击Next继续。 空间要求:2.3gb 配置 收集数据用于服务X 不安装SDK(自行下载) 个性化 选择…

Android APP完整基础教程(01)开发环境简介

该系列文章主要基于AndroidQ平台,主要介绍Android应用基础开发相关知识。主要针对安卓应用开发路径的完整解读 和 coding练习内容的解读。 1 Android 发展历史 1.1 Android 历史 2005年 Google收购了成立仅22个月的高科技企业Android公司。2007年 Google正式向外…

移动APP开发环境搭建(新手)

移动APP开发环境配置(新手搭建) 涉及到的配置工具 STS ( eclipse idea 一样的开发工具)java jdk : 是Java语言开发工具包,JDK是整个JAVA的核心,包括了Java运行环境ant :Ant是Java的生成工具,用来编译、生成;跨平台&…

JSON.

JSON JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation),是轻量级的文本数据交换格式 ,使用 Javascript语法来描述数据对象,具有自我描述性,更易理解,但是 JSON 仍然独立于语言和…

JSONP 接口

1. 回顾 JSONP 的概念与特点 概念&#xff1a;浏览器端通过 <script> 标签的 src 属性&#xff0c;请求服务器上的数据&#xff0c;同时&#xff0c;服务器返回一个函数的调用。这种请求数据的方式叫做 JSONP。 特点&#xff1a; ① JSONP 不属于真正的 Ajax 请求&a…

Json接口代码生成工具-Json2Code

将接口的json文件转化为代码的工具&#xff0c;支持如下语言&#xff1a;C#,C,Dart,Go,Java,JavaScript,Kotlin,Objective-C,Python,Ruby,Rust,Swift,TypeScript Json2Code主要是为了解决前端在拿到后端swagger、postman等工具导出的接口描述文件的时候&#xff0c;大部分工作都…

Json 格式的接口测试该怎么做?

后端开发过程中&#xff0c;开发完毕后要进行必要的接口测试&#xff0c;很多人会疑惑 Json 格式的接口测试到底应该怎么做&#xff0c;为了让大家有个粗略的认识&#xff0c;这里我们运用 Eolink 接口工具来给大家演示一下 API 导入、对 API 进行测试以及更高级的 Mock 测试。…

http+json 格式的接口开发实践与思考

业务背景 最近一段时间&#xff0c;都在做接口对接&#xff0c;项目也差不多上线了&#xff0c;正好也总结下自己的想法和思考。 项目的主要目的是给我公司店铺的店长、员工、和业务品牌领导提供一个入口&#xff0c;可以很方便直观地看到店铺之间&#xff0c;员工之间的一些…

基于json文件创建后端模拟接口

json-server有很多接口&#xff1b;目的&#xff1a;基于一个json文件就可以创建很多的后端模拟接口&#xff1b; &#xff08;1&#xff09;先创建一个json文件&#xff1a; &#xff08;2&#xff09;然后下载nodejs&#xff1a;下载 | Node.js 中文网 注意&#xff1a;下…

SpringBoot接口接收json参数

1. 创建入参实体&#xff1a; package com.hsm.ls.application.test.domain;/*** Created by lfx on 2018/12/19.*/ public class ActiveRequest {private String sid;private String biz;private String text;public String getSid() {return sid;}public void setSid(String…

JSONP接口

概念&#xff1a;浏览器通过<script>标签的src属性&#xff0c;请求服务器上的数据&#xff0c;同时服务器返回一个函数的调用。这种请求数据的方式叫JSONP 特点&#xff1a;JSONP不属于真正的的Ajax请求&#xff0c;因为它没有使用XMLHttpRequest这个对象 JSONP仅支持G…