本文由liu_yaxian贡献
    技术贴:学习编写m8程序 你需要做些什么?2010-2-5 22:44 更新
    希望不要移到开发区,那边没多少人看,写这些只是让想进入程序开发,特别是想进入m8程序开发的煤油指明一条路
    之前看到很多煤油问: 想要学习编写m8程序 需要做些什么?
    我自己在做关于程序的培训 本应该早给需要的煤油一些建议的
    今年人品好 M8 13楼陨落 只碎了屏幕 所以 写些东西啦
    http://bbs.meizu.com/thread-1546364-1-1.html
    想要学习编写m8程序 需要做什么
    一般从零开始 要经历一下四个阶段
    第一阶段:学习和计算机沟通的言语 —— C++语言
    程序是什么?要回答这个问题要从各个方便进行剖析,在计算领域中,程序(program)是指为实现特定目标或解决特定问题而用计算机语言编写的命令序列的集合,而通俗来说就是你和计算机沟通的一些命令的集合,也就是你到底要计算机做什么事情。这个是抄过来的概念,太复杂了,其实编写程序就是和计算机进行沟通,而沟通最常用的途径就是语言,就像我们平时和别人沟通一样,只是现在你是和计算机进行沟通,其实你想想和计算机沟通比和别人沟通来得更容易,和别人沟通别人可能不鸟你,恨你,就是不喜欢你等,但计算机不会,只会按你的要求做事,除非你忽悠它。计算机语言有很多中,如C/C++, java, 汇编语言,php,asp等,就像我们平时语言也有多种。当你掌握了这样的一种语言,那么你就能和计算机在不同的领域进行沟通。 而C++语言是目前来说较为强大的语言之一,而M8的SDK是基于C++语言的。
    而同时你要熟悉一种编程开发工具,编程工具就是你向计算机沟通的一种工具,就向平时我们说话用的嘴巴,在这里我们要分清编程语言和编程工具。程语言是指C++、Basic、Object Pascal等程序设计语言,它们是像汉语、英语一样的抽象的语法规则,编程工具是指Visual Studio .NET2005 、Delphi 7.0等包括了源代码编辑器、程序编译器,在内的集成化、可视化的软件开发工具。开发工具让我们和计算机的沟通更加方便,就像平时你和远方的朋友聊天,你可以用QQ,MSN,甚至Email等方式,但目的只有一个,就是沟通,让计算机为你办事。想要做好M8程序编写,用Visual Studio .NET2005或以上版本的IDE(集成开发工具),会让你事半功倍。
    第二阶段: 在windows平台下与计算机沟通—— Win Api
    单单会语言还不够的,就像我们平时你就只会说单个字你无法更好和别人沟通 你要懂得组词还有造句,而api(应用程序接口)就是一些应用函数,其实就是封装了一定功能的函数,就像我们语言中前人总结后的词语,句子。而我们用这些api能快速明了的和计算机沟通,例如你想建立一个windows窗口,你只要调用CreateWindow,让把需要的条件(参数)填好,那么计算机就会帮你建立一个窗口,而你先把窗口显示出来,那你调用ShowWindow就可以,想移动窗口调用MoveWindow就可以了,以此类推……这样使我们的编程刚迅速更便捷,为什么要学win api而不是其他的api,M8的系统是WinCE,当你会了Win api 其实你现在都可以编写程序,让计算机为你做事,这个阶段需要的就是多用多练,就像你以前刚学词语时都会多抄写词语,抄写段落,用过了就熟悉了。
    第三阶段:更好更便捷的与计算机沟通,面向对象的Win程序设计——MFC 
    通过前面两个阶段,你已经会组词和造句了,跟计算机沟通没问题了,写个小程序也没问题了,但程序的词语——win API太多了,你记不住,用起来也很繁琐,那怎么办呢?这个时候就有MFC(微软基础类库) 它是对Win API进行了面向对象的封装,也就是把程序里面的各个元素看做是一个对象,对象进行抽象以及数据式的封装就成为类,类很多不止一个,就成了类库,面向对象的编
