【翻译】 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

  1. 将Processing 4仓库导入Eclipse:
    导入 > 从Git项目 > 现有本地仓库 > 选择Processing文件夹 > 导入现有Eclipse项目
  2. 选择:
    • processing-app
    • processing-core
    • processing-java(选择路径为processing/java的选项)
  3. 右键点击processing-app项目,选择 运行方式 > Java应用程序 > “Base - processing.app”

III - 将android-mode项目导入到Eclipse

  1. 使用gradle构建适用于Android的processing分发,然后将Processing for Android仓库导入到Eclipse:
    导入 > 从Git项目 > 现有本地仓库 > 选择Processing文件夹 > 导入现有Eclipse项目
  2. 选择:
    • android-mode
    • android-mode-sdkupdater
  3. 右键点击_android-mode包 > 构建路径 > 配置构建路径_
  4. 添加类路径变量ANDROID_SDK和ANDROID_JAR,并将前者设置为Android SDK的路径,后者设置为SDK中platforms/android-xx文件夹中的android.jar文件(其中xx是Android API级别)。
  5. 添加/编辑运行配置以便从开发仓库加载Android模式到processing-app:
    1. 右键点击processing-app项目,选择 运行方式…|运行配置
    2. 创建新的运行配置或编辑现有配置,确保项目为processing-app,主类为processing.app.Base。
    3. 在参数选项卡中,输入-Dusemode=processing.mode.android.AndroidMode:${resource_loc:/android-mode}作为VM参数。
  6. 每次在模式源代码(或核心或VR库)中有更改时,需要在Eclipse中运行之前重新打包模式。为此,在processing-android根文件夹中运行“gradle dist”命令,如之前所述。
  7. 从运行菜单启动processing-app。Android模式现在应该出现在模式菜单中。
  8. 为了运行包括源代码中断点的调试会话,请在运行配置对话框的源代码选项卡中添加processing和processing-android文件夹。
  9. 您可以创建一个新的构建器,每次Eclipse构建android-mode项目时都运行gradle dist。这是通过进入项目的属性,然后选择构建器选项并选择新建来完成的。在那里,您应该将工作目录设置为本地processing-android仓库的位置,浏览Location以使用gradlew命令,并添加dist作为参数。这个构建器应该在默认的Java构建器之前移动。

从 IntelliJ 运行 Android 模式

Android 模式源代码可以很容易地导入到一个新的 IntelliJ 项目中。与 Eclipse 一样,我们首先需要克隆 Processing 4 仓库。然后:

II - 将 Processing 4 仓库导入 IntelliJ

  1. 将仓库导入 IntelliJ:导入项目 > 选择 Processing 4 文件夹 > 从外部模型(Eclipse)导入
    有关更多信息,请参见 IntelliJ 在线文档中的导入带设置的项目部分。
  2. 在“选择要导入的 Eclipse 项目”窗口中,选择
    • processing-app
    • processing-core
    • processing-java
  3. 转到 运行 > 编辑配置 并创建一个新的应用程序配置。
    1. 选择 Java 应用程序。
    2. 将“主类”设置为 “Base (processing.app)”
    3. 并将“使用模块的类路径”设置为 “processing-app”

III - 将 android-mode 项目导入 IntelliJ

  1. 转到 文件 > 项目结构 > 模块 > 添加 > 导入模块 > 选择 Processing-Android 文件夹 > 从外部模型(Eclipse)导入模块 > 仅选择模式项目
  2. 将模式模块重命名为 android-mode,您可能还需要修复 IntelliJ 中的一些自动生成的模块依赖关系(如 JDK 或库),以确保没有依赖错误。
  3. 转到 文件 > 设置 > 外观和行为 > 路径变量 并设置 ANDROID_SDK 和 ANDROID_JAR 变量的值(如果不存在则创建)分别为您的 Android SDK 路径和 SDK 中 platforms/android-xx 文件夹中的 android.jar 文件(其中 xx 是 Android API 级别)。还可以创建一个名为 ANDROID_MODE(或您想要的任何名称)的新变量,并将其值设置为 <processing-android repo 路径>/mode
  4. 在 processing-android 文件夹中运行 “gradle dist” 命令以构建核心库和模式。
  5. 将运行配置的 VM 选项参数设置为 -Dusemode=processing.mode.android.AndroidMode:$VAR$。将 VAR 替换为您在第 2 步中创建的变量(例如:ANDROID_MODE)。
  6. 运行项目。Android 模式现在应该出现在模式菜单中。
  7. 可以通过检查运行配置的“启动前”部分来自动执行“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。百度和各类采集站皆不可信,搜索请谨慎鉴别。技术类文章一般都有时效性,本人习惯不定期对自己的博文进行修正和更新,因此请访问出处以查看本文的最新版本。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

什么是DNS

