首页 > 编程语言 >Gluon 编译 JavaFx -> android apk

Gluon 编译 JavaFx -> android apk

时间:2024-09-01 17:47:37浏览次数:10  
标签:maven http sudo JavaFx repo Gluon yum android com

Gluon 编译 JavaFx -> android apk

本文的内容属 在linux服务器上 搭建 Gluon 编译 android-apk 环境

这一篇文章直接跟着官网操作一次性成功

虚拟机版本

  • centos8 Architecture: x86-64

开始安装相关前置工具

  • gcc version 6 or higher
  • ld version 2.26 or higher
sudo yum update
sudo yum install gcc ld -y
sudo yum install pkgconfig gtk3-devel libXtst-devel -y

如果遇到连接超时的问题,就更新一下yum源,我切换的是阿里云的yum源,centos8的系统参考这篇文章

下面是我提炼过的内容

# 命令备份之前的repo文件
sudo rename '.repo' '.repo.bak' /etc/yum.repos.d/*.repo
# 运行以下命令下载最新的repo文件 
# 注意 我们不是阿里云的ECS实例
# 需要将后面所有命令中的源地址http://mirrors.cloud.aliyuncs.com替换为http://mirrors.aliyun.com
sudo wget http://mirrors.cloud.aliyuncs.com/repo/Centos-vault-8.5.2111.repo -O /etc/yum.repos.d/Centos-vault-8.5.2111.repo
sudo wget http://mirrors.cloud.aliyuncs.com/repo/epel-archive-8.repo -O /etc/yum.repos.d/epel-archive-8.repo
# 替换repo文件中的链接
sudo sed -i 's/http:\/\/mirrors.cloud.aliyuncs.com/url_tmp/g' /etc/yum.repos.d/Centos-vault-8.5.2111.repo &&  sudo sed -i 's/http:\/\/mirrors.aliyun.com/http:\/\/mirrors.cloud.aliyuncs.com/g' /etc/yum.repos.d/Centos-vault-8.5.2111.repo && sudo sed -i 's/url_tmp/http:\/\/mirrors.aliyun.com/g' /etc/yum.repos.d/Centos-vault-8.5.2111.repo
sudo sed -i 's/http:\/\/mirrors.aliyun.com/http:\/\/mirrors.cloud.aliyuncs.com/g' /etc/yum.repos.d/epel-archive-8.repo
# 重新创建缓存
sudo yum clean all && yum makecache

配置环境变量

vi ~/.bashrc # 编辑到用户环境变量中
export HISTSIZE=10000                # 设置最大条目数为 1000
export HISTFILESIZE=20000            # 设置最后一次会话保存的历史条目数为 2000
export HISTCONTROL=ignoreboth       # 忽略命令参数的重复和还未执行的命令
export PATH=$PATH:~/bin
source ~/.bashrc # 重载用户环境变量中

环境工具配置

Graalvm 环境构建

首先进入 wsl 找到一个合适的目录

# 拉取构建使用的虚拟机
mkdir ~/software ~/module
cd ~/software
wget https://github.com/gluonhq/graal/releases/download/gluon-22.1.0.1-Final/graalvm-svm-java17-linux-gluon-22.1.0.1-Final.tar.gz
cd ~/module
tar -zxvf ../software/graalvm-svm-java17-linux-gluon-22.1.0.1-Final.tar.gz

graalvm 是一个特殊的 java 虚拟机环境,主要是使用AOT模打包构建多个平台的虚拟机版本,它可以直接当做一个普通的 jdk 使用

配置 maven 环境
cd ~/software
wget https://dlcdn.apache.org/maven/maven-3/3.9.9/binaries/apache-maven-3.9.9-bin.tar.gz
cd ~/module
tar -zxvf ../software/apache-maven-3.9.9-bin.tar.gz

修改 maven settings 文件

vi ~/module/apache-maven-3.9.9-bin/conf/settings.xml
<!-- 添加镜像 -->
<mirror>
    <id>alimaven</id>
    <name>aliyun maven</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    <mirrorOf>central</mirrorOf>
</mirror>
<mirror>
    <id>repo2</id>
    <mirrorOf>central</mirrorOf>
    <name>Human Readable Name for this Mirror.</name>
    <url>http://repo2.maven.org/maven2/</url>
</mirror>

配置新的环境变量(我的 maven、graalvm 放到~/module 目录下的)
vi ~/.bashrc # 编辑到用户环境变量中
export GRAALVM_HOME=~/module/graalvm-svm-java17-linux-gluon-22.1.0.1-Final
## JAVA_HOME
export JAVA_HOME=$GRAALVM_HOME
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export MVN_HOME=~/module/apache-maven-3.9.9
export PATH=$PATH:$MVN_HOME/bin
source ~/.bashrc # 重载用户环境变量中

这里基本的环境已经配置好了,至于 andriod sdk 这里不用显式的去配置,因为 gluonfx 这个工具会在打包的过程中自动的下载相关的依赖,对这个 andriodSdk 非必须。
具体可以参考Gluon 官网文档

编译官网示例项目

准备一个专门执行 gluonfx 编译安卓的脚本

mkdir ~/bin
vi ~/bin/gluon_build_android
chmod +x ~/bin/gluon_build_android
source ~/.bashrc # 重载用户环境变量中

~/bin/gluon_build_android的内容如下

mvn clean package -DskipTests=true
mvn -P android gluonfx:build gluonfx:package -DskipTests=true

拉取官网示例项目 HelloFx

mkdir ~/module/git-repos
cd ~/module/git-repos
git clone https://github.com/gluonhq/gluon-samples.git
cd gluon-samples/HelloFx
gluon_build_android # 执行之前定义的脚本

标签:maven,http,sudo,JavaFx,repo,Gluon,yum,android,com
From: https://www.cnblogs.com/monsterbude/p/18391511

相关文章

  • android 14.0 Launcher3禁止拖拽app图标到第一屏
    1.概述在14.0系统rom进行定制化开发Launcher3中,会对Launcher3做些要求,比如现在的需求就是Launcher3第一屏的图标固定,不让其他屏的图标拖动到第一屏所以说这个需求和禁止拖拽图标到Hotseat类似,也是从WorkSpace.java里面寻找解决方案,然后实现相关功能2.Launcher3禁止拖拽app......
  • Android 读取 XML 文件之 SAX 解析编码模板
    一、SAX解析概述SAX(SimpleAPIforXML)是一种基于事件的XML解析技术,它一边读取XML文件一边解析,占用内存少,适用于大型文件SAX解析器会触发一系列事件,例如,开始解析元素、结束解析元素、遇到字符数据等,我们只需要实现对应的事件处理器来处理这些事件即可二、SAX......
  • 【Android】根据URI获取文件扩展名或MimeType
    关于安卓中的URI安卓中的URI包含多种格式,可以是文件,可以是媒体库资源,可以是Resource也可以是网络地址,或其它资源标识这里我们主要针对文件来源的URI安卓中通过URI访问文件主要包括三种方式文件路径媒体库资源(背后仍然是文件,但无法直接访问)Resource资源对于这三种不同......
  • Android开发 - ClassLoader 加载外部类解析
    ClassLoader是什么ClassLoader主要作用是将字节码文件(.class文件)加载到Java虚拟机(JVM)中,以便应用程序可以使用这些类ClassLoader的好处模块化加载:应用程序可能由多个模块组成,而这些模块可能需要按需加载插件机制:很多应用支持插件化,插件在安装或更新后需要动态加载......
  • Gluon 编译 JavaFx -> exe
    Gluon编译JavaFx->exe能力强的伙伴可以直接参考官方文档开发工具idea2023.3ideagluonplugingitapache-maven-3.8.4环境准备vs2022community版本(使用微软官方的安装器安装,社区版即可)jdk11or17+(可以使用idea进行下载安装)GraalVMCEGluon22.1.0.1-Fi......
  • 基于live555开发的多线程RTSPServer轻量级流媒体服务器EasyRTSPServer开源代码及其调
    EasyRTSPServer参考live555testProg中的testOnDemandRTSPServer示例程序,将一个live555testOnDemandRTSPServer封装在一个类中,例如,我们称为ClassEasyRTSPServer,在EasyRTSPServer_Create接口调用时,我们新建一个EasyRTSPServer对象,再通过调用EasyRTSPServer_Startup接口,将EasyRTSP......
  • 基于ssm+vue基于Android的大学校园车辆管理系统前【开题+程序+论文】
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着高校规模的不断扩大和师生人数的持续增长,大学校园内的车辆管理成为了一个日益严峻的问题。传统的人工管理方式不仅效率低下,而且难以应对日益复杂......
  • Android源码bta_gattc_start_discover剖析
    1.前言当BLE设备作为GATT客户端(GATTClient)连接到GATT服务器(GATTServer)后,它通常需要执行发现过程以了解服务器的GATT数据库结构。这包括服务(Services)、特征(Characteristics)和描述符等。bta_gattc_start_discover 函数正是用于启动这一过程的。2.工作流程连接建立:首先,GAT......
  • Android系统给所有apk默认权限
        Android系统的定制开发中,经常会有客户要求赋予他们提供的应用程序(APK)所默认的所有权限;百度上有多种版本可以给与默认权限,但是经过博主试验,都是比较复杂麻烦的操作;在这里博主给出一个简单方便方法,直接上代码;---a/frameworks/base/services/core/java/com/android/......
  • 在Android开发中,如何使用SharedPreferences(简称SP)一个轻量级的数据存储方式
    目录全局SharedPreferences工具类代码说明:如何使用这个工具类?在Android开发中,SharedPreferences(简称SP)是一个轻量级的数据存储方式,常用于保存应用的配置信息或少量的数据。为了便于在全局使用,可以将其封装到一个工具类中。以下是一个带有详细中文注释的全局SharedPrefere......