程更符合我们平常对事物的认识,就像平时你第一次看到汽车,你会怎么认识它—— 描述:像一个盒子,有4个轮子,材质是铁的等数据,而对它的操作,就是驾驶,清洗等,通过上面你就认识了汽车,以后看到符合上面描述的特别就是汽车,而对它的操作就是他能驾驶,而面向对象就是这样,用数据描述,用Api操作数据,各个对象通过消息——API进行沟通,简单的对比第二阶段建立窗口,MFC的改变就在于,MFC窗口已经封装成一个整体一个类,你只要用CWnd定义一个窗口,然后用CWnd里面的ShowWindow显示出来,用里面的Move
Window移动窗口,关于窗口的API全在CWnd里面了,就这样子,有了这个我们就能更好的更好的编写程序了。MFC其实主要为我们挺供了2个内容,一是程序的框架,二是辅助的类。就相当于现在给你个汽车框架,其他的如汽车引擎,座椅,罗盘,底盘等都给你,你现在给我按你自己的喜好弄辆车出来。
    第四阶段:专用API编程——M8SDK 
    等你弄好了前面三个阶段你写windows程序已经没大的问题了,但是你想要更好的操作M8,编写更有效率的M8程序,那么你就需要M8的SDK了,首先什么是SDK(软件开发包),顾名思义其实就是方便开发某一领域软件而制作的常用的API,类库,也就相当于我们平时语言中某一领域的专业名词。SDK为我们提高的什么?一般的SDK都会包含有开发文档——专业词典,开发工具——
