linuxqtforandroid
1. 安卓系統簡介
Android是基於linux平台的開源手機操作系統
特性有:應用程序框架 支持組件的重用與御閉替換
Dalvik虛擬機 專門為移動設備做了優化
內部集成瀏覽器 該瀏覽器基於開源的WebKit 引擎
優化的圖形庫 包括2D和3D圖形庫,3D圖形庫基於OpenGL ES 1.0 (硬體加速可選)
#sqlite 用作鎮悄裂結構化的數據存儲
多媒體支持 包括常運模見的音頻、視頻和靜態印象文件格式 (如 MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)
GSM電話 (依賴於硬體)
藍牙Bluetooth, EDGE, 3G, and WiFi (依賴於硬體)
照相機,GPS,指南針,和加速度計 (依賴於硬體)
豐富的開發環境 包括設備模擬器,調試工具,內存及性能分析圖表,和Eclipse集成開發環境插
2. linux+qt好還是android好
Tiny210 沒用過。
建議先看你板子 SDK 的支持程度,如果 QT 還需要自己移植,當然用 Android 更好;如果 Android 需要你自己搞,可能 QT 相對容易些。
啟動後進入默認全屏頁面不難吧,QT 可設,Android 沒做過,應該也很方便設。
3. 如何採用QT開發出windows/Linux/Mac/Andriod/iOS的程序
好像這個要用 QT5 。具體看 QT 的官方資料吧。國內的教學,才處於 QT2 和 QT3 的階段,連 QT4 都沒有到。
4. Qt的前景如何Qt for Android 好嗎
談談個人的看法吧:1、Qt主要強大在他能跨平台,及一套代碼可以在很多平台上編譯運行。2、Qt目前用於嵌入式系統比較普遍,PC端的應用程序現在也逐漸多起來了,值得高興。3、如果想開發andriod應用的話,用QtQuick還是不錯的,但是也有一些弊端就是調用andrido系統的一些api稍微麻煩點,需要通過java代碼轉換,這點在執行效率什麼的都比不上原生的android應用開發。4、因此根據個人情況來定,如果純屬學習,個人感覺Qt還是不錯的。以後的發展會慢慢變好!
5. qt5安卓配置支持安卓
一、首先下載以下安裝包,如果提供的鏈接失效請自行下載:
(1)
Android SDK (Windows 32-bit ADT版):
【直接下載】s-x86-20131030.zip
(2)
Android NDK(Windows 32-bit):
Java JDK(Windows 32-bit):
(4)
Apache-Ant:
QT 5.1.1 for Android (Windows 32-bit 離線版):
二、接下來解壓、安裝下載好的各安裝包:
(1)Android SDK:
【解壓】解壓到 D:ADT 目錄下
(2)Android NDK:
【解壓】解壓到 D:NDK 目錄下
(3)Java JDK(Windows 35-bit):
【安裝】安裝過程中有兩次要選擇安裝路徑 【注意請根據自己安裝的版本自行修改,後面設置環境變數需要用到】
第一次填寫 D:Javajdk1.7.0_45
第二次填寫 D:Javajre7
(4)Apache-Ant:
【解壓】解壓到D:ANT目錄下
(5)QT 5.1.1 for Android (Windows 35-bit 離線版):
【安裝】安裝到D:QT目錄下
三、根據第二步中的相關路徑,設置系統環境變數:
(一) 右鍵單擊我的電腦->屬性->高級系統設置->環境變數,在系統變數中新建以下變數:
(1)變數名:JAVA_HOME
變數值:D:Javajdk1.7.0_45
(2)變數名:CLASSPATH
變數值:.;%JAVA_HOME%lib;%JAVA_HOME%lib ools.jar; 【注意最前面的點號 . 和最後面的分號 ; 不能漏掉】
(3)變數名:ANDROID_SDK_HOME
變數值:D:ADTsdk
(4)變數名:ANT_HOME
變數值:D:ANT
(二)在系統變數里找到變數 Path ,選擇」編輯「,在最後面添加:
%JAVA_HOME%in;%JAVA_HOME%jrein;%ANDROID_SDK_HOME%;
【注意最後面的分號 ; 不能漏掉】
(6)項目構建成功後,右鍵 項目,選擇 運行,Android虛擬設備將會自動打開,啟動過程過程較慢,耐心等候。
(7)若無意外,將會成功運行該空項目生成的apk,因為這里是個空的項目,什麼也沒寫,所以當然什麼也沒有,效果如圖,表明環境配置成功。
(8)接下來,動手開始 QT for Android 開發吧。
PS:轉載請註明出處,謝謝合作。
6. linux下使用QT開發android, 無法生成apk文件,提示 target id 未找到, 但是明明已經設置過id 了!
我也遇到這個問題,不過我選擇工程,右鍵,Run qmake, 接著rebuilt 就可以了。你也可以這樣試一下。
7. 求助,qt for android無法調試
s為 ABI 'arm-linux-android-elf-32bit'啟動調試器'QmlCppEngine'...
dStart parameters: 'com.ds.elofm' mode: 6
dABI: arm-linux-android-elf-32bit
dLanguages: c++ qml
dExecutable: D:\QtWorkSpace\build-eloFM-Android_for_armeabi_v7a_GCC_4_9_Qt_5_4_1-Debug\app_process
dDebugger: D:\Android\android-ndk-r10d\toolchains\arm-linux-androideabi-4.9\prebuilt\windows\bin\arm-linux-androideabi-gdb.exe
dProject: D:\QtWorkSpace\eloFM (built: D:\QtWorkSpace\build-eloFM-Android_for_armeabi_v7a_GCC_4_9_Qt_5_4_1-Debug)
dQML server: 127.0.0.1:3768
dRemote: :5039
dSysroot:
dDebug Source Location:
dDebugger settings:
```````中間略...`````````
s正在設置 inferior...
<204-interpreter-exec console "set auto-solib-add on"
<205-interpreter-exec console "python sys.path.insert(1, 'C:/Qt/Qt5.4.1/Tools/QtCreator/share/qtcreator/debugger/')"
<206-interpreter-exec console "python sys.path.append('D:/Android/android-ndk-r10d/toolchains/arm-linux-androideabi-4.9/prebuilt/windows/bin/data-directory/python')"
<207-interpreter-exec console "python from gdbbridge import *"
W/ActivityThread( 7621): Application com.ds.elofm can be debugged on port 8100...
W/System.err( 7621): java.lang.ClassNotFoundException: android.graphics.drawable.RippleDrawable
W/System.err( 7621): at java.lang.Class.classForName(Native Method)
W/System.err( 7621): at java.lang.Class.forName(Class.java:251)
W/System.err( 7621): at java.lang.Class.forName(Class.java:216)
```````中間略...`````````
W/System.err( 7621): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:818)
W/System.err( 7621): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:634)
W/System.err( 7621): at dalvik.system.NativeStart.main(Native Method)
W/System.err( 7621): Caused by: java.lang.NoClassDefFoundError: android/graphics/drawable/RippleDrawable
W/System.err( 7621): ... 25 more
W/System.err( 7621): Caused by: java.lang.ClassNotFoundException: Didn't find class "android.graphics.drawable.RippleDrawable" on path: DexPathList[[zip file "/data/app/com.ds.elofm-2.apk"],nativeLibraryDirectories=[/data/app-lib/com.ds.elofm-2, /vendor/lib, /system/lib]]
W/System.err( 7621): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
W/System.err( 7621): at java.lang.ClassLoader.loadClass(ClassLoader.java:497)
W/System.err( 7621): at java.lang.ClassLoader.loadClass(ClassLoader.java:457)
W/System.err( 7621): ... 25 more
W/System.err( 7621): java.lang.ClassNotFoundException: android.graphics.drawable.AnimatedStateListDrawable
W/System.err( 7621): at java.lang.Class.classForName(Native Method)
W/System.err( 7621): at java.lang.Class.forName(Class.java:251)
W/System.err( 7621): at java.lang.Class.forName(Class.java:216)
```````中間略...`````````
W/System.err( 7621): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:634)
W/System.err( 7621): at dalvik.system.NativeStart.main(Native Method)
W/System.err( 7621): Caused by: java.lang.NoClassDefFoundError: android/graphics/drawable/AnimatedStateListDrawable
W/System.err( 7621): ... 25 more
W/System.err( 7621): Caused by: java.lang.ClassNotFoundException: Didn't find class "android.graphics.drawable.AnimatedStateListDrawable" on path: DexPathList[[zip file "/data/app/com.ds.elofm-2.apk"],nativeLibraryDirectories=[/data/app-lib/com.ds.elofm-2, /vendor/lib, /system/lib]]
W/System.err( 7621): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
W/System.err( 7621): at java.lang.ClassLoader.loadClass(ClassLoader.java:497)
W/System.err( 7621): ... 25 more
W/System.err( 7621): java.lang.ClassNotFoundException: android.graphics.drawable.VectorDrawable
W/System.err( 7621): at java.lang.Class.classForName(Native Method)
W/System.err( 7621): at java.lang.Class.forName(Class.java:251)
W/System.err( 7621): at java.lang.Class.forName(Class.java:216)
```````中間略...`````````
W/System.err( 7621): at dalvik.system.NativeStart.main(Native Method)
W/System.err( 7621): Caused by: java.lang.NoClassDefFoundError: android/graphics/drawable/VectorDrawable
W/System.err( 7621): ... 25 more
W/System.err( 7621): Caused by: java.lang.ClassNotFoundException: Didn't find class "android.graphics.drawable.VectorDrawable" on path: DexPathList[[zip file "/data/app/com.ds.elofm-2.apk"],nativeLibraryDirectories=[/data/app-lib/com.ds.elofm-2, /vendor/lib, /system/lib]]
W/System.err( 7621): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
W/System.err( 7621): at java.lang.ClassLoader.loadClass(ClassLoader.java:497)
W/System.err( 7621): at java.lang.ClassLoader.loadClass(ClassLoader.java:457)
W/System.err( 7621): ... 25 more
W/ResourceType( 7621): Skipping entry 0x1080524 in package table 0 because it is not complex!
>=thread-group-added,id="i1"
>~"GNU gdb (GDB) 7.6\n"
>~"This GDB was configured as \"--host=i586-pc-mingw32msvc --target=arm-linux-android\".\nFor bug reporting instructions, please see:\n"
>~"<http://source.android.com/source/report-bugs.html>.\n"
>&"show version\n"
>~"GNU gdb (GDB) 7.6\n"
>~"Copyright (C) 2013 Free Software Foundation, Inc.\n"
>~"This GDB was configured as \"--host=i586-pc-mingw32msvc --target=arm-linux-android\".\nFor bug reporting instructions, please see:\n"
>~"<http://source.android.com/source/report-bugs.html>.\n"
>195^done
dPARSING VERSION: 195^done
>&"show debug-file-directory\n"
>~"The directory where separate debug symbols are searched for is \"c:\\tmp\\ndk-andrewhsieh\\build\\toolchain\\prefix\\lib\\debug\".\n"
>196^done
```````中間略...`````````
>211^done
<212target extended-remote tcp::5039
>&"target extended-remote tcp::5039\n"
>~"Remote debugging using tcp::5039\n"
>~"Ignoring packet error, continuing...\n"
>&"warning: unrecognized item \"timeout\" in \"qSupported\" response\n"
unrecognized item "timeout" in "qSupported" response
>~"Ignoring packet error, continuing...\n"
W/System.err( 7621): java.lang.Exception:
W/System.err( 7621): at org.qtproject.qt5.android.bindings.QtActivity.loadApplication(QtActivity.java:261)
W/System.err( 7621): at org.qtproject.qt5.android.bindings.QtActivity.startApp(QtActivity.java:660)
W/System.err( 7621): at org.qtproject.qt5.android.bindings.QtActivity.onCreate(QtActivity.java:900)
W/System.err( 7621): at android.app.Activity.performCreate(Activity.java:5303)
W/System.err( 7621): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1091)
W/System.err( 7621): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2165)
W/System.err( 7621): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2255)
W/System.err( 7621): at android.app.ActivityThread.access$800(ActivityThread.java:142)
W/System.err( 7621): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1213)
W/System.err( 7621): at android.os.Handler.dispatchMessage(Handler.java:102)
W/System.err( 7621): at android.os.Looper.loop(Looper.java:136)
W/System.err( 7621): at android.app.ActivityThread.main(ActivityThread.java:5217)
W/System.err( 7621): at java.lang.reflect.Method.invokeNative(Native Method)
W/System.err( 7621): at java.lang.reflect.Method.invoke(Method.java:515)
W/System.err( 7621): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:818)
W/System.err( 7621): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:634)
W/System.err( 7621): at dalvik.system.NativeStart.main(Native Method)
>~"Ignoring packet error, continuing...\n"
>~"Ignoring packet error, continuing...\n"
>&"Remote connection closed\n"
dNOTE: INFERIOR EXITED
dState changed from InferiorSetupRequested(4) to InferiorExitOk(16)
dQUIT DEBUGGER REQUESTED IN STATE 6
dNOTE: INFERIOR ILL
dState changed from InferiorSetupOk(6) to InferiorShutdownRequested(17)
dQUEUE: SHUTDOWN INFERIOR
dState changed from InferiorExitOk(16) to InferiorShutdownOk(19)
dNOTE: INFERIOR EXITED
dState changed from InferiorSetupRequested(4) to InferiorExitOk(16) [master]
dState changed from InferiorExitOk(16) to InferiorShutdownOk(19) [master]
dState changed from InferiorShutdownOk(19) to EngineShutdownRequested(20) [master]
dQUEUE: SHUTDOWN ENGINE
>212^error,msg="Remote connection closed"
sFailed to start application: 連接遠程伺服器失敗:
sRemote connection closed
dINFERIOR START FAILED
dNOTE: INFERIOR SETUP FAILED
s設置失敗。
dState changed from InferiorShutdownOk(19) to InferiorSetupFailed(5)
dQUIT DEBUGGER REQUESTED IN STATE 17
dNOTE: INFERIOR ILL
dState changed from InferiorShutdownRequested(17) to InferiorShutdownRequested(17)
dQUEUE: SHUTDOWN INFERIOR
dNOTE: INFERIOR SETUP FAILED
s設置失敗。
dState changed from EngineShutdownRequested(20) to InferiorSetupFailed(5) [master]
dState changed from InferiorSetupFailed(5) to EngineShutdownRequested(20) [master]
dQUEUE: SHUTDOWN ENGINE
dCALL: SHUTDOWN INFERIOR
dINFERIOR SUCCESSFULLY SHUT DOWN
dState changed from InferiorShutdownRequested(17) to InferiorShutdownOk(19)
dCALL: SHUTDOWN ENGINE
dState changed from InferiorSetupFailed(5) to EngineShutdownRequested(20)
dINITIATE GDBENGINE SHUTDOWN IN STATE 0, PROC: 2
<213-gdb-exit
dCALL: SHUTDOWN INFERIOR
dINFERIOR SUCCESSFULLY SHUT DOWN
dState changed from InferiorShutdownOk(19) to InferiorShutdownOk(19)
dCALL: SHUTDOWN ENGINE
dState changed from EngineShutdownRequested(20) to EngineShutdownRequested(20)
dINITIATE GDBENGINE SHUTDOWN IN STATE 0, PROC: 2
<214-gdb-exit
>213^exit
dGDB CLAIMS EXIT; WAITING
dUNEXPECTED GDB STDERR: Could not AssignProcessToObject
dGDB PROCESS FINISHED, status 0, code 0
dNOTE: ENGINE SHUTDOWN OK
dState changed from EngineShutdownRequested(20) to EngineShutdownOk(22)
dNOTE: ENGINE SHUTDOWN OK
dState changed from EngineShutdownRequested(20) to EngineShutdownOk(22) [master]
dState changed from EngineShutdownOk(22) to DebuggerFinished(23) [master]
dQUEUE: FINISH DEBUGGER
dState changed from EngineShutdownOk(22) to DebuggerFinished(23)
dNOTE: FINISH DEBUGGER
dHANDLE RUNCONTROL FINISHED
s調試器已結束。
8. QT for android linux 下環境配置,已經下載好了necessitas 包,如何用命令將QT程序編譯成android程序。
雖然網路上很多人使用 Redhat 或者Fedora 作為上位機操作系統,但是我覺得使用Ubuntu最為方便,因為需要的軟體包大部分都可以通過 apt-get 方式來安裝,而不必從源代碼開始自己編譯。
雖然網路上很多人使用 Redhat 或者Fedora 作為上位機操作系統,但是我覺得使用Ubuntu最為方便,因為需要的軟體包大部分都可以通過 apt-get 方式來安裝,而不必從源代碼開始自己編譯。要知道,自己編譯源代碼可不是一件輕松的事,因為在編譯過程中經常會出現令人意外而且莫名其妙的錯誤。
我們使用的操作系統是 Ubuntu 8.04,使用目前最新版本的QT 4.4.0,安裝起來即為簡單,只要在命令編輯運行以下命令就行:
sudo apt-get install qt4-dev-tools qt4-doc qt4-qtconfig qt4-demos qt4-designer
注意在這個版本的軟體包中,qt4-dev-tools 包含了Qt Assistant及Qt Linguist等工具,因此不需要單獨安裝這兩個工具。其它的,qt4-doc 是幫助文檔,包含了Qt中各個類庫的詳細說明以及豐富的例子程序,可以使用Qt Assistant 工具來打開閱讀。qt4-qtconfig 是配置Qt環境的一個對話框,一般默認就行了,很少有必要去更改。qt4-demos 包含很多可以運行起來的可執行文件以及源代碼。qt4-designer是用來設計GUI界面的設計器。
為了連接MySQL資料庫,需要安裝連接MySQL的驅動程序:
sudo apt-get install libqt4-sql-mysql
比起在Windows下安裝和配置Qt的MySQL驅動來說,簡直太方便了。如果還需要其它的沒有默認安裝的Qt庫,可以在命令行輸入 sudo apt-get install libqt4- 然後按tab鍵自動補全,就會列出所有以libqt4- 開頭的軟體包,如下圖所示:
這些都可以使用一個命令搞定,而不需要自己從源碼開始編譯。在記不準或不知道名字的情況下,使用tab鍵列出所有可選的軟體包是一個很實用的小技巧。
在我的項目中,還需要畫一些數據曲線和統計圖表等,而第三方的QWT庫提供了這些功能。同樣,只需要一個命令即可完成安裝:
sudo apt-get install libqwt5-qt4 libqwt5-qt4-dev
這時,打開Qt Designer,就會發現左邊的Widget列表裡面多了「Qwt Widget」這一組。
最後,關於集成開發環境我覺得QDevelop很不錯,它跟Qt Designer結合的很好,而且有提示類成員函數的功能。運行以下命令安裝:
sudo apt-get install qdevelop
這樣,使用Qdevelop編寫代碼和編譯、調試,使用Qt Designer設計界面,開發效率較高。
9. linux qt怎麼開發安卓apk
不看好Qt for Android。以下簡稱QfA.
1. 跨平台只在pc上有優勢,在移動設備上毫無優勢。移動設備整體的應用風格需要保持一致,你外部加進來一個ui,倒是和平台保持一致了。你如何保持和原生ui的這種使用一致性。
2.在開發易用度上,Android(java) api 已經做得很好,包括事件,廣播,服務等Qt里有的基本上Android api里已經做得很好,從Qt開發者轉為java開發者也很容易。 而如果要寫QfA應用,開發者不僅要懂Qt,同樣也避免不了要寫java代碼。
3. 如果要寫和其它app通信的時候,QfA的災難性就來了。如果是上層的幾乎等完整的搞一遍Android api吧。 另外對於和設備相關的一些調用(GPS/Telephony)等,QfA的工作量一下子就上來了,這時候你還指望qml么?
4.性能呢? QfA對於圖形渲染區的請求還得在java的介面請求,是不是又要繞了個大彎。
5. 軟體體積。 終端用戶要用Qt app,勢必要先裝一個Qt lib, 或者在你的app 中一起靜態發布。
在有很多優秀的QfA app出現之前,大家不帶樂意只為一個好的app 去裝一個大的軟體,而會願意選擇一個原生軟體替代。
10. qt for android assets怎麼用
qt for android是一套開發平台,它能用QT來開發Android上的應用(App),主要可以用它來開發游戲 而它不是安裝在android上的,而是安裝在電腦上(可以用在linux或windwos平台上) 按你的說法,就是 是在電腦QT上開發Android