Qt for Android 配置( Unbutu 11.04 )

(转)

Qt for Android 配置( Unbutu 11.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

                     export JAVA_HOME=/usr/soft/jdk*.*.*

              4 、运行: source /etc/profile  使配置文件生效

              5 、运行: java -version, 显示 jdk 版本, jdk 安装成功

       -> linux 操作系统可能默认会安装有 openjdk

              需要将自己安装的 Java 设置为默认的:

                     sudo update-alternatives --install /usr/bin/java java /usr/local/jdk1.6.0_26/bin/java 1160

 

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

       -> 输入: sudo android

       -> 通过弹出界面配置 SDK (此时的 SDK 并未安装完成,需要通过网络完成全部安装)。

              -> Settings 处勾选 force https://......

              -> Available Packages 勾选要安装的包

              -> Install Selectted 进行安装

       -> android avd 配置信息的生成

              -> android avd 的创建格式为 :android create avd -n your-avd-name -t your-targets

              -> 其中 : -n 的参数为我们要创建的 avd 的名字 ;

                                   -t 的参数为 Available Android     targets id,

                     我们可以使用命令: android list 查寻其具体信息。

                            -> $android list

                                   Available Android 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

 

                                   Android 1.5 is a basic Android platform.

                                   Do you wish to create a custom hardware profile [no]yes

 

                                   Device ram size: The amount of physical RAM on the device, in megabytes.

                                   hw.ramSize [96]:128

 

                                   Touch-screen support: Whether there is a touch screen or not on the device.

                                   hw.touchScreen [yes]:yes

 

                                   Track-ball support: Whether there is a trackball on the device.

                                   hw.trackBall [yes]:yes

 

                                   Keyboard support: Whether the device has a QWERTY keyboard.

                                   hw.keyboard [yes]:yes

 

                                   DPad support: Whether the device has DPad keys

                                   hw.dPad [yes]:yes

 

                                   GSM modem support: Whether there is a GSM modem in the device.

                                   hw.gsmModem [yes]:yes

 

                                   Camera support: Whether the device has a camera.

                                   hw.camera [no]:

 

                                   Camera support: Whether the device has a camera.

                                   hw.camera [no]:yes

 

                                   Maximum horizontal camera pixels

                                   hw.camera.maxHorizontalPixels [640]:854

 

                                   Maximum vertical camera pixels

                                   hw.camera.maxVerticalPixels [480]:480

 

                                   GPS support: 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

 

                                   Audio recording support: Whether the device can record audio

                                   hw.audioInput [yes]:yes

 

                                   Audio playback support: Whether the device can play audio

                                   hw.audioOutput [yes]:yes

 

                                   SD Card support: Whether the device supports insertion/removal of virtual SD Cards.

                                   hw.sdCard [yes]:yes

 

                                   Cache partition support: Whether we use a /cache partition on the device.

                                   disk.cachePartition [yes]:yes

 

                                   Cache partition size

                                   disk.cachePartition.size [66MB]:100MB

 

                                   Created AVD ''android-sdk-15'' based on Android 1.5

                                  

                            -> 启动模拟器界面: $emulator @android-sdk-15 -show-kernel

                           

       -> 配置 eclipse, 使之支持 android sdk (安装 ADT 插件):

              Eclipse Help->Software Updates->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 Creater for 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>           use specific audio output backend
    -raw-keys                      disable Unicode keyboard reverse-mapping
    -radio <device>               
无线猫
    -port <port>                  
连接控制台的TCP 端口.
    -ports <consoleport>,<adbport> TCP ports used for the console and adb bridge

    -onion <image>                 use overlay PNG image over screen
    -onion-alpha <%age>            specify onion-skin translucency
    -onion-rotation 0|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>          throttle CPU emulation
    -no-boot-anim                  disable animation for faster boot
    -no-window                     disable graphical window display
    -version                      
版本
    -report-console <socket>       report console port to remote socket
    -gps <device>                  redirect NMEA GPS to character device
    -keyset <name>                 specify keyset file name
    -shell-serial <device>         specific character device for root shell
    -old-system                    support old (pre 1.4) system images
    -tcpdump <file>               
记录网络数据包
    -bootchart <timeout>           enable bootcharting
    -prop <name>=<value>          
设置系统属性


     -qemu args...                 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 "INSERT INTO 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

$ adb shell

$ 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-LINKD-LINKDNS 都是192.168.1.1 ,如果不是请使用ipcnofig /all 命令确认。

 

 

 

注意: 在配置环境变量时,请确保配置路径完全正确,否则不要操作 /etc/profile 文件,因为这个文件不正确可能导致系统无法启动,

 

所以可以在当前用户目录下找到 .bashrc, 配置环境变量,这样配置的值适合当前用户使用不是全局的。 )

 

二. 创建工程

 

1. 打开 necessitas (当前虚拟机上安装在: /home/frank/necessitas/ QtCreator/bin/ ),你可以在桌面创建快捷方式,或者将其配置到环境变量中。
主界面如下:

可以通过 File 打开一个 *.pro 工程文件或者自己创建一个

Qt for Android 配置( Unbutu 11.04 )_第1张图片

Qt for Android 配置( Unbutu 11.04 )_第2张图片


 

 

Project 选项中可以进行相应的设置


Qt Version 选项处点击 Manage 弹出一下对话框,根据现有的 SDK NDK Ant 的安装进行设置:

Qt for Android 配置( Unbutu 11.04 )_第3张图片


 

注意 Run Settings 中设置 Package 10 或者更高否则无法使用 Qt 编译通过:

Qt for Android 配置( Unbutu 11.04 )_第4张图片


 

此时点击 Build 可以编译程序,如果模拟器没有打开 necessitas 会自动打开模拟器。

其它的设置可以根据自己的实际需求进行相应的设置。

 

Qt Demo animatedtiles )运行效果图:

Qt for Android 配置( Unbutu 11.04 )_第5张图片


 

 

附:

       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/

              tar zxvf XXXX.tar.gz

 

              tar jxvf XXXX tar.bz2

 

              2. 释放一个后缀为 tar.gz 的文件。

              #gunzip backup.tar.gz

              #tar xvf backup.tar

             

              # tar xvfz backup.tar.gz

 

              3. 用一个命令完成压缩

              #tar cvf - /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

              #tar xvf backup.tar

 

              6. 如何解开 .tgz 文件?

              #gunzip backup.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

      

      

你可能感兴趣的:(android,qt,for)