先做一下声明,题目中所指的Symbian C++包括Symbian C++的语法,Symbian OS的外层的CS架构, Symbian OS各功能模块的API的使用,以及S60上的应用程序开发和扩展库。
这个问题是我自己提给我的一个探索型问题,并不是以专家的身份来给初学者指出一条道路。我也是站在门外,懵懂中希望寻么到一条途径,也希望各位高人能够指点迷津。
我的思路是:先看SDK中的某个示例代码,再在文档中找到相应的解析,然后总结出一篇学习笔记,若有时隙,可以自己发挥写一些新代码。
S60 SDK中有中有几个示例代码的目录:Examples,S60CppExamples,S60MIDPExamples,S60WidgetExamples。其中主要的example project集中在SExamples和S60CppExamples两个目录下。
1. Symbian Sample Projects
Example是Symbian提供的一些示例程序。它按照程序开发的不同领域进行了分类,如App,Graphics,Multimedia, Message等等,每个目录下又包含了几个示例project。巧的是,每个分类,每个工程,在帮助文档中都有一一对应关系。以AppFramework为例,该目录下包含有Converter和Recognizer两个project。在Symbian documentation的Symbian OS Guide中也能找到AppFramework这个目录,在其下有对Converter和Recognizer两个project的详细解析。Example目录下共有16个分类,凡56个project,基本覆盖了Symbian C++开发的方方面面。
Example中的程序覆盖了Symbian C++的语法,Symbian OS的外层的CS架构, Symbian OS各功能模块的API这三个方面,由于是Symiban提供的代码,所以所有的project是在UIKON这个应用程序框架上的。
2. Nokia S60 Sample Projects
于此相对的S60CppExamples目录,包含了很多S60上的应用程序,并且在S60CppExamples/docs目录下对每一个project提供了较为详尽的讲解。但是这个目录下的project没有分类,散乱的堆砌在S60CppExamples目录下。我把所有的project浏览了一边,根据自己的喜好对其分类,其中黑体的projet视为重要的,需要研究的项目。
Application Framework and UI
-Animation
-
Content Listing Framework
-Dynamic SettingList Example
-
Filelist
-
Gui/Engine Split
-Hello World Basic
-
Listbox
-
Localization
-
MyView Example
-
Note
-Popup-field
-Popup-List
-Progress Bar Control
-
Query
-Unit Editor
Help
-Application Interworking Example
-
Help
Web Service
-AddressBook
Graphics and Multimedia
-
AudioStreaming Example
-
Graphics
Web Apllication
-
Browser Control
-Chat
-
IM Open API
-
Netscape Plugin Control
-
Webclient
Position and GPS
-Landmarks Reference Application
-Landmarks UI Reference
-Location Reference
Basics
-
Client/Server Example (asynchronous)
-
Client/Server Example (synchronous)
-Directory Localizer Example
-DriveInfo Console Application
Hardware related
-HWRMTestApp
-
FindItem TestApp
-Satellite Info UI Reference
Contacts and Call
-
Contacts Database
-IsvTelCallApp
-IsvTelInfoApp
Connection
-Data Mobility Example
-SIP
Messaging
-Messaging Example
-Optical Character Recognition
Open C examples
Open GL ES
Text Editor
-Rich Text Editor
由于我关注的主要是Symbian OS上的应用程序开发,所以还是以S60上的这些project为本,如遇到不懂,解释不通或不够深入,可以折而从Symbian的project里面找答案,找方法。Symbian的Example目录下有很多好东西,比如Basics和Base下就有基础但我还搞不懂的东西。
我比较感兴趣的包括application framework、multimedia、web application。只是这三块的必读project就有16个,如果按照一周1-2个计算,需要3月方能读完。
3. Template of technical notes
主要包括一下部分
项目介绍 About Project
使用的API APIs Requested
架构 Architecture
实现 Implementation
总结 Notes