C语言进入开发手机应用的最速学习指导

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C语言进入开发手机应用的最速学习指导.txt举得起放得下叫举重,举得起放不下叫负重。

头要有勇气,抬头要有底气。

学习要加,骄傲要减,机会要乘,懒惰要除。

人生三难题:思,相思,单相思。

本文由lilitrabbit贡献
doc文档可能在WAP端浏览体验不佳。

建议您优先选择TXT,或下载源文件到本机查看。

3g 的到来,智能手机越来越普及,手机全球几十亿的用户,未来的市场将是极大的,随着苹果的移动互联网终端软件商店,在欧美获得巨大利益之后,google、微软、nokia、三星都开始准备效仿其运营模式。

作为一个 c 和 c++程序员,在现今这个大环境下,绝对不能袖手旁观,手机应用是我们现在出手创业的好机会,前两年我一个朋友用 c 和 c++为手机开发了一个 mad 游戏,不到一年的时间就得到了融资商的亲睐,等到 200 万的投资,这是我十分震惊,我也准备自己创业。

我有对 google、微软、nokia、三星的运营模式进行了一下了解,最近我注意到 iphone 的商业模式,由于苹果公司对网上商店软件监控十分宽松,造成,几万水平参差不齐的软件等待下载,你有再好的软件,对于小的开发团队,已经没有挣钱的希望了。

经过对比,发现三星公司现在在中国的手机软件销售模式十分有趣,现在似乎只有三星公司针对中国制定的政策,他们在中国现在正在收集优秀的手机软件,而且还帮助所有提供者(不论团体或公司大小)提高和完善软件应用,在商业分成上也十分厚道,我觉的是个好机会。

说了这么多如果不会手机开发,我们的创业梦想都是白费,所以我开是下定决心进入手机应用开发领域。

我认为 C 程序员在手机应用领域是有着其他程序员不可替代的优势的,很多手机的深层次开发都要用 c 和 c++.所以我信心满满的给大家介绍一下手机应用的快速学习方法:现在了解一下最流行的 Symbian 系统,Symbian 在全球智能手机中占有绝对的数量优势,而 Symbian 的主要开发语言正好是 C 和 C++,真是天助我们,三星移动创新者园地中文网站:/index,为初学者准备的经过优选的丰富的学习资料和三星工程师分享的自己的开发学习经验。

先看看下面的帖子链接。

1.Symbian OS 初探: /bbs9 2.Symbian 入门贴: /bbs10 3.有很多教学视频,手册和一些初级精品电子书籍,例如: “C 语言入门经典”我看了下,, 感觉应该是同类型书中比较经典的,三星工程师根据自身经验给大家精选出来的,格式都是 PDF 的,方便阅读和下载。

4.手机开发环境的部署:手机开发环境的部署对于刚开始学习的人也很重要的,也有 PC 开发转手机开发帮助手册和 PC 开发转手机开发入门知识.例如:如何配置编辑环境,到如何搭建手机系统环境,再到编写出第一个 HELLO WORD 程序(程序写好后,还可以在网上预约真机测试),每一个步骤都有很详细的配置和解决问题的方法.一般 Symbian 安装配置环境的顺序是: (1)Series 60 2nd FP3 (2)ActivePerl-5.6.1.635-MSWin32-x86.ms (3)jdk-1_5_08-windows-i586-p.exe (4)Carbide C/C++ 1.2 WM 环境搭建比较简单,但如果是第一次自己搭建 Symbian 系统环境和 J2me 环境的话可能会碰到很多让你抓狂的问题.三星中文网上的帮助文档会让你少走很多弯路,手册全是全中文的. ^_^ 还有最最重要的一点是据说有些优秀软件开发爱好者,将有机会进入三星相关领域公司工作, 我想这应该是每一个软件开发人员都有的梦想吧.从而让我下定决心转行做手机开发.
转行的这半年左右时间里,经历过不少辛酸和坎坷,幸好有三星 BBS 的专业工程师们,帮我解决了一个又一个的技术难题和开发思路,在此表示感谢.
下面写点在 Symbian 系统上 C 工程师需要特别注意的地方: (1)首先 PC 平台和手机平台还是有区别的,虽然手机平台中也支持 C 语言,移植也不很是麻烦, 但要考虑 C 语言和C++语言的混合编程问题,因为在 UI 层肯定是要以 C++语言来设计的,UI 层中的代码无法被移植,必须结合平台上的 UI 设计方法来设计,而 UI 层中要实现的功能可以用 C 语言来实现,所以要考虑好哪些应该用 C++来设计,哪些应该用 C 语言来设计, 如果出现 C 语言中的代码调用 C++中的代码(这种情况应该尽量避免),则该 C 语言的代码必须用 C
++来编译,用 C++来编译的文件名最好以“CPP”为扩展名,在 C++中引用 C 的代码是最好加上"extern “C” {}”,在用 C 编译的头文件中要有这样的修饰: #ifdef __cplusplus extern "C" { #endif …… #ifdef __cplusplus} #endif; (2)在程序退出之前要调用CloseSTDLIB(),以释放所有缓冲,该函数在“reent.h”文件中; (3)在 MMP 文件中要加入“estlib.lib”,该 LIB 库是 C 标准语言的 LIB 库; (4)Symbian 中的 STDLIB 并没有完全实现 POSIX 的全部标准,所以有些 C 库的函数要自己实现或用其它方法来替代; (5)在 C 语言工程中最好不要有可写的全局静态变量(Global Writeable Static Data),在有些手机版本中是不支持全局变量的,但可以有全局静态常量,对于全局指针常量注意要这样申明, 例如:static const char* const,即要有两个“const”.如果有出现全局静态变量或静态常量,则在 MMP 文件中要加入“EPOCALLOWDLLDATA”标识,否则会出现编译错误.对于可写的全局静态变量有种处理方法是把所有全局变量放到一个 STRUCT 结构中,然后这个结构的指针用 Dll::SetTls()和 Dll::Tls()来存取,存在的问题是用 C 编译的代码中无法调用 C++的这种方法, 还有一种最笨的处理方法是把指针的值存入一个文件中;呵呵..这种方法估计一般人不会用.. (6)在 C++与 C 的交互接口中会存在如 char*与 TdesC 之间的转换,可以这样转换,例如: 把TDesC 转换成char*:HBufC8* utf8TempText = HBufC8::NewLC(STRING_LENGTH); TPtr8 utf8Text(utf8TempText->Des()); CnvUtfConverter::ConvertFromUnicodeToUtf8(utf8Text,TDesCString); Char* cString = (char*)utf8Text.Ptr(); 把char*转换成TPtr:TPtr8 utf8Text((TText8*)cString,strlen(cString),strlen(cString)); HBufC* ucs2TempText = HBufC::NewLC(utf8Text.Length()*2); TPtr ucs2Text(ucs2TempText->Des()); CnvUtfConverter::ConvertToUnicodeFromUtf8(ucs2Text 下面有篇不错的贴子介绍给大家.是关于 Symbian OS C++中 RTTI 的实现及原理的.主要是讲移植 MFC 代码实现 RTTI 的意义及具本实现过程,写得相当的仔细.这个问题我原来遇到过, 对我很有帮助,在这儿分享给大家:。

相关文档
最新文档