如果拿到qtopia,不进行裁减,那将会很大的,大概50,60M .
那怎么裁减呢?
主要是通过下面的几种方式:
1 通过configure
2 通过project files
3 减少一些不用的类,这个很麻烦,主要要注意相互间的调用关系
4 减少qt embedded的大小,修改它的类,configure
后2种方法比较麻烦,除非空间是在紧张,或者加载速度很慢的情况下,可以考虑 。
对于方式1,2。qtopia提供了一个device目录,user可以把所有的配置,修改,plugin放在这个目录下,
device 主要包括 :
1) environment 主要是设置 路径等
2) configure 配置文件
比如 :
-xplatform XXX -arch arm -no-qvfb -displaysize 800x480 -prefix /opt/Qtopia-4.2.1 -dbus -defaultbuttons XXX
当用./configure -device XXX时,相当于
./configure -xplatform XXX -arch arm -no-qvfb -displaysize 800x480 -prefix /opt/Qtopia-4.2.1 -dbus -defaultbuttons XXX
3) config.pri 一般是加上有些定义
如 DEFINES+=QT_QWS_S3C24A0
4) projects.pri 该文件在启用/禁止projects. 它在general.pri 和 commercial.pri之后,但 custom.pri 和 local.pri之前处理。
因此 在这里可以 配置
比如 在 projects.pri 可以这样写 :
PROJECTS-=\ applications/camera
PROJECTS+=settings/calibrate
去除 application/camera 应用
添加 settings/calibrate 等
5) src 下面可以放一些plugin 等
所以要对qtopia裁减,主要是修改configure和project.pri,configure是针对方法1 ,project.pri是针对方法2,去除不必要的应用。
下面我们来应用一下:
configure文件如下:
-xplatform XXX -arch arm -no-qvfb -displaysize 176x220 -quicklaunch -prefix /opt/Qtopia-4.2.1-release -no-infrared -qtmail-ssl -no-helix -no-test -no-voip -no-modem -dbus -defaultbuttons XXX
project.pri文件如下:
PROJECTS-=\
applications/camera \
applications/mediarecorder \
settings/beaming \
settings/handwriting \
settings/calibrate \
settings/security \
settings/worldtime \
settings/network \
settings/language \
settings/speeddial \
settings/sipsettings \
settings/drmbrowser \
tools/sipagent \
plugins/network/lan
PROJECTS+=tools/content_installer \
tools/qdawggen
#PROJECTS+=settings/netsetup
PROJECTS*=3rdparty/libraries/utils
PROJECTS*=3rdparty/libraries/dataobjects
contains(PROJECTS,3rdparty/libraries/dataobjects) {
PROJECTS*=3rdparty/libraries/utils
}
编译后Qtopia-4.2.1-release 36M,加上busybox,jpeg库(qtopia所依赖的lib)等,整个系统 也才39M。
此时在 Qtopia-4.2.1-release/bin下面,有addressbook,photoedit,calculator,helpbrowser等
我们把这些应用都去掉。并修改configure 加上-no-samples ,ssl qtmail也去掉。
configure文件如下:
-xplatform dspg -arch arm -no-qvfb -displaysize 176x220 -quicklaunch -prefix /opt/Qtopia-4.2.1-release -no-infrared -no-helix -no-test -no-voip -no-modem -dbus -no-samples -no-libamr -defaultbuttons dsp
project.pri文件如下:
PROJECTS-=\
applications/addressbook \
applications/datebook \
applications/todo\
applications/calculator \
applications/camera \
applications/mediarecorder \
applications/clock \
applications/photoedit \
plugins/content/id3 \
applications/mediaplayer \
applications/helpbrowser \
applications/sysinfo \
applications/qtmail \
settings/appearance\
settings/logging \
settings/systemtime \
settings/light-and-power \
settings/packagemanager\
settings/beaming \
settings/handwriting \
settings/calibrate \
settings/security \
settings/worldtime \
settings/network \
settings/language \
settings/speeddial \
settings/sipsettings \
settings/drmbrowser \
tools/sipagent \
plugins/network/lan \
libraries/qtopiaprinting \
tools/printserver \
games/fifteen\
games/minesweep
PROJECTS+=tools/content_installer \
tools/qdawggen
#PROJECTS+=settings/netsetup
PROJECTS*=3rdparty/libraries/utils
PROJECTS*=3rdparty/libraries/dataobjects
contains(PROJECTS,3rdparty/libraries/dataobjects) {
PROJECTS*=3rdparty/libraries/utils
}
编译后Qtopia-4.2.1-release 29M,整个系统 也才32M。少了,7M
此时在 Qtopia-4.2.1-release/bin下面,没有addressbook,photoedit,calculator,helpbrowser等 ,我们可以依据这种方法,继续裁减,
比如games/snake也可以不要阿...
阅读(810) | 评论(0) | 转发(0) |