【翻译】 Processing的安卓项目构建(译者用的是Android Studio)
原文链接:https://github.com/processing/processing-android/wiki/Building-Processing-for-Android,版本Apr 2, 2023
译者声明:这个文档是开源公开的,协议是GNU协议。译者自己得使用这个文档,所以才翻译的,但是译者实在懒得翻译,所以找GPT翻译了一下。但是因为译者自己得使用这个文档,所以对这个文档进行了相当的补充说明和纠正。本着写都写了这不得发出来啊的思路,译者发布了这篇博客,希望对构建Processing安卓项目的后来者有所帮助。
文章目录
- Processing的Android构建系统
- 使用Gradle构建所有内容
- 使用Android Studio开发/调试/测试核心和VR库
- 在Eclipse中运行Android模式
- I - 设置Processing 4
- II - 将Processing 4仓库导入到Eclipse
- III - 将android-mode项目导入到Eclipse
- 从 IntelliJ 运行 Android 模式
- II - 将 Processing 4 仓库导入 IntelliJ
- III - 将 android-mode 项目导入 IntelliJ
- 特殊任务
- 为整个项目更新 Gradle 包装器:
- 使用最新文档化的权限更新 Permissions.java
译者注:如果对Processing的Android毫无了解,可以先从这篇翻译中有一个简单的了解:【翻译】Processing指南|Processing安卓安装和开始使用
Processing的Android构建系统
Processing的Android构建系统完全基于Gradle(由于许多关键步骤,尤其是与依赖项解析相关的步骤,无法通过Ant轻松实现,因此移除了对Ant的支持)。构建系统包括用于开发和测试核心、VR以及其他Android特定库的Android Studio示例项目。同时还提供了用于Android模式和SDK更新工具的Eclipse项目。
译者注:译者主要就是使用AS去开发,所以关于Eclipse的描述我这边没做什么补充。译者的AS版本是2022年版的,怕最新的有bug且没教程不敢装。
译者注:译者超级不推荐直接使用Processing的PDE的Android Mode!!超级不推荐!!!它的代理完全不知道在哪里设置,而且导出死活导出不了,那个PDE玩玩草图可以,不要当成正经项目去用。
译者注:如果不知道AS在哪里下载快、以及怎么使用方便,可以看看这篇浅浅安装一下:【工具】Android|Android Studio 长颈鹿版本安装下载使用详解。
使用Gradle构建所有内容
构建系统使用gradle来构建processing核心和模式、VR和AR库、SDK下载工具,并创建准备好使用的Android模式包。
译者注:如果使用的是AS,那么以下安装这些库的过程可以忽略甚至跳过。因为可以先采用AS是图形化页面把这些装全,参考下面的过程找到需要安装的组件,包括SDK、cmdtools、platform;也可以等导入了Processing-Android项目的debug文件夹之后它自动获取依赖并安装(推荐后一种!即跳过这一步!这样就不会装错版本了)。
首先要安装Android SDK。可以手动使用此页面底部的“仅命令行工具”部分提供的命令行工具进行安装,在那里可以下载对应于您使用的操作系统(Windows、Mac或Linux)的工具。解压zip文件并将cmdline-tools文件夹中的内容移动到<SDK路径>/cmdline-tools/latest。例如(在Mac上,并替换为正确的版本号和SDK文件夹):
unzip commandlinetools-mac-6858069_latest.zip
mkdir ~/android-devel/SDK
mkdir ~/android-devel/SDK/cmdline-tools
mv cmdline-tools ~/android-devel/SDK/cmdline-tools/latest
将命令行工具放置在SDK位置后,您可以使用sdkmanager下载SDK所需的组件:
cd ~/android-devel/SDK/cmdline-tools/latest/bin
./sdkmanager "platform-tools" "platforms;android-33"
然后,在repo的根文件夹中创建一个local.properties文件,其内容如下:
sdk.dir=<Android SDK的路径>
在前面的示例中,<Android SDK的路径>应该是~/android-devel/SDK/,但您可以使用任何其他您喜欢的位置。如果您使用的是Windows,使用双反斜杠"\“作为文件分隔符,或使用前斜杠”/"(Unix风格)。否则,构建过程将失败。或者,如果系统中定义了ANDROID_SDK环境变量,构建脚本将尝试自动创建此文件。
一旦有了有效的local.properties,您可以通过运行以下命令来构建Android模式分发:
gradle dist
这假设您在系统范围内可用的Gradle版本为7(目前尚不支持版本8)(可以从此处下载二进制版本),或者您可以使用随模式附带的Gradle wrapper:
./gradlew dist
这将下载进行构建和分发过程所需的所有文件。
如果所有模块的构建过程成功完成,AndroidMode.zip和AndroidMode.txt文件将存储在dist子文件夹内。
使用以下命令清理所有构建文件:
gradle clean
或者
./gradlew clean
请注意,不再提供ant构建脚本来构建模式或核心库。
使用Android Studio开发/调试/测试核心和VR库
译者注:先克隆这个仓库:
git clone git@github.com:processing/processing-android.git
将debug文件夹导入Android Studio,同意随后显示的Gradle Sync对话框,并等待Android Studio下载所有依赖项。
译者注:导入的方式很简单,File-Open…,然后输入刚刚克隆的仓库的debug的文件夹位置就可以。
您应该得到一个项目空间,在那里您可以运行提供的示例应用(simple和vrcube),添加新应用程序,并修改和调试核心和vr库。processing-core和processing-vr Android库项目只是指向core/src和mode/libraries/vr/src中的源文件夹,因此这些位置中源代码文件的任何更改都会影响示例应用程序。
全下好之后会得到一个这样子的页面:
进一步展开运行项,选那个simple运行一下:
译者注:然后把手机的USB调试打开,再连接电脑,点击运行就可以使用了!具体打开方式可以搜索“手机型号+USB调试”,如“IQOO USB调试”。
非常方便!非常非常方便!(译者不喜欢电脑的手机模拟器,因为译者曾经因为多个手机模拟器翻车或者导致电脑蓝屏,已经心理阴影了,宁愿直接上真机)
译者注:到这里,我已经能够正常开始编程了,没有遇到其他问题了,如果还需要使用其他的环境编程你们可以继续往后看。
在Eclipse中运行Android模式
Android模式是一个Java项目,可以在Eclipse或IntelliJ等Java IDE中开发。Eclipse项目文件已包含在内,从Eclipse运行模式所需的步骤如下:
I - 设置Processing 4
由于我们只需要Processing 4作为依赖,因此执行浅克隆Processing 4仓库,并在processing/build文件夹中运行ant进行构建,具体操作请参见Processing 4的构建说明:
git clone https://github.com/processing/processing4.git --depth 1
II - 将Processing 4仓库导入到Eclipse
- 将Processing 4仓库导入Eclipse:
导入 > 从Git项目 > 现有本地仓库 > 选择Processing文件夹 > 导入现有Eclipse项目 - 选择:
- processing-app
- processing-core
- processing-java(选择路径为processing/java的选项)
- 右键点击processing-app项目,选择 运行方式 > Java应用程序 > “Base - processing.app”
III - 将android-mode项目导入到Eclipse
- 使用gradle构建适用于Android的processing分发,然后将Processing for Android仓库导入到Eclipse:
导入 > 从Git项目 > 现有本地仓库 > 选择Processing文件夹 > 导入现有Eclipse项目 - 选择:
- android-mode
- android-mode-sdkupdater
- 右键点击_android-mode包 > 构建路径 > 配置构建路径_
- 添加类路径变量ANDROID_SDK和ANDROID_JAR,并将前者设置为Android SDK的路径,后者设置为SDK中platforms/android-xx文件夹中的android.jar文件(其中xx是Android API级别)。
- 添加/编辑运行配置以便从开发仓库加载Android模式到processing-app:
- 右键点击processing-app项目,选择 运行方式…|运行配置
- 创建新的运行配置或编辑现有配置,确保项目为processing-app,主类为processing.app.Base。
- 在参数选项卡中,输入
-Dusemode=processing.mode.android.AndroidMode:${resource_loc:/android-mode}作为VM参数。
- 每次在模式源代码(或核心或VR库)中有更改时,需要在Eclipse中运行之前重新打包模式。为此,在processing-android根文件夹中运行“gradle dist”命令,如之前所述。
- 从运行菜单启动processing-app。Android模式现在应该出现在模式菜单中。
- 为了运行包括源代码中断点的调试会话,请在运行配置对话框的源代码选项卡中添加processing和processing-android文件夹。
- 您可以创建一个新的构建器,每次Eclipse构建android-mode项目时都运行gradle dist。这是通过进入项目的属性,然后选择构建器选项并选择新建来完成的。在那里,您应该将工作目录设置为本地processing-android仓库的位置,浏览Location以使用gradlew命令,并添加dist作为参数。这个构建器应该在默认的Java构建器之前移动。
从 IntelliJ 运行 Android 模式
Android 模式源代码可以很容易地导入到一个新的 IntelliJ 项目中。与 Eclipse 一样,我们首先需要克隆 Processing 4 仓库。然后:
II - 将 Processing 4 仓库导入 IntelliJ
- 将仓库导入 IntelliJ:导入项目 > 选择 Processing 4 文件夹 > 从外部模型(Eclipse)导入
有关更多信息,请参见 IntelliJ 在线文档中的导入带设置的项目部分。 - 在“选择要导入的 Eclipse 项目”窗口中,选择
- processing-app
- processing-core
- processing-java
- 转到 运行 > 编辑配置 并创建一个新的应用程序配置。
- 选择 Java 应用程序。
- 将“主类”设置为 “Base (processing.app)”
- 并将“使用模块的类路径”设置为 “processing-app”
III - 将 android-mode 项目导入 IntelliJ
- 转到 文件 > 项目结构 > 模块 > 添加 > 导入模块 > 选择 Processing-Android 文件夹 > 从外部模型(Eclipse)导入模块 > 仅选择模式项目
- 将模式模块重命名为 android-mode,您可能还需要修复 IntelliJ 中的一些自动生成的模块依赖关系(如 JDK 或库),以确保没有依赖错误。
- 转到 文件 > 设置 > 外观和行为 > 路径变量 并设置 ANDROID_SDK 和 ANDROID_JAR 变量的值(如果不存在则创建)分别为您的 Android SDK 路径和 SDK 中 platforms/android-xx 文件夹中的 android.jar 文件(其中 xx 是 Android API 级别)。还可以创建一个名为 ANDROID_MODE(或您想要的任何名称)的新变量,并将其值设置为
<processing-android repo 路径>/mode。 - 在 processing-android 文件夹中运行 “gradle dist” 命令以构建核心库和模式。
- 将运行配置的 VM 选项参数设置为
-Dusemode=processing.mode.android.AndroidMode:$VAR$。将 VAR 替换为您在第 2 步中创建的变量(例如:ANDROID_MODE)。 - 运行项目。Android 模式现在应该出现在模式菜单中。
- 可以通过检查运行配置的“启动前”部分来自动执行“gradle dist”步骤。
特殊任务
这些是仅需要偶尔运行的一些特殊任务,以更新仓库中包含的 Gradle 包装器,或由模式支持的 Android 权限。
为整个项目更新 Gradle 包装器:
运行以下命令以更新捆绑的 Gradle 包装器:
gradle wrapper --gradle-version 6.5
(将 6.5 替换为您要更新到的 Gradle 版本)。然后,您必须将新的 Gradle 包装器文件提交到仓库。如果没有提供版本,则使用mode/versions.properties文件中的gradle-wrapper版本。
如果 Gradle 表示任务是最新的并拒绝更新,请在命令中添加 --rerun-tasks。
使用最新文档化的权限更新 Permissions.java
首先确保安装运行此目标所需的依赖项:
pip install -r mode/scripts/requirements.txt
然后:
gradle permissions
本账号所有文章均为原创or有版权二创,欢迎转载,请注明文章出处:https://blog.csdn.net/qq_46106285/article/details/136049420。百度和各类采集站皆不可信,搜索请谨慎鉴别。技术类文章一般都有时效性,本人习惯不定期对自己的博文进行修正和更新,因此请访问出处以查看本文的最新版本。
相关文章:
【翻译】 Processing的安卓项目构建(译者用的是Android Studio)
原文链接:https://github.com/processing/processing-android/wiki/Building-Processing-for-Android,版本Apr 2, 2023 译者声明:这个文档是开源公开的,协议是GNU协议。译者自己得使用这个文档,所以才翻译的࿰…...
华为机考入门python3--(8)牛客8-合并表记录
分类:字典排序 知识点: 将输入转成int的列表 my_list list(map(int, input().strip().split( ))) 将列表转为元组 tuple(my_list) 访问元素为元组的列表 for first, second, third in my_list: 对字典进行排序 sorted(my_dict.items())…...
vue3-内置组件-KeepAlive
KeepAlive <KeepAlive> 是一个内置组件,它的功能是在多个组件间动态切换时缓存被移除的组件实例。 基本使用 默认情况下,一个组件实例在被替换掉后会被销毁。这会导致它丢失其中所有已变化的状态——当这个组件再一次被显示时,会创建…...
RxJava Subject
目录 AsyncSubjectBehaviorSubjectPublishSubjectReplaySubjectSerializedSubjectUnicastSubject 在Rxjava中, Subject可以同时表示Observer和Observable, 允许从单个源到多个子观察者multiple child Observers。 除了 onSubscribe(io.reactivex.disposables.Dispos…...
[N-141]基于springboot,vue网上拍卖平台
开发工具:IDEA 服务器:Tomcat9.0, jdk1.8 项目构建:maven 数据库:mysql5.7 系统分前后台,项目采用前后端分离 前端技术:vueelementUI 服务端技术:springbootmybatis-plusredi…...
新能源光伏发电设计全面解析
伴随碳达峰、碳中和“双碳”政策大力推行,以及新能源市场的利好,目前多个城市在大力推进光伏发电项目,本篇文章将详细介绍关于光伏发电设计的信息。 一、光伏发电概念 光伏发电是指利用太阳辐射能在太阳能电池板上产生的电能,通…...
踩坑实录(Third Day)
临近年关,同事们该回家的也都回家了,所以我对工作的欲望不是很强烈,所以就主要是自己学习了一下,在 B 站看看视频,自己敲代码,所以今天没遇到什么坑,但是可以分享一下之前踩到的两个坑。 此为第…...
Linux联网安装MySQL Server
yum安装 以下代码复制粘贴到控制台即可 yum list | grep mysql-server #查看可以下载的MySQLyum install -y mysql-server #安装MySQLmysql_secure_installation #引导安装 引导安装实例如下 systemctl enable mysqld 设置开机自动启动 systemctl sta…...
使用GDI画图片生成合成图片并调用打印机进行图片打印
使用GDI画图片生成合成图片并调用打印机进行图片打印 新建窗体应用程序PrinterDemo,将默认的Form1重命名为FormPrinter,添加对 Newtonsoft.Json.dll用于读写Json字符串 zxing.dll,zxing.presentation.dll用于生成条形码,二维码…...
【PyQt】04-Designer
文章目录 前言一、初级 Designer1.1 拖拽设计界面1.2 搞定之后记得保存ui文件1.3 载入代码1.4 运行结果 二、登入界面代码效果展示账号密码错误时账号和密码正确 总结 前言 自然还是跟着王铭东老师学的 一、初级 Designer 1.1 拖拽设计界面 进度条是这个 1.2 搞定之后记得保…...
第4节、电机多段转动【51单片机+L298N步进电机系列教程】
↑↑↑点击上方【目录】,查看本系列全部文章 摘要:本节介绍用控制步进电机三个主要参数角度、速度、方向,实现简单的步进电机多段控制 一、目标功能 输入多个目标角度,以及每个角度对应的速度,实现步进电机的多段多速…...
算法学习——华为机考题库1(HJ1 - HJ10)
算法学习——华为机考题库1(HJ1 - HJ10) HJ1 字符串最后一个单词的长度 描述 计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。(注:字符串末尾不以空格为结尾) 输入描述&…...
PSQL常用操作
目录 前言 准备工作 添加postgres用户 初始化数据库 启动服务 创建数据库 psql连接数据库 常规操作 数据库 schema相关 插件 其他 前言 老折腾,还是记录点啥吧...... 基于本地PG数据库(打包为绿色版本了),实操记录,版本pgsql12…...
C++ “万能血“ void*指针
本篇文章我们来介绍一下C “万能血” void指针 为什么说他万能呢? 原因:C void* 是一种特殊的指针类型,可用于存放任意对象的地址。在函数传参中也可以作为任何实参的形参 void型详细介绍 void* 是C中的一种特殊的指针类型,被称为"无类…...
微信小程序新手入门教程四:样式设计
WXSS (WeiXin Style Sheets)是一套样式语言,用于描述 WXML 的组件样式,决定了 WXML 的组件会怎么显示。 WXSS 具有 CSS 大部分特性,同时为了更适合开发微信小程序,WXSS 对 CSS 进行了扩充以及修改。与 CSS 相比,WXSS …...
类银河恶魔城学习记录1-6 Flip基本设置源代码 P33
Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释,可供学习Alex教程的人参考 【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili Player.cs using System.Collections; using System.Collections.Generic; using Unity.VisualScripting; us…...
【Git教程】(一)基本概念 ——工作流、分布式版本控制、版本库 ~
Git教程 基本概念 1️⃣ 为什么要用 Git2️⃣ 为什么要用工作流3️⃣ 分布式版本控制4️⃣ 版本库5️⃣ 简单的分支创建与合并🌾 总结 在本章中,将介绍一个分布式版本控制系统的设计思路,以及它与集中式版本控制系统的不同之处。除此之外&am…...
【QT】VS-code报错:LNK2019: 无法解析的外部符号
目录 0.环境 1.问题简述 2.分析报错原因 3.解决方法 1)set() 相关语句 2)target_link_libraries() 相关语句 4.参考 0.环境 windows11 、 vs-code 、 qt 、 c、编译器为vs2019-x86_amd64 1.问题简述 项目编译release版本时会报错:报错…...
基于 NXP S32K344 的汽车通用评估板方案
S32K3xx 系列是 NXP 基于 ARMCortex-M7 的汽车工业级 MCU,符合 ISO26262 ASIL-D 汽车功能安全等级,支持 ASIL B/D 安全应用,提供了一个可扩展的平台,具有下一代安全性、可扩展性、连接性和低功耗特性。适用于可能会在严酷环境下工…...
WebAssembly002 FFmpegWasmLocalServer项目
项目介绍 https://github.com/incubated-geek-cc/FFmpegWasmLocalServer.git可将音频或视频文件转换为其他可选的多媒体格式,并导出转码的结果 $ bash run.sh FFmpeg App is listening on port 3000!运行效果 相关依赖 Error: Cannot find module ‘express’ …...
【Linux】shell脚本忽略错误继续执行
在 shell 脚本中,可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行,可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令,并忽略错误 rm somefile…...
简易版抽奖活动的设计技术方案
1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...
从WWDC看苹果产品发展的规律
WWDC 是苹果公司一年一度面向全球开发者的盛会,其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具,对过去十年 WWDC 主题演讲内容进行了系统化分析,形成了这份…...
第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明
AI 领域的快速发展正在催生一个新时代,智能代理(agents)不再是孤立的个体,而是能够像一个数字团队一样协作。然而,当前 AI 生态系统的碎片化阻碍了这一愿景的实现,导致了“AI 巴别塔问题”——不同代理之间…...
【python异步多线程】异步多线程爬虫代码示例
claude生成的python多线程、异步代码示例,模拟20个网页的爬取,每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程:允许程序同时执行多个任务,提高IO密集型任务(如网络请求)的效率…...
微信小程序云开发平台MySQL的连接方式
注:微信小程序云开发平台指的是腾讯云开发 先给结论:微信小程序云开发平台的MySQL,无法通过获取数据库连接信息的方式进行连接,连接只能通过云开发的SDK连接,具体要参考官方文档: 为什么? 因为…...
嵌入式学习笔记DAY33(网络编程——TCP)
一、网络架构 C/S (client/server 客户端/服务器):由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序,负责提供用户界面和交互逻辑 ,接收用户输入,向服务器发送请求,并展示服务…...
手机平板能效生态设计指令EU 2023/1670标准解读
手机平板能效生态设计指令EU 2023/1670标准解读 以下是针对欧盟《手机和平板电脑生态设计法规》(EU) 2023/1670 的核心解读,综合法规核心要求、最新修正及企业合规要点: 一、法规背景与目标 生效与强制时间 发布于2023年8月31日(OJ公报&…...
Modbus RTU与Modbus TCP详解指南
目录 1. Modbus协议基础 1.1 什么是Modbus? 1.2 Modbus协议历史 1.3 Modbus协议族 1.4 Modbus通信模型 🎭 主从架构 🔄 请求响应模式 2. Modbus RTU详解 2.1 RTU是什么? 2.2 RTU物理层 🔌 连接方式 ⚡ 通信参数 2.3 RTU数据帧格式 📦 帧结构详解 🔍…...
【Linux】Linux安装并配置RabbitMQ
目录 1. 安装 Erlang 2. 安装 RabbitMQ 2.1.添加 RabbitMQ 仓库 2.2.安装 RabbitMQ 3.配置 3.1.启动和管理服务 4. 访问管理界面 5.安装问题 6.修改密码 7.修改端口 7.1.找到文件 7.2.修改文件 1. 安装 Erlang 由于 RabbitMQ 是用 Erlang 编写的,需要先安…...



