因为iphone对魅族手机M8有种向往,去年已经公测并且发布了SDK,自从知道M8后就一直关注着。希望M8能像Iphone一样开个软件商店好让国内的程序员也赚一小笔零花钱。呵呵。也是没有办法,一方面只对微软的技术熟悉一些,另一方面好像只有windows Ce的平台比较接近于我们大众,像iphone的都是要很多手续才能得到,还必须在apple上开发,郁闷惨了。
于是魅族M8成了一块心动的小天地。
最初拿到sdk有点兴奋因为里面会有模拟器,想到里面会有很多的新鲜玩意,如魅族的UI和神奇的重力感应等。可在下载sdk当天还有点小插曲,还好顺利下载了并很快安装,安装时我只有vs2008,但sdk的文档说明要使用vs2005sp1,没当回事,结果失败了。整来整去还是装成功了解决办法很笨(
http://www.mini188.com/showtopic-880.aspx)。
安装成功后,按照说明建立了第一个工程,就是按照sdk的说明做就是了,把魅族提供的例子复制过来,这就不多说了,就是有一点麻烦编绎时会报个错异常信息如下:
fatal error C1010: unexpected end of file while looking for precompiled header. Did you forget to add '#include "stdafx.h"' to your source? c:\Documents and Settings\Administrator\My Documents\Visual Studio 2005\Projects\M8SDK_Test\M8SDK_Test\M8SDK_Test.cpp
这个问题解决很简单,在网络上有很多,其实就是要加上 stdafx.h,具体请看
解决办法。
到了这一步就可以编绎了,会提示选择模拟器,这个就不用多说了选M8SDK Emulator,运行后让人有点郁闷,模拟器的高度几乎对不起观众,无法按到M键。可恨。魅族这么做不知道是图什么?但还是看到了程序运行的效果,可一操作更郁闷,简单不能动,这可郁闷惨了。难道模拟器配置时参数配的太差?总之很慢,一个动作要持续好几秒。算了,也许是测试版弄出来让大家看看样子的。
但后来有网友解决模拟器显示样式问题(
解决方法)
回过头来看了看代码,才反应过来哦原来是用c++整的,这下可有点郁闷了,c++我基本不会。
从头到尾看了一遍代码很吃力,对于c++的语法格式简直谈不上整洁,加上魅族的注释也多感觉很乱,但至少是看的懂。就是对#define这种用法不是很熟,总是要F12跟过去看看到底是个啥玩意。。。@@#)R#*&@
起初的心情凉了不少,一直都是用各种R&D的IDE都是封装好了很多控件直接拖拽的,这回可好了要自己去算坐标了,一下子不适应。
这一弄还是了解了一点点东西:
1、类CMzApp
这个类魅族的应用程序基类,此类就是程序的入口所在了,在Sample1的代码中可以看到:
- // 从CMzApp派生主应用程序类
- class CSample1App: public CMzApp《======继承CMzApp
- {
- public:
- // 主窗口变量
- CSample1MainWnd m_MainWnd;
- // 重载Init函数
- virtual BOOL Init()
- {
- CoInitializeEx(0, COINIT_MULTITHREADED);
- //创建主窗口
- RECT rcWork = MzGetWorkArea();
- m_MainWnd.Create(rcWork.left,rcWork.top,RECT_WIDTH(rcWork),RECT_HEIGHT(rcWork), 0, 0, 0);
- m_MainWnd.SetBgColor(MzGetThemeColor(TCI_WINDOW_BG));
- m_MainWnd.Show();
- return TRUE;
- }
- };
- // 应用程序全局变量
- CSample1App theApp; 《=====程序主是从这里开始的<br>
复制代码已经说明清楚了吧,下面是帮助文档里的一句说明:if you write an application with MZFC library, please derive your application class from CMzApp. 。
2、类CMzWndEx
这个是samlpe1使用的主窗口所继承的类,是魅族M8sdk的窗口类,写窗口就从他开始咯。
3、帮助文档
看了下魅族的帮助文档,在
您安装sdk的目录\Windows CE Tools\wce600\M8SDK\Samples 下就能看到
Meizu M8 MZFC Documentation (CHS).chm
Meizu M8 PlatformAPI Documentation (CHS).chm
Meizu M8 COM Documentation (CHS).chm
新的sdk增加了英文版的文档
可以说这些帮助文档真的帮助不大!~说明太少了。希望以后能多一些。
4、sdk的类结构
具体的结构倒是可以看文档Meizu M8 MZFC Documentation (CHS).chm,有继承关系,在这里主要是说一下UiWin这个类。
可以看到sdk里面主要的控件都是从这个类继承下来的,MZFC的UI控件基类,如UiButton。
总结
简单的了解之后心里有些底了,看来出了sdk也不见得能快速的写程序,还要学习T_T。慢慢来,本文作为魅族M8sdk学习系列的开篇,接下来将使用一个简单的例子来加强下,顺便整理成文记录一下也好与大家交流。