专业工具,开发例子——就是一些基本的应用案例,让你更快的上手,还有include,lib,dll 如果你经历过前3个阶段就知道这3个其实就是封装好的API的原代码所在,总的来说M8SDK提高给我们的也是2个东西,一是M8程序的框架,二是M8辅助API和类,有了SDK你就能很方面很快捷的搭建M8程序了,而开发文档就能方便的让我们查不懂或容易出错的地方。就相当于现在不单要你组汽车,而是要你组法拉利,法拉利框架(程序框架),法拉利引擎,座椅,罗盘,底盘(程序辅助API和类库)等都给你,还附带组装说明书(程序开发文档),组装用到的扳手,螺丝刀等(程序开发工具),别人组装的实例(程序的开发实例)都给你,你给我组台法拉利出来。
    如果你这四个阶段都过了 剩下的就是开发,在不断的开发中积累经验与程序框架。用得越多越熟练。
    如果你想开发更深入,更有效率的M8程序,那么继续学习DDraw,Opengl ES,学无止境。
    下面举个例子:想要开发一款M8的2D简单的赛车游戏
    1. 用M8 SDK提供的程序框架 建立一个M8程序
    2. 用辅助类ImagingHelper读取3张图片——地图(道路),主角车,另外的车子中文写代码软件
    3.不停的绘画地图的不同位置,让地图看起来像是在从上往下移动
    4.绘画主角车,车子通过捕获鼠标位置(也就是你手指碰到的位置)改变车子的位置,如果你不喜欢这样可以控制,也可以通过捕获重力方向改变车子的位置,这些M8SDK均有提供。
    5.绘画另外的车子,从上往下走,与主角车进行碰撞,如果不是很严格那就位置比较一下就行,出了屏幕或碰到主角车就消失(不绘画,别删了),过阵子又从上往下走,以此类推。
    6.主角车碰到了是掉血还是死掉 你自己喜欢了啊,如果想再好玩些就再加些障碍物,加些奖励,规定时间,换不同地域的地图,加入警车,加入生涯等。
    7.在这些过程中可以再加入游戏logo,菜单,游戏死亡界面,游戏排行榜等
    一个简单的赛车游戏就这样来了
    M8是一个不错的平台,希望有兴趣,有能力的人多关注,多加入,我自己目前有其他事情忙着,等完了会编写专用的游戏简单的2D引擎
    目前具有我知已经有了不错的出M8SDK外还有其他不错的SDK,如Power Mobile SDK等 我相信以后会越来越多
    希望这篇文章对想进入程序行业,或M8程序开发的人员有所帮助
    刚有人说想要写好程序 就不要用IDE,而用记事本开始
    这个就相当于你去驾校学开车,教练跑过来说 你要学开车,先要学会骑自行车    并不是说用记事本写就不好或不行,而是因为我们有更好途径,更好的工具,为什么不用呢?
    顺便说说使用时间吧:
    有人说 哇 要学那么多东西啊 要不要好几年啊
    我只能说拿得看你用心的程度,有些人一辈子都学不会
    但如果你用心,够努力,而有人带,3个月左右差不多了,如果你特别聪明而又有程序感觉,那么可能2个月就够了
    C++ 30天 先不用太深入,够用就好,就像你以前学语文,也不用要你学成一个语言专家啊
    WinApi 20天 主要学会怎样组织程序和怎样查相应的api 懂英文最好 不行就百度 中文解释还带例子
    MFC 20天 同样学习架构和怎样查询,如果你winapi学得好,mfc应该没问题的    M8SDK 20天 M8SDK学习,主要3个:A,com接口——音乐播放,摄像头,文档,录音机 (这个是要操作对应硬件的)
    B, M8 MZFC —— 也就是魅族类库,和MFC差不多,是Meizu封装的专用类库和api,
    主要是框架,控件,图片操作的ImageHelper,CMzAnimator等
    C,M8 PlatformAPI ——重力,红外,触摸,背光等
    Meizu提供了大类的例子以及对应的开发文档,十分方便,除非SDK出bug(这个没办法),否者一般没多大问题
    如果你只是有兴趣,那你可以只攻第一和第四阶段,时间会更短。
    好像我以前发过相关的需要的时间的帖子,看看在那先
    想学学习 顺便把书也推荐了
    C++ —— 不用问 肯定是谭浩强 《 C++面向对象程序设计》 清华大学出版社 国内大学标准教程 十多年来都是他,目前听说口碑不怎样,呵呵
    如果想再深入些就《C++ prime》《effective C++》等 网上都有电子版 自己慢慢 如果对书不感冒 还有视频 推荐《孙鑫Vc++视频教程》等
    一步一把教你写,除此外肯定还有最强大的msdn和国内的csdn社区
    win api ——《Windows 程序设计》第5版上、下册 北京大学出版社,忘了大学时学那本了 那位记得告诉我
    MFC —— 《MFC Windows程序设计》清华大学出版社,以前大学学得的好像是《深入浅出MFC》(第二版) 侯俊杰(侯捷) 华中科技大学出版社 
    meizu SDK—— 你下载了装了后 就会有三个重要文档:《Meizu M8 COM Documentation (CHS》
    《Meizu M8 MZFC Documentation (CHS)》
    《Meizu M8 PlatformAPI Documentation (CHS)》
    目录下还带详细例子,用心学啦
    其实程序有了理论更多的还要多写多练
    针对C++ 那就在学了理论后,在vs上通过控制台程序,干掉C++经典100题
    而针对winapi和mfc 那你就想想你现在想弄一个怎样的程序可以方便你日常的工作和生活——记事本,记账器,计算器,人品计算器等
    而对MeizuSDK 就看看平时自己用M8时 想要那个功能是没有的 看能不能实现
    多写些小程序,如果想有趣点的话旧写个小游戏吧
    同时多看些写得好的程序代码 学习别人的优点改进自己
    哇 100+ 还真没见过啊 吓死人啊
    很多煤油叫我加为好友 太多了 加不完 你有什么问题就问啊 要不个人开个 我加进入 有时间我就回啊!
    有煤油说他目前只学C语言 不会C++ 其实C++比C 总的来说多了两块内容 
    第一个就是面向对象的程序设计思想——类(数据+操作)
    第二个就是模板,也就是后面发展的STL(标准模板库) 
    只要你在原基础上 再用心的补补这两个就差不多了,特别是面向对象的程序设计
    学程序最重要的是毅力 你到底用了多少心,坚持了多久 
    我有个朋友初中还没毕业 四年后的今天是一个高级程序员(虽然还没升主管,但能力不差了)
    就这样 并不是说学历不重要,学历会限制你以后进公司,最终的发展瓶颈
    但并不会影响你前期对程序的学习,主要你用心努力,把高学历的人先用的时间补回,你就能追上甚至超越高学历的人
    刚有位煤油 一草人 贡献了个:86628674 有兴趣的人进入交流交流
    目前放假了 还闲 开学了就忙了 到时不知又没时间回复大家 过两天回家也不方便上网啊
    改了一些错别字
    刚看了lwzz的回帖
    http://bbs.meizu.com/thread-1547674-1-1.html
    回复在此帖
    另外谭浩强的书口碑的确不咋的
    说得也挺有道理的 你要深入的学做程序,成为程序员,很多基础的东西,良好的习惯真不能丢
    只是觉得业有分工 有些人是以程序作为终身事业,有些人想成为专家,写大型程序甚至操作系统,有些人是为谋生 有些人只是兴趣
    3个月要学好整个程序 写出好的程序 确实不太可能 
    但却能做到基本沟通没问题 写些小程序 小游戏没问题 
    这就是开始 如果真的想更好更深入 就真的要从基础从基本抓起 往后遇到问题就可能要从底层学起,这些东西都不能丢
    只是很多时候就是因为太多太多的基础,太多太多无趣的理论,会让人望而却步 后面的学习无从谈起了……
    并需要你写法律文书,写个大型的程序,只需要你写个笑话,弄个小程序,小游戏,方便和娱乐大家就够了……
    那是不是我现在只写小程序就以后就写不了大型程序,操作系统呢? 不?只是你写成为那样的人才 你还是得在往后的时间里从基础开始补齐 这些你都不能落下
    而同样,M8 SDK的存在 就是为了让我们抛弃更多的底层的东西 更好的处理程序表层 快速的写出需要的的软件
    底层自然有底层的人员去写,大型的软件就有大型的公司去写,你以后想写底层,架构大型软件,可以,你就多往这方面发展自己的特长。
    纵观ipone的30W个程序 有多少个大型的软件 
    我们不需要写出大型的opera,UCweb那样的浏览器,office这样的大型应用软件,但只需要我们写出无严重错误的方便广大煤油的小软件,或娱乐大家的小游戏就够了
    刚看了 zyzy1999 的帖子 
    【好消息,号外】一个月后,M8的第三方软件会出现井喷!有真相。暴强回复惊现73楼!
    http://bbs.meizu.com/thread-1541004-1-1.html
    其中
    引用:
    原帖由 daiyunye 于 2010-2-2 11:26 发表 
    井喷好..但是那些软件的质量怎么样? 
    回帖说得不错,如果通过上面的基本的学习,可能开始时写出的软件质量可能不怎样,甚至严重错误
    但我们需要那个“井喷”,需要更多的人员加入M8软件的开发,可能一开始质量确实不行,到处bug,但慢慢的就好
    哪个个软件不是从很多bug到逐渐减少,就算是meizu现在的固件,甚至Windows这样的大型系统都经常出bug,但慢慢就稳定改进下来
    任何一个程序,我能忍受你的0.1版本到处出问题,死机,拔电池……但希望你能让我看到你的每一个版本的改进,到1.0版本是的稳定,到2.0版本时的出彩
    li.jpg (26.48 KB)
    2010-2-5 09:53
    这个太过奖了,惊人的作品可能没有 主要是没时间和精力落在这里,并不是说M8没发展 主要是我有其他的发展啊 呵呵
    我只是想让更多的人员,特别是一些程序圈外的,进入M8开发
    只要有100人进入 就可能有20人成为技术主干 就可能出10个好的作品
    惊人的作品并不是一两天就能出来的,但一些方便小软件,娱乐的小游戏就可以
    计算机的出现改变了我们的生活,其实总的来说两个最大的点:
    1,方便了我们的生活 —— 无论是小型还是大型的软件 2,娱乐了我们的生活—— 无论是小型还是大型的游戏
    并不是说其他计算机语言(如java,汇编语言,php,asp等)就没有前途,其他语言在其他领域各有出彩,
    只是因为M8的系统是WinCE winapi,mfc,M8SDK里面内容很多都基于C/C++ 所以你需要学的语言应该是C/C++,同时WinAPI和MFC也不能落下
    其实语言都有很大的共同性,无论你使用哪种语言,一般都要经历一下3个阶段:
    语言学习期 ——》 平台熟悉期 ——》专业领域实践
    今天有个朋友来了,也是做程序的,之前做java,现在想做3D game,想做显示模块,在家闭关2个月 年后去福州一家游戏公司上班 
    一个很勤快很用心的人 我现在都没这样的心
    聊了很多,他自己的闭关情况,他的技术的发展,这几年大家的发展等
    虽然不能说他是一个很优秀的程序员,但他已经可以在圈子里立足,为某些软件付自己的一分力
    重点是—— 他的学历是初中 (做过工厂工——做过销售(手机)——做过工作室杂碎——做过公司技术人员——…… ) 
    他只是朝自己的目标进发,他比他的一些经过大学教育的朋友们(包括我)都要累很多,但我觉得他将来不会比我们差……
    以前听他说过想去韩国学更高深的游戏技术(没错是韩国,主要是那时韩国游戏当热 )
    那时我觉得他应该很难(他那时不会英文/韩文,刚开始学程序,家里条件不是太好),但今天看到他,我觉得他可以……
    很多人都说程序这条路不好走,最后可能没多少人能走到终点……但我希望有更多有兴趣的人踏上了,因为这条路,在路上也其乐无穷……
    就好比赛跑选手和喜欢跑步的人 赛跑选手感受第一个冲过终点的兴奋,喜欢跑

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。