如何在手机上编程游戏 怎么在手机上编程

如何在手机上编程
随着通信技术的发展和手机的普及,人们不断地给手机添加新的功能 。其中,让手机实现只有PC才有的功能——下载各种程序并运行,是手机发展的一个重要方向 。为此,人们提出了各种解决方案,其中基于JAVA的J2ME无疑是最引人注目的 。JAVA因其平台无关性、开放性、强大的网络功能、面向对象性和安全性等特点,随着互联网的发展而风靡全球,并成为国外软件开发人员的必修语言 。尤其是他的‘一次编写,到处跑’的跨平台优势,对手机领域意义重大 。目前手机种类繁多,各个厂商都有自己的标准 。如何使它们运行相同的标准程序成为必须解决的问题 。采用JAVA语言后,各种手机只要实现JAVA虚拟机(JVM)就可以运行JAVA程序 。这种方法可以说是目前最理想的解决方案 。J2ME(JAVA2 MicroEdition)是用于嵌入式系统的JAVA 。它是SUN公司对标准JAVA版本J2SE进行最大程度精简后得到的JAVA应用运行环境 。最简单的情况下只有几十kB,特别适合在手机、PDA等设备上使用 。如果手机厂商在自己的手机中实现了J2ME规范,就可以从网络上下载并运行JAVA程序,从而大大扩展了手机的功能 。鉴于JAVA在互联网上取得的巨大成功,我们有理由相信,J2ME可以将这种成功扩展到手持设备领域,为未来手机与互联网的融合提供有利条件 。JAVA手机的出现也为软件行业提供了新的机遇 。JAVA手机能否提供足够的软件资源是关系到其普及的重要因素之一 。简要介绍了J2ME架构,并通过一个具体的程序实例说明了JAVA手机程序的特点和开发过程 。2概述J2MEJ2ME是一个新的非常小的JAVA应用程序运行环境,其定义的框架主要用于促进JAVA技术在手持设备上的使用 。SUN将为各种硬件规模的设备提供合适的配置,包括虚拟机、核心类库和API 。目前,J2ME定制了两种配置:CLDC(连接受限设备配置)和CDC(连接设备配置) 。其中,CLDC是为手机等CPU和内存资源远低于标准JAVA要求的设备提供的配置 。它是通过最大程度的缩减JAVA的标准版得到的,它的虚拟机和核心类库都在100kB以上 。CDC配置主要用于拥有更多资源的下一代设备 。CLDC配置为各种手持设备提供了运行JAVA程序的环境,但开发人员在这种环境下开发程序仍然很困难 。首先,由于CLDC核心库提供底层API,不适合直接构建应用;其次,手持设备的系统结构千差万别,很难保证应用程序的图形界面和网络功能的可移植性 。因此,为了进一步增强的功能,SUN公司允许设备供应商在实现的基础上,为自己的设备提供专门的先进API和程序管理方法,即PROFILE,以简化应用程序的开发,使其具有更好的可移植性 。与此同时,SUN公司联合50多家知名的移动设备制造商和软件开发商,开发了一个Profile——MIDP(MobileInformationDeviceProfile),专门用于手机等移动信息设备 。由于MIDP提供了编写图形界面和网络程序的统一标准,实现了动态、安全的程序管理方式,因此得到了诺基亚、摩托罗拉、西门子等各大手机厂商的支持,并推出了基于MIDP的JAVA手机 。与APPLET类似,MIDP程序也称为MIDlet 。它必须继承一个特定的类- MIDlet,以便MIDlet管理器可以控制它的运行 。该类包含三个用户可以重载的方法:startApp、pauseApp、destoryApp,分别在MIDlet进入运行状态、停止运行、退出时调用 。
与标准JAVA的AWT界面相比,MIDP程序的图形界面要简单得多 。分为低级API和高级API 。低级图形API使开发人员能够更直接地控制屏幕显示和键盘输入 。它基于抽象类Canvas,一般用于编写游戏程序 。它的可移植性应该由开发者自己来保证 。高级的图形API可以很好的在不同设备之间移植,但是开发者的调整余地相应较小 。它基于抽象类Screen,有四个具体的子类:Alert、Form、List和TextBox,分别代表警告框、表单、列表框和文本输入框 。此外,高级API还提供了许多图形组件,包括Command、ChoiceGroup、DateFie1d、Gauge、ImageItem、StingItem、TextField等 。可以添加到报表和表单中 。一些图形组件也提供类似于AWT的事件和事件响应处理方法 。MIDP程序通常与各种资源文件一起压缩到一个jar文件中 。发布时还需要一个扩展名为jad的描述文件,包含MIDP程序的名称、版本、jar文件的位置和大小等 。JAVA手机首先需要访问的是描述文件,然后根据描述文件的信息将MIDP程序安装到手机中,才可以运行 。MIDP程序真正的运行环境是JAVA手机,但是它的开发是在PC上进行的,所以开发环境一般会提供一个仿真器来测试程序 。各种手机厂商都有自己的开发和测试环境 。下面的示例程序在SUN公司的实现中调试通过 。3.1程序功能本例包含两个MIDP程序 。第一个程序运行时,要求用户输入姓名并选择性别,然后程序根据性别和当前时间向用户输出一个问题 。
候语 。第2个程序运行时让用户选择图片名称,然后把这幅图片在屏幕上显示出来 。这2个MIDP程序由同一个描述文件描述 。3.2 程序源代码及注释3.2.1 第1个MIDP程序(samplel.java)import javax.microedition.midlet.MIDlet;import javax.microedition.1ci.*;import java.util.*; //任何MIDP程序都要继承MIDlet类,为了处理按钮命令,还要实现了CommandListener接口public class samplel extends MIDlet implements CommandListener{private TextBox input; //声明文本输入框private Form select; //声明表单,用于放置各种图形组件private Alert output //声明警示框Command cfl,cf2,ct,ca; //声明各种命令按钮ChoiceGroup sex; //声明选择框Display display=null; //声明屏幕显示对象public samplel(){input =new TextBox("请输入您的姓名:",null,8,TextField.ANY); //创建文本输入框ct=new Command("OK",Command.SCREEN,1); //创建按钮ctinput.addCommand(ct); //把按钮加到文本输入框input.setCommandListener(this);//设置按钮事件处理类select=new Form("请选择性别:"); //创建表单String[]str={"男","女"};sex=new ChoiceGroup(null,ChoiceGroup.EXCLUSIVE,str,null); //创建单选框,select.append(sex) //把单选择框加入表单cfl=new Command("OK",Command.SCREEN,1);//创建2个按钮cf1和cf2cf2=new Command("回退",Command.BACK,2);select.addCommand(cf1); //把2个按钮加到表单select.addCommand(cf2);select.setCommandListener(this) //设置按钮事件处理类output=new Alert("问候;","您好1",null,null);//创建警示框output.setTimeout(Alert.FOREVER);//设置超时为永远ca=new Command("退出",Command.EXIT,1);//创建按钮ca output.addCommand(ca); //把按钮ca加到警示框output.setCommandListener(this); //设置按钮事件处理类} public void startApp() //该方法在该MIDlet得到执行权时调用{if(display==null) display=Display·getDisplay(this);//从系统得到这个MIDlet的屏幕显示对象display·setCurrent(input);//把文本输入框input显示在屏幕}public void pauseApp() {}//该方法在该MIDlet失去执行权时调用public void destroyApp(boolean unconditional)//该方法在该MIDlet退出时调用{input=null; output=null;select=null;}//commandAction方法是CommandListener接口中定义的按钮事件处理方法public void commandAction(Command c,Displayable d){if(c==ct) //如果按了ct按钮display.setCurrent(select); //则把表单select显示在屏幕if(c==cfl) { //如果按了cfl按钮 Calendar rightNow = Calendar.getInstance();//得到当前时间int ti=rightNow.get(Calendar.HOUR_OF_DAY);//得到当前时间的小时数(24小时制)int indx=sex.getSelectedIndex();//得到用户在单选框中所选的项目号String helo= null;String name=input·getString();//得到用户在文本框中输入的字符串//以下4句根据ti和indx的值构建不同的字符串heloif(ti>=12&&indx;==1)helo="上午好!"+name+"小姐";if(ti>=12&&indx;==0 helo="上午好!"+name+"先生";if(ti<12&&indx;==1) helo="下午好!"+name+"小姐";if(ti<12&&indx;==0 helo="下午好!"+name+"先生";output.setString(helo);//在警示框中加入字符串helodisplay·setCurrent(output);//把警示框output显示在屏幕}if(c==cf2 //如果按了cf2按钮display.setCurrent(input);//则把把文本输入框input显示在屏幕if(c==ca) { //A0果按了ca按钮,则调用destroyApp方法退出destroyApp(true);notifyDestroyed();}}}3.2.2 第2个MIDP程序(sample2.java)import javax.microedition.midlet.MIDlet;import javax.microedition.1ci.*;public class sample2 extends MIDlet implementsCommandListener{private Form form;private List list" //声明列表框Command cl=null;Display display=null;String[]dd={"图像1","图像2","图象3"};public sample2(){list=new List("Test List,Choice.EXCLUSIVE,dd,null);cl=new Command("OK",Command.SCREEN,1);list.addCommand(cl);list.estCommandListener(this);} public void startApp(){display=Display·getDisplay(this);display·setCurrent(1ist);}public void pauseApp() {}public void destroyApp(boolean unconditional){ list=null; }public void commandAction(Command c,Displayable d){ Image aa=null; //声明图像对象aaif(c==cl) { //用户按了cl按钮int i=list·getSelectedIndex();//得到用户在列表框中所选的项目号 try{//创建图象对象,图象文件为tl.png,t2.png或t3.png,要和类一起压缩在jar包中aa=Image.createImage("/t"+(new Integer(i+l)).toString()+".png");}catch(Exception e){}Form f=new Form("Test"); //创建表单ff.append(aa); //在表单中加入图像display·setCurrent(f);//把表单显示在屏幕上} }}3.2.3 描述文件内容(sample.jad)MIDlet-1;Hello,,samplel//声明第1个MIDlet程序,显示名为Hello,类名为samplelMIDlet-2:Image,,sample2//声明第2个MIDlet程序,显示名为Image,类名为sample2MIDlet-Description:Sample application //对MIDlet的描绘MIDlet-Jar-Size:11640//Jar包的字节数,要根据实际情况修改MIDlet-Jar-URL:sample.jar//Jar包的位置及名字,位置省略时表示与jad文件在同一位置MIDlet-Name:MySamples //MIDlet的名字MIDlet-Vendor:Sun Microsystems //供应商名字MIDlet-Version:1.0 //MIDlet版本3.3 开发过程(WindOWS 2000平台下)(1)从SUN公司的网站下载MIDP2.0版(http:va.sun.com/prOcts/midp),并解压到c:\midp2.0fcs(2)从SUN公司的网站下载JAVA标准版开发工具JDKl.3.1,安装在c:\jdkl.3(3)建一工作目录,并把上述3个文件存人该目录(4)另外再找3个图像文件,转化为png格式后以tl.png,t2.png,t3.png的名字存入工作目录(5)进入MS-DOS方式,转入工作目录,设置以下环境变量:set MIDP_HOME=c:\xmidp2.Ofcsset PATH=c:\jdkl.3\bin;c:\midp2.Ofcs\binset classpath=c:\midp2.Ofcs\classes(6)编译2个JAVA文件:javac *.java(7)用以下命令预先检查2个类:preverify-d.sample1preverify-d.sample2(8)把有关文件打成1个包:jar-CVf sample.jar *.pag(9)在仿真器中运行:midp-C1asspath.sample.jar-descriptor sample.jad在完成仿真后,可以把sample.jadd和sample.jad放在某一网站,并用以下命令测试: midp-install http://<网络地址及路径>/sample.jad//下载并安装midp-run 1 //运行,1表示所安装的第1个MIDlet注:①网站的Web服务器要把jadd文件的MIME类型设为text/Vnd.sun.j2me.app-descriptor,jar文件的MIME类型设为applicatiOn/java-archive;②若sample.jad和sample.jar放在不同位置,则sample.jad中的MIDlet-Jar-URL属性要相应修改;③可以输入midp命令,然后用图形界面进行操作 。4 结 语MIDP API还提供了HttpConnection类,利用他可以很方便地与互联网的网站进行交互,从而编写出功能很强的网络程序 。随着JAVA手机的普及,迫切需要大量的应用程序资源,各大手机厂商也给开发者提供了非常方便的开发工具,相信MIDP程序的开发在不久的将来能很快地流行起来 。

