TVM 安卓环境搭建部署
安装VULKAN 参考:https://blog.csdn.net/luolinll1212/article/details/113261022
在编译TVM,当config.cmake中将USE_VULKAN 设置为ON时
set(USE_VULKAN ON)
需要下载VULKAN
wget https://sdk.lunarg.com/sdk/download/1.3.268.0/linux/vulkansdk-linux-x86_64-1.3.268.0.tar.xz
cd 1.3.268.0
bash vulkansdk # 编译vulkan
source setup-env.sh # vulkan -> 系统环境变量
安装LLVM
LLVM设置为ON时,需要安装LLVM
apt-get install llvm
安装jdk
从java中https://www.oracle.com/java/technologies/downloads/#java21 中下载jdk 21
jdk版本不能太高,用最新的jdk21版本在进行gradle clean build
时,总是报错
D8: java.lang.NullPointerException: Cannot invoke "String.length()" because "" is null,不知道什么原因
最后下载jdk版本17,顺利编译通过
wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz
解压jdk并将jdk的路径加入系统环境变量中:
export JAVA_HOME=/root/3rd/android_jdk/jdk-17.0.9
export CLASSPATH=$JAVA_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin
安卓maven
下载maven:
wget https://dlcdn.apache.org/maven/maven-3/3.8.8/binaries/apache-maven-3.8.8-bin.tar.gz
解压并配置maven环境变量:
export MAVEN_HOME=/root/3rd/maven/apache-maven-3.8.8
export PATH=$PATH:$MAVEN_HOME/bin
在tvm环境中执行make jvmpkg
,然后执行make jvminstall
,这个命令执行完之后,输出结果如下:
注:
jdk与maven建议手动安装,博主原本直接使用的apt-get install 安装,但在
make jvmpkg
时总是编译不过去
下载android sdk
首先查看android版本对应的android API对应的level
Android api level对照表
因我的Platform Version为Android 8.1 对应的API Level 为27,在官网下载即可,也可以使用android的命令行工具下载
命令行工具下载地址如下:
https://developer.android.google.cn/studio/command-line/sdkmanager?hl=en
只下载Command line tools only下对应系统的包即可
下载sdkmanager:
wget wget https://dl.google.com/android/repository/commandlinetools-linux-6858069_latest.zip
也可查看官方的sdkmanager的使用教程:https://developer.android.google.cn/studio/command-line/sdkmanager?hl=en
sdkmanager "platform-tools" "platforms;android-27" --sdk_root=./android_sdk/
android-xx中的xx代表APIlevel ,--sdk_root 为必选参数,sdk_root
指定sdk路径,
下载ndk
sdkmanager --install "ndk;21.4.7075529" --channel=3 --sdk_root=./sdkmanager/
下载license
sdkmanager --licenses --sdk_root=./sdkmanager/
--licenses
用于创建lincense
sdkmanager安装参考:https://blog.csdn.net/qq_38182842/article/details/110170630
在通过源码配置NDK时,报错:
ndk-build提示设置NDK_PROJECT_PATH变量
解决方法:
1 Android.mk和Application.mk应该在一个“jni”为名字的目录下,这样可以直接用ndk-build编译。
2 如果Android.mk和Application.mk所在目录的名字不是“jni”,需要通过变量指定,例如:
ndk-build NDK_PROJECT_PATH=. NDK_APPLICATION_MK=Application.mk APP_BUILD_SCRIPT=Android.mk
参考链接:https://blog.csdn.net/zqtao0219/article/details/98349905
配置SDK、NDK的环境变量
export ANDROID_HOME=/root/3rd/android_sdk
export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/tools/bin:$ANDROID_HOME/platform-tools
export NDK_HOME=/root/3rd/android_ndk/ndk/21.4.7075529
export PATH=$PATH:$NDK_HOME
安装gradle ---- 参考:https://gradle.org/install/
- 下载最新的gradle的版本:https://gradle.org/releases/
- 解压并配置
unzip gradle-8.5-all.zip
解压并配置环境变量:
export GRADLE_HOME=/root/3rd/gradle/gradle-8.2
export PATH=$PATH:$GRADLE_HOME/bin
执行gradle clean build
用于生成apk文件
注:
在执行
gradle clean build
中出现报错,
Connect to maven.google.com:443 [maven.google.com/142.251.43.14] failed: Connect timed out
查阅资料是:https://maven.google.com 国内用不了
解决方案:
将build.gradle下的maven{https://maven.google.com} 替换成
maven {
// url 'https://maven.google.com'
url 'https://dl.google.com/dl/android/maven2/'
}
保存退出,重新执行gradle命令即可。
在执行gradle clean build
中,出现time out超时错误,报错信息如下:
原来将https://maven.google.com
修改为:https://dl.google.com/dl/android/maven2/
发现,这个修改后的地址,该地址并不能正常访问
后查阅资料,将该url地址修改为阿里云的仓库地址(参考:Android项目报无法连接Connect to dl.google.com:443 dl.google.com/114.250.65.33)
在project下的build.gradle修改为阿里云仓库地址
maven { url 'https://maven.aliyun.com/repository/google/'}
maven { url 'https://maven.aliyun.com/repository/jcenter/'}
截图如下:
运行结果
gradle clean build
之后,会在app/build/outputs/apk
生成app-release-unsigned.apk
文件
使用dev_tools/gen_keystore.sh
生成签名,并使用dev_tools/sign_apk.sh
对app/build/outputs/apk/release/tvmrpc-release.apk
文件进行签名
最后就是要将签名的apk文件上传到Android端并安装它:
$ANDROID_HOME/platform-tools/adb install app/build/outputs/apk/release/tvmrpc-release.apk
参考:https://www.runoob.com/java/java-environment-setup.html#linux-install
https://www.runoob.com/maven/maven-setup.html
TVM 安卓环境搭建部署的更多相关文章
- Java ee 与安卓环境搭建个人心得
最近加了个IT俱乐部,第一次作业就是搞定eclipse,完成Java ee 与安卓环境搭建.为此我上网看了好多教程,之前我安装了Java,可以说省了不少事,而且还了解一点安装方法.流程网上都有,但是不 ...
- zabbix环境搭建部署(一)
Linux高端架构师课程 Linux实战运维国内NO.1全套视频课程 QQ咨询:397824870 > 监控报警 > zabbix环境搭建部署(一) zabbix环境搭建部署(一) 监 ...
- VS 2017 开发安卓环境搭建 问题总结
VS 2017可以开发安卓啦,之前一直想尝试开发安卓,但是由于时间忙, Java只学了个基础,不如C#熟练所以一直没有机会接触安卓开发.既然需要利用VS2017开发安卓,那么第一步就是了解VS2017 ...
- 08- Tomcat入门与环境搭建部署
环境搭建:网站文件(开发人员提供),相关软件(web服务器,应用服务器,数据库软件),硬件(服务器设备上),网络环境. 开发人员提供:部署文档说明书(操作系统版本,硬件配置,服务器软件及相关版本,部署 ...
- ionic+angular+cordova 安卓环境搭建
1.java环境配置 下载java jdk 百度搜索java jdk安装完后在cmd窗口输入Java -version 显示以下即为安装成功.然后把java jdk配置到环境变量. (1)选择[新建系 ...
- 安卓环境搭建(1)hellow world
本系列适合0基础的人员,因为我就是从0开始的,此系列记录我步入Android开发的一些经验分享,望与君共勉!作为Android队伍中的一个新人的我,如果有什么不对的地方,还望不吝赐教. 在开始Andr ...
- Spark集群环境搭建——部署Spark集群
在前面我们已经准备了三台服务器,并做好初始化,配置好jdk与免密登录等.并且已经安装好了hadoop集群. 如果还没有配置好的,参考我前面两篇博客: Spark集群环境搭建--服务器环境初始化:htt ...
- (转载):ganglia之环境搭建部署
转载:http://www.360doc.com/content/19/0211/12/62122823_814215724.shtml 借鉴:https://blog.csdn.net/lswnew ...
- k8s1.20环境搭建部署(二进制版本)
1.前提知识 1.1 生产环境部署K8s集群的两种方式 kubeadm Kubeadm是一个K8s部署工具,提供kubeadm init和kubeadm join,用于快速部署Kubernetes集群 ...
- Ionic 2+ 安卓环境搭建
安装 安卓studio https://developer.android.com/studio/index.html 设置一个环境变量 _JAVA_OPTIONS:-Xmx512M 添加androi ...
随机推荐
- QT5笔记:3.手动撸界面和可视化托界面混合
3.手动撸界面和可视化托界面混合 参考视频:https://www.bilibili.com/video/BV1AX4y1w7Nt 3.1 工具栏可以通过在UI界面右键选择添加工具栏 3.2 设置窗口 ...
- JUC并发—12.ThreadLocal源码分析
大纲 1.ThreadLocal的特点介绍 2.ThreadLocal的使用案例 3.ThreadLocal的内部结构 4.ThreadLocal的核心方法源码 5.ThreadLocalMap的核心 ...
- Ai 系列 —— DeepSeek 初步介绍
DeepSeek 初步使用介绍 背景 Ai 正在慢慢在改变我们的生活,比如老一辈可能已经在用豆包(字节跳动推出的AI聊天机器人) 前端开发,某些公司内部已在使用图生文(设计稿生成前端代码) 网上也有许 ...
- php实现地址跳转的方式
在PHP中,实现地址跳转主要有以下几种方式: 1. 使用 header() 函数 header() 函数用于发送原始的 HTTP 头信息,常用于实现页面跳转. <?php header(&quo ...
- 探秘Transformer系列之(12)--- 多头自注意力
探秘Transformer系列之(12)--- 多头自注意力 目录 探秘Transformer系列之(12)--- 多头自注意力 0x00 概述 0x01 研究背景 1.1 问题 1.2 根源 1.3 ...
- IvorySQL 升级指南:从 3.x 到 4.0 的平滑过渡
日前,IvorySQL 4.0 重磅发布,全面支持 PostgreSQL 17,并且增强了对 Oracle 的兼容性.关于 IvorySQL 4.0 的介绍,各位小伙伴可以通过这篇文章回顾:Ivory ...
- Draw.io:你可能不知道的「白嫖级」图表绘制神器
介绍 draw.io 是一个在 GitHub 上开源且拥有近十年发展历史的成熟项目,它是一款用于绘制 UML 图表的工具. 如果你曾经为流程图的绘制而流泪,又或是在夜里和UML大战到失眠, 不妨试试它 ...
- BUUCTF---keyboard
题目 ooo yyy ii w uuu ee uuuu yyy uuuu y w uuu i i rr w i i rr rrr uuuu rrr uuuu t ii uuuu i w u rrr e ...
- Spring Boot的常用注解
在Spring Boot中,注解(Annotation)是核心特性之一,广泛用于配置和简化开发.以下是Spring Boot中一些常用的注解及其示例: 1. @SpringBootApplicatio ...
- JDK7-时间类、时间格式化类--java进阶day07
1.Date类:表示时间的类 1.Date常用的构造方法 . 2.Date常用的成员方法 1.getTime:返回从时间原点到对象设定的时间之间的时间 2.setTime:将对象的时间设置为setTi ...