A. 關於安卓跟linux的關系~
android 和 MOTO V8 的系統完全是兩個概念。
現在各個手機網站的編輯大腦都是嚴重萎縮的,根本就不能理解 Linux 是什麼。
Linux 僅僅是內核,根本就不是一個完整的操作系統。
一個完整的操作系統,包括內核,功能庫,用戶界面三個主要部分。一個應用程序,主要運行的並不是依靠內核來運行,它主要是藉助功能庫提供程序功能函數支持,用戶界面層提供顯示和交互的功能函數支持,內核只是一個硬體驅動交互,任務分配,內存管理,IO 處理的最底層的支持。
也就是說,一個程序能不能運行,主要是看函數庫和用戶界面的支持情況。
但很明顯的,Android 和 MOTO V8 完全是兩種實現方法,根本就不能拿來做比較。
Android 是基於叫做 Dalvik 的 java 虛擬機而運行的一個上層系統,所有的 Android 程序其實都是 java 程序,直接運行在這個 java 虛擬機裡面,Android 的程序根本就不是一個真實的二進製程序。
MOTO V8 我要沒記錯,是基於QT 嵌入式開發的一個系統,叫做 EZX Linux 。QT 提供了一個完整的函數庫和用戶界面支持庫。他的程序理論上都是手機上面可以運行的本地二進製程序(記得是 ARMv5 的)。但實際上,MOTO 不允許二進製程序的開發和安裝,只能用 java 程序,也就是 j2me 的程序。
雖然兩個都是虛擬機,但這兩個虛擬機本質完全不同。
Dalvik 的虛擬機是針對 Android 手機的基本要求,也就是要有一個觸摸屏,4個物理按鍵,內存和 CPU 性能都要求很高的硬體進行設計的。j2me 是針對的手機就沒有這個要求。不同的 j2me 手機和程序,都有不同的功能和性能。
可以說,Andorid 系統和 MOTO V8 的 EZX ,就算都用 Linux 內核,Linux 內核提供的硬體支持,功能支持等等的東西,在手機這種針對性極強的硬體上,也會出現不同的兼容問題。
他們兩個除了都是基於 Linux 內核這個稱呼以外,其餘的他們根本就完全不同。
Linux 從來就沒有說過「二進制兼容」,Linux 遵循 POSIX 標准,Linux 之間還有一個 LSB 兼容標准,但這個不是強制標准,而且在手機上根本就沒辦法執行的。
B. linux下使用QT開發android, 無法生成apk文件,提示 target id 未找到, 但是明明已經設置過id 了!
我也遇到這個問題,不過我選擇工程,右鍵,Run qmake, 接著rebuilt 就可以了。你也可以這樣試一下。
C. 開發嵌入式界面用ucos ii加ucgui還是Linux qt還是安卓方便就相當於做個手持設備的
個人覺得qt好一點。ucocII+ucgui更好入門
對於安卓,那已經和上面的兩個不是一個層次的操作系統啦,更加上層,嵌入式很少選擇安卓的,尤其是在實時性方面要求比較強的系統裡面
D. 如何採用QT開發出windows/Linux/Mac/Andriod/iOS的程序
qt的代碼本身在windows和linux底下用qtcreator編譯可以跨平台,但要發布的話還要手動的靜態編譯qtcreator源碼,mac,ios開發好像要用mac平台下的軟體,android一般是java,python之類的,qt沒聽說過。qt是c++的超集,加了些qt自己的庫而已。