【Qt】Android


手邊沒機器,先收集一下資料。

【環境】

  • Ubuntu 9.10
  • android-lighthouse (此為非官方的 Qt on Android 套件)

【注意】

  1. 基於 Issue 19 (Linux build problem, cannot ope libcloog-ppl.so.0),建議採用Ubuntu 9.10以上版本。
  2. 基本 Issue 29 (BUILD FAILURE error: GraphicsJNI.h: No such file or directory),建議採用qadk 4.1以上版本。
  3. 請先安裝Ubuntu 所需套件
    $ apt-get install build-essential
    $ apt-get install libcloog-ppl-dev 

【下載】
既然要在 Android 寫 Qt 的程式,我們需要兩個客製化過的工具。

  • QADK (改良自 Google for Android  的 NDK,可以把它想像成 toolchain/sdk)
    $ wget http://android-lighthouse.googlecode.com/files/qadk-1.x-2.x-rtti-exceptions.tar.lzma
    $ tar xvfa qadk-1.x-2.x-rtti-exceptions.tar.lzma
  • android-lighthouse (改良自 Qt)
    $ wget http://android-lighthouse.googlecode.com/files/qadk-r4-1.tar.bz2

【基本環境設定步驟】

  1. 先把 QADK 搬到 /usr/local
    $ mv qadk/ /usr/local/ 
  2. 進入 ${android-lighthouse}/mkspecs/android-g++/qmake.conf,更改檔案內容
    1. NDK_ROOT 指的是 qadk 位置,這邊維持原本設定
      NDK_ROOT = /usr/local/qadk
    2. ANDROID_PLATFORM 指的是 android 版本,目前還沒手機,所以先用原本設定
      ANDROID_PLATFORM = android-5 # 4 - android 1.6
                                   # 5 - android 2.0 & 2.1
                                   # 8 - android 2.2
  3. 進入 androidconfig.sh,選擇要使用動態還是靜態函式庫(TBD)
  4. 執行 androidconfig.sh,這類似 configure 的動作
    $ sudo ./androidconfig.sh
  5. make Qt, 目前 Ubuntu 是裝在 VMware,只有設定一顆 CPU
    $ sudo make -j 1
  6. (tbd)

【編譯Qt 程式步驟】

在 Android 上執行 Qt 程式有兩個方法(官方說法有三個,不過對我而言,我只以是否和Java有關系作區分)

  1. 透過 Java ,透過 apk 包裝的方式。
  2. 不過過 Java,直接使用做成一個單獨的應用程式,請在專案檔(.pro)定義 TEMPLATE
    TEMPLATE = app

【執行】

因為目前沒有機器,以後有機器再補。

【備註】

  • 名詞說明
    • jni(Java Native Interface)
    • apk(Android Package)
    • adb(Android Debug Bridge)
  • Qt 專案檔(.pro 檔)參數
    • Templates = app(Creates a Makefile to build an application.)
    • Templates = lib   (Creates a Makefile to build a library.)

【參考】

 

Ed32. Copyright 2008 All Rights Reserved Revolution Two Church theme by Brian Gardner Converted into Blogger Template by Bloganol dot com