精华内容
下载资源
问答
  • 一、Mac OS X下应该如何卸载软件  Mac OS X的软件安装方式有很多种,而软件卸载的情况也...该软件是以什么形式(dmg,pkg,软件安装盘,单一应用或是其他方式)安装的? 2。软件的安装盘或系统里有没有卸载软件? 3
    一、Mac OS X下应该如何卸载软件
    

        Mac OS X的软件安装方式有很多种,而软件卸载的情况也很不同。在Mac OS X拆除软件往往不是把软件拉到废止篓里那么简单。通常情况下要具体问题具体分析。无论手动还是用第三方软件卸载,以下问题需要考虑:

    1。该软件是以什么形式(dmg,pkg,软件安装盘,单一应用或是其他方式)安装的?
    2。软件的安装盘或系统里有没有卸载软件?
    3。软件的帮助文件有没有说明如何卸载?软件开发商的网页有没有提供类似说明?
    4。是否运行过该软件?
    5。你是否已经退出软件?运行中的软件是不能删除的,关掉应用窗口也不等于退出了应用,应该用Apple和Q组合键,或通过该应用的菜单,或苹果菜单里的强制退出选项将软件退出。
    在“如何安装应用软件”一文里,曾提到文件包(.pkg文件)方式的安装,会在硬盘下的资源库或用户下的资源库Receipts文件夹里产生一个副本,内含安装路径和权限。对以.pkg文件包安装的应用卸载时,应该先检查着这个含有安装路径和权限的文件。具体做法是:
    1。按住Apple、Shift和U,或用Finder导引到应用程序(Applications)文件夹下的实用程序(Utilities)文件夹,双击终端(Terminal)。
    2。在终端下输入:lsbom空格
    3。到硬盘下的资源库里的Receipts文件夹,找到你要卸载的文件包名,按住Ctrl键的同时点击该文件。(注:Leopard的方法与此不同)。
    4。从菜单里选择“显示包内容”(Show Package Contents),此时,Finder会打开一个新窗口,里面有个Contents文件夹。
    5。打开Contents文件夹,找到Archive.bom文件,把它直接拉到第二步所打开的终端窗口上,然后回车。
    6。根据路径信息删除软件。
    7。删除Receipts中这个pkg文件。
    注意:1。以mpkg文件包安装的文件在Receipts文件夹里会产生多个pkg文件,卸载软件时应该注意到每个pkg中检查其路径,并按路径删除。
    2。如果某个软件下载并安装过升级包,如果你按最新的升级安装包里的Archive.bom下的路径把所有文件都删除了,你不一定能恢复到该软件的先前版本。这是因为升级包把先前版本的某些相应文件给覆盖了,一旦这些新装上的文件被删除,旧版文件也就不存在了。系统软件在安装时多以安装包的方式来安装,由于系统软件升级频繁,用这种方法来卸载就比较麻烦,不如重装系统。
    软件安装时如果用的是软件生产商自己的安装软件或安装盘,首先要找找原安装软件或安装盘,或运行进入原安装软件或安装盘的安装界面,检查有没有卸载方式。如果没有,要退出安装界面,并检查以前安装时是否曾产生过安装日志。如果有,应该按安装日志内的路径进行删除。象Adobe CS3这样的大型软件,除了安装盘内的安装截面有卸载方式以外,在实用程序文件包内也有自己的卸载软件。
    对于以压缩包和单一软件方式进行安装的软件,把软件从安装的地方直接拉倒废纸篓是必须的,但这样做是否卸载完全,也是看情况而定。
    对于非系统软件,第三方软件AppZapper是一个解决方案,但是,如果所拆除的软件是复杂的大型软件,或者是以软件制造商自己的安装软件或mpkg文件安装的,用AppZapper很有可能不能将该软件完全拆除。对这些软件应该先考虑这些软件是否有自己的卸载方式。
    上图中以Filp4Mac WMV为例,可以看出AppZapper并不能找到Filp4Mac在Receipts文件夹中的安装包。而Filp4Mac本身在安装完以后,在所安装的文件夹里有自己的卸载包。
    对于系统软件的组成部分的拆除,直接拉到废纸篓的方式很可能造成系统问题。DesInstaller 是用于卸载用pkg方式所安装的软件,它的最大好处就是可以在删除软件的同时将所删除的软件归档生成一个安装包以备用。由于系统软件是以pkg方式进行安装的,所以DesInstaller常用于卸载某些系统应用。但是,在使用该软件卸载系统软件时,一旦出现问题,就可能弄巧成拙,最后不得不重装系统。
    通常情况下,软件一旦运行过就可能生成属性文件、缓存文件(Cache)或其他附属文件。如果在拆除这样的软件时,这些属性文件没有拆除,那么以后即使再装上这个软件,它仍然会采用以前的设置。假如你拆软件的原因是因为软件运行不正常,而且不正常的原因其实就是属性文件出了问题,你拆除软件时却不知道,那么即使再重新安装了这个软件,这个软件仍然不能正常运行。因此,你在拆除软件时,无论是手动拆除还是使用上述两款第三方应用,都应该到硬盘下及用户下的资源库Preferences文件夹里看看有没有与所拆软件相关的文件或文件夹。除了Preferences文件夹以外,还应该检查以下路径,看看有没有与要卸载的应用相关的文件或文件夹:
    硬盘目录下
    用户的My Documents文件夹
    硬盘及用户的资源库文件夹
    硬盘及用户的资源库下Caches文件夹
    硬盘及用户的资源库下Application Support文件夹
    硬盘及用户的资源库下ColorSyn文件夹里的Profile(特别是当你的应用与扫描仪有关)
    硬盘及用户的资源库下Components文件夹
    硬盘及用户的资源库下Contextual Menu Items文件夹
    硬盘及用户的资源库下Input Manager文件夹
    硬盘及用户的资源库下Internet Plug-Ins文件夹(特别是当你要卸载的是Safari插件)
    硬盘及用户的资源库下QuickTime文件夹(如果你要卸载的是视频转换软件有关)
    硬盘及用户的资源库下Screen Savers文件夹(如果要卸载的是屏保)
    硬盘及用户的资源库下StartupItems文件夹(特别是你的应用一登录就自动启动)
    硬盘及用户的资源库下Widget文件夹(如果你要卸载的是Widgets)
    如果你的机器上有多个用户,而应用又是所有用户都能使用的,你应该通知所有用户让他们也登录后对相应的文件夹进行检查。
    当做完这些检查,并删除了相应文件后,还要做的是搜索软件名或开发商品牌名,看看有没有残余文件。有些软件有隐含文件,再搜索时可以使用命令行或智能文件夹(Smart Folder),详见“如何查找隐含文件”一文。
    总之,软件卸载往往不是一个简单的工作,因此,我曾在“新机使用前做哪些准备会对以后的使用更有帮助?”一文中提到要建立一个文件夹来存放安装日志,同样的,在手动卸载时,最好也把你的拆卸过程记录下来存在那个日志文件夹里。
    另外,从上面的描述,还可以看出软件安装与卸载的难易程度往往取决于软件开发者在开发时是如何组织这些路径的。如果这些路径比较复杂,而且开发者又没提供详细的卸载说明,终用户的拆卸难度就相当大。而目前多数免费软件具有这种毛病,所以,在选择软件来安装的时候,不仅要看其功能、是否是免费、还要注意它有没有提供详尽的拆除的方法。

    如何安装应用软件
    在安装软件之前,先考虑一下软件安装的位置问题。
    通过Finder,用户很容易从硬盘下找到应用程序文件夹,而且会很快明白这个文件夹就是大多数应用软件应该安装的位置。仔细观察这个文件夹,不难发现本机上的所有账户都有权看到甚至使用这个文件夹里的应用。在中文显示与输入概述一文里,曾经提到过用户域(User Domain)以及Mac OS X系统是真正的多用户系统,在软件应用上,其实,这种多用户的优越性也可以体现出来。具体点说,用户完全可以拥有自己的、其他账户看不到更使用不了的应用及文件夹。用户可以在自己的Home文件夹下自己建立一个应用程序文件夹,把应用程序安装在那里。甚至,对于某些简单的应用,也完全可以把应用就安置在桌面上。
    一些新用户不知道该怎么处理下载的应用软件,有的就把应用留在桌面上,这种做法常常遭到一些对Mac OS X系统有些经验的用户的耻笑。可是这些老用户其实并不清楚多用户系统本身允许用户如此处理应用软件。当然,把应用都放在桌面上的做法不值得提倡,应用软件的安装位置应该按自己的实际情况和习惯进行合理的安排。
    除了系统盘内所带的应用软件(具体安装方法,见随机用户手册),苹果机的软件安装方式基本上来说有以下几种:应用磁盘镜像(.dmg文件),软件包(.mpkg或.pkg文件),压缩文件(.sit、.zip、.rar等), 软件开发商自制或商用第三方安装程序或脚本(script),以及单一应用。
    这几种方式中,用软件包的方式在通常情况下应用的路径是已经确定的,而软件开发商自制或商用第三方安装程序或脚本的方式在有些情况下路径也是确定的,而另一些情况下允许用户自己选择适当的文件夹来进行安装。这两种方式几乎是全自动的,只要用户一点击这些安装程序,软件将自动安装。当然,有些场合下,会要求用户同意软件的使用政策,或输入管理员密码。如果没有特别说明,所安装的又属于用于桌面应用(即所谓的Desktop Applications),安装完毕后,应该先到硬盘下的应用程序文件夹里查找。
    软件包安装需要调用实用程序文件夹里的“安装程序”(Installer)。如果您的机器里实用程序文件夹下没有这个”安装程序”软件,你将打不开.mpkg和.pkg文件。软件包安装后,会在硬盘下资源库Receipts文件夹或用户下资源库Receipts文件夹里存有.pkg文件副本。该pkg文件里储存着一个Archive.bom文件,记录着软件安装的路径及权限。另外,软件包的方式可以用Apple Remote Desktop进行远程安装,非常方便。采用软件开发商自制或商用第三方安装程序或脚本的方式进行安装后,通常情况下,也会生成安装日志,不同的软件所产生日志的地方也不尽相同。
    .mpkg文件图标
    镜像文件(.dmg)在桌面上的图标是硬盘模样。如果是通过下载安装,当该镜像下载完毕验证合格后,将自动装上(mount)。此时,桌面上会出现一个白色套筒样的图标(宗卷/Volume),一个新的Finder窗口将打开,里面显示的文件内容。如果不慎将这个Finder窗口关闭,并将这个白色套筒图标拉到了废纸篓里,可以双击dmg硬盘图标,使白色套筒再次出现在桌面上。双击该白色套筒,Finder将显示应用内容。通常情况下,可以把Finder里的内容直接挪到你要安装软件的地方,然后就可以把dmg硬盘图标拉到废纸篓并清除。有些软件开发商在dmg文件里加有图示,表明应该将文件挪到什么地方去(比如:应用文件夹)。有些开发商就更加精细,除了图标外,还加了安装位置的替身,只要把应用拉到替身图标上,安装就完毕了。
    镜像文件除了用于安装应用以外,本身可以做为磁盘镜像,通过磁盘工具(Disk Utility)的恢复(Restore)功能对磁盘进行安装或修复。
    dmg文件、白色套筒似的宗卷及用Finder打开的宗卷内容
    Mac OS X系统本身具有一定的解压功能,所以象.zip这样的文件,双击后就与用正常的文件夹用finder窗口打开一样,只要把里面的内容挪到你想安装应用的地方,就算安装成功了。当然,如果被压缩的文件本身是个安装程序,你还要双击该安装程序进行安装。一些压缩文件不能调用Mac OS X系统自带的解压方式解压,这些文件可以用Stuffit Expander或其他Stuffit软件来处理。这就是该软件被列为必备软件的原因了。
    对于单一应用,直接挪到硬盘下的应用文件夹、自己设定的文件夹或指定的文件夹里就可以了。
    软件安装完毕以后,如果要方便使用,可以到所安装软件的文件夹里,把软件图标直接拉到Dock上(分界线以左或上),这样要使用时,点击Dock上图标,设置直接把相应的文件拉到dock上的应用图标上就可运行该应用了。

        二、mac终端命令大全

    OSX 的文件系统 
    OSX 采用的Unix文件系统,所有文件都挂在跟目录 / 下面,所以不在要有Windows 下的盘符概念。 
    你在桌面上看到的硬盘都挂在 /Volumes 下。 
    比如接上个叫做 USBHD的移动硬盘,桌面上会显示出一个硬盘图标,它实际在哪里呢? 
    在终端里执行 ls /Volumes/USBHD, 看看显示出的是不是这个移动硬盘的内容。 
    根目录位置是 / 核心 Mach_kernel 就在这里, 
    驱动所在位置 /Systme/Library/Extensions 
    用户文件夹位置 /User/用户名 
    桌面的位置 /User/用户名/Desktop 
    文件通配符为星号 * 
    注意:在 Unix系统中是区别大小写字符的,A.txt 不等于 a.txt。 
    根目录标志 / 不是可有可无,cd /System 表示转到跟目录下的System中,而cd System 表示转到当前目录下的 System中 
    —————————————————————————————————————————————— 
    如何进入命令行操作模式 
    再图形界面下,用finder 打开 应用程序 》实用程序》终端 
    如果连图形界面都进不去了(比如安错了显示驱动),开机时按 F8,用-s参数启动,然后输入命令 mount -uw / 

    获得权限 
    为了防止误操作破坏系统,再用户状态下时没有权限操作系统重要文件的,所以先要取得root权限 
    sudo -s 
    然后输入密码,输入密码时没有任何回显,连星号都没有,只管输完回车就行了。 
    —————————————————————————————————————————————— 
    基本命令 
    列出文件 
    ls 参数 目录名 
    例: 想看看跟目录下有什么, 
    ls / 
    想看看驱动目录下有什么, 
    ls /System/Library/Extensions 
    参数 -w 显示中文,-l 详细信息, -a 包括隐藏文件 
    转换目录 
    cd 
    例:想到驱动目录下溜达一圈 
    cd /System/Library/Extensions 
    建立新目录 
    mkdir 目录名 
    例:在驱动目录下建一个备份目录 backup 
    mkdir /System/Library/Extensions/backup 
    在桌面上建一个备份目录 backup 
    mkdir /User/用户名/Desktop/backup 
    拷贝文件 
    cp 参数 源文件 目标文件 
    例:想把桌面的Natit.kext 拷贝到驱动目录中 
    cp -R /User/用户名/Desktop/Natit.kext /System/Library/Extensions 
    参数R表示对目录进行递归操作,kext在图形界面下看起来是个文件,实际上是个文件夹。 
    把驱动目录下的所有文件备份到桌面backup 
    cp -R /System/Library/Extensions/* /User/用户名/Desktop/backup 
    删除文件 
    rm 参数 文件 
    例:想删除驱动的缓存 
    rm -rf /System/Library/Extensions.kextcache 
    rm -rf /System/Library/Extensions.mkext 
    参数-rf 表示递归和强制,千万要小心使用,如果执行了 rm -rf / 你的系统就全没了 

    移动文件 
    mv 文件 
    例:想把AppleHDA.Kext 移到桌面 
    mv /System/Library/Extensions/AppleHDA.kext /User/用户名/Desktop 
    想把AppleHDA.Kext 移到备份目录中 
    mv /System/Library/Extensions/AppleHDA.kext /System/Library/Extensions/backup 
    更改文件权限 
    chmod 参数 权限 文件 
    例:把驱动目录下所有文件设定到root读写,其他用户只读 
    chmod -R 755 /System/Library/Extensions 
    参数R 表示递归,755表示各用户的权限 
    更改文件属主 
    chown 参数 用户:组 文件 
    例:把驱动目录下的所有文件属主改成根用户 
    chown -R root:wheel /System/Library/Extensions 
    参数R 表示递归操作 
    修复整个系统中文件的权限 
    diskutil repairpermissions / 
    严格的说这不是一个unix 命令,而是osx一个软件,记得修改或添加的驱动就执行一次。 
    文本编辑 
    nano 文件名 
    例:编辑natit Info.plist 
    nano /System/Library/Extensions/Natit.kext/Info.plist 
    编辑完成后 用 Ctrl +O 存盘,Ctrl+X 退出 
    另一个文本编辑软件是 vi,操作有些古怪,熟了是非常好用的,而且在所有类Unix系统中都它,走遍天下都不怕了。 
    运行脚本命令 
    sh 脚本文件名 
    例 修改驱动后所有需要的操作存成一个脚本,以后修改了驱动后只要运行一次这个脚本就可以了,方便吧 
    1. 终端中运行nano /clean 
    2. 把下列代码粘贴到 nano 中 
    rm -rf /System/Library/Extensions.kextcache 
    rm -rf /System/Library/Extensions.mkext 
    chown -R root:wheel /System/Library/Extensions 
    chmod -R 755 /System/Library/Extensions 
    diskutil repairpermissions / 
    kextcache -k /System/Library/Extensions/ 
    3. Ctrl +O 存盘,Ctrl+X 退出 
    4. 以后只要动了驱动,就在终端中运行一次 sh /clean 
    ———————————————————————————————————— 
    小技巧 
    用 Tab 键自动补齐命令 
    比如想到 /System 目录中去,输入 cd /Sy 然后按一下Tab 键,命令就会自动补齐成 cd /System 
    操作带名字中带有空格的文件和目录 
    空格在命令中写成 空格, 比如要进入 My Documents,命令为 cd My Documents 
    查看命令的详细帮助 
    man 命令名 
    比如要看看 ls 命令的详细用法,执行 man ls 
    ———————————————————————————————————— 
    典型操作流程 
    (假设已经制作好清理脚本,记得每次操作前 sudo -s 获得系统权限) 
    假设下载了一个显卡驱动 Natit.zip,在桌面解压得到了一个Natit.kext,该怎么做呢? 
    为了保险起见,先把所有驱动备份了再说 
    mkdir /User/用户名/Desktop/backup 在桌面上建立备份文件夹 
    cp -R /System/Library/Extensions/* /User/用户名/Desktop/backup 备份驱动文件 
    现在可以安心安装了 
    cp -R /User/用户名/Desktop/Natit.kext /System/Library/Extensions 把它 拷贝到系统驱动目录位置 
    sh /clean 执行清理脚本,操作完成 
    重新开机失败,进不去桌面了,发现不应该安这个驱动,怎么恢复呢? 
    开机按F8,用 -s 参数启动 
    执行 mount -uw / 
    rm -rf /User/用户名/Desktop/Natit.kext 删除这个驱动 
    sh /clean 执行清理脚本,操作完成 
    重启,回到原先状态了,不死心啊,没有特效怎么行呢,又听说需要修改 Natit的 Info. plist 文件才行,好,再来 
    cp -R /User/用户名/Desktop/Natit.kext /System/Library/Extensions 把它 拷贝到系统驱动目录位置 
    nano /System/Library/Extensions/Natit.kext/Info.plist 
    编辑完成后 用 Ctrl +O 存盘,Ctrl+X 退出 
    sh /clean 执行清理脚本,操作完成 
    重启,这回对了,显卡特效都有了,该弄声卡了,天知道会出什么事,得把现有成果保护好。 
    mkdir /User/用户名/Desktop/gooddrivers 专为有效驱动建个目录 
    cp -R /System/Library/Extensions/Natit.kext /User/用户名/Desktop/gooddrivers 备份 
    这个声卡要求把 AppleHDA.kext 删除和编辑 AppleAzaliaAudio.kext中的Info.plist 文件,谁知道以后会不会还用AppleHDA呢,不如暂时禁用吧。 
    mkdir /System/Library/Extensions/disabled 建立个禁用目录 
    mv /System/Library/Extensions/AppleHDA.kext /System/Library/Extensions/disabled 移动过去 
    nano /System/Library/Extensions/Natit.kext/AppleAzaliaAudio.kext/Info.plist 
    编辑完成后 用 Ctrl +O 存盘,Ctrl+X 退出 
    sh /clean 执行清理脚本,操作完成 
    成功了,也把修改好的驱动备份一下把 
    复制内容到剪贴板代码: 

    以下是unix的命令行,供参考 
    目录操作 
    命令名 
    功能描述 
    使用举例 
    mkdir 
    创建一个目录 
    mkdir dirname 
    rmdir 
    删除一个目录 
    rmdir dirname 
    mvdir 
    移动或重命名一个目录 
    mvdir dir1 dir2 
    cd 
    改变当前目录 
    cd dirname 
    pwd 
    显示当前目录的路径名 
    pwd 
    ls 
    显示当前目录的内容 
    ls -la 
    dircmp 
    比较两个目录的内容 
    dircmp dir1 dir2 
    文件操作 
    命令名 
    功能描述 
    使用举例 
    cat 
    显示或连接文件 
    cat filename 
    pg 
    分页格式化显示文件内容 
    pg filename 
    more 
    分屏显示文件内容 
    more filename 
    od 
    显示非文本文件的内容 
    od -c filename 
    cp 
    复制文件或目录 
    cp file1 file2 
    rm 
    删除文件或目录 
    rm filename 
    mv 
    改变文件名或所在目录 
    mv file1 file2 
    ln 
    联接文件 
    ln -s file1 file2 
    find 
    使用匹配表达式查找文件 
    find . -name "*.c" -print 
    file 
    显示文件类型 
    file filename 
    选择操作 
    命令名 
    功能描述 
    使用举例 
    head 
    显示文件的最初几行 
    head -20 filename 
    tail 
    显示文件的最后几行 
    tail -15 filename 
    cut 
    显示文件每行中的某些域 
    cut -f1,7 -d: /etc/passwd 
    colrm 
    从标准输入中删除若干列 
    colrm 8 20 file2 
    paste 
    横向连接文件 
    paste file1 file2 
    diff 
    比较并显示两个文件的差异 
    diff file1 file2 
    sed 
    非交互方式流编辑器 
    sed "s/red/green/g" filename 
    grep 
    在文件中按模式查找 
    grep "^[a-zA-Z]" filename 
    awk 
    在文件中查找并处理模式 
    awk '{print $1 $1}' filename 
    sort 
    排序或归并文件 
    sort -d -f -u file1 
    uniq 
    去掉文件中的重复行 
    uniq file1 file2 
    comm 
    显示两有序文件的公共和非公共行 
    comm file1 file2 
    wc 
    统计文件的字符数、词数和行数 
    wc filename 
    nl 
    给文件加上行号 
    nl file1 >file2 
    安全操作 
    命令名 
    功能描述 
    使用举例 
    passwd 
    修改用户密码 
    passwd 
    chmod 
    改变文件或目录的权限 
    chmod ug+x filename 
    umask 
    定义创建文件的权限掩码 
    umask 027 
    chown 
    改变文件或目录的属主 
    chown newowner filename 
    chgrp 
    改变文件或目录的所属组 
    chgrp staff filename 
    xlock 
    给终端上锁 
    xlock -remote 
    编程操作 
    命令名 
    功能描述 
    使用举例 
    make 
    维护可执行程序的最新版本 
    make 
    touch 
    更新文件的访问和修改时间 
    touch -m 05202400 filename 
    dbx 
    命令行界面调试工具 
    dbx a.out 
    xde 
    图形用户界面调试工具 
    xde a.out 
    进程操作 
    命令名 
    功能描述 
    使用举例 
    ps 
    显示进程当前状态 
    ps u 
    kill 
    终止进程 
    kill -9 30142 
    nice 
    改变待执行命令的优先级 
    nice cc -c *.c 
    renice 
    改变已运行进程的优先级 
    renice +20 32768 
    时间操作 
    命令名 
    功能描述 
    使用举例 
    date 
    显示系统的当前日期和时间 
    date 
    cal 
    显示日历 
    cal 8 1996 
    time 
    统计程序的执行时间 
    time a.out 
    网络与通信操作 
    命令名 
    功能描述 
    使用举例 
    telnet 
    远程登录 
    telnet hpc.sp.net.edu.cn 
    rlogin 
    远程登录 
    rlogin hostname -l username 
    rsh 
    在远程主机执行指定命令 
    rsh f01n03 date 
    ftp 
    在本地主机与远程主机之间传输文件 
    ftp ftp.sp.net.edu.cn 
    rcp 
    在本地主机与远程主机 之间复制文件 
    rcp file1 host1:file2 
    ping 
    给一个网络主机发送 回应请求 
    ping hpc.sp.net.edu.cn 
    mail 
    阅读和发送电子邮件 
    mail 
    write 
    给另一用户发送报文 
    write username pts/1 
    mesg 
    允许或拒绝接收报文 
    mesg n 
    Korn Shell 命令 
    命令名 
    功能描述 
    使用举例 
    history 
    列出最近执行过的 几条命令及编号 
    history 

    重复执行最近执行过的 某条命令 
    r -2 
    alias 
    给某个命令定义别名 
    alias del=rm -i 
    unalias 
    取消对某个别名的定义 
    unalias del 
    其它命令 
    命令名 
    功能描述 
    使用举例 
    uname 
    显示操作系统的有关信息 
    uname -a 
    clear 
    清除屏幕或窗口内容 
    clear 
    env 
    显示当前所有设置过的环境变量 
    env 
    who 
    列出当前登录的所有用户 
    who 
    whoami 
    显示当前正进行操作的用户名 
    whoami 
    tty 
    显示终端或伪终端的名称 
    tty 
    stty 
    显示或重置控制键定义 
    stty -a 
    du 
    查询磁盘使用情况 
    du -k subdir 
    df 
    显示文件系统的总空间和可用空间 
    df /tmp 

    显示当前系统活动的总信息
    展开全文
  • 应用软件设计简介

    千次阅读 2006-08-03 09:40:00
    Series 60 2.0 :C++应用软件设计简介 术语定义 本文将使用下列术语和缩略语。 API: 应用编程接口 AVKON UIKON 和Symbian OS 应用框架的Series 60 扩展和更改 IDE: 集成开发环境 GUI: 图形用户...

    Series 60 2.0 :C++应用软件设计简介

     

    术语定义 
    本文将使用下列术语和缩略语。 
    API
     应用编程接口 
    AVKON UIKON 
    Symbian OS 应用框架的Series 60 扩展和更改 
    IDE
     集成开发环境 
    GUI
     图形用户界面 
    OBEX 
    :对象交换-即对象转移,例如通过红外和蓝牙接口,在两个设备之间传送文件和数据 
    SDK 
    :软件开发套件 
    UI
     用户界面 
    UIKON Symbian OS 
    设备的公用UI 和控制框架 

    1 . 
    简介 
    1.1 
    目的和范畴 
        
    本文介绍了在 Developer Platform 2.0for Series 60 上使用C++开发两种不同的“ Hello World” 应用程序的方法。Developer Platform 2.0for Series 60 设备基于Symbian v7.0s 操作系统,它是一个开放的、稳定的、多任务的操作系统,专为支持数据业务的移动电话设计。Symbian 操作系统主要使用C++语言编写,同时也是第三方开发的主要选择。 
        
    本文将对Developer Platform 2.0 for Series 60 Symbian OS v7.0s 进行介绍。本文还将介绍Series 60 SDK 和相应的开发工具以及关于更多阅读材料的消息。本文假定读者不需要事先具备Symbian 操作系统的特定知识,但需要熟悉C++并已经获得了Series 60 C++的软件开发包(SDK)。

    2 . D e v e l o p e r P l a t f o r m 2 . 0 f o r S e r i e s 6 0 
        Developer Platform 2.0 for Series 60 
    是一个完整的智能电话参考设计平台,它包括大量的无线应用软件。平台建立在Symbian 操作系统(Symbian OS)之上,并附带一个可配置的图形用户界面库和一个完备的参考应用程序套件。Developer Platform 2.0 for Series 60 能够提供一组功能强大的组件和许多不同的API。所提供的API 可广泛用于“ 标准” 的应用程序套件,并且其设计目标也能满足第三方应用开发人员重复使用它们的要求。

    3 . S y m b i a n O S v 7 . 0 s 
        Developer Platform 2.0 for Series 60 
    的成功关键是Symbian 操作系统,它是该产品的基础。Symbian 操作系统是一个32 位多任务操作系统,通常,其事件异步发生,并且其应用软件之间能够相互作用。例如,一个电话呼叫可能中断用户正在编写email 消息的操作;一个用户可以在通话过程中从email 应用软件转到日历应用软件;或者一个呼入SMS 可以触发用户访问联系簿数据库,然后转发此SMS。依据平台的结构和软件设计指南,应用软件开发人员可以对智能电话用户的这些日常操作进行常规处理。 

    4 . S e r i e s 6 0 C + + S D K / S e r i e s 6 0 C + + S D K 
        Developer Platform 2.0 for Series 60 
    自带基于Symbian SDK SDK。其API 能够支持第三方使用C++开发新的Series 60 应用软件,这些应用软件可以包含在他们的产品之中或作为增值和售后市场的应用软件。为了帮助开发人员,Series 60 SDK 提供了文档、工具和示例编码,以及一个基于Microsoft Windows 的仿真器软件。SDK 是开发、测试和调试C++应用软件的必备工具。

    5 . C + + 
    应用软件范例 
        
    以下将介绍用于Series 60 设备的两个“ Hello World” 应用软件,一个控制台应用软件和一个基本GUI 应用软件。在创建这些应用软件时,需要使用Microsoft Visual C++ 6.0 (Service Pack 3),并且,由于SDK 创建系统使用Perl 脚本,因此需要安装Perl 
    5.1 Hello World 
    控制台应用软件 
        
    第一个“ Hello World” 范例是一个控制台应用软件,它由以扩展名为.exe 的单个可执行文件组 成。在Symbian 操作系统中,这样的可执行文件有两个主要目的:要么作为无用户界面的服务器,要么作为具有极简单文本界面的测试配件。通常,复杂的GUI 应用软件利用了应用软件框架和用户界面库。本文稍后将描述一个基于GUI “ Hello World” 应用软件。 
    5.1.1  
    从命令行创建和运行应用软件 
        
    打开一个命令提示符并切换到包含Series 60 SDK 的驱动器。搜索包含项目代码的文件夹,例如: 
    /Symbian/7.0s/Series60_v20/Examples/Basics/HelloWorld 
    该文件夹包含三个文件: 
    HelloWorld.cpp - 
    源文件 
    HelloWorld.mmp - 
    项目定义文件 
    Bld.inf - 
    组件定义文件 
    下面创建范例。键入: 
    bldmake bldfiles 
    此命令将产生一个新文件,即ABLD.BAT;这个命令文件总是在需要的时候产生,并且无需进行编辑。下面编译并链接项目。键入: 
    abld build wins udeb 
    这将为Series 60 调试仿真器软件创建项目。运行该应用软件: 
    在命令提示符下,搜索含有Helloworld.exe 程序的文件夹,例如: 
    /Symbian/7.0s/Series60_v20/Epoc32/Release/wins/udeb 
    在命令提示符下,键入: 
    helloworld 
    Series 60 
    仿真器启动,并且应用程序将如图所示: 
    1 控制台仿真器 
    注意该应用软件仅在等待PC 上的任何按键操作。按下任意键将结束该应用软件并关闭仿真器。 
    5.1.2 
    IDE 创建和运行应用软件 
    通常,诸如Helloworld 应用软件的项目是在Microsoft Visual C++6.0 IDE 内进行创建和运行的,如下所示。 
    如果ABLD.BAT 文件不存在(或如果.mmp 文件或bld.inf 文件已经改变),必须以键入的方式生成下面的创建命令文件: 
    bldmake bldfiles 
    接着键入: 
    abld makefile vc6 
    这将为Visual C++创建项目和工作空间文件(.dsp 文件和.dsw 文件)。它们位于 
    /epoc32/build 
    子目录结构下,例如: 
    /epoc32/build/symbian/7.0s/series60_v20/examples/basics/helloworld/helloworld/wins 
    通过打开在Visual C++中的工作空间文件Helloworld.dsw,并且按F7 键,就能在IDE 内创建应用软件,然后,按Ctrl+F5 可运行该软件。控制台仿真器将随着Helloworld 应用软件的运行自动启动。 
    5.1.3 
    控制台测试配件 
        
    请注意,Helloworld.cpp 文件中的项目代码很简单,它实现了一个称为doExampleL()的单一函数功能,该函数被头文件CommonFramework.h 中定义的函数callExampleL()调用。该文件是提供的Series 60 SDK 中的一个部分,并且在一般开发工作中,非常适用于基于控制台的测试配件。由于不需要加载GUI 库,控制台应用软件和仿真器启动非常快。控制台软件主要的缺陷(除界面简单外)是在仿真器中只能同时运行一个应用软件。
    5.2 Hello World GUI 
    应用软件 
        
    为了改善应用软件的可维护性和灵活性,Symbian 操作系统下的应用软件通常被分为两个主要部分:引擎部分,也就是众所周知的软件模型,和用户界面(UI)。引擎部分包括了用于描述应用软件数据、算法和任何数据持续性的数据结构。用户界面(UI)通常又被分为数据的屏幕显示和一个决定应用软件整个运行行为的处理程序。本文稍后将对Symbian 操作系统GUI 应用软件中的四个关键的类进行详细的讨论。 

    5.2.1 
    从命令行创建和运行应用程序 
        
    打开一个命令提示符并切换到包含Series 60 SDK 的驱动器。搜索包含项目定义(.mmp)和组件定义文件(bld.inf)的文件夹,例如:/Symbian/7.0s/Series60Ex/HelloWorldBasic/group. 
    下面创建范例。键入: 
    bldmake bldfiles 
    此命令将产生一个新文件,即ABLD.BAT;这个命令文件总是在需要的时候产生,并且无需进行编辑。 
    下面编译并链接项目。键入: 
    abld build wins udeb 
    这将为Series 60 调试仿真器软件创建项目。 
    下面在命令提示符下运行该应用软件。键入: 
    epoc 
    Series 60 
    调试仿真器将启动,并且 Series 60 系统的外壳如图所示。使用仿真器面板上的方向键或PC 机上的方向键能够寻找到HelloWorldBasic 应用程序,然后,按下方向控制键中间的执行按钮即可调用该应用程序。 
    5.2.2 
    IDE 构建和运行应用软件 
    通常,诸如HelloWorldBasic 应用软件的项目是在Microsoft Visual C++6.0 IDE 内进行创建和运行的,如下所示。 
    如果ABLD.BAT 文件不存在(或如果.mmp 文件或bld.inf 文件已经改变),必须以键入的方式生成下面的创建命令文件: 
    bldmake bldfiles 
    接着键入: 
    abld makefile vc6 
    这将为VisualC++创建项目文件和工作空间文件(.dsp 文件和.dsw 文件)。它们位于/epoc32/build 子目录结构下,例如: 
    /epoc32/build/symbian/7.0s/Series60Ex/helloworldbasic/helloworldbasic/wins 
    通过打开在Visual C++中的工作空间文件Helloworld.dsw,并且按F7 键,就能在IDE 内创建应用软件,然后,按Ctrl+F5 可运行该软件。一旦需要执行文件,可在SDK 根目录下文件夹/Epoc32/Release/wins/udeb 中找到Epoc.exe。这样就能够启动调试仿真器,这也是开发项目的缺省方法。 
    Series 60 
    调试仿真器将启动,并且 Series 60 系统的外壳如图所示。使用仿真器面板上的方向键或PC 机上的方向键能够寻找到HelloWorldBasic 应用程序,然后,按下方向控制键中间的执行按钮即可调用该应用程序。 
    除此之外,通过按下调试器的F5 键,也可以运行应用软件。不要理睬关于Epoc.exe 程序无调试信息的告警提示。 注意:是应用软件(本质上是一个DLL),而不是仿真器软件本身需要调试。在告警提示的小方块中打勾,以便以后不再显示此项目的告警提示。应用软件和其相关的调试信息位于 
    Epoc32/Release/wins/udeb/z/system/apps/HelloWorldBasic. 

    5.3 
    应用软件UI 元素 
      
    状态框是靠近屏幕顶部的实条(蓝色)加上其上部的区域。主框是状态框和位于屏幕底部的软键标记之间的中间部分。控制框是包括软键标记在内的紧接着主框下的区域。 
    “ Hello world” 
    应用软件 
    状态框显示了当前应用软件和当前状况的状态信息,以及关于设备状态的一般信息,如信号强度 
    和电池充电状态等。它占据屏幕的顶部。在一些应用软件中或某些情形下,如在游戏软件中,状 
    态框是不可见的。 
    主框是屏幕的主要区域,应用软件在此显示其数据。通常该区域指客户矩形框,将被一个应用软件视图完全占据。 
    控制框占据屏幕的底部并显示与两个软键有关的标记。 
    控制框下的两个按钮为左软键和右软键,它们用于选择当前关联的选项菜单或标记操作。四方向的导航键可以进行上、下、左、右滚动,或按下中心部位进行选择操作。

    5.4 Symbian OS 
    下的应用软件架构 
        UIKON 
    和标准EIKON 是应用软件框架的关键部分。它们不仅提供了启动应用程序的框架,而且 
    提供了一组丰富的标准控制组件(如:对话框、数字编辑器、日期编辑器等),这些组件是应用 
    软件在运行时需要使用的。一个典型的为Symbian OS 编写的应用软件实际上由四个独特的组件,每个组件对应UIKON/EIKON 框架内的相应类。它们是: 
    应用软件外壳― ― CEikApplication 派生而来。该类首先被框架实体化。在被创建之后,它就负责对其它代码进行初始化。然后,就创建出新的CEikApplication 派生类。 
    文档― ― CEikDocument 派生而来。所有应用软件都有一个CEikDocument 派生类,并在应用软件首次运行时由缺省CEikDocument 创建一个缺省文档文件。但不是所有应用软件都基于文件。即它们可能没有必要向提供用户创建、打开或编辑文档的功能。在这种不基于文件的应用软件中,例如如电话应用软件,文档类的实例是一个为创建一个AppUi 类实例需要的外壳,通常,它是一个模型/引擎 
    实例。在基于文件的应用软件中,文档类也能够对永久存取器的数据存储和恢复进行管理。 
    应用软件的UI― ― Uikon CEikAppUi 派生而来。该类提供了所有应用软件的主要功能,诸如事件处理,控制生成,访问许多有用系统的调用等等。通常, CEikAppUi 派生类负责创建一个或多个应用软件视图。 
    视图― ― 提供用户实际在屏幕上看到的情景。所有应用软件都有一个缺省的视图,一些较复杂的应用软件,如日历应用应用软件,能提供多个视图。视图仅仅用于显示数据(如HelloWorld 内所示)或在交互式的应用软件中从用户收集数据。例如,在许多数据输入应用软件中,数据编辑器仅仅是视图中包含的Uikon 所提供的标准控件。在大多数的应用软件中,视图都由CCoeControl 派生而来的,即它们自己本身就是控件 

    5.5 Series 60 
    应用 软件框架 
        Avkon 
    是一个专用于Developer Platform 2.0 for Series 60 UI 层。它提供了大量的用户界面组件,并实现许多由UIKON  标准EIKONK 框架基类派生的类,而UIKON EIKON 标准框架基类可以提供Avko 应用软件特性和Developer Platform 2.0 for Series 60 的行为特征。 
    ? CAknDocument
    -该类是以一个基类的形式提供给应用软件文档的,它由CEikDocument 派生而来。利用该类,不需要启动就可以访问缺省应用软件文档文件。这种情况对大多数Avkon 应用软件是适宜的。当CEikDocument 类被用作应用软件文档的基类时,在缺省情况下,Avkon 不能进行文档文件的创建。 
    ? CAknAppUi
    Avkon 应用软件(视图结构应用软件除外)由此类派生。该类支持多个Avkon 特有的功能: 
    支持KeySound 
    CBA StatusPane 提供附件 
    ? TextResolver
    -从CAknAppUI::HandleError()Avkon 特定的错误报告 
    ? Avkon 
    视图结构集成 
    ? Control dumping
    -调试功能
    CAknViewAppUi 
    所有基于视图结构(参见下面的可选GUI 设计)的应用软件都必须由此类派生,而此类派生于CAknAppUi。应用软件视图可以由CAknView 派生而来。 
    应用软件启动― ― 一个CeikApplication 类由 CAknApplication 派生而来。该类通过重载PreDocConstructL()OpenIniFileLC(RFs& aFs)CEikApplication 进行修改。重载PreDocConstructL 可以确保被创建的应用软件实例不会已经出现。如果已经出现,则应用软件就切换到现有的实例并退出。这种检查操作只针对非嵌入应用软件。在缺省情况下下,Series 60 应用软件不支持.ini 文件。OpenIniFileLC()被重载为一个简单实施,即一旦被调用就退出。当使用.ini 文件时,应用软件就必须实施应用软件类中的这一方法,以便调用CEikApplication::OpenIniFileLC  <BR< p>

    5.6 可选的GUI 设计 
        
    应用软件的UI 可以简单得只有一个主屏幕,如计算器应用软件,或者包括多个屏幕的较复杂的应用软件,如消息应用软件。因此,经过挑选,可以采用下面三种结构方法来编写应用软件的GUI 
    传统的Symbian 操作系统控制结构― ― 派生于CCoeControl 的视图 
    基于对话框的结构― ― 所有派生于对话框类的视图 
    视图结构――视图切换,其中应用软件的试图由CAknView 派生而来。 
    应用软件结构的选择依赖于应用软件的复杂度、视图浏览、通信需求和屏幕布局的要求。无论选择那种结构,每个应用软件的顶层应用UI 类均从一个单应用软件UI 基类派生而来。基类并不强迫对UI 结构的任何选择,而这些选择必须由开发人员确定。 
    一直以来,Symbian 操作系统下的应用软件均采用由CCoeControl 派生的定制视图控件来编写,这些控件放置在应用软件控制堆栈之上,以便作为应用软件的视图。这些控件可以根据应用软件要求进行创建、终止、显示和隐藏,以便提供适当的行为。这种方法非常适合Avkon 中的应用软件。因为许多Avkon 应用软件将基于现有的以传统方法编写的UI,所以采用与Avkon 相同的方法是顺理成章的。

    5.7 UI 
    的风格 
        
    应用软件的视图、菜单和对话框等的实际外观可以按照Series 60 UI Style Guide进行较为专业的设计,该指南是Series 60 SDK 文档的一个部分。

    5.8 Series 60 
    应用软件Wizard 
        
    开发人员可能希望使用控制台HelloWorld 应用软件作为一个测试工具的基础,或者将GUI 版本 
    作为应用软件的起点。 
    另外,Series 60 AppWizard(包括在Series 60 SDK 之中)能够为开发人员提供了一个简单而方便的方法,以便在Visual Studio 内产生一个基本的GUI 应用软件项目。该应用软件Wizard 能够产生符合上述的三种UI 结构之一的项目。 
    AppWizard 
    将产生: 
    四个基类(App, AppUI, Document  View)的代码段和说明,这些基类与大多数Symbian 操作系统下应用软件是关联的 
    所有构建项目所需的构建和项目文件 
    简单的资源文件和用作缺省应用软件图标的位图 
    将应用软件安装到设备上需要的文件 
    AppWizard 
    的使用方法将在 “ Series 60 AppWizard Installation & User’ s Guide” Series 
    60 SDK 
    文档中有更为深入的描述。

    5.9 GUI 
    应用软件的项目文件 
        
    开发人员必须为每个开发项目生成组件定义(bld.inf)文件和一个项目定义(.mmp)文件。一个项目 
    必须具有一个bld.inf 文件并与一个或多个.mmp 文件关联,即一个文件对应一个组件。简单项目只 
    具有单个组件,如一个用于应用软件的.mmp 文件的引用。在诸如DLLs 这种除应用软件外还包括 
    其它组件的较复杂的项目中,将会存在多个.mmp 文件。工具链利用组件定义文件和项目定义文件 
    创建一个构建文件(ABLD.BAT)。该文件可有多种用途,例如,为Visual C++开发环境创建其它 
    项目和工作空间文件,或者为调试或正式版本的模拟器或目标设备创建项目。 
    如需获得更详细的有关bld.inf  .mmp 文件的语法描述,请参见Series 60 SDK 文档。 
    5.9.1  bld.inf 
    PRJ_MMPFILES 
    // Specify the .mmp files required for building the important component 
    // releasables. 
    /Symbian/7.0s/Series60_v20/Series60Ex/HelloWorldBasic/group/HelloWorldbasic.mmp 
    以上的组件定义文件(bld.inf)范例涉及到的文件是单个项目定义文件,即HelloWorldBasic.mmp。对于一个简单的应用软件或单个组件来说,通常所有定义都存放在一个bld.inf 文件中。 
    5.9.2 HelloWorldBasic.mmp 
    下面列出了HelloWorldBasic.mmp 文件的关键部分,并提供了对其主要声明语句的简短解释。一个项目定义(.mmp)文件能够定义平台中的项目特性和编译器不受约束的方式;然后, SDK 创建工具(abld.bat)将使用它为一些特殊平台产生特定的生成文件。 
    TARGET HelloWorldBasic.app 
    TARGETTYPE app 
    UID 0x100039CE 0x10005B91 
    TARGETPATH /system/apps/helloworldbasic 
    SOURCEPATH ../src 
    SOURCE HelloWorldBasic.cpp 
    SOURCE HelloWorldBasicApplication.cpp 
    SOURCE HelloWorldBasicAppView.cpp 
    SOURCE HelloWorldBasicAppUi.cpp 
    SOURCE HelloWorldBasicDocument.cpp 
    SOURCEPATH ../group 
    RESOURCE HelloWorldBasic.rss 
    USERINCLUDE ../inc 
    SYSTEMINCLUDE /epoc32/include 
    LIBRARY euser.lib 
    LIBRARY apparc.lib 
    LIBRARY cone.lib 
    LIBRARY eikcore.lib 
    LIBRARY avkon.lib 
    ? TARGET 
    是应用软件的名称。 
    ? TARGETTYPE 
    app,即GUI 应用软件。 
    ? TARGETPATH 
    指应用软件和其组件的所在位置― ― 通常在/system/apps/TARGETPATH 目录下。 
    ? UID 
    行为GUI 应用软件指定了一个唯一的系统识别符是0x100039CE 以及为应用软件本身指定的识别符是0x10005B91 
    ? SOURCE
    SOURCEPATHUSERINCLUDE SYSTEMINCLUDE 声明语句均是指源文件,这些源文件是用于具有源文件以及应用软件和系统头文件的路径信息的项目的。 
    ? RESOURCE 
    声明语句是指用来定义大多数用户界面元素如菜单、对话、字符串等的源文件。 
    ? LIBRARY 
    声明语句列举了为链接一个GUI 应用软件所需的应用软件框架和图形库。 
    ? AIF 
    声明语句是指包括图标和其它在应用软件资源文件中定义的应用软件特性的一个应用软件信息文件― ― 这些内容在稍后的章节6.2.1 节中将有更多的说明。
    5.10 
    资源文件 
        
    Symbian 操作系统中,资源文件(如HelloWorldBasic.rss)被用来定义GUI 应用软件在屏幕 
    上的显示方式。很多用来定义应用软件的外观、行为和功能的信息都能够存储在一个资源文件 
    中,程序主体以外的东西,从状态框、菜单和热键到各个对话框等所有事件都能在源文件中进行 
    定义。各个资源文件能够在运行时根据需要进行非常有效的装载,因此所需的存储空间能够保持 
    在最小水平。 
        
    应用软件资源文件是用文本脚本文件(通常以.rss 为扩展名)定义的,在创建时,它们被编译和 
    压缩成二进制文件(在缺省情况下以.rsc 为扩展名),以便在运行时使用。资源文件在未对主程 
    序再编译的情形下就可以进行本地化。为了简化本地化的难度,所有的用户界面文本通常都被分到 
    独立的头文件中(习惯上以.loc 为扩展名),该头文件包含在主源文件内。.loc 文件需要送出, 
    以便将其翻译成各种不同的语言。 
        
    资源文件起初看起来比较复杂,但它们会逐步地变得简单易懂。在Series 60 SDK 中可查阅关 
    于应用软件资源文件的全面解释和范例。

    5.11 
    源文件 
        
    以下文件构成了应用软件源文件的主体部分。 
    HelloWorldBasic.cpp -DLL 
    入点 
    HelloWorldBasicApplication.cpp -
    应用软件 
    HelloWorldBasicAppUi.cpp -
    应用软件的UI 
    HelloWorldBasicDocument.cpp -
    文档 
    HelloWorldBasicAppView.cpp - 
    视图 
    HelloWorldBasic.rss― ― 
    包含许多UI 定义的标准资源文件。该文件被资源编译器使用,而资源编 
    译器会在源文件编译前自动地被调用(仅当资源编译器最后一次运行之后资源文件被更新过)。资 
    源编译器的输出结果通常是一个二进制文件,在运行时,该文件被用来提供所需的资源信息,例 
    如,HelloWorldBasic.rsc 
    HelloWorldBasic.uid.cpp― ― UID 
    源文件,由创建工具自动生成,这些创建工具位于 
    /epoc32/build/symbian/7.0s/series60_v20/series60ex/helloworldbasic/group/helloworldbasic/wins 
    的文件夹下。开发人员不应对该文件进行编辑。 

    5.12 
    头文件 
        HelloWorldBasic.hrh― ― 
    包含了一些既在源文件(.cpp)又在资源文件(.rss)中用到的UI 控制列
    举常量的定义。这些常量是专门为应用软件设置的命令ID、按键ID 或视图ID。它们可以用于对话 
    中的键盘处理或命令处理。目前,范例HelloWorldBasic 应用软件只有一个ID,即: 
    EHelloWorldBasicCommand1 
    值得注意的是avkon.hrh(位于/Epoc32/Include 目录下)包含许多由Series 60 UI 框架定义的枚 
    举常量,对于Series 60 应用软件而言,该文件很重要。例如,定义的常量之一是EAknCmdExit,而应用软件的菜单选项Exit 总能够生成该命令。在应用软件结束时(例如,为了系统备份)由框架传递的标准值是如在uikon.hrh 定义的EEikCmdExit 
    HelloWorldBasicApplication.h 
    HelloWorldBasicApplication.cpp 的头文件 
    HelloWorldBasicAppUi.h 
    HelloWorldBasicAppUi.cpp 的头文件 
    HelloWorldBasicAppView.h 
     HelloWorldBasicAppView.cpp 的头文件 
    HelloWorldBasicDocument.h 
     HelloWorldBasicDocument.cpp 的头文件 
    6 . 
    可执行文件和位置 
    本节描述由创建程序生成的可执行文件,也就是每个文件的类型和用途以及其在模拟器和目标设 
    备上的位置。 
    6.1 HelloWorld 
    控制台应用软件文件 
    Series 60 模拟器上,HelloWorld 控制台应用软件由一个可执行文件组成,即 
    HelloWorld.exe
    。该文件的调试版本是在文件夹/Epoc32/Release/wins/UDEB 中生成的,而发行 
    版本是在文件夹/Epoc32/Release/wins/UREL 中生成的(模拟器一般不生成发行版本) 
    在模拟器中,这些位置对于正确执行.exe 文件是至关重要的。在目标设备中,依据惯例,可执 
    行文件.exe 应放置在文件夹/system/programs 中,但它们可从任何位置执行。然而,目标设备 
    的消息收信箱可能会识别出以呼入消息附件形式的Symbian OS 可执行文件格式,但出于安全 
    考虑,不要打开消息和其附件。 
    6.2 HelloWorldBasic GUI 
    应用软件文件 
    一个最小的GUI 应用软件至少由两个文件组成,它们是.app 文件和 .rsc 文件 (例如, 
    HelloWorldBasic.app 
     HelloWorldBasic.rsc) HelloWorldBasic.app 文件是可执行的应用软 
    件,即由编译和链接程序生成的结果;HelloWorldBasic.rsc 文件是由资源编译器生成的二进制资 
    源文件。通常,应用软件也具有一个应用软件信息文件(.aif),它包含其支持语言的图标和字幕, 
    以及应用软件的性能,例如其是否支持嵌入等功能。如果没有.aif 文件,应用软件仍然可以执 
    行,但系统将为应用软件赋予一个缺省的图标,应用软件的其它属性也将由系统设置为缺省值。 
    如果已经指定了一个字幕资源文件,则将生成一个附加的安装文件 
    HelloWorldBasic_caption.rsc
    。参见后面的 ‘ AIF 文件’ 章节下的“ 字幕” 部分。 
    Symbian 操作系统中, GUI 应用软件是动态链接库 (DLL) 的一种特殊形式,其文件后缀 
    .app 操作系统提供了一个特殊框架用来加载和正确地初始化GUI 应用软件。开发人员必须 
    遵守该框架的要求,而且必须提供许多纯虚函数的实现方法以确保应用软件能够正确地启动。另 
    外,在非强制的情形下,可能还需要提供许多其它虚函数的实现方法,以实现开发人员要求的特 
    定功能。 
    为使所有GUI 应用软件能够被系统自动识别,它们应遵守文件放置的惯例,即文件应放置在诸 
    /system/apps/appname/的文件夹中。因此在HelloWorld 范例中,以上描述的文件,即 
    HelloWorldBasic.app 
    HelloWorldBasic.rsc 应放置在/system/apps/HelloWorldBasic/ 文件夹 
    中。 
    为了使特定的应用软件能够正确运行,许多其它文件是至关重要的,例如,可能需要一个压缩的 
    多位图文件 (.mbm),以及一个特定的数据文件等。通常,这些必需的文件和关键的应用软件文 
    件放置在同一位置,即放置在 /system/apps/appname/中。 
    6.2.1 AIF 
    文件 
        
    应用软件信息 (.aif)文件是在运行过程中使用的,并且它能够存储应用软件相关的数据。 
    这些数据包括: 
    系统用于表示应用软件的各种尺寸的图标,所支持语言的字幕,应用软件的功能,例如文档嵌入、新文件创建、文件是否隐藏、MIME 类型的支持优先级等。
    每个应用软件应拥有一个信息文件 (.aif 文件),此文件用于包含与应用软件关联的一个位图和字幕。如果没有.aif 文件,则应用软件将使用缺省图标,并且不支持将应用软件名作为字幕(没有文件扩展名)、MIME 类型和嵌入等功能。可由Series 60 SDK 提供的AIF 创建工具单独创建应用软件。AIF 创建工具能够以.aifb 扩展名来保存.aif 定义的细节。 
    .aif 
    文件的组成内容也可在资源脚本文件(以.rss  扩展名)中手工定义,例如, 
    HelloWorldaif.rss 
    ,并且可使用Aiftool 工具套件进行编译。关于Aiftool 工具套件和.aif 脚本文件语法的说明均包含在Series 60 SDK 文档中。

    6.2.1.1 
    图标 
        
    当应用软件被嵌入或在应用软件shell 中显示时,图标可用于表示应用软件和与它们相关 
    的文件/文挡。提供的图标可能有各种尺寸,而被显示的图标是在当前容器缩放状态下尺 
    寸最合适的图标。提供各种尺寸图标将有利于确保图标在特定尺寸下显示时不用动态缩 
    因为在对尺寸较小的位图进行缩放时,其图象质量通常会显著地下降。 
    AIF Builder 
    可以运行图标设计工具,此设计工具可生成构成图标的位图和肖像。AIF  
    标设计工具能够帮助设计出专门针对Symbian 操作系统的位图文件格式的图标,此格式 
    称为多位图文件格式(.mbm) 
    Developer Platform 2.0 for Series 60: C++
    应用软件设计简介
    如果应用软件要求为不同的语言提供不同的图标位图,则实现的方法是,通过Aiftool 生成.aif 文件的多份拷贝,并且每个文件包含正确的位图。每个生成的.aif 文件需要进行本地化,在保存文件时,将其后缀名设置为aXX,其中XX 是对应相应语言的两位语言代码。此时,应用框架 (AppArc)软件已经被更改,以便加载与用户选取的当前语言相应的aif 文件。

     

    6.2.1 .2 字幕 
        Avkon 
    能够为每个应用软件提供一行简短字幕。在缺省情况下,这些字幕与.aif 文件中的字幕是相同的。尽管如此,应用软件的开发人员可以对不同语言产生独立的字幕文件,这些文件将包含一般字幕和简短字幕。简短字幕能够用于应用软件的栅格显示,而较长字幕可以用于应用软件的列表显示。字幕文件的生成方式与正常的资源文件相同。用于创建字幕文件的资源结构是在apcaptionfile.rh 中定义的。 
    6.2.1.3 MIME 
    支持 
        
    多用途因特网邮件扩展(MIME)定义了传输非文本数据的文件格式,例如,这些文件包括通过因特网传输的图像、音频和传真等。一个Symbian 操作系统下的应用软件能够在.aif 文件中定义其支持的MIME 类型,以及每种类型分配的支持优先级。关于 .aif 文件的更多信息,请参见Series 60 SDK文档。

    7 . 
    S e r i e s 6 0 设备创建可执行代码 
        Series 60 
    目标设备的构建在命令行状态下进行,通过调用GCC 交互-编译器能够创建ARM  
    进制格式的可执行文件。为了创建目标硬件的可执行代码,需打开命令提示符窗口,并且寻找到 
    GUI HelloWorld 
    项目的群目录,然后输入以下命令: 
    bldmake bldfiles 
    abld build armi urel 
    以上命令将通过GCC 工具链,使创建系统能够产生在目标设备上可执行的应用软件ARMI 版本 
    代码。这些步骤包括C++ 编译、链接、资源编译和.aif 生成。 
    可执行和数据文件(HelloWorldBasic.app, HelloWorldBasic.rsc) 将置于../epoc32/release/armi/urel 
    之下。 为了在Series 60 设备上进行测试,这四个文件需要传输至相应的设备,并放置在文件夹 
    /system/apps/HelloWorldBasic/ 
    中。关于进行文件传输的选项,参见本文下面章节“ 应用软件安 
    ”  
        
    关于其它创建类型和选项的更多细节,请参见Series 60 SDK 文档。

    8 . 
    S e r i e s 6 0 设备上执行 
        
    关于文件传输、PC 连接以及应用软件安装的选项,可能根据所使用的Series 60 设备具有的特 
    定软件和硬件会有所不同。 
    8.1 SIS 
    文件安装 
    Symbian 
    安装系统能够为Symbian OS 电话的应用软件、数据和配置信息的安装,提供简单一 
    致的用户界面。开发人员(或最终用户)可以安装组件,这些组件已经打包于SIS (.sis) 文件中。 
    下面是三种可能的安装选项: 
    通过调用在PC 上的SIS 文件进行安装,然后通过PC 和电话之间的红外或蓝牙接口将应用软件安装到电话上。 
    通过OBEX、红外或蓝牙接口,从另外设备,例如PC、其它Symbian OS 的电话或任一支持OBEX 的设备传输SIS 文件,使用电话中的 “ Application Controller” 选项进行应用软件的安装。 
    另外,SIS 文件可以作为e-mail 的附件进行传输,这样通过电话的“ Application Controller” 选项,可进行应用软件的安装。然而,目标设备的消息收信箱可能会认可以呼入消息附件形式的Symbian OS 可执行文件格式,但出于安全考虑,不要打开消息和其附件。安装之后,电话上将保留一个小的 “ 残留.sis 文件” ,如果以后需要的话,它可以用于应用软件的卸载控制。 
    8.2 SIS 
    文件创建 
    SIS 
    文件是由Makesis 工具从输入(.pkg)文件中创建的,例如输入文件为HelloWorldBasic.pkg.pkg 文件是一个包含应用软件或文件安装信息的文本文件。它可手工创建,或由Series 60 SDK 提供的Sisar 工具创建。 Sisar 能够将所有应用软件文件打包为一个.sis 文件,以简化应用软件安装到目标硬件的过程。Sisar 可读入手工创建的.pkg 文件。 
    注意在.pkg 文件中,需要包含一个 Series 60 平台的识别码。这样可产生一个内置机制,使得用 
    户试图在Series 60 设备上安装非Series 60 应用软件时产生告警。关于这个要求的更为完整解 
    释和实施细节,请参见: 
    http://www.forum.nokia.com/symbian 
    相关文档的标题为 “ Series 60 Platform Identification Code” 

     

    展开全文
  • 浙00898# 互联网软件应用与开发试题 第PAGE1页 共NUMPAGES5页 互联网软件应用与开发复习题二 一单项选择题 1下列软件生存周期阶段中属于软件开发期的是 A A测试 B.问题定义 C.需求分析 D.运行与维护 2UML中常用的图...
  • 与嵌入式软件开发工程师(BSP)的题目类型来说,多媒体&智能应用的笔试题在前面的选择题上类型差不多,主要是两条简答题。前者是偏向于Linux驱动方面,后者是偏向于视频/音频的采集或者编码方面。总体来说,大差...

    与嵌入式软件开发工程师(BSP)的题目类型来说,多媒体&智能应用的笔试题在前面的选择题上类型差不多,主要是两条简答题。前者是偏向于Linux驱动方面,后者是偏向于视频/音频的采集或者编码方面。总体来说,大差不差。

     

    选择题

    1、下面的C程序在Linux下使用gcc编译成功后变量k处于()中。

    int j = 100;
    
    int main(int argc, char **argv)
    {
    	static k = 0;
    	int i = 0;
    	for (i = 0; i<j; i++) {
    		k += i;
    	}
    
    	return 0;
    }

    text段

    data段

    bss段

    KEY:B

    2、下列表达式中a的值为多少?

    int a=(3!=2);

    1

    0

    3

    2

    KEY:A

    3、下列表达式中a的值是多少?

    char test[8] = { 0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08 };
    int *test_p = (int *)test;
    int a = test_p[1];

    0x08070605

    0x04030201

    0x05060708

    0x01020304

    KEY:A

    4、以下对字符串数组test赋值方式错误的是()。

    char test[]={'t','e','s','t'};

    char test[10]="test";

    char test[10]; strcpy(test,"test");

    char test[10]; test="test";

    KEY:D

    5、设有下列语句,下列选项中对数组元素正确的引用是()。

    char a[9] = { 'H','I','K','V','S','I','O','N' };
    char *ptr = a;

    *(ptr+5)

    ptr+5

    ptr[a]

    a[ptr]

    KEY:A

    6、下面程序的输出值,正确的是()。

    #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
    	int m;
    	unsigned int a[20];
    	unsigned int *p;
    
    	m = 10;
    	p = a;
    	*(p++) = m++;
    	*p = m;
    	printf("%d %d\n", a[0], a[1]);
    
    	return 0;
    }

    11 11

    10 10

    10 11

    11 10

    KEY:C

    7、下列运算的结果是多少?

    int a = 30 + 20 % 3 * 2;

    4

    42

    34

    64

    KEY:C

    8、在C语言程序中,下列运算后n的值是多少?

    int n = 0;
    int f = 17;
    n = 4 * f % 3 + 1;

    9

    0

    2

    3

    KEY:D

    9、设有如下的宏定义,则执行语句后的输出是()。

    #define f(x) (x*4)
    printf("%d\n", 2 * f(5 + 3));

    52

    22

    34

    64

    KEY:C

    10、设有如下的宏定义,则执行语句后a的值是()。

    #define TEST(a,b) a*b
    int a = TEST(1 + 2, 3);

    3

    7

    2

    9

    KEY:B

    11、如下哪种存储空间数据访问效率最高()。

    Flash

    片内RAM

    不可Cache内存

    可Cache内存

    KEY:D

    12、以下关于信号量描述错误的为()。

    信号量只能在线程之间共享

    不允许销毁一个正在等待的信号量

    用户态使用的信号量分为POSIX信号量和SYSTEM V信号量

    信号量有两种基本操作:V操作,信号量加1;P操作,信号量减1(如果信号量为0,则阻塞)

    KEY:A

    解答:在 Linux 上,在相同进程的不同线程之间,则只使用 POSIX 信号量;在进程之间,可以使用 System V 信号量。

    13、操作系统在运行过程中,不断地选择新进程运行来实现CPU的共享,但其中()不是引起操作系统选择新进程的直接原因。

    有新进程进入就绪队列

    运行进程的时间片用完

    运行进程出错

    运行进程要等待某一事件发生

    KEY:A

    14、Linux进程间通信方试中,如下哪一种最常用且最高效?

    FIFO

    消息队列

    共享内存

    管道

    KEY:C

    解答:为什么共享内存最高效?

    消息队列和管道基本上都是4次拷贝,而共享内存(mmap, shmget)只有两次。

    • 4次:1,由用户空间的buf中将数据拷贝到内核中。2,内核将数据拷贝到内存中。3,内存到内核。4,内核到用户空间的buf;
    • 2次: 1,用户空间到内存。 2,内存到用户空间。

    15、什么是临界区?

    程序中访问共享资源的片段

    其他都不对

    程序结束运行即将退出的地方

    程序开始运行的地方

    KEY:A

    16、冒泡排序时间复杂度和空间复杂度分别是()。

    2*n、2

    n*n、2

    n*n、1

    2*n、1

    KEY:C

    17、层序遍历的基本思路是:从二叉树的根节点开始,层数依次从1到n层,每层都从左儿子到右儿子遍历,依次按照层顺序遍历。下列序列都是经过层序遍历完全二叉树的结果,其中是堆的序列是()。

    94、21、36、28、57、73

    21、28、57、36、94、73

    21、36、73、28、57、94

    94、57、36、28、73、21

    KEY:B

    18、以下关于队列和栈的说法不正确的是()。

    队列操作中,仅有入队和出队

    设计队列和栈,均可以采用数组和链表的方式

    可以使用队列模拟栈的操作

    函数调用参数环境的保存,应用的是栈的操作

    KEY:A

    19、下列数据结构可以通过任意元素找到目标元素的结构是()。

    顺序链表

    双链表

    单链表

    静态链表

    KEY:B

    20、下面不属于cache的映射方式的是()。

    full-associative(全关联)

    direct-mapping(直接映射)

    indirect-mapping(间接映射)

    set-associative(组相关)

    KEY:C

    解答:cache是一种高速缓冲寄存器,是为解决CPU和主存之间速度不匹配而采用的一项重要技术。主存与cache的地址映射方式有全相联方式、直接方式和组相联方式三种:

    • 直接映射(direct-mapping):将一个主存块存储到唯一的一个Cache行;
    • 全相联映射(full-associative):可以将一个主存块存储到任意一个Cache行;
    • 组相联映射(set-associative):可以将一个主存块存储到唯一的一个Cache组中任意一个行。

    参考链接:Cache 三种的映射方法

    21、能在Linux内核态执行的是?

    进程调度

    缺页异常

    时钟中断

    命令解释

    KEY:ABC

    22、在程序执行过程中,该程序的某一个函数func()中申请的static型变量V有以下哪些特性()。

    V仅能被func()使用

    V存在于整个程序执行过程

    V存在于func()被调用期间

    V能被整个程序使用

    KEY:AB

    23、下面关于Heap和Stack内存空间描述正确的是()。

    程序运行过程中函数调用时参数的传递在Stack上进行

    Stack的空间由操作系统自动分配/释放

    C中的malloc函数分配的内存空间在Stack上

    Heap上的空间手动分配/释放

    KEY:ABD

    24、有函数fun()定义如下,在main函数调用fun函数执行过程中,使用了哪些函数参数传递方式?

    int fun(int a[], short *ptr, int &c){
            ...
    }

    数组传递

    指针传递

    引用传递

    值传递

    KEY:BC

    25、以下关于进程和线程的描述正确的有()。

    进程切换比线程切换的开销更小

    每个线程拥有自己的堆栈和局部变量

    线程是程序执行的最小单位

    进程有独立的地址空间,而线程没有

    KEY:BCD

     

    简答题

    1、录像存储是DVR/NVR产品中一个非常重要的功能,客户对产品的存储能力非常看重。假设存储需求总量=通道数*录像码率*录像时间:已知通道数=16,各个通道的录像码率都是4Mb/s,预期录像时间为一个月(按照30天计算),请问客户至少需要多大的硬盘?

    解答:30*24*3600*4*16=165888000Mb=162000Gb

     

    2、假定我们采用32k的采样率,对音频进行采样,采样精度为16bit,双声道。请问每秒的数据量是多少字节?如果将上面采样的数据,按照20ms作为一帧,则每帧数据量是多少字节?如果采用I2S总线传输,请问I2S中串行时钟(SCLK)的频率至少应为多少?

    解答:1秒钟的数据量:32000*16*2=1024000bit=128000字节;1帧的数据量:128000/(1000/20)=2560字节;SCLK频率:2*32000*16=1024000Hz

     

    展开全文
  • 如何上传应用软件到 Android Market集市网站 如果你开发完成一个 Android应用程序,希望发布到 Android Market集市网站上销售,要进行下列 3个步骤才可以发布你的 Android应用程序。 1.注册成为一个开发者且...

     如何上传应用软件到 Android Market集市网站


    如果你开发完成一个 Android应用程序,希望发布到 Android Market集市网站上销售,要进行下列 3个步骤才可以发布你的 Android应用程序。

    1.注册成为一个开发者且取得开发账号,以信用卡支付 25美元的注册费。

    2.签署、上传和描述你的 Android应用程序功能和应用范围。

    3.发布你的

    Android应用程序。

    申请成为一个开发者,请先进入下列网站的网址,如图 1-10所示。

    http://market.android.com/publish/signup

    http://images.51cto.com/files/uploadimg/20110529/154315996.jpg

    进入这个网页前,你要先申请一个 Google账号,进入“注册成为一个开发者”网页,输入基本数据后,单击“Continue”按钮,Google会请你缴纳 25美元的注册费,并要求你使用信用卡在 Google Checkout支付。将来在 Android Market集市网站销售的所得,其中 70% 会归你所有,另外的 30% 必须用来支付通信商和电子收费商 Google Checkout的手续费,这是 Android Market商业营利运作模式。另外,开发人员可以在自己的 Android Market开发网页上看见自己所销售的 Android应用程序被下载的次数和用户的评审意见。

    从下列开发网站的网址,可以获得更多关于如何管理和发布你的 Android应用程序的信息。

    http://developer.android.com/guide/publishing/app-signing.html

    在“Publishing”窗口会有下列 4项详细说明。

    签署你的 Android应用程序

    版本控制管理你的 Android应用程序

    准备发布前的注意事项

    发布你的 Android应用程序

    展开全文
  • 【最全】软件测试基础理论选择题(含答案)

    万次阅读 多人点赞 2020-03-05 19:17:40
    D、找出软件中全部错误 【答案】B 2、下面说法正确的是( ) A、经过测试没有发现错误说明程序正确 B、测试的目标是为了证明程序没有错误 C、成功的测试是发现了迄今尚未发现的错误的测试 D、成功的测试是没有发现错误...
  • 软件工程导论—软件测试

    万次阅读 多人点赞 2020-05-13 21:26:49
    1. 软件测试基础 2. 单元测试 3. 集成测试 4. 确认测试 5. 白盒测试技术 6. 黑盒测试技术 7. 调试 8. 软件可靠性
  • 什么是软件工程?

    万次阅读 2016-06-13 18:39:57
    Bauer给出的,即“软件工程是为了经济地获得能够在实际机器上高效运行的、可靠的软件而建立和应用一系列坚实的软件工程原则”。而美国梅隆卡耐基大学软件工程研究所(SEI)给出的定义则是软件工程是以工程的形式...
  • 汽车销售企业作为服务业尤其如此面对瞬息万变的市场,多变的客户,应用信息技术为营销服务,建立客户关系管理系统等不失为有效途径。而数据挖掘技术在客户分析方面有优势。在营销过程市场调查是十分重要的.市场...
  • 我们在工作会操作二进制文件,在Windows下当然是使用ultraedit这个软件了,该软件的强大,我就不说了,相信很多人都明白。该软件也有Linux版本,不过它是收费软件,因此没有放到Linux的软件源中。如果我们想安装该...
  • java面试题32:Java网络程序设计,下列正确的描述是() A:Java网络编程API建立在Socket基础之上 B:Java网络接口只支持tcP以及其上层协议 C:Java网络接口只支持UDP以及其上层协议 D:Java网络接口支持IP...
  • 应用程序白名单是战胜恶意软件的方法吗?

    千次阅读 热门讨论 2010-06-04 11:40:00
    如我们所知,反恶意软件工作效果不佳。应用程序白名单是解决问题的答案吗?越来越多的专家这么认为。一起来探究原因罢。
  • 序言这篇文字是应目前在it168工作的原CSDN老哥熊建国之约,...目前的已发布文档连接如下: http://tech.it168.com/m/p/2007-01-29/200701290911953.shtml 中国软件开发工具应用状况分析http://tech.it168.com/m/p/
  • 软件测试——基础练习(期末复习)

    万次阅读 多人点赞 2020-06-28 20:28:54
    软件测试基础 1、测试是为了验证软件已正确地实现了用户的要求。错 2、测试人员说:“没有可运行的程序,...5、下列软件属性,软件产品首要满足的应该是(A) A、 功能需求 B、 性能需求 C、 可扩展性和灵活性 D、 容
  • 我们在前面介绍了如何安装QT,安装完后可以使用它编写QT程序。使用QT编写程序还是一如既往的好用,不过在编译QT程序的时候遇到了编译错误。当我们编译写好的QT应用程序时,提示“cannot find -lGL”。
  • 最明显的缺点,就是所有的数据之间的完整性需要应用程序员来控制,这对大型应用来说,这是一个恶梦。主要原因是黑板架构的黑板和两层架构的数据库都不能对真实世界建模,因而维护这些非常具体的数据的工作量也...
  • 软件测试笔试面试题目完全汇总

    万次阅读 多人点赞 2019-03-06 13:29:37
    1、软件测试的流程 2、web测试和APP测试的区别 仅仅从功能测试的层面上来讲的话,在流程和功能测试上是没有区别的。那么区别在哪里呢? 由于载体不一样,所以系统测试和一些细节可能会不一样。 那么我们就要先...
  • 软件工程导论》学习笔记·

    万次阅读 多人点赞 2019-03-04 11:53:18
    软件危机:计算机软件开发维护过程所遇到得一系列严重的问题。 软件危机的典型表现: 对软件开发成本和进度的估计常常很不准确。 用户对以完成的软件系统不满意的现象经常发生。 软件产品质量靠不住 软件常常...
  • 1、下列选项,哪一项不属于安全测试()。 A、 静态分析 B、 漏洞扫描 C、 渗透测试 D、 集成测试 2、AppScan安全扫描工具扫描过程不包括() A、 探测 B、 测试 C、 扫描 D、 模拟攻击 3、SQL注入的...
  • HP监控软件sitescope的简介和应用

    千次阅读 2016-02-02 18:14:34
    SiteScope是简单易用并且也很好用的一种监控工具,拥有下列几项特色: 1、相对于cacti、nagios、Zabbix比较复杂的配置,SiteScope安装比较简单,不需一小时即可安装使用,节省人力成本。 2、可以被Loadrunner调用,...
  • 软件开发合同模板范本

    万次阅读 2018-08-23 10:17:48
    其它《软件开发合同模板范本》下载链接: https://download.csdn.net/download/daqiang012/10621400 合同编号:_________甲方(委托人):_________ 法定住址:_________ 法定代表人:_________ 职务:________...
  • 软件工程:软件过程模型实例

    千次阅读 2017-12-16 22:12:53
    针对下列软件项目场景,探讨它们最合适采用哪种过程模型:
  • 我国在立法上将计算机软件纳入著作权法的保护范围,但司法实践经常将计算机软件作为商业秘密保护,那么计算机软件是否属于商业秘密?能否作为商业秘密保护?  《计算机软件保护条例》规定计算机软件(以下...
  • 软件工程的一些题目

    千次阅读 2014-07-23 20:29:42
    1、软件生命周期,能准确地确定软件系统必须做什么和必须具备哪些功能地 阶段是: A.概要设计 B、详细设计 C、可行性分析 D、需求分析 2. 下面不属于软件工程的三个要素的是 A.工具 B.过程 C.方法 D....
  • 开始吧:迈奔灵动(mAPPn)机锋市场 海量Android资源兼容并蓄 机锋市场提供了超过5000款本地Android中文应用软件,最新版本支持Google Market数以万计的资源搜索与直接下载,绝对是你一站式的手机应用伴侣!...
  • 软件工程测试题

    千次阅读 多人点赞 2020-07-07 10:48:57
    软件质量是在开发过程逐渐构建起来的。 软件产品质量越高越好,最理想的情况是达到“零缺陷”。 软件质量是由产品的功能、性能、易用性等外在特性决定的。 在Garvin多维度模型,可靠性是指
  • 海康威视嵌入式软件工程师的题目只包含两个部分选择题和简答题,也就是说,没有编程题! 照样是C语言基础的题量最多了,又因为是BSP方向,所以关于Linux操作系统和驱动方面的题目可能页会比较多一点,但是就题目的...
  • 浅谈软件工程的代码评审

    千次阅读 2018-10-14 17:23:39
    代码评审这个词相信很多做开发的同学一定不会陌生,线上故障回顾总结有代码评审和单元测试总能够被高频率的提及并作为主要的整改意见,可见代码评审对于软件工程质量保证的重要性。相对于单元测试,代码评审的普及率...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 124,774
精华内容 49,909
关键字:

下列软件中,属于应用软件的是