没有网站可以做百度直通车吗,怎么自己弄网站免费,做普通网站选择什么服务器,使用php做网站一、前言
用QT开发android和直接使用android开发的区别 使用Qt开发Android应用和直接使用Android开发工具#xff08;例如Android Studio#xff09;有一些区别#xff0c;主要体现在开发工具、语言、界面设计和性能等方面#xff1a;
开发工具#xff1a; Qt Creat…一、前言
用QT开发android和直接使用android开发的区别 使用Qt开发Android应用和直接使用Android开发工具例如Android Studio有一些区别主要体现在开发工具、语言、界面设计和性能等方面
开发工具 Qt Creator vs Android Studio 使用Qt Creator作为集成开发环境IDE可以让你在一个环境中开发多个平台的应用包括Android。而直接使用Android Studio是Google提供的专门为Android开发设计的IDE。
编程语言 Qt使用C Qt框架主要使用C编程语言。如果你已经熟悉C使用Qt可能更加直观。 Android开发使用Java或Kotlin Android应用通常使用Java或Kotlin编写。在Android Studio中你会使用这两种语言来编写应用逻辑。
界面设计 Qt使用Qt Widgets或Qt Quick Qt提供了两种主要的界面设计方式即Qt Widgets和Qt Quick。Qt Widgets是基于传统的窗口和控件的而Qt Quick使用QMLQt Meta-Object Language语言来创建现代化的用户界面。 Android使用XML布局 在Android开发中你通常使用XML文件来定义应用的布局和界面。 性能和原生特性 Qt提供跨平台性 Qt的设计目标之一是实现跨平台性因此你可以在不同的平台上运行相同的代码。这可能导致在一些情况下性能上的一些折衷因为Qt需要在不同平台上提供一致的体验。 Android开发可以更加直接使用原生API 直接使用Android开发工具可以更直接地访问Android的原生API这可能在某些情况下提供更好的性能和更深层次的集成。
生态系统 Qt是一个跨平台框架 Qt可以让你更容易地在不同平台上共享代码但有时可能需要处理特定平台的差异。 Android Studio是Android生态系统的一部分 直接使用Android Studio使你更深度地融入了Android生态系统可以更轻松地利用Android的特定功能和服务。
二、Ubuntu 下 搭建QT开发Android 环境
2.1 下载
2.1.1 下载QT
所有QT版本下载的路径https://download.qt.io/archive/qt/ 我下载的是5.12.3版本https://download.qt.io/archive/qt/5.12/5.12.3/ 2.1.2 JDK、SDK、NDK的下载
Android开发必备的工具链包括Java JDK 、Android SDK 、Android NDK
1) JDK下载
https://www.oracle.com/java/technologies/downloads/#java8
2) SDK下载
https://www.androiddevtools.cn/ 3) NDK下载
https://dl.google.com/android/repository/android-ndk-r19c-linux-x86_64.zip
2.2 安装
2.2.1 QT安装
执行./qt-opensource-linux-x64-5.12.3.run 根据提示一步步安装即可。
2.2.2 JDK 在第一步下载后在ubuntu终端使用命令解压tar -xzvf jdk-8u391-linux-x64.tar.gz 配置环境变量 可以配置临时环境变量或者永久环境变量 临时环境变量配置方法 cd ~ vim ~/.bashrc
添加 export JAVA_HOME/home/yibin/Android/jdk1.8.0_391 export JRE_HOME J A V A H O M E / j r e e x p o r t C L A S S P A T H . : {JAVA_HOME}/jre export CLASSPATH.: JAVAHOME/jreexportCLASSPATH.:{JAVA_HOME}/lib: J R E H O M E / l i b e x p o r t P A T H {JRE_HOME}/lib export PATH JREHOME/libexportPATH{JAVA_HOME}/bin:$PATH 或
永久环境变量配置方法 在.bashrc文件中配置的环境变量只在当前终端窗口中生效如果想让其永久保存需要将其添加到/etc/profile或/etc/environment文件中。
2.2.2 NDK
在第一步下载后在ubuntu终端使用命令解压unzip android-ndk-r19c-linux-x86_64.zip
2.2.3 SDK
注意 SDK的安装需要比较大的内存如果虚拟机ubuntu设置的内存不够大需要进行扩容同事使用gparted重新分配内存。 在第一步下载后在ubuntu终端使用命令解压tar -xzvf android-sdk_r24.4.1-linux.tgz 解压后cd到tools目录执行./android 选择库安装
这里有个Google USB Driver 不兼容linux这个USB驱动是用于USB连接安卓真机调试用可以采用以下方法解决
解决 Google USB 驱动不兼容 Linux 的问题 安装 adb 和 fastboot 工具 确保已经安装了 adb 和 fastboot 工具。这些工具允许你与 Android 设备进行通信和调试。 bash sudo apt-get update sudo apt-get install adb fastboot
配置 udev 规则 打开终端并输入以下命令来创建一个新的 udev 规则文件。 bash sudo nano /etc/udev/rules.d/51-android.rules
在打开的文件中添加规则规则内容类似如下 SUBSYSTEM“usb”, ATTR{idVendor}“YOUR_DEVICE_VENDOR_ID”, MODE“0666”
在这里将 YOUR_DEVICE_VENDOR_ID 替换为你 Android 设备的厂商 ID。你可以在设备连接后运行 lsusb 命令来查找此 ID。 保存文件并关闭编辑器。 重新加载 udev 规则。 bash sudo udevadm control --reload-rules
重新插拔 Android 设备并尝试使用 adb devices 命令查看是否识别到设备。 使用 adb 进行调试 现在你应该能够使用 adb 命令在 Linux 上调试 Android 设备了。 bash adb devices
这将显示已连接的 Android 设备列表。如果你的设备被正确识别并显示在列表中那么 Google USB 驱动的问题应该已经解决了。
2.2.4 AVD(虚拟设备)的创建
1 列出当前支持的Android API版本 命令./android list targets 2创建AVD 命令./android create avd -n myavd -t 1 -b default/arm64-v8a
-n 后是avd的名称 -t 后是选择target ID 这个target ID就是./android listtargets列出后的ID选择合适的一个 -b 后是配置具体的ABI
3查看创建后的结果
2.3 QT创建项目
2.3.1 启动qtcreator
切换到root用户用root用户启动qtcreator这个是为了解决非管理员用户检测不到avd问题
2.3.2 配置QT
在Tools-》Device-》Android 配置JDK、SDK、NDK 的安装路径AVD Manager中添加AVD,如下图 2.3.3 创建QT工程 一步步next后创建好工程: 界面简单写了个“Hello Android”: 点击Projects-》Build 选择 Android build SDK: 这里我选择android-24
回到工程qmake后进行构建工程
问题1cannot find -lGL collect2: error: ld returned 1 exit status
解决办法 打开命令行终端切换到超级用户输入以下命令安装libgl1软件包 sudo apt-get install libgl1-mesa-dev
问题2 一直卡在Downloading https://services.gradle.org/distributions/gradle-4.6-bin.zip
解决办法 通过浏览器下载后放到/root/.gradle/wrapper/dists/gradle-4.6-bin/4jp4stjndanmxuerzfseyb6wo/gradle-4.6-bin.zip 如果没有该目录通过命令手动创建 或者多构建几次也能偶尔能成功
构建成功后点击执行程序在弹出框中选择AVD虚拟设备后等待AVD执行过程等待时间有点长 最终执行成功 参考https://download.csdn.net/blog/column/11400392/117256660
另外windows下QT搭建Android环境可以参考以下 https://zhuanlan.zhihu.com/p/512077909?utm_id0 https://blog.csdn.net/future_ai/article/details/85616180