MIT APP Inventor服务器版编译

news2024/11/15 4:00:16

注:MIT Appinventor 在市场上的 Windows 版本较多,在 Linux 上编译的版本很少。 由于需要部署服务器,因此决定编译 linux 版本。

GitHub原文:https://github.com/KamenLiefu/BG_APPInventor

Github编译版本免费下载:https://github.com/KamenLiefu/BG_APPInventor

目录

  • 1.更新系统
  • 2.环境配置
  • 3.源码下载
  • 4.SDK 下载
  • 5.构建项目
  • 6.编写脚本
  • 7.结果展示


1.更新系统

安装32位系统:

//Install 32-bit programs
dpkg --add-architecture i386 

检查并更新依赖包

//Check and update dependencies
apt-get upgrade -y           

2.环境配置

sudo apt-get install -y libc6:i386 libstdc++6:i386 glibc-doc:i386 gcc-5-base:i386 gcc-6-base:i386 libgcc1:i386
sudo apt-get install -y zip unzip lib32z1 adb phantomjs
sudo apt-get install ant
//可以通过命令安装,也可以通过官网下载。
//Install openjdk-8-jdk or download the installation package from oracle's official website
sudo apt-get install openjdk-8-jdk 

在这里插入图片描述

3.源码下载

//下载源代码
//Download the Apinvento-Souss source code
git clone https://github.com/mit-cml/appinventor-sources.git 
cd appinventor-sources
cp sample-.gitignore .gitignore
//下载需要的依赖,例如clourse-library,blockly等等。
//Download the dependencies and modules needed for Apinvento Souss.
git submodule update --init 

4.SDK 下载

//下载appengine-java-sdk
//Download appengine-java-sdk
wget --no-verbose https://storage.googleapis.com/appengine-sdks/featured/appengine-java-sdk-1.9.68.zip 
//解压下载的zip压缩包
//Unzip the downloaded zip
unzip appengine-java-sdk-1.9.68.zip 
//重命名文件名,不修改也可以
//rename directory
mv appengine-java-sdk-1.9.68 appengine-java-sdk 
//复制解压后的sdk到appinventor目录下
//copied to appinventor
mv appengine-java-sdk appengine-sources/appinventor 

5.构建项目

编译操作,约 5~10 分钟

//进入appinventor目录
cd appinventor
//编译
ant

6.编写脚本

注:这里文件是在桌面上,用户名是kali,以自己的用户名为准。

AppServer.sh

#!/bin/sh
'/home/kali/Desktop/appinventor-sources/appinventor/appengine-java-sdk/bin/dev_appserver.sh'  --port=8888 --address=0.0.0.0 '/home/kali/Desktop/appinventor-sources/appinventor/appengine/build/war' 

StartServer.sh

#!/bin/sh
cd '/home/kali/Desktop/appinventor-sources/appinventor/buildserver' && ant RunLocalBuildServer

7.结果展示


在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2078645.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

川崎机器人维修请开启马达电源报警故障

‌川崎机器人故障代码主要用于指示机器人的不同运行问题和状态,帮助快速识别和解决这些问题。‌Kasawaki机械手故障代码通常以字母和数字的组合形式出现,其中字母代表故障的类型,而数字则是具体的代码编号。这些代码可以分为‌P‌代表操作错误…

JavaEE:多线程代码案例(阻塞队列)

文章目录 什么是阻塞队列?使用阻塞队列有什么好处?代价BlockingQueue的使用自己实现一个阻塞队列(基于数组) 什么是阻塞队列? 阻塞队列是在普通的(先进先出)的基础上,做出了扩充. 线程安全具有阻塞特性 a. 如果队列为空,进行出队列操作,此时就会出现阻塞,一直阻塞到其他线…

EDA投资前沿 | IDAS 2024设计自动化产业峰会之产业投资分论坛前瞻

主持人简介 冯锦锋 上海兴橙资本合伙人/上海市集成电路行业协会 嘉宾介绍:江苏靖江人,上海兴橙资本合伙人,兼任上海集成电路行业协会副秘书长,著有著作《一砂一世界》、《芯路》、《芯镜》。先后获得清华大学管理信息系统工学学…

如何在大模型落地过程中使用高级 RAG 技术?

一、高级RAG概述 基本 RAG 的工作流程可分为三个步骤:索引、检索和生成。在索引阶段,文本被转换为嵌入,然后存储在向量数据库中以创建可搜索的索引。在检索步骤中,用户的查询也被转换为嵌入,此嵌入用于在向量数据库中…

《向量数据库指南》——Milvus赋能博世智能驾驶:数据引领未来出行革命