如何在手机上编程游戏 怎么在手机上编程

文章插图
如何在手机上玩编程
【如何在手机上编程游戏 怎么在手机上编程】这里介绍3种可以在手机上编程的app,分别是c语言编译器(c语言)、AIDE集成开发环境(java)、QPython3(python),都不需要root,可以直接编写程序并运行,下面我简单介绍一下这3个app的安装和简单使用,主要内容如下:C语言编译器:这是一个很小巧的c编译器,大概13兆左右,界面简洁、朴素,使用起来很简单,下面我介绍一下这个app的安装和简单使用:1.下载安装,这里以我的vivo手机为例,直接打开“应用商店”,搜索“C语言编译器”,如下,直接点击下载安装:测试代码如下,这里编写了2个函数,分别是2数之和和2数只差,很简单:程序运行截图如下,需要先输入2个数,才能正常运行:AIDE集成开发环境:这个主要是用来写java代码(创建工程、写小游戏等),当然也可以写c++代码,只不过需要安装对应的插件才行,自带自动补全的功能,界面干净、整洁,使用起来不错,下面我介绍一下这个app的安装和简单使用:1.下载安装,这直接在应用商店里搜素“AIDE”就行,直接下载安装,如下:这里测试一下,主要代码如下,官方自带的例子:程序运行截图如下:QPython3:这个见名思意,主要用来在手机上写python3代码,使用起来也不错,下面我介绍一下这个app的安装和简单使用:1.下载安装,这里直接在应用商店里搜索“QPython3”就行,直接下载安装,如下:主界面如下,主要分为“终端”、“编辑器”、“程序”、“QPYPI”、“课程”、“社区”这6个模块,终端类似IDLE,编辑器类似记事本,QPYPI是第三方包和工具,程序存储官方自带的示例,课程是一些教学案例:这里测试一下官方自带的例子—speaky.py,在“程序”这个模块下,代码如下:点击运行按钮,程序运行截图如下:至此,这3个app都介绍完毕 。总的来说,使用起来都不错,各有各的功能,当然,还有许多其他的app也可以在手机上进行编程,像c4droid(c/c++),termux(高级终端,类似linux)等,这里我就不详细介绍了,感兴趣的可以在网上搜索一下,有相关教程和示例可供参考,希望以上分享的内容能对你有所帮助吧 。怎么在手机上玩编程
这里推荐一个软件—QPython3,集成了Python3解释器、Console控制台和QEdit编辑器,可以直接编辑运行python代码,也可以进行简单的安卓开发