More应用开发环境简介(2.0)
- 格式:doc
- 大小:2.04 MB
- 文档页数:6
毕业设计说明书学生姓名学号学院计算机科学与技术学院专业计算机科学与技术(软件工程)题目音乐播放器的设计与实现指导教师(姓名)(专业技术职称/学位)年月摘要:随着生活水平的提高,娱乐已成为非常主流的话题,人们不仅需要通过音乐陶冶情操,而且越来越多的人倾向于使用音乐、视频等娱乐和放松自己,这大大促进了媒体软件的发展.本文旨在介绍研究常用数字音频编码和解码的相关知识,并结合VS2008编写多功能音乐播放器,了解音乐播放器功能的实现,掌握开发音乐播放器所需的相关知识,采用了面向对象软件工程方法,其开发主要包括应用程序界面设计和后台代码运行两个方面,实现了多功能音乐播放器在计算机上的应用,可以在很大程度上满足用户的需求.该系统主要具备:音乐播放控制、音乐文件控制、音量控制、下载控制、歌词控制、进度控制、音乐剪辑等功能模块.关键字:音乐播放器,音频编码格式,TechSmith Screen Capture Codec,FFmpeg,C#,Visual Studio 2008Abstract:With the improvement of standards of living,entertainment has become very mainstream topics,it is required not only by music,edifying, and as more and more people tend to use music,video and other entertainment and relax,which greatly promoted the development of media software。
This article aims to introduce the research knowledge of common digital audio encoding and decoding, and in conjunction with VS2008 prepared multifunctional music player,understand the functions of the music player to acquire related knowledge needed to develop music player,object—oriented software engineering methods are used, their development includes the application interface design and code to run in the background tracks to realize multifunctional music player application on your computer, you can to a large extent,meet the needs of users. The system mainly includes:a music player,music file control, volume control,control, control, schedule control of lyrics,music editing function module.Keywords:music player,audio coding format, techsmith screen capture codec,c#,visual studio 2008目录1前言................................................................................................................. - 4 -1.1选题的背景及意义...................................................................................... - 4 -1.2网络流行音乐播放器简介.......................................................................... - 4 -2系统相关技术及开发平台介绍...................................................................... - 5 -2.1开发应用技术介绍...................................................................................... - 5 -2。
Smart 2.0 用户手册2014年1月目录1项目简介 (4)2开发工具 (5)2.1准备开发工具 (5)2.2搭建开发环境 (5)3快速上手 (7)3.1创建项目 (7)3.2修改pom.xml 文件 (7)3.3修改web.xml 文件 (9)3.4新增config.properties 文件 (9)3.5新增log4j.properties 文件 (9)3.6新建index.html 文件 (10)3.7访问应用 (10)4技术架构 (12)4.1技术选型 (12)4.2项目依赖 (12)4.3系统架构 (13)5核心功能 (15)5.1MVC (15)5.2IOC (17)5.3AOP (18)5.4ORM (19)5.5DAO (21)5.6事务控制 (22)5.7单元测试 (23)5.8文件上传 (24)5.9DataConext (25)6相关插件 (27)6.1Cache (27)6.2WebService (29)6.3Mail (30)6.4I18N (32)6.5Job (34)6.6Hessian (36)6.7Template (37)7代码生成器 (38)7.1安装Smart SDK (38)7.2使用Smart SDK 命令 (38)7.3参考资料 (39)1项目简介Smart 开源框架可用于快速开发中小规模的企业应用或网站应用它是一款轻量级Java Web 框架✓不到3000 行代码实现IOC、AOP、ORM、DAO、MVC 等功能✓基于Servlet 3.0 规范✓使用Java 注解取代XML 配置它使应用充分做到“前后端分离”✓客户端可使用HTML 或JSP 作为视图模板✓服务端可发布REST 服务✓通过Ajax 获取服务端数据并进行界面渲染2开发工具2.1准备开发工具点击工具名称上的链接可进入下载页面。
2.2搭建开发环境2.2.1搭建Maven 开发环境Smart 的相关jar 包托管在开源中国(以下简称OSC)的Maven 仓库中,若使用Maven开发,则需将OSC 的Maven 仓库地址添加到Maven 的settings.xml 配置文件中,见如下代码片段:随后,可在pom.xml 中使用如下依赖:可通过以下地址获取Smart 的相关jar 包:/index.html#nexus-search;gav~com.smart~~~~2.2.2搭建源码开发环境Smart 的相关源码托管在OSC 的Git 仓库中,若需搭建源码开发环境,可使用如下Git 命令下载Smart Framework 的源码:随后,可使用以下Maven 命令将Smart Framework 的jar 包安装到Maven 本地仓库中:2.2.3参考资料Maven 那点事儿:/huangyong/blog/1945833快速上手3.1创建项目输入以下Maven 命令:mvn archetype:generate -DinteractiveMode=false -DarchetypeArtifactId=maven-archetype-webapp -DgroupId=com.smart -DartifactId=smart-demo -Dversion=1.0随后可使用Eclipse 或IDEA 直接打开已创建的Maven 项目。
什么是MIDP2.0?小尼克一直在跟着Java博士学习制作N820的Java应用,最近听说他又买了一部新的手机——N840。
1.MIDP博士,我买了一部新手机,N840耶!呵呵,新手机好啊,新机型上市的还挺快的。
这款新手机也是支持Java应用的哦。
以前作的N820应用可以在这上面用么?恩,Java程序当然可以用了,但是,新手机的功能提高了,Java应用也比以前丰富了,另外开发工具也升级了。
是这样啊,真好啊。
N840和N820有什么不同呢?恩,单从Java的功能来讲,不同点在于N840对应的是MIDP2.0,而N820只能对应MIDP1.0。
呃?MIDP是什么呀?以前好像没有听说过呀……。
看,把重要的东西都忘了吧,关于MIDP的说明Java初级讲座的第一讲里面就有,今后要注意复习哦。
好的。
请您稍等一下,我先去复习复习。
请大家也先看一看Java 初级讲座的第一讲,对手机Java 程序的结构进行一下复习吧。
(/cn/lecture/lecture_t1_1.php )复习完啦,让您久等了。
所谓的MIDP ,就是用于手机或者便携机器的profile 的一个。
可是什么是profile 呢…呃,我又不明白了。
所谓Profile ,是指定义使用何种功能的东西。
也就是说,MIDP 定义了手机等可以使用的Java 功能具体都有什么。
是这样的啊。
MIDP 的版本从1.0上升到2.0,是不是就说明手机可使用的功能也升级了呢?恩。
MIDP2.0增加了MIDP1.0没有定义的一些功能。
总而言之,对应MIDP2.0的手机,相比MIDP1.0的手机来说,能用的东西变多了。
2. MIDP1.0和MIDP2.0的不同博士,MIDP 的版本变成了2.0,新增加的功能都有那些呢?恩。
详细情况请参见sun 公司的Web 页面,上面记载了所有的内容,有不少呢。
(/techtopics/mobility/midp/articles/midp20/) 概括起来,MIDP2.0的新功能有以下几个方面,下面先简单介绍一下。
前言这是一个我们可能平时忽视的问题,大家考虑过日常使用开发环境时可能会遇到的安全问题吗?为什么要研究开发环境的安全环境编译器:CL,gcc调试器:VC自带的调试器,GDB重点什么是连接器,连接器的作用下面我们讲一个linux下ld的漏洞实例连接器连接器工作的一般过程:当连接器运行时,它首先会扫描输入文件,找出每个段的大小,收集所有符号的定义和引用。
连接器会建立一个段表用来记录输入文件中所有的段,一个符号表记录所有导入或导出的符号。
起:因问。
Linux平台下去年重原因:ld使用了bfd库,bfd库中存在多个漏洞ld连接流程Ld连接流程抽象层bfd库简介Bfd库工作流程概要:技室前言技洞和例程Elf文件格式简介1 ELF文件头Elf文件格式简介2 ELF文件头接上页int phdrpos; // file position of program header or 0int shdrpos; // file position of section header or 0int flags; // architecture specific flags,usually 0short hdrsize; // size of this ELF headershort phdrent; // size of an entry in program headershort phdrcnt; // number of entries in program header or 0 short shdrent; // size of an entry in section headershort shdrcnt; // number of entries in section header or 0 short strsec; // section number that contains section name stringsElf文件格式简介3 Section头Bfd漏洞背景2005年6月1日,gentoo代码审核小组公布该漏洞,影响较大。
DEV351开放的微软Web平台和应用程序目录开放的微软Web平台和应用程序目录Microsoft Web Platform 是一组为建立和托管下一代互联网应用和解决方案而准备的强大的工具、服务器和技术. 工具、服务器和技术.工具服务器技术应用设计和开发集成,预打包在Microsoft Web Platform上运行的开源应用程序包括:Microsoft Web Platform Installer 2.0Web Platform 安装: Web PI (平台安装器)Internet Information Services (IIS) 5.1 on Windows XP SP3 IIS 6.0 on Windows Server 2003 SP2 IIS 7.0 on Windows Vista SP1 and Windows Server 2008 SQL Server 2008 Express .NET Framework 3.5 SP1 Visual Web Developer 2008 Express Edition IIS扩展包括:IIS 7 Media Services 3.0 IIS7 Administration Pack Database Manager for IIS7 WebDav 7.5FTP 7.5FastCGI for PHP support on IIS6 URL Rewriter IIS 7 Application Routing Web Deployment Tool for IIS 和特性如 MVC Silverlight Tools for Visual Studio PHP v5.2.9-1社区版单一网站: 单一网站: /Web /Web单一安装器: 单一安装器:应用程序们: 应用程序们:保持更新: 保持更新:什么是Windows探索、发现、安装部署?获得应用程序们: 获得应用程序们:获得应用程序们: 获得应用程序们:以及依赖组件: 以及依赖组件:演示Microsoft Web PlatformToolsEnd userServicesUX – Dev CollaborationBrowser Silverlight AJAXWindows WPFMobile .NET Compact FrameworkAny device, any userTechnologiesYour Website Cloud servicesServers and InfraestructreBuilding experiencesData Web server ApplicationsIntegrated, interoperable and productiveWindows 上跑PHP的选项 CGI: 创建进程开销 ISAPI: 不线程安全 [新!] FastCGI: 快而稳定和Zend的紧密合作 PHP引擎已为IIS改进 Zend核心团队支持Windows 容易安装包含在IIS7 (Windows Vista / Server 2008) 下载安装在IIS6 (Windows XP / Server 2003) 网络应用程序安装器流行开源应用程序的一键安装器Th is is not your father’s Microsoft都必须在贡献和使用开源间找到正确的均衡”“我认为今日的任何公司、任何技术提供者, 包括微软,“I think any company these days, any technology provider, even Microsoft, has to find the right balance of being a contributor and user of open source ” -- Ray OzzieLinus on Microsoft’s GPLv2 / Hyper-V Driver 哦,我坚信“技术高于政治” Oh, I’m a big believer in “technology over politics” ... 在自由软件界是存在‘极端主义者’, 不过这正是我不再自称我是个‘做自由软件的’ 重要原因之一我不想被跟宣扬排斥和憎恨做自由软件的重要原因之一. 的人牵扯在一起. There are ‘extremists’ in the free software world, but that’s one major reason why I don’t call what I do ‘free software’ any more. I don’t want to be associated with the people for whom it’s about exclusion and hatred.<embrace> <collaborate/> </embrace>与WMS和Media Pack集成PHP / 混合开发远程管理能力高级检测功能基于XML的配置系统使用托管代码扩展IIS7的能力FastCGI: CGI和ISAPI的取长补短对CGI协议的增强 Web服务器为第一个请求创建FastCGI进程 Web服务器对后续请求重复利用现存的FastCGI进程作为IIS7的一部分发行,随CGI特性安装FastCGI for Windows系统的利益比CGI快得多,没有进程创建开销比ISAPI稳定的多,单进程执行环境NonNon-thread safe PHP build is recommended for FastCGIFastCGI for PHP5 进程池IIS工作进程FastCGI 协议跑在命名管道或 TCP上php-cgi.exeFastCGI for PHP4 进程池Request queuephp.exe/urlrewrite/IIS团队的官方IIS扩展特性Rules-based URL rewriting engine Regular expression pattern matching Wildcard pattern matching Global and distributed rewrite rules Access to server variables and HTTP headers Various rule actions including redirect and request abort. Support for IIS kernel mode and user mode output caching Lower case conversion function Rewrite maps to generate the substitution URL during rewriting Failed Request Tracing support Built-in rule templates Integrated user interface for testing regular expression and wildcard patterns Integrated user interface for managing rewrite rules and rewrite maps Integrated user interface for importing of Apache mod_rewrite rulesWordPress 2.8 Release Notes:Support IIS 7.0 URL Rewrite Module/Version_2.8SQL Server Driver for PHP 目标: 为Windows平台上的PHP开发者提供健壮,可扩展和可靠的SQL Server连接性 PHP API, not a SQL API for PHP 只需要很少量代码的简单部件 PHP开发者可以应用现存data patterns 由Microsoft 开发, 完全Open Source, 完全免费 See/sql/technologies/php/default. mspx性能可扩展性可编程性全文检索分析服务数据挖掘报告可管理性成本开发资源PHP Microsoft? SQL Server? 2008 Internet Information Services (IIS) 7.0/7.5 Windows Server? 2008/R2A powerful Web server on top of a minimal footprint operating system低足迹的服务器安装,减少:服务需求管理需求受攻击面磁盘使用600 400 200 0Committed Memory (MB)502 228IIS 7和PHP能运行在 Server CoreFull InstallServer CoreIIS Web server 包含 44 个模块新的模块化架构可以增强安全、性能和可靠性Throughput (RPS)30,000 25,000 20,000 15,000 10,000 5,000 0 Static 5,046 6,347 4,89027,829 20,359 17,603Full Default MinimalFeature ISAPI/CGI FastCGI 配置默认首页同时运行PHP的多个版本在URL 级别重写handlers Server Core 支持从PHP使用托管模块 (例如Forms Authentication)IIS 7.0 Yes Yes 可委派的基于XML的配置系统 Yes Yes (站长可以为不同的PHP应用或站点运行不同版本/配置的PHP) Yes YesWindows Cache Extension for PHP的测试版已经交付客户评估演示PHP on Windows现代网站专业设计的演进基于标准、可访问性和SEO的设计第一个基于XHTML, CSS, XML, XSLT的工具 WCAG (AA), Section 501 support Great WYSIWYG 高级CSS管理 CSS Layouts Management and refactoring Rich property pane 完全的PHP支持!演示Expression Web疑问和解答参考资源/web/page.aspx/24/running-phpapplications-on-iis/ /urlrewrite//page.aspx/460/using-urlrewrite-module//sqlphp//page.aspx/520/microsoftweb-platform//page.aspx/578/applicationpackaging-guide-for-the -windows-webapplication-gallery//mailant/archive/2009/05/18/contributions-to-the-php-engine.aspx May 2009 edition of PHP Architect PHP SDK for Windows Azure感谢您参与此会场!您的意见与建议对我们非常重要。
T urbo C 2.0集成开发环境简介C语言应用广泛,已经在不同类型的计算机环境中实现。
虽然有许多不同的C编译版本,但是它们之间的区别很小。
目前在微型机环境中经常选择使用Turbo C作为教学和上机考试的C编译系统。
Turbo C具有以下主要特点:○1与ANSI C完全兼容,并有所扩充(如库函数达到450余个)。
它的功能丰富,对硬件的要求不高,同时速度快,运行效率高。
○2提供完善的集成化交互开发环境,集全屏幕编辑、编译、连接、运行、调试于一体,操作简便。
Turbo C 2.0是Borland公司1987年推出的C语言编译器。
它提供了两种编译方式,一种是命令行方式,另一种是集成开发环境。
这里主要介绍集成开发环境的基本操作。
A.1 Turbo C 环境简述1.启动Turbo CTurbo C是一个基于DOS平台的应用程序,也可以在Windows环境下运行。
假设Turbo C已经安装在C盘TC子目录中,其中应该包含tc.exe、tcconfig.exe.tcc.exe、tlink.exe等可执行文件,此外还包含许多扩展名为“.h”的头文件和扩展名为“.obj”的系统目标文件及帮助文件等。
Tc.exe是一个基本程序,能够实现编辑、编译、连接、调试、运行等基本功能。
而其他文件则在预处理阶段及编译和连接过程中提供所需的辅助功能。
仅一个tc.exe文件是不能完成C编译系统的所有工作的。
Turbo C可以有如下两种启动方法:(1)从Windows环境下启动○1双击桌面TC快捷方式图标(如果存在)○2打开资源管理器窗口,找到TC子文件夹,双击其中的TC.EXE文件。
(2) 在DOS方式下启动系统启动时按F8功能键,从启动菜单中选择进入DOS命令行方式,然后输入DOS命令;或者从Windows进入MS-DOS方式,再使用DOS命令。
键入的命令是:进入TC子目录)运行Turbo C)说明:带下划线的字符是用户输入的命令字符,表示按回车键。
Web2.0,是相对Web1.0(2003年以前的互联网模式)的新的一类互联网应用的统称,是一次从核心内容到外部应用的革命。
由Web1.0单纯通过网络浏览器浏览html网页模式向内容更丰富、联系性更强、工具性更强的Web2.0互联网模式的发展已经成为互联网新的发展趋势。
Web1.0到Web2.0的转变,具体的说,从模式上是单纯的“读”向“写”、“共同建设”发展;由被动地接收互联网信息向主动创造互联网信息迈进!从基本构成单元上,是由“网页”向“发表/记录的信息”发展;从工具上,是由互联网浏览器向各类浏览器、rss阅读器等内容发展;运行机制上,由“Client Server”向“Web Services”转变;作者由程序员等专业人士向全部普通用户发展;应用上由初级的“滑稽”的应用向全面大量应用发展。
总之,Web2.0是以 Flickr、Craigslist、Linkedin、Tribes、Ryze、 Friendster、、等网站为代表,以Blog、TAG、SNS、RSS、wiki等应用为核心,依据六度分隔、xml、ajax等新理论和技术实现的互联网新一代模式。
意义如此深远的Web2.0,到底是什么呢?它是一种新的技术么?与之前的Web1.0相比,它又有什么不同?按照该公司董事长兼CEO方兴东的话来说,目前的互联网已然开始了2.0时代,“全球所有的互联网巨头都开始向2.0时代进军,整个互联网的发展接下来会进入一场新的竞争乃至新的战争!”方兴东认为,与Web1.0最大的不同就是Web2.0所提倡的个性化,在其中,个人不是作为被动的客体而是作为一种主体参与到了互联网中,个人在作为互联网的使用者之外,还同时成为了互联网主动的传播者、作者和生产者。
到目前为止,关于Web2.0并没有清晰的定义。
业内普遍的一种说法是,微内容是Web2.0的一个关键词。
其中,微内容包括个人所形成的任何数据:比如一则网志、一个评论、一幅图片、收藏的书签、喜好的音乐列表、想结交的朋友等等。
More Effecitve C++作者:Scott Meyers译序、导读 : 侯捷Item 1~28 : ZHCItem 29~35 : WQ附1 : 侯捷附2 : WQ附3、附4 : 陈崴1.译序(侯捷) (3)2.导读 (4)2.1 本书所谈的C++ (4)2.2 惯例与术语 (6)2.3 臭虫报告,意见提供,内容更新 (7)3.基础议题 (8)3.1 I TEM M1:指针与引用的区别 (8)3.2 I TEM M2:尽量使用C++风格的类型转换 (10)3.3 I TEM M3:不要对数组使用多态 (14)3.4 I TEM M4:避免无用的缺省构造函数 (16)4.运算符 (20)4.1 I TEM M5:谨慎定义类型转换函数 (21)4.2 I TEM M6:自增(INCREMENT)、自减(DECREMENT)操作符前缀形式与后缀形式的区别274.3 I TEM M7:不要重载“&&”,“||”,或“,” (29)4.4 I TEM M8:理解各种不同含义的NEW和DELETE (32)5.异常 (37)5.1 I TEM M9:使用析构函数防止资源泄漏 (38)5.2 I TEM M10:在构造函数中防止资源泄漏 (42)5.3 I TEM M11:禁止异常信息(EXCEPTIONS)传递到析构函数外 (51)5.4 I TEM M12:理解“抛出一个异常”与“传递一个参数”或“调用一个虚函数”间的差异 545.5 I TEM M13:通过引用(REFERENCE)捕获异常 (60)5.6 I TEM M14:审慎使用异常规格(EXCEPTION SPECIFICATIONS) (64)5.7 I TEM M15:了解异常处理的系统开销 (69)6.效率 (71)6.1 I TEM M16:牢记80-20准则(80-20 RULE) (72)6.2 I TEM M17:考虑使用LAZY EV ALUATION(懒惰计算法) (74)6.3 I TEM M18:分期摊还期望的计算 (81)6.4 I TEM M19:理解临时对象的来源 (85)6.5 I TEM M20:协助完成返回值优化 (87)6.6 I TEM M21:通过重载避免隐式类型转换 (91)6.7 I TEM M22:考虑用运算符的赋值形式(OP=)取代其单独形式(OP) (93)6.8 I TEM M23:考虑变更程序库 (96)6.9 I TEM M24:理解虚拟函数、多继承、虚基类和RTTI所需的代价 (98)7.技巧(TECHNIQUES,又称IDIOMS 或PATTERN) (106)7.1 I TEM M25:将构造函数和非成员函数虚拟化 (107)7.2 I TEM M26:限制某个类所能产生的对象数量 (111)7.3 I TEM M27:要求或禁止在堆中产生对象 (125)7.4 I TEM M28:灵巧(SMART)指针 (134)7.5 I TEM M29:引用计数 (149)7.6 I TEM M30:代理类 (177)7.7 I TEM M31:让函数根据一个以上的对象来决定怎么虚拟 (190)8.杂项 (212)8.1 I TEM M32:在未来时态下开发程序 (212)8.2 I TEM M33:将非尾端类设计为抽象类 (216)8.3 I TEM M34:如何在同一程序中混合使用C++和C (226)8.4 I TEM M35:让自己习惯使用标准C++语言 (231)9.附录 (237)9.1 推荐读物 (237)9.2 一个AUTO_PTR的实现实例 (241)9.3 在C++中计算物件个数(O BJECTS C OUNTING IN C++)译者:陈崴 (244)9.4 为智能指标实作 OPERATOR->*(I MPLEMENTING OPERATOR->* FOR S MART P OINTERS)译者:陈崴 (254)1.译序(侯捷)C++ 是一个难学易用的语言!C++ 的难学,不仅在其广博的语法,以及语法背後的语意,以及语意背後的深层思维,以及深层思维背後的物件模型;C++ 的难学,还在於它提供了四种不同(但相辅相成)的程式设计思维模式:procedural-based,object-based,object-oriented,generic paradigm。
More应用开发环境使用说明
概述
More应用开发环境是针对国产手机的应用程序开发平台,它提供以下几部分功能:1.开发应用所需的API接口库和基础类库
2.C/C++语言应用程序编译环境
3.高仿真PC模拟开发环境
4.应用程序模板生成工具
本文将描述开发环境的安装和使用方法,为初识More平台的朋友提供参考。
PC模拟开发环境
More平台提供独立的高仿真PC模拟开发环境,该环境基于Visual C++集成开发环境的基础之上,在使用该环境之前你需要安装一个VC集成开发环境,如VC6.0(推荐)、VC2003、VC2005、VC2008。
模拟开发环境中包含一个手机模拟器,其界面如下:
*你可以点击左上角的按钮修改模拟器的外观,选择不同LCD屏幕大小的模拟器
目标开发环境的安装和运行
More应用开发环境以安装包的形式发布,根据提示安装完毕后,安装程序会在桌面上
添加应用程序图标:
第一次运行MVBuilder.exe的快捷方式,会出现新建工程的对话框:
在对话框中填入项目名并且选择目录之后便可以生成第一个More应用程序开发的模板工程。
在这里你也可以选择应用程序需要包含的基础库:
⏹MoreSdk是完全用C语言开发的API接口库,主要用于状态机相对简单的单窗口
的应用程序。
⏹MoreMfw类库是基于MoreSdk开发成的C++基础类库。
它提供了一套完成的窗口
控件类库以及其他C++基本类库如:String、Vector等。
点击OK后会自动打开MVBuilder真机编译器和VC模拟开发环境。
应用程序的开发和调试一般在模拟环境下完成,高仿真的PC模拟环境能为你提供方便快捷的开发工具和调试手段,加快应用开发进度。
应用程序完成开发后你可以用MVBuilder对代码进行编译生成的手机版可执行文件,加载到手机中运行。
MVBuilder真机编译器
More平台提供可视化的真机编译工具MVBuilder,完成More应用项目目标编译的任务。
MVBuilder建立在ADS基础之上。
所以在编译之前,需要安装ADS1.2(Build848)。
你可以在MVBuilder中“选择项目”来编译,也可以通过它“生成新项目”。
MVBuilder 也可以对目标编译的可执行文件进行压缩打包,你可以通过“设置”属性来选择是否需要进行压缩。
基于MoreSdk的应用开发简介
在生成新项目时选择“基于MoreSdk”可以生成一个基于MoreSdk应用程序的模板。
基于MoreSdk的应用程序一般用在状态机相对简单的应用程序开发,或者C语言版本的应用程序的移植。
基于MoreSdk的程序模板只有一个c文件,该文件命名和项目名相同(如test.c)。
文件内容为:
#include "More.h"
int MoreProc(int msg,void * param)
{
switch (msg)
{
case MM_START:
……………………
case MM_KEY:
{
MoreKeyPtr more_key = (MoreKeyPtr)param;
MoreTrace("key msg arrive! key_code = %d,key_type = %d,\n",
more_key->keycode,more_key->keytype);
}
break;
default:
break;
}
return 0;
}
//More 应用入口函数,MoreMain
void MoreMain()
{//注册事件处理函数,注册之前应用不可以调用More系统接口。
MoreAppInit(MoreProc);
}
More.h 包含了所有MoreSdk中API的声明,需要调用MoreSdk中的API只需要包含这个头文件即可。
MoreMain为应用程序入口函数,通过MoreAppInit将事件处理函数注册到系统,在此之后系统消息会发送到该事件处理函数中进行处理。
一般应用中需要处理的系统事件有:
MM_START:应用程序启动事件,可以在此事件中做应用程序初始化工作。
MM_SHOW:应用程序窗口显示事件,这个事件可能在应用启动时和应用程序窗口被其他窗口(如通话窗口)覆盖后重新显示时被触发。
MM_HIDE:应用程序窗口隐藏事件,这个事件在应用程序窗口被其他窗口(如通话窗口)覆盖时被触发。
MM_EXIT: 应用正常退出事件,应用程序调用MoreAppExit退出时触发的事件。
可以在此事件中做应用程序所占用资源的释放,文件和网络的句柄的关闭等等处理。
MM_KILL: 应用被动退出事件,应用程序在某些情况下(如内存不足)被强行关闭时触发的事件。
由于应用程序是被动退出,所以除了要处理MM_EXIT事件的处理外,可能对某些应用程序,需要保存当前状态,以便下次启动时恢复。
MM_PAINT: 该事件在应用程序界面需要重新绘制的时候被调用,可能触发该事件的情况有两种:1.应用程序窗口被显示;2.应用程序调用MoreFlush刷新窗口。
MM_PEN: 触笔事件,触笔被点下,抬起和点下后移动时触发。
MM_KEY: 按键事件,按键被按下,抬起时被触发
More应用程序的编写主要是完成对这些事件的处理。
比如需要绘制一张图片到屏幕上,需要调用以下几个API函数
1. 创建图片对象:在MM_START事件处理中调用CreateMoreImage函数创建图片对象;
2. 绘制图像:在MM_PAINT事件处理中调用MoreDrawImage函数绘制图像;
3. 刷新图像:在MM_KEY等事件处理时调用MoreFlushFullScreen刷新图像;
4. 删除图片对象:在MM_EXIT和MM_KILL事件中调用DelMoreImage删除图片对象。
关于API调用的详细情况请参阅《More API使用说明书》。
基于MoreMfw的应用开发简介
在生成新项目时选择“基于MoreMfw”可以生成一个基于MoreMfw应用程序的模板。
基于MoreMfw的应用程序一般用于状态机相对比较复杂的应用程序开发,或者C++语言版本的应用程序(如Symbian应用程序)或者Java版本的应用程序(如Midlet)的移植。
Mfw提供了一套完整的多窗口应用解决方案。
应用程序的核心是窗口链,窗口链构成了应用的所有界面,是应用程序状态切换的载体,同时也是应用程序数据保存的载体。
在MoreMfw的程序模板中有两个.c文件,一个是和项目名一样的.c文件(如test.c),另一个是MainScreen.c。
test.c是中的appStart函数是Mfw应用程序的入口,在AppStart中必须调用appendScreen 接口添加应用程序的第一个窗口,在模板中是MainScreen。
MainScreen.c是应用的第一个窗口,在该窗口的事件处理函数中可以创建更多的窗口并通过appendScreen函数添加到窗口链中。
在窗口中添加控件
在窗口的构造函数或者其他处理函数中向窗口中添加控件,调用appendControl或者appendActiveControl接口向窗口中添加自己想要的控件,如:
this->button_menu = new MButton(MRect(5,294,46,22),CTRL_BUTTON_MENU,"选项");
appendControl(this->button_menu);
这两条语句在窗口的(5,594)坐标上添加了一个大小为(46,22)的按钮,该按钮的id 是CTRL_BUTTON_MENU,按钮上显示的文字是“选项”。
自定义窗口
自定义窗口通过继承MScreen类实现,类似MainScreen,在自定义的窗口类里面,通过改写基类的事件处理函数逻辑实现特定窗口特定的操作模式和数据处理,也可以添加新的变量和处理函数。
窗口类中可以继承的事件处理函数有很多,大部分对应于MM_START等事件,例如:
onSysEvent:系统事件函数,对应MM_START、MM_SHOW、MM_EXIT等
Paint函数:窗口绘制函数,对应于MM_PAINT事件
onKeyPressed、onKeyReleased:按键处理函数,对应于MM_KEY事件
pointerPressed、pointerReleased、pointerDragged:触笔处理函数,对应于MM_PEN
控件和窗口的交互
控件和窗口的交互通过控件事件处理函数完成:
virtual int onCtrlEvent(int ctrl_id, int msg_id);
控件处理的所有事件都会通过这个函数通知到窗口,如按钮的按下事件和弹起事件。
列表的选择事件等等。
可以通过ctrl_id和msg_id发送事件的控件和所处理的事件。
自定义控件
自定义控件通过继承MControl类生成,类似MButton,在自定义的控件类里面,通过改写基类的事件处理实现特定控件的操作模式和数据处理,也可以添加新的变量和处理函数。
由于控件是一种特殊的窗口,所以它也继承了窗口的事件处理函数。
你也可以继承一些已有的控件,如MButton、MListView等,生成新的控件,这样定制出来的控件,既可以最大程度得复用库代码,同时又能满足特定的应用的特定需求。