网站建设过程规划/西安百度推广开户
原文链接: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’ …...

瑞_力扣LeetCode_二叉树相关题
文章目录 说明题目 144. 二叉树的前序遍历题解 题目 94. 二叉树的中序遍历题解 题目 145. 二叉树的后序遍历题解 题目 105. 从前序与中序遍历序列构造二叉树题解 题目 106. 从中序与后序遍历序列构造二叉树题解 🙊 前言:本文章为瑞_系列专栏之《刷题》的…...

Axios设置token到请求头的三种方式
1、为什么要携带token? 用户登录时,后端会返回一个token,并且保存到浏览器的localstorage中,可以根据localstorage中的token判断用户是否登录,登录后才有权限访问相关的页面,所以当发送请求时,都要携带to…...

微服务介绍、使用 Nacos 实现远程调用以及 OpenFeign 的使用
1 微服务的概念 区别于单体项目 单体项目拆分成微服务项目的目标:高内聚、低耦合 拆分思路 纵向拆分:根据功能模块 横向拆分:抽取可复用模块 2 微服务拆分——远程调用 背景:微服务单一职责,每个服务只有自己的功能…...

Arthas使用教程—— 阿里开源线上监控诊断产品
文章目录 1 简介2背景3 图形界面工具 arthas 阿里开源3.1 :启动 arthas3.2 help :查看arthas所有命令3.3 查看 dashboard3.4 thread 列出当前进程所有线程占用CPU和内存情况3.5 jvm 查看该进程的各项参数 (类比 jinfo)3.6 通过 jad 来反编译 …...

mac电脑快捷指令实现拼图
mac访达,搜索输入‘快捷指令’,找到‘快捷指令’, 点击快捷指令,进入快捷指令中心,搜索‘拼图’ ,选中‘照片拼图’, 点击‘添加快捷指令’, 在‘所有快捷键指令’中可以看到添加的快…...

R语言入门笔记2.1
分支、循环与函数(1) 1.if语句 在R语言中,if语句用于根据条件执行不同的代码块。其基本语法如下: if (condition) {# 如果条件为真,执行这里的代码块 } else {# 如果条件为假,执行这里的代码块 } 其中&…...

补题:leetcode第382场周赛 3022. 给定操作次数内使剩余元素的或值最小
3022. 给定操作次数内使剩余元素的或值最小 - 力扣(LeetCode) 拆位 n个数进行或运算的结果最小,每次操作可以对相邻的两个数进行与运算,至多进行k次操作 n个数进行或运算,可以对每个数进行拆解,拆解成最小…...

创建型模式-单例模式:定义、实现及应用
目录 一、模式定义二、针对问题1.解决的问题2.解决方案3.举个例子4.设计模式适合场景5.实现方式6.优缺点7.与其他模式的关系 三、代码实现 一、模式定义 单例模式(Singleton Pattern)是一种创建型模式,用于限制某个类只能创建一个对象。它提…...

Prime(VulnHub)
Prime 文章目录 Prime1、nmap2、web渗透随便看看首页隐写查看目录爆破gobusterferoxbusterdirsearchdirb whatwebsearchsploit WordPress 5.2.2/dev/secret.txtFuzz_For_Webwfuzzimage.phpindex.php location.txtsecrettier360文件包含漏洞包含出password.txt尝试ssh登入尝试登…...

爬虫工作量由小到大的思维转变---<第四十二章 Scrapy Redis 重试机制(ip相关)>
前言: 之前讲过一篇关于scrapy的重试机制的文章,那个是针对当时那哥们的代码讲的,但是,发现后面还是有很多问题; 本章节就着scrapy的重试机制来讲一下!!! 正文: 首先,要清楚一个概念,在scrapy的中间件中,默认会有一个scrapy重试中间件;只要你在settings.py设置中写上: RETR…...