天天看點

Qt編寫安卓程式知識點彙總

主要的知識點請看這位大神的講解:https://blog.csdn.net/rankun1/article/details/86647188

這裡我隻是做一些我用到過的知識點。(好久之前按照教程分析過qt和安卓結合的原理,現在再看,基本看不懂了,是以還是按照自己的思考方式,總結一下好。)

先聲明一下,以下僅僅是個人總結,肯定會有很多了解不到位的情況,請謹慎參考。

1.我們編寫的工程代碼會被編譯成一個以工程名命名的庫檔案,該庫檔案的接口是繼承了Qt的通用接口,然後再被在安卓的标準接口調用。

2.假如我們要用Java實作一些較為複雜的功能時,可以選擇重寫一下Activity(繼承Qt的 org.qtproject.qt5.android.bindings.QtActivity),然後調用在Qt中調用這些函數。

3.自己編寫的安卓的類的代碼根目錄為src,檔案夾路徑也就是它的包的路徑,比如myproject.qt.an.MyActivity MyActivity這個類就放在src/myproject/qt/an/MyActivity下面。

4.Java(或者是安卓)的類要和檔案名一緻,否則有問題。(可能是因為沒有頭檔案這一機制?)

5.AndroidManifest.xml檔案裡面有個activity的name指定項,這裡可以填你自己繼承QtActivity重寫的activity。

6.安卓6.0版本用wifiManager.getScanResults()擷取資料為空,需要加上android.permission.ACCESS_FINE_LOCATION權限,但是直接在AndroidManifest.xml檔案中加是不夠的,還需要在Qt中動态申請。詳細請查閱:https://www.jianshu.com/p/d6c4263d025c

7.安卓的一些機型上面會禁用了接收udp廣播(可以發送,但是無法接收),但是可以接收到指定了手機ip的udp。解決改問題的辦法請參考http://www.itkeyword.com/doc/3256617256756847743