編輯:關於Android編程
作為 C/C++ 程序員,有時候我們希望在安卓上運行從 C/C++ 生成的可執行程序,而不是在 Java 中通過 jni 的方式來調用 C 動態庫。有兩個途徑可以達到這個目的:一個是使用安卓 NDK 提供的工具鏈直接編譯 C 代碼(其中又有兩種方式,使用 android 的 mk 文件,使用自己編寫的 Makefile );一個是使用 Qt 5.2 for Android ,Qt Creator 可以生成安卓版本。這裡我們說 Qt for Android,不說 NDK 方式。
Qt for Android 的環境搭建,可以參考我之前的博文《Windows下Qt 5.2 for Android開發入門》。
一旦你生成了一個項目,配置好了工具鏈,就可以在 Qt Creator 的項目標簽中選擇安卓版本進行編譯。不過默認編譯出來的是動態庫, so 文件。而我們想要可執行程序。這個可以通過修改 Makefile 來完成,純手動的方式有以下幾個步驟:
修改 Makefile ,找到 LFLAGS 開始的那一行,去掉 -shared 和 -Wl,-soname,xxx.so 這兩個鏈接選項,這楊鏈接器就會生成可執行程序修改 Makefile ,找到 QMAKE_TARGET 和 TARGET 開始的兩行,把 " = " 後面的目標修改為你想要的那個名字,假定為 xxx 打開 Qt 5.2.0 for Desktop (MinGW 4.8 32 bit) ,進入你的安卓編譯目錄,執行 mingw32-make ,可以看見, xxx 生成了使用原生程序比使用 APK + JNI 方式會有一個好處: Java 虛擬機無法控制原生程序占用的內存,而 APK + JNI 的方式, C 代碼和 Java 代碼共享整個 Java 虛擬機的內存, C 代碼會受到虛擬機內存大小的限制。
如果嫌上面的步驟麻煩(每次 Qt 工程變化都要手動修改 Makefile ,比如往添加了文件等),可以在 Qt Creator 中給工程添加一個構建步驟(自動修改 Makefile ),順序放在 qmake 之後,這樣每次 qmake 生成了 Makefile ,自定義的構建步驟就會自動執行來修改 Makefile ,在 make 時應用修改,最終生成可執行文件。下圖是我的一個工程的配置:
至於怎麼自動修改 Makefile ,可以使用一些開源的文本工具(如 sed for windows 等),這裡就展開了。我是自己寫了個小程序,專用的,不通用,也不提了。
前言在自定義ViewGroup中,有時候需要實現觸摸事件攔截,比如ListView下拉刷新就是典型的觸摸事件攔截的例子。觸摸事件攔截就是在觸摸事件被parent view
本文給大家帶來一個很實用的小控件ClearEditText,就是在Android系統的輸入框右邊加入一個小圖標,點擊小圖標可以清除輸入框裡面的內容,IOS上面直接設置某個
1、事件綁定除了可以使用addEventListener()方法監聽某個特定元素上的事件外, 也可以使用.on()方法實現批量元素的事件綁定。.on( event , s
緒論:好久沒寫博客了,最近比較懶,不想寫博客,但是在看書,看一些Android進階的書,這裡小編也給大家推薦幾本適合進階的書,相信會對你有所幫助的。1.《Android群