单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,智能手机软件开发小议,使用,J2ME进行手机编程,主讲人:吴佳磊,兰州理工大学苹果俱乐部内部讲座课件,Agenda,智能手机开发概述,认识J2ME及WTK套件,Eclipse_For_J2ME,J2ME中常用类的介绍,程序Demo演示,智能手机开发概述,智能手机,公式表示:“智能手机=掌上电脑+手机”,广义上讲,智能手机就是将PDA的大部分功能,特别是个人信息管理和基于无线数据通信的网页浏览和邮件收发功能,集成到手机终端中得到的新型概念手机,智能手机的特点:便携性、可扩展性、可定制性、功能多样性、可实现增值业务,Smart,Phones,一则来自BBC的市场调查信息:,十年之前的SmartPhone市场,我们可以看到的智能手机界面都类似于黑莓手机,如今的智能手机市场中,充斥着更多厂家的手机,但是它们看上去都像是iPhone,这说明什么呢?,显而易见,苹果公司在智能手机的市场上拥有绝对的优势,引领了整个行业的潮流,作为苹果的开发者,我们可以引以为荣!,为何要进行智能手机的开发?,广泛的用户群体(中国有过5亿手机用户),众多设备制造商(如Nokia,MOTO,Apple等)及国内主要的网络运营商(中国移动、中国联通、中国电信等)都在积极开拓者一块处女地,并提供良好的SDK支持,已经比较成熟的运作模式,即从创意、研发、发布、经营到后期维护的运营平台和一条龙服务模式,包括各种手机的App商城,补充内容,对于在特定几个智能手机品牌下进行开发,可以在相应的官方网站上了解相关信息和下载开发资源包(包括开发使用的API和测试模拟器等,通常免费),Apple,Nokia,Moto,http:/,智能手机开发必备条件,开发环境:这里选择使用Java的ME版本进行手机的开发,需要配置JDK和JRE,手机功能API的支持:我们这里使用SUN公司自带的WTK,其中包含了CLDC信息、MIDP包和一款SUN公司研发的通用手机模拟器,IDE编译窗口,可使用Eclipse或NetBeans,并在其中绑定J2ME和WTK,此外,还需要准备后期测试的真实手机平台,认识J2ME和WTK套件,什么是Java?,Java是一种面向对象、可移植并被视为优于C语言(仍然有争议)的编程语言,什么是J2ME?,全称为Java Micro Edition,是Java的微型版本,主要用于进行智能终端和嵌入式环境的开发。
例如,高级汽车的智能控制软件,智能家电的控制软件等,Java是一个非常广泛的概念主要包括三种版本,分别称为J2ME、J2SE、J2EE其中J2SE是其它两种Java版本运行的基础,有关J2EE的相关知识后续讲座会涉及,基本组件,主要功能,JRE,(Java Runtime Environment),为基于Java的软件提供运行环境,包括JVM,JDK,(Java Develop Kit),为Java软件的开发提供基本的编译器、类库等,IDE,(Integrated Develop Environment),提供一个集成化的窗口界面利于进行项目文件的组织和管理,Table1.基本Java开发环境的组成,JAVA,J2ME,J2SE,J2EE,(Java家族中的标准版本,仅需要最基本的环境配置,开发桌面环境下的软件使用,提供Java的开发及调试环境、Java虚拟机等组件),(Java家族中的服务器版本,主要是用于在服务器端提供由Java开发出的动态网页及后台小程序的,运行环境除了JRE环境之外,还需要服务器端的支持,如NetBean或者Apache等,),(Java家族中的微型版本,主要用于智能终端的开发,例如手机、智能家电控制、机顶盒等。
除了JRE之外,还需要支持移动终端各种功能额外API的支持),WTK(Wireless Tool Kit),确切的讲,这是一个API的集合,由SUN公司提供的,包含CLDC和MIDP配置信息,还包括手机模拟器在其中,主要内容:11个Java相关包,每个包内还有相关的类(具体后面介绍),几个需要了解的相关概念:CLDC、CDC、MIDP等,名词术语解释,CLDC(Connection Limited Device Configuration),即有限连接设备配置信息,如手机、汽车主板就属于这一类,CDC(Connection Device Configuration),即连接设备配置信息,如机顶盒、智能冰箱等就属于这一类,Tip:两者的区别其实就是电源供电模式不同,MIDP(Mobile Information Device Profile),即移动信息设备配置文件,它专指移动CLDC设备的配置文件,例如手机的启动、初始化信息等,补充信息,手机的内嵌Java运行环境体系,Optional Packets,Profile,Configurations,Java Virtual Machine,Embeded Host OS,手机厂商为自己的产品研发的功能API,MIDP,即通用的一般性手机功能API,CDC/CLDC配置文件,类似于固件信息,写入固件中的Java虚拟机,手机厂商为自己的产品研发的操作系统,Eclipse_For_J2ME,开始之前,所谓IDE,就是指Integrated Development Environment,即集成开发环境。
它本身并不代表任何的编程语言,只是一个窗口化界面,为整个编译、测试和管理程序文件提供了一个集中环境,类似于VC、Xcode等,要在某一种系统平台下使用某一种编程语言制作软件,可以选择的平台其实有很多种例如在win下开发J2ME可以使用Eclipse、NetBeans,甚至文本编辑器加命令行操作来完成,唯一的区别就是过程中的操作方式和工作量会有所不同,Eclipse最早是在Linux下进行Java开发的IDE客户端,该软件本身也是用纯Java编写的,正由于它是用Java开发的,所以Eclipse能够跨平台工作,在Win、Linux和Mac下也有相应的版本,Elipse软件的官方主页:,在这里可以下载到各种平台下的Eclipse版本,IDE客户端:Eclipse,以Windows下的情况为例进行讲解,声明:在Linux和MacOS下均有相应的JDK和Eclipse版本,可以自行下载安装,但是遗憾的是WTK只有Windows和Linux下的版本,MacOS下暂时没有,但是,在MacOS下可以使用Xcode(另一种IDE,内置了苹果开发的SDK,只能在苹果操作系统下运行)进行iPhone的开发,后面会单独安排这方面的讲座,IDE客户端:Eclipse(续),Eclipse通常情况下是以文件包的格式存在的,所以不需要安装,下载解压后即可使用,Eclipse中常用的J2ME组件是EclipseMe,可以在Eclipse中通过安装更新包的方式将EclipseMe加入,加入后即可在Eclipse中调用J2ME的API,Eclipse运行加载界面,首次运行时,需要设定默,认的工作路,径,也叫做,工作区。
今,后的工程文,件就会放在,该路径下,Eclipse的软件主窗口,IDE客户端:Eclipse(续),注意:Eclipse在第一次启动的时候,会自动检测系统中的Java运行环境,如果没有正确安装Java环境,Eclipse也无法正常加载!,需要在软件的预设页面中,将WTK安装目录与Eclipse进行绑定,这一步完成后可以在Eclipse中调用API和模拟器,搜索完毕,发现由Sun公司提供的WTK中会包含四款通用的手机模拟器,选择一款作为默认运行的模拟器(通常选择DefaultColourPhone),默认手机模拟器绑定完毕之后,保存设置,现在就可以正式开始了,恭喜!,右侧显示的就是默认彩屏手机模拟器的界面,J2ME中常用类的介绍,首先,这里所说的J2ME中的类是特指WTK中的类,不包括JDK中的基本类,可以在WTK的安装目录下,找到docsapimidp子目录,打开其中的index.html文件,界面如下页图,该界面中包含由MIDP提供的常用API包,共11个,负责常见软件的界面功能实现,每个包中包含许多具体的类,术语简介,Java面向对象编程中,常用的几个术语罗列如下(具体内容后面的讲座中会涉及到),类(class):一般性的逻辑的抽象概念,包(packet):Java中对于相同功能的一组类的集合,接口(Interface):类似于框架的一种公共类的功能模块,可以供其他类的实例来实现,一旦实现后可以在目的类中使用源类的成员函数,一个类中的函数主要可以分为构造函数(不一定都有)和成员函数,几个重要的包:,和java.io负责各种输出输入,负责界面元素的生成,继承于object的最基本的包,负责程序初始化对象实例的创建,几个重要的类,所有显示类的基类,负责程序界面的显示,所有选项类的基类,负责线程的管理,负责显示字体的设置,负责颜色的显示,负责按键的设置,几个重要的接口,实现按键事件的监听操作,实现连接请求,实现多线程,实现对象按键时间的监听操作,接口的作用,接口主要是为了方便某一个子类的功能实现,通俗地讲也就是实现类的多重继承操作,几个重要的类,这个类适用于需要进行界面显示的部分,它是所有界面显示类的根类,所有与显示相关的类都是displayable类的子类,常见的界面元素有Form、Canvas、List、TextBox、Alert等,它们都是可以在界面上显示的,有相应的类管理它们,在它们之上添加功能,程序最开始首先创建并初始化一个显示类的对象,使用哪一种需要根据具体的界面用途来定,几个重要的类,这个类主要用于负责界面上的显示,它也是系统预置的需要实例化和使用的类之一,程序中的对象间关系:,Display对象,Displayable对象,功能对象,按键对象,事件、线程对象,应用程序本身,几个重要的类,类下面的几个子类,分别为:和,其中,canvas是画布,负责精确的绘制手机界面上的元素显示,在做游戏界面时可以用到,Screen下面的子类包括Alert,Form,List和Textbox等,根据需要进行选择,几个重要的类,Command类用于生成八种类型的按键,这八种类型分别为:BACK、CANCEL、EXIT、SCREEN、HELP、OK、ITEM、STOP,每种不同类型按键的优先级不同,具体可以参考用户API手册,按键生成之后,需要使用displayable子类的成员函数addCommand来添加按键,若要使command生效,程序还需要实现commandListener接口,几个重要的类,凡是这个类和这个类的子类实现的元素均是为了表明一个事件或是元素,主要的类型有:选择框、文本框、日期框、图像等等这些元素如果想要正常的显示在屏幕上,只能够显示在form类中,item类下的子类功能的实现还需要程序实现itemCommamdListener接口,几个重要的类,首先,需要解释什么叫做MIDlet,其实是MIDApplet的简称,手机中的大型程序其实就是由一个个小的MIDlet共同组合,称为一个project,再又编译器完成编译并打包为Jar文件,这个类是编译系统默认为J2ME程序添加的一个,是整个程序存在的前提和基础,几个重要的类,这个类的作用,简单的来讲就是一个连接器的作用,用于创建各种外部连接使用,例如,在进行网络连接的时候,首先就需要创建一个connector类的实例,通过它所包含的各种输出输入流方法来实现程序和外界之间的联系,几个重要的类,这个类是专门用在程序中的线程创建的,也就是说程序在多线程执行中会用到,这个类有四种构造函数(其实其他的几个类有的也有多种构造函数),选择一个适合自己需要的创建类的实例对象,补充内容:线程thread vs.进程process,几个重要的类,这个类是所有java程序(不仅限于J2ME)中最常用到的一个类,包含多种子类,用于特定的某一种程序编译过程中出现的意外。