Qt for Android 配置詳細 (轉載自ak47zhangzhiwei)
倒騰了近來兩個禮拜,終於在實際開發機上將Qt的Demo跑起來啦!
遇到好多問題但是網上都沒有找比較滿意的答案!
所以 貼出來和各位分享一下,相互交流! 有問題可以發郵件交流:sunfrank2012#google郵箱
Qt Demo 位置:http://download.csdn.net/source/3392624
Qt for Android配置(Unbutu11.04)
一.環境搭建
1. Java 下載安裝:
->jdk-6u25-linux-i586.bin
url:http://www.oracle.com/technetwork/java/javase/downloads/jdk-6u25-download-346242.html
-> 1、jdk-1_5_0_06-linux-i586.bin下載到/usr/soft,賦予可執行許可權:chmod 755 jdk-1_5_0_06-linux-i586.bin
2、執行:./jdk-6u25-linux-i586.bin 空格鍵翻頁,到最後輸入yes
3、配置環境變數:在/etc/profile 中加入:
export PATH=/usr/soft/jdk*.*/bin:$PATH
exportJAVA_HOME=/usr/soft/jdk*.*.*
4、執行:source /etc/profile 使配置檔案生效
5、執行:java -version,顯示jdk版本,jdk安裝成功
->linux作業系統可能預設會安裝有openjdk
需要將自己安裝的Java設定為預設的:
sudoupdate-alternatives --install /usr/bin/java java /usr/local/jdk1.6.0_26/bin/java1160
2. git GIT 是用於 Linux 開發的版本控制工具
-> unbutu 11.04 安裝:
sudo apt-get install git git-core
3. Android SDK
->http://developer.android.com/sdk/index.html
->解壓下載的SDK檔案 到 <Android_SDK_Path>
例如:/usr/local/bin/android-sdk-linux_x86-1.5_r2
->修改/etc/profile 檔案
->export PATH=${PATH}:<Android_SDK_Path>/tools
例如:export PATH=${PATH}:<SDK_Path>/
android-sdk-linux_x86-1.5_r2/tools
->save
->restart
->輸入: sudoandroid
->通過彈出介面配置SDK(此時的SDK並未安裝完成,需要通過網路完成全部安裝)。
->在Settings 處勾選 force https://......
->在AvailablePackages 處 勾選要安裝的包
->Install Selectted 進行安裝
->android avd配置資訊的生成
->android avd的建立格式為:androidcreate avd -n your-avd-name -t your-targets
->其中: -n的引數為我們要建立的avd的名字;
-t的引數為Available Android targets的id,
我們可以使用命令:android list查尋其具體資訊。
->$android list
AvailableAndroid targets:
id:1
Name: Android 1.1
Type: Platform
API level: 2
Skins: HVGA-P, HVGA (default), QVGA-P, HVGA-L,QVGA-L
id:2
Name: Android 1.5
Type: Platform
API level: 3
Skins: HVGA-P, HVGA (default), QVGA-P, HVGA-L,QVGA-L
id:3
.....................
->建立avd:$android create avd -n android1.5 -t 2
Android1.5 is a basic Android platform.
Doyou wish to create a custom hardware profile [no]yes
Deviceram size: The amount of physical RAM on the device, in megabytes.
hw.ramSize[96]:128
Touch-screensupport: Whether there is a touch screen or not on the device.
hw.touchScreen[yes]:yes
Track-ballsupport: Whether there is a trackball on the device.
hw.trackBall[yes]:yes
Keyboardsupport: Whether the device has a QWERTY keyboard.
hw.keyboard[yes]:yes
DPadsupport: Whether the device has DPad keys
hw.dPad[yes]:yes
GSMmodem support: Whether there is a GSM modem in the device.
hw.gsmModem[yes]:yes
Camerasupport: Whether the device has a camera.
hw.camera[no]:
Camerasupport: Whether the device has a camera.
hw.camera[no]:yes
Maximumhorizontal camera pixels
hw.camera.maxHorizontalPixels[640]:854
Maximumvertical camera pixels
hw.camera.maxVerticalPixels[480]:480
GPSsupport: Whether there is a GPS in the device.
hw.gps[yes]:yes
Battery support: Whether the device can run on a battery.
hw.battery[yes]:yes
Accelerometer:Whether there is an accelerometer in the device.
hw.accelerometer[yes]:yes
Audiorecording support: Whether the device can record audio
hw.audioInput[yes]:yes
Audioplayback support: Whether the device can play audio
hw.audioOutput[yes]:yes
SDCard support: Whether the device supports insertion/removal of virtual SDCards.
hw.sdCard [yes]:yes
Cachepartition support: Whether we use a /cache partition on the device.
disk.cachePartition[yes]:yes
Cachepartition size
disk.cachePartition.size[66MB]:100MB
CreatedAVD ''android-sdk-15'' based on Android 1.5
->啟動模擬器介面: $emulator @android-sdk-15-show-kernel
->配置eclipse,使之支援android sdk(安裝ADT外掛):
Eclipse,Help->SoftwareUpdates->Available Software(根據提示進行相應操作)
4. Android NDK
->http://developer.android.com/sdk/ndk/index.html
->解壓NDK包到指定目錄
->配置PATH
->修改/etc/profile 檔案
-> NDKROOT=/usr/local/bin/android-ndk-r5c (使用者根據自己的實際安裝配置)
PATH=$PATH:$NDKROOT
->save
->restart
->測試環境變數:
->cd /usr/local/bin/android-ndk-r5c/samples/hello-jni
->ndk-build
->將看到系統會編譯出libhello-jni.so
5. 安裝necessitas
http://sourceforge.net/projects/necessitas/files/
(包括Qt的庫,Qt Createrfor Android, 同時可以選擇安裝NDK 和SDK(但是由於網速問題建議不要選擇可以自己安裝)):
->下載necessitas-0.2-online-sdk-installer-linux
->使用 chmod 新增可執行許可權
->安裝過程需要網路環境
6. Ministro
需要在android上安裝Ministro service
url: http://sourceforge.net/projects/ministro.necessitas.p/files/
7. 模擬器啟動命令
在命令列輸入: emulator -help,即可顯示emulator支援的所有命令。
Android Emulator usage:
emulator [options] [-qemu args]
options:
-sysdir<dir> 在目錄<dir>中搜索system.img
-system<file> 讀取system.img檔案<file>
-datadir<dir> 寫入使用者資料到目錄 <dir>
-kernel<file> 使用指定核心kernel-qemu檔案
-ramdisk<file> 指定ram 映象檔案ramdisk.img
-image<file> obsolete, use -system <file> instead
-init-data<file> initial data image (default <system>/userdata.img
-initdata<file> same as '-init-data <file>'
-data<file> data image
(default <datadir>/userdata-qemu.i
mg
-partition-size<size> 分割槽大小MBs
-cache<file> cache.img
-no-cache 禁止快取
-nocache 禁止快取
-sdcard<file> sdcard.img
-wipe-data reset the use data image (copy it from initda
ta)
-avd<name> 使用指定AVD裝置
-skindir<dir> search skins in <dir> (default <system>/skins
)
-skin<name> select a given skin
-no-skin don't use any emulator skin
-noskin same as -no-skin
-memory<size> 實體記憶體大小MBs
-netspeed<speed> 最大網速
-netdelay<delay> 網路延遲
-netfast disable network shaping
-trace<name> enable code profiling (F9 to start)
-show-kernel 顯示核心訊息
-shell 終端啟用root shell
-no-jni disable JNI checks in the Dalvik runtime
-nojni same as -no-jni
-logcat<tags> 檢視日誌
-no-audio disable audio support
-noaudio same as -no-audio
-audio<backend> use specific audio backend
-audio-in<backend> use specific audio input backend
-audio-out<backend> usespecific audio output backend
-raw-keys disable Unicode keyboard reverse-mapping
-radio<device> 無線貓
-port<port> 連線控制檯的TCP埠.
-ports <consoleport>,<adbport> TCP ports usedfor the console and adb bridge
-onion<image> use overlay PNG image over screen
-onion-alpha<%age> specify onion-skin translucency
-onion-rotation0|1|2|3 specify onion-skin rotation
-scale <scale> 視窗縮放
-dpi-device<dpi> specify device's resolution in dpi (default 1
65)
-http-proxy<proxy> HTTP/HTTPS 代理
-timezone<timezone> 時區
-dns-server<servers> DNS伺服器
-cpu-delay<cpudelay> throttleCPU emulation
-no-boot-anim disable animation for faster boot
-no-window disable graphical window display
-version 版本
-report-console<socket> report console port toremote socket
-gps<device> redirect NMEA GPS to character device
-keyset<name> specify keyset file name
-shell-serial<device> specificcharacter device for root shell
-old-system support old (pre 1.4) system images
-tcpdump<file> 記錄網路資料包
-bootchart<timeout> enable bootcharting
-prop<name>=<value> 設定系統屬性
-qemuargs... pass arguments to qemu
-qemu-h 顯示qemu幫助
-verbose same as '-debug-init'
-debug<tags> enable/disable debug messages
-debug-<tag> enable specific debug messages
-debug-no-<tag> disable specific debug messages
-help 幫助
-help-<option> print option-specific help
-help-disk-images about disk images
-help-keys supported key bindings
-help-debug-tags debug tags for -debug <tags>
-help-char-devices character <device> specification
-help-environment environment variables
-help-keyset-file key bindings configuration file
-help-virtual-device virtual device management
-help-sdk-images about disk images when using the SDK
-help-build-images about disk images when building Android
-help-all 幫助(所有)
在3的基礎上:
emulator –avd Android2.3.3–partition-size 512 (即可啟動模擬器)
7. 常用ADB命令:
命令列工具ADB(Andvoid Debug Bridge)是Android提供的一個通用的除錯工具,藉助這個工具,我們可以管理裝置或手機模擬器的狀態。還可以進行以下的操作:
1、快速更新裝置或手機模擬器中的程式碼,如應用或Android系統升級;
2、在裝置上執行shell命令;
3、管理裝置或手機模擬器上的預定埠;
4、在裝置或手機模擬器上覆制或貼上檔案;
5、安裝.apk檔案到模擬器上。
以下為一些常用的操作:
1、安裝應用到模擬器:
adb install
比較鬱悶的是,Android並沒有提供一個解除安裝應用的命令,只能自己手動刪除:
adb shell
cd /data/app
rm app.apk
2、進入裝置或模擬器的shell:
adb shell
通過上面的命令,就可以進入裝置或模擬器的shell環境中,在這個Linux Shell中,你可以執行各種Linux的命令,另外如果只想執行一條shell命令,可以採用以下的方式:
adb shell [command]
如:adb shell dmesg會打印出核心的除錯資訊。
3、釋出埠:
你可以設定任意的埠號,做為主機向模擬器或裝置的請求埠。如:
adb forward tcp:5555 tcp:8000
4、複製檔案:
你可向一個裝置或從一個裝置中複製檔案,
複製一個檔案或目錄到裝置或模擬器上:
adb push
如:adb push test.txt /tmp/test.txt
從裝置或模擬器上覆制一個檔案或目錄:
adb pull
如:adb pull/addroid/lib/libwebcore.so .
5、搜尋模擬器/裝置的例項:
取得當前執行的模擬器/裝置的例項的列表及每個例項的狀態:
adb devices
6、檢視bug報告:
adb bugreport
7、記錄無線通訊日誌:
一般來說,無線通訊的日誌非常多,在執行時沒必要去記錄,但我們還是可以通過命令,設定記錄:
adb shell
logcat -b radio
8、獲取裝置的ID和序列號:
adb get-product
adb get-serialno
9、訪問資料庫SQLite3
adb shell
sqlite3
模擬器上網設定:
1. 在 adb shell 模式下執行以下命令
sqlite3/data/data/com.android.providers.settings/databases/settings.db "INSERTINTO system VALUES(99,'http_proxy','10.10.26.252:1080')"
2. 重新啟動Android模擬器,程式可以登入http網站。
3. 如果要刪除配置: sqlite3 /data/data/com.android.providers.settings/databases/settings.db"DELETE FROM system WHERE _id=99"
4.在 adb shell 模式下執行查詢命令
sqlite3/data/data/com.android.providers.settings/databases/settings.db "SELECT *FROM system"
5.如果還無法連線Internet,則需要設定DNS
$ adbshell
$ getprop
$ getprop會列出系統當前的各項屬性
得到模擬器的DNS地址
在結果裡可以看到:
[net.dns1]: [10.0.2.3]
[net.dns2]: [10.0.2.4]
[net.dns3]: [10.0.2.5]
[net.dns4]: [10.0.2.6]
把dns改成我們自己的DNS
$ setprop net.dns1 192.168.1.1
注:一般TP-LINK及D-LINK的DNS都是192.168.1.1,如果不是請使用ipcnofig /all命令確認。
注意: 在配置環境變數時,請確保配置路徑完全正確,否則不要操作 /etc/profile檔案,因為這個檔案不正確可能導致系統無法啟動,
所以可以在當前使用者目錄下找到.bashrc, 配置環境變數,這樣配置的值適合當前使用者使用不是全域性的。)
二. 建立工程
1.開啟necessitas (當前虛擬機器上安裝在:/home/frank/necessitas/ QtCreator/bin/),你可以在桌面建立快捷方式,或者將其配置到環境變數中。
主介面如下:
可以通過File開啟一個*.pro工程檔案或者自己建立一個
在Project選項中可以進行相應的設定
在Qt Version選項處點選Manage彈出一下對話方塊,根據現有的SDK、NDK和Ant的安裝進行設定:
注意Run Settings 中設定Package為10或者更高否則無法使用Qt編譯通過:
此時點選Build 可以編譯程式,如果模擬器沒有開啟necessitas會自動開啟模擬器。
其它的設定可以根據自己的實際需求進行相應的設定。
Qt Demo(animatedtiles)執行效果圖:
附:
1. tar用法例項 tar命令
tar檔案是幾個檔案和(或)目錄在一個檔案中的集合。這是建立備份和歸檔的佳徑。
tar使用的選項有:
-c— 建立一個新歸檔。
-f— 當與 -c 選項一起使用時,建立的tar 檔案使用該選項指定的檔名;當與 -x 選項
一起使用時,則解除該選項指定的歸檔。
-t— 顯示包括在 tar 檔案中的檔案列表。
-v— 顯示檔案的歸檔進度。
-x— 從歸檔中抽取檔案。
-z— 使用 gzip 來壓縮 tar 檔案。
-j— 使用 bzip2 來壓縮 tar 檔案。
要建立一個 tar 檔案,鍵入:
tar-cvf filename.tar directory/file
可以使用 tar 命令同時處理多個檔案和目錄,方法是將它們逐一列出,並用空格間隔:
tar-cvf filename.tar /home/mine/work /home/mine/school
上面的命令把 /home/mine 目錄下的 work 和 school 子目錄內的所有檔案都放入當前
目錄中一個叫做 filename.tar 的新檔案裡。
要列出 tar 檔案的內容,鍵入:
tar-tvf filename.tar
要抽取 tar 檔案的內容,鍵入
tar-xvf filename.tar
這個命令不會刪除 tar 檔案,但是它會把被解除歸檔的內容
複製到當前的工作目錄下,並保留歸檔檔案所使用的任何
目錄結構。譬如,如果這個 tar 檔案中包含一個叫做
bar.txt的檔案,而這個檔案包含在foo/ 目錄中,那麼,
抽取歸檔檔案將會導致在你當前的工作目錄中建立
foo/目錄,該目錄中包含bar.txt 檔案
tar預設不壓縮檔案。
要建立一個使用 tar 和 bzip 來歸檔壓縮的檔案,使用 -j 選項:
tar-cjvf filename.tbz file
以上命令建立了一個歸檔檔案,然後將其壓縮為 filename.tbz 檔案。如果你使用 bunzip2 命令為 filename.tbz 檔案解壓,filename.tbz 檔案會被刪除,繼
之以filename.tar 檔案。
你還可以用一個命令來擴充套件並解除歸檔 bzip tar 檔案:
tar-xjvf filename.tbz
要建立一個用 tar 和 gzip 歸檔並壓縮的檔案,使用 -z 選項:
tar-czvf filename.tgz file
這個命令建立歸檔檔案 filename.tar,然後把它壓縮為 filename.tgz 檔案(檔案 filename.tar 不被保留)。
如果你使用 gunzip 命令來給 filename.tgz 檔案解壓,filename.tgz 檔案會被刪除,並被
替換為 filename.tar。
你可以用單個命令來擴充套件 gzip tar 檔案:
tar-xzvf filename.tgz
一. tar
1.壓縮一組檔案為tar.gz字尾。
#tar cvf backup.tar /etc
#gzip-q backup.tar
或
#tar cvfz backup.tar.gz /etc/
tarzxvf XXXX.tar.gz
tarjxvf XXXX tar.bz2
2.釋放一個字尾為tar.gz的檔案。
#gunzipbackup.tar.gz
#tarxvf backup.tar
或
#tar xvfz backup.tar.gz
3.用一個命令完成壓縮
#tarcvf - /etc/ | gzip -qc > backup.tar.gz
4.用一個命令完成釋放
#gunzip -c backup.tar.gz | tar xvf -
5.如何解開tar.Z的檔案?
#tar xvfz backup.tar.Z
或
#uncompress backup.tar.Z
#tarxvf backup.tar
6.如何解開.tgz檔案?
#gunzipbackup.tgz
7.如何壓縮和解壓縮.bz2的包?
#bzip2/etc/smb.conf
這將壓縮檔案smb.conf成smb.conf.bz2
#bunzip2/etc/smb.conf.bz2
這將在當前目錄下還原smb.conf.bz2為smb.conf
注: .bz2壓縮格式不是很常用,你可以man bzip2