在深入探讨Milvus在智能驾驶领域的无限潜力时,我们不得不首先认识到,随着自动驾驶技术的飞速发展,数据已成为驱动这一行业变革的核心要素。自动驾驶系统需要处理海量的实时数据,包括但不限于车辆传感器收集的环境信息(如摄像头捕捉的图像、激光雷达的点云数据、雷达探测的…

VTK随笔六:VTK图像处理(图像创建、图像显示)

一、VTK图像创建 1、VTK 图像数据结构 数字图像文件内容由两个部分组成:图像头信息和数据。图像头信息定义了图像的基本信息,主要包括起点位置(Origin)、像素间隔(Space)和维数(Dimension)。通过这三个参数即可确定图像空间位置和大小。 图像数据即为图像像素的像素…

续航更进阶 长安马自达MAZDA EZ-6成功挑战1301公里续航

继在中国“热极”新疆吐鲁番完成高温试炼后,8月24日-26日,长安马自达MAZDA EZ-6(以下称EZ-6)“众测先享官—续航更进阶”再次从兰州出发,EZ-6增程车型以一次充电、一箱油(45L油箱)创造了CLTC工况…

微信小程序主体变更(迁移)法人无法配合扫脸怎么办?

小程序主体变更是指公众平台提供的,协助小程序帐号开发者将其小程序项下业务交由其他开发者的小程序承接、运营的功能和服务。主体变更完成后,小程序的运营权限、主体信息将发生变化。 那么,小程序怎么变更主体信息呢?法人因种种…

游戏开发设计模式之原型模式

目录 原型模式的实现步骤 原型模式的优点 原型模式的应用场景 总结 原型模式在游戏开发中的具体应用案例是什么? 如何在不同编程语言中实现原型模式? Java C# Python C JavaScript 原型模式与其他创建型设计模式(如建造者模式、适…

喂饭级教程!零代码搭建本地个人知识库 ,支持GPT4、Llama3、Kimi等十几种大模型

这篇文章是关于搭建本地个人知识库,零代码!喂饭级教程!支持GPT、Llama3、Kimi等十几种大模型。教程由我编写,每一步已经过验证,可实践! 1 搭建本地知识库优势 部署本地知识库,可以借助大模型能…

国内十大企业薪酬管理咨询公司

思博咨询专注于制造业管理咨询落地辅导。提供战略落地、营销体系、组织体系、薪酬绩效、供应链、精益生产、降本增效、工厂规划等管理咨询服务。 在当今这个竞争激烈的市场环境中,企业薪酬管理已不再是简单的工资发放与调整,而是成为了企业战略的重要组成…

大模型学习成长路径:五个阶段晋级指南,你在哪一级?

第一阶段 不知道概念 第一阶段,「不知道大模型是什么意思」,不知道langchain是什么,不知道llm是什么,不知道文心一言,不知道openAI,不知道prompt是什么? 这个阶段就是疯狂百度,像一…

23 预编译详解

目录 一、预定义符号 二、#define定义常量 三、#define定义宏 四、带有副作用的宏参数 五、宏替换的规则 六、宏函数的对比 七、#和## (一)#运算符 (二)##运算符 八、命名约定 九、#undef 十、命令行定义 十一、条件编…

TCP协议中的可靠性机制

目录 确认应答 滑动窗口 快重传 流量控制 窗口探测 拥塞控制 延迟应答 捎带应答 总结 相较于UDP协议,TCP协议由于要确保通信过程中的可靠性与尽可能提高通信效率提供了很多可靠性机制,因此TCP比较复杂。 确认应答 滑动窗口 滑动窗口是发送方/接…

Jmeter执行多机联合负载

1、注意事项,负载机必须要安装jre,控制机则必须安装jdk。要配置同网段ip,双向关闭防火墙。 每个负载机要平均承担线程数。 具体执行事项查看上面截图所示,控制机和负载机配置。 2、先给负载机设置ip地址,保持与控制…

网络安全新视角:人工智能在防御中的最新应用

人工智能在网络安全中的最新应用 概述 人工智能(AI)在网络安全领域的应用正日益成熟,它通过机器学习和深度学习技术,为网络安全带来了革命性的变革。AI技术不仅能够自动化、智能化地检测、分析和应对安全威胁,还能够…

Transformer-BiLSTM神经网络多输入单输出回归预测的MATLAB实现

在现代人工智能和机器学习领域,深度学习模型已经成为解决复杂问题的重要工具。Transformer和双向长短期记忆网络(BiLSTM)是两种非常强大的神经网络架构,它们在自然语言处理、时间序列预测、图像处理等多个领域表现出色。本文将介绍…

黑马JavaWeb企业级开发(知识清单)07——Ajax、Axios请求、前后端分离开发介绍、Yapi配置步骤

文章目录 前言一、Ajax1. 概述2. 作用3. 同步异步4. 原生Ajax请求(了解即可)5. Axios(重点)5.1 基本使用5.2 Axios别名(简化书写) 二、前后端分离开发1. 介绍1.1 前后台混合开发1.2 前后台分离开发方式&…

ChatGPT真的那么牛吗?

ChatGPT 很受欢迎,主要因为它在很多任务上表现出色,比如回答问题、写作、编程辅助等等。它的强大之处在于它可以理解和生成与上下文相关的自然语言文本,使得它在许多领域中都有用武之地。 和咱国内的文心一言一比较比较就知道了 不抖机灵&…

史上最全软件测试面试题集(含答案),进大厂涨薪必备,赶紧收藏

前阵子一位读者告诉我,某位大厂HR给他发了我之前做的面试题答案合集。 这个消息让我开心了一整天,因为这说明我之前做的面试题系列真的能帮助到部分测试同学,也算是侧面得到了一种认可吧。 今天写的这份面试题我之前就整理分享过&#xff0…