DNS DNS 域名解析系统DNS服务器如何能够承担高并发量? DNS 域名解析系统 上网,想要访问服务器,就需要知道服务器的IP地址,IP地址,是一串数字,虽然这个数字使用点分十进制已经清晰不少了,但是仍然不方便人们记忆和传播,因此,我们就使用单词来代替IP地址,使用baidu,sogou,bilib…

transformers重要组件(模型与分词器)

1、模型&#xff1a; from transformers import AutoModelcheckpoint "distilbert-base-uncased-finetuned-sst-2-english" model AutoModel.from_pretrained(checkpoint) 除了像之前使用 AutoModel 根据 checkpoint 自动加载模型以外&#xff0c;我们也可以直接…

9、Node.js的下载与安装配置

文章目录 概要1、下载2、安装3、配置环境5、安装测试6、切换镜像环境 概要 Node.js 是一个免费的、开源的、跨平台的 JavaScript 运行时环境&#xff0c;允许开发人员在浏览器之外编写命令行工具和服务器端脚本 1、下载 1.1、进入官网 点击进入官网 官网首页如图所示&…

python实现k路归并排序

从归并排序中可以衍生出来一个新的问题&#xff0c;关于k路归并排序&#xff0c;给定k个已经排好序的数组&#xff0c;每个数组含有n各元素&#xff0c;要求将这k个数组合并成一个排好序的大数组。在对两路排好序的数组进行归并时候&#xff0c;会用两个指针指向两个数组首元素…

Unity AnimationRigging无法修改权重?

个人理解&#xff0c;已解决无法修改权重的问题: unity自带的动画系统是在FixUpdate和Update之后LateUpdate之前执行&#xff0c;如果在这FixedUpdate或Update函数内更新AnimationRigging内的权重后&#xff0c;内部动画系统会覆盖权重的修改&#xff0c;导致无法正确更新&…

11.0 Zookeeper watcher 事件机制原理剖析

zookeeper 的 watcher 机制&#xff0c;可以分为四个过程&#xff1a; 客户端注册 watcher。服务端处理 watcher。服务端触发 watcher 事件。客户端回调 watcher。 其中客户端注册 watcher 有三种方式&#xff0c;调用客户端 API 可以分别通过 getData、exists、getChildren …

嵌入式驱动与算法项目的科技创业商机案例分析

加我微信hezkz17&#xff0c;进嵌入式算法开发交流答疑群。 创业必备技能&#xff0c;会画电路板&#xff0c;会固件驱动开发&#xff0c;会控制算法原理与落地实现&#xff0c;会上位机工具开发&#xff0c;会手机app开发&#xff0c;能够构建成一套整体系统。 从卖开发板&am…

时光峰峦文物璀璨,预防性保护筑安全

在璀璨的历史长河中&#xff0c;珍贵文物如同时间的印记&#xff0c;承载着过往的辉煌。《人文山水时光峰峦——多彩贵州历史文化展》便是这样一场文化的盛宴&#xff0c;汇聚了众多首次露面的宝藏。然而&#xff0c;文物的保存对环境要求极为苛刻&#xff0c;温湿度波动都可能…

【Linux】基于管道进行进程间通信

进程间通信 一、初识进程间通信1. 进程间通信概念2. 进程间通信分类 二、管道1. 管道概念2. 管道原理3. 匿名管道4. 匿名管道系统接口5. 管道的特性和情况6. 匿名管道的应用&#xff08;1&#xff09;命令行&#xff08;2&#xff09;进程池 7. 命名管道&#xff08;1&#xff…

使用python绘制无边框ECG信号-可用于论文插图-小白版

用python绘制一个心电信号 最近在写大论文&#xff0c;由于自己做的是心电信号难免要做一些心电信号的插图&#xff0c;然后在写论文的时候有的时候要用真实信号有的时候需要用到示意图&#xff0c;这里面的其他部分使用Visio绘制的&#xff0c;但是前面的心电信号部分&#x…

医院挂号预约|医院挂号预约小程序|基于微信小程序的医院挂号预约系统设计与实现(源码+数据库+文档)

医院挂号预约小程序目录 目录 基于微信小程序的医院挂号预约系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、小程序用户端 2、系统服务端 &#xff08;1&#xff09; 用户管理 &#xff08;2&#xff09;医院管理 &#xff08;3&#xff09;医生管理 &…

【项目源码】一套基于springboot+Uniapp框架开发的智慧医院3D人体导诊系统源码

智慧医院3D人体导诊系统源码 开发语言:java 开发工具:IDEA 前端框架:Uniapp 后端框架:springboot 数 据 库:mysql 移 动 端:微信小程序、H5 “智慧导诊”以人工智能手段为依托,为人们提供智能分诊、问病信息等服务,在一定程度上满足了人们自我健康管理、精准挂号…