怎么在手机上编程 手机上怎么编程

\u5982\u4f55\u5728\u624b\u673a\u4e0a\u7f16\u7a0b\u5e76\u8fd0\u884c

\u7b2c\u4e00\u6b65\uff0c\u5728\u5b89\u5353\u624b\u673a\u4e0a\u5b89\u88c5Termux\u3002
Termux\u662f\u5b89\u5353\u624b\u673a\u4e2d\u8f83\u9ad8\u7ea7\u7684\u7ec8\u7aef\u6a21\u62df\u5668\uff0c\u4e0d\u4ec5\u5f00\u6e90\uff0c\u800c\u4e14\u4e0d\u9700\u8981root\uff0c \u652f\u6301apt\u7684\u7ba1\u7406\u8f6f\u4ef6\u5305\uff0c\u80fd\u591f\u5341\u5206\u65b9\u4fbf\u5730\u5b89\u88c5\u8f6f\u4ef6\u5305\u3002
\u4e0b\u8f7d\u65b9\u5f0f\u76f4\u63a5\u641c\u7d22Termux\u5373\u53ef\uff0c\u7b80\u5355\u65b9\u4fbf\u3002

\u8bf7\u70b9\u51fb\u8f93\u5165\u56fe\u7247\u63cf\u8ff0
2
\u7b2c\u4e8c\u6b65\uff0c\u6210\u529f\u5b89\u88c5\u540e\uff0c\u70b9\u51fbTermux\u8fd0\u884c\uff0c\u5e76\u5f00\u59cb\u7f16\u7a0b\u3002
\u5b89\u88c5Termux\u4e4b\u540e\uff0c\u53ef\u4ee5\u5728\u624b\u673a\u684c\u9762\u770b\u5230\u8be5\u8f6f\u4ef6\uff0c\u5982\u56fe\u6240\u793a\uff1b\u7136\u540e\u70b9\u51fb\u8fd0\u884cTermux\uff0c\u6b64\u65f6\u8fdb\u5165\u5230Termux\u7f16\u7a0b\u754c\u9762\u3002

\u8bf7\u70b9\u51fb\u8f93\u5165\u56fe\u7247\u63cf\u8ff0
3
\u7b2c\u4e09\u6b65\uff0c\u5b89\u88c5Python\u3002
\u5728Termux\u8fd0\u884c\u754c\u9762\u8f93\u5165\u547d\u4ee4pkg install python\u53ef\u4ee5\u5b89\u88c5python\u3002
\u63d0\u793a\uff0c\u5728\u5b89\u88c5\u8fc7\u7a0b\u4e2d\u4f1a\u63d0\u793a\u662f\u5426\u7ee7\u7eed\uff0c\u6b64\u65f6\uff0c\u8f93\u5165y\u5373\u53ef\u3002

\u8bf7\u70b9\u51fb\u8f93\u5165\u56fe\u7247\u63cf\u8ff0

\u8bf7\u70b9\u51fb\u8f93\u5165\u56fe\u7247\u63cf\u8ff0
4
\u7b2c\u56db\u6b65\uff0c\u67e5\u770bPython\u7248\u672c\u3002
\u5b89\u88c5\u540e\uff0c\u53ef\u4ee5\u8f93\u5165python\u56de\u8f66\u67e5\u770b\uff0c\u63a5\u7740\u4f1a\u5728\u4e0b\u4e00\u884c\u51fa\u73b0Python 3.8.0\uff0c\u8fd9\u5c31\u662f\u76ee\u524d\u6700\u65b0\u7248\u672c\u3002

\u8bf7\u70b9\u51fb\u8f93\u5165\u56fe\u7247\u63cf\u8ff0
5
\u7b2c\u4e94\u6b65\uff0c\u9a8c\u8bc1\u662f\u5426\u5b89\u88c5\u6210\u529f\u3002
\u4e3a\u786e\u4fdd\u6210\u529f\u5b89\u88c5\uff0c\u53ef\u4ee5\u901a\u8fc7\u8f93\u5165\u7b80\u5355\u7684\u7f16\u7a0b\u6765\u9a8c\u8bc1Python\u662f\u5426\u5b89\u88c5\u6210\u529f\u3002
\u6bd4\u5982\u8f93\u5165print('Hello world')\uff0c\u7136\u540e\u56de\u8f66\uff0c\u5728\u4e0b\u4e00\u884c\u6253\u5370\u51faHello world\uff0c\u8868\u660e\u5b89\u88c5\u6210\u529f\u3002
\u6b64\u65f6\uff0c\u6211\u4eec\u5c31\u53ef\u4ee5\u5728\u624b\u673a\u4e0a\u8fd0\u884c\u4e00\u4e9bPython\u4ee3\u7801\u4e86\u3002

\u8fd9\u91cc\u4ecb\u7ecd\u51e0\u4e2a\u53ef\u4ee5\u5728\u624b\u673a\u4e0a\u7f16\u7a0b\u7684\u8f6f\u4ef6\uff0c\u611f\u5174\u8da3\u7684\u53ef\u4ee5\u4e0b\u8f7d\u4e00\u4e0b\uff0c\u8bd5\u7740\u64cd\u4f5c\u4e00\u4e0b\uff1a

1.Python\uff1a\u8fd9\u91cc\u63a8\u8350\u4e00\u4e2a\u8f6f\u4ef6\u2014QPython3\uff0c\u96c6\u6210\u4e86Python3\u89e3\u91ca\u5668\u3001Console\u63a7\u5236\u53f0\u548cQEdit\u7f16\u8f91\u5668\uff0c\u53ef\u4ee5\u76f4\u63a5\u7f16\u8f91\u8fd0\u884cpython\u4ee3\u7801\uff0c\u4e5f\u53ef\u4ee5\u8fdb\u884c\u7b80\u5355\u7684\u5b89\u5353\u5f00\u53d1\uff0c\u4e0b\u9762\u6211\u7b80\u5355\u4ecb\u7ecd\u4e00\u4e0b\u8fd9\u4e2a\u8f6f\u4ef6\u7684\u5b89\u88c5\u548c\u4f7f\u7528\uff1a

\u5b89\u88c5\u7684\u8bdd\uff0c\u76f4\u63a5\u5728\u624b\u673a\u5e94\u7528\u4e2d\u641c\u7d22\u5c31\u884c\uff0c\u5982\u4e0b\uff1a

\u6253\u5f00\u8f6f\u4ef6\uff0c\u7ec8\u7aef\u6d4b\u8bd5\u6548\u679c\u5982\u4e0b\uff0c\u5c31\u884c\u7535\u8111\u7248\u7684python shell\uff1a

QEdit\u7f16\u8f91\u5668\uff0c\u7f16\u8f91\u5b8cpython\u4ee3\u7801\u540e\uff0c\u53ef\u4ee5\u76f4\u63a5\u8fd0\u884c\uff1a

\u6548\u679c\u5982\u4e0b\uff1a

2.Java\uff1a\u8fd9\u91cc\u63a8\u8350\u4e00\u4e2a\u8f6f\u4ef6\u2014AIDE\uff0c\u4e00\u4e2aJava\u96c6\u6210\u73af\u5883\uff0c\u53ef\u4ee5\u76f4\u63a5\u65b0\u5efaJava\u9879\u76ee\uff0c\u8fdb\u884cJava\u4ee3\u7801\u7684\u7f16\u8f91\u548c\u8fd0\u884c\uff0c\u8fd8\u53ef\u4ee5\u8fdb\u884c\u6e38\u620f\u5f00\u53d1\uff0c\u529f\u80fd\u5f3a\u5927\uff0c\u5185\u7f6e\u5b66\u4e60\u6559\u7a0b\uff0c\u5f88\u9002\u5408\u521d\u5b66\u8005\u5b66\u4e60\u638c\u63e1\uff0c\u4e0b\u9762\u6211\u7b80\u5355\u4ecb\u7ecd\u4e00\u4e0b\u8fd9\u4e2a\u8f6f\u4ef6\u7684\u5b89\u88c5\u548c\u4f7f\u7528\uff1a

\u5b89\u88c5\u7684\u8bdd\uff0c\u4e0e\u4e0a\u9762\u4e00\u6837\uff0c\u76f4\u63a5\u5728\u624b\u673a\u5e94\u7528\u4e2d\u641c\u7d22\u5c31\u884c\uff1a

\u6253\u5f00\u8f6f\u4ef6\u5982\u4e0b\uff0c\u53ef\u4ee5\u76f4\u63a5\u65b0\u5efaJava\u6587\u4ef6\uff0c\u7f16\u5199Java\u4ee3\u7801\u5e76\u8fd0\u884c\uff1a

\u5f53\u7136\uff0c\u4e5f\u53ef\u4ee5\u76f4\u63a5\u5f00\u53d1\u7b80\u5355\u7684\u5b89\u5353\u6e38\u620f\uff0c\u5e76\u76f4\u63a5\u5728\u624b\u673a\u4e0a\u5b89\u88c5\u8fd0\u884c\uff1a

\u6e38\u620f\u6548\u679c\u5982\u4e0b\uff1a

3.HTML\uff1a\u8fd9\u91cc\u63a8\u8350\u4e00\u4e2a\u8f6f\u4ef6\u2014w3cschool\u7f16\u7a0b\u5b66\u9662\uff0c\u53ef\u4ee5\u5728\u7ebf\u6d4f\u89c8\u67e5\u770b\u524d\u7aef\u5f00\u53d1\u7684\u8d44\u6599\uff0c\u5305\u62echtml,css,javascript\u7b49\uff0c\u540c\u65f6\u53ef\u4ee5\u5728\u7ebf\u7f16\u8f91\u4ee3\u7801\u5e76\u8fd0\u884c\uff0c\u662f\u4e00\u4e2a\u5f88\u4e0d\u9519\u7684\u5b66\u4e60\u524d\u7aef\u5f00\u53d1\u7684\u8f6f\u4ef6\uff0c\u4e0b\u9762\u6211\u7b80\u5355\u4ecb\u7ecd\u4e00\u4e0b\u8fd9\u4e2a\u8f6f\u4ef6\u7684\u5b89\u88c5\u548c\u4f7f\u7528\uff1a

\u5b89\u88c5\u7684\u8bdd\uff0c\u76f4\u63a5\u5728\u5e94\u7528\u5546\u5e97\u4e2d\u641c\u7d22\u5c31\u884c\uff1a

\u6253\u5f00\u8f6f\u4ef6\uff0c\u5c31\u53ef\u4ee5\u641c\u7d22\u524d\u7aef\u7f16\u7a0b\u7684\u8d44\u6599\uff0c\u5982\u4e0b\uff1a

\u5728\u7ebf\u7f16\u8f91\u8fd0\u884c\u4ee3\u7801\u7684\u6548\u679c\u5982\u4e0b\uff1a

4.C/C++\uff1a\u8fd9\u91cc\u63a8\u8350\u4e00\u4e2a\u8f6f\u4ef6\u2014C++\u7f16\u8bd1\u5668\uff08C4droid\uff09\uff0c\u4e00\u6b3e\u5f88\u4e0d\u9519\u7684C/C++\u7f16\u8bd1\u5668\uff0c\u5b89\u88c5\u5b8cGCC\u63d2\u4ef6\u540e\uff0c\u53ef\u4ee5\u76f4\u63a5\u7f16\u8f91\u8fd0\u884cC/C++\u4ee3\u7801\uff0c\u662f\u4e00\u6b3e\u5f88\u4e0d\u9519\u7684\u624b\u673a\u7f16\u7a0b\u8f6f\u4ef6\uff08\u8fd9\u91cc\u4e5f\u53ef\u4ee5\u4f7f\u7528\u201cC\u8bed\u8a00\u7f16\u8bd1\u5668\u201d\u8fd9\u4e2a\u8f6f\u4ef6\uff0c\u6548\u679c\u4e5f\u4e0d\u9519\uff09\uff0c\u4e0b\u9762\u6211\u7b80\u5355\u4ecb\u7ecd\u4e00\u4e0b\u8fd9\u4e2a\u8f6f\u4ef6\u7684\u5b89\u88c5\u548c\u4f7f\u7528\uff1a

\u5b89\u88c5\u7684\u8bdd\uff0c\u4e0e\u4e0a\u9762\u7c7b\u4f3c\uff0c\u76f4\u63a5\u641c\u5c31\u884c\uff1a

\u5b89\u88c5\u5b8c\u6210\u540e\uff0c\u8fd9\u91cc\u9700\u8981\u4e0b\u8f7d\u4e00\u4e2aGCC\u63d2\u4ef6\uff08\u7f16\u8bd1\u5668\uff09\uff0c\u4e4b\u540e\u624d\u80fd\u6b63\u5e38\u7f16\u8bd1\u8fd0\u884c\u4ee3\u7801\uff1a

 

5.Termux\uff1a\u8fd9\u662f\u4e00\u4e2a\u9ad8\u7ea7\u7ec8\u7aef\uff0c\u7c7b\u4f3c\u624b\u673a\u7248\u7684XShell\uff0c\u53ef\u4ee5\u76f4\u63a5\u5728\u624b\u673a\u4e0a\u767b\u5f55Linux\u670d\u52a1\u5668\uff0c\u652f\u6301bash\uff0czsh\u547d\u4ee4\uff0c\u53ef\u4ee5\u7f16\u8f91\u548c\u8fd0\u884cC/C++\uff0cPython\uff0cRuby\u7b49\u4ee3\u7801\uff0c\u53ea\u9700\u8981\u5b89\u88c5\u5bf9\u5e94\u7684\u63d2\u4ef6\u5c31\u884c\uff0c\u5c31\u50cf\u5728Linux\u7cfb\u7edf\u4e0a\u4f7f\u7528\u4e00\u6837\uff0c\u4e0b\u9762\u6211\u7b80\u5355\u4ecb\u7ecd\u4e00\u4e0b\u8fd9\u4e2a\u8f6f\u4ef6\u7684\u5b89\u88c5\u548c\u4f7f\u7528\uff1a

\u5b89\u88c5\u7684\u8bdd\uff0c\u76f4\u63a5\u5728\u624b\u673a\u5e94\u7528\u5546\u5e97\u4e2d\u641c\u7d22\u5c31\u884c\uff0c\u9996\u6b21\u5b89\u88c5\uff0c\u9700\u8981\u8010\u5fc3\u7b49\u5f85\u4e00\u4f1a\u513f\uff1a

\u6253\u5f00\u8fd9\u4e2a\u8f6f\u4ef6\uff0c\u754c\u9762\u6548\u679c\u5982\u4e0b\uff0c\u7c7b\u4f3cxshell\u4e00\u6837\uff0c\u53ef\u4ee5\u8fd0\u884cshell\u547d\u4ee4\uff1a

\u5b89\u88c5\u5b8cpython\u540e\uff0c\u5c31\u53ef\u4ee5\u76f4\u63a5\u8fd0\u884cpython\u4ee3\u7801\uff0c\u5f53\u7136\uff0c\u5176\u4ed6\u8bed\u8a00\u4e5f\u53ef\u4ee5\uff1a

\u5c31\u4ecb\u7ecd\u8fd95\u4e2a\u5728\u624b\u673a\u4e0a\u7f16\u7a0b\u7684\u8f6f\u4ef6\uff0c\u4f7f\u7528\u8d77\u6765\u90fd\u8fd8\u4e0d\u9519\uff0c\u611f\u5174\u8da3\u7684\u8bdd\uff0c\u53ef\u4ee5\u5728\u624b\u673a\u4e0a\u4e0b\u8f7d\u4e00\u4e0b\uff0c\u5c1d\u8bd5\u4e00\u4e0b\uff0c\u5f53\u7136\uff0c\u5982\u679c\u771f\u60f3\u7ec3\u4e60\u7f16\u7a0b\uff0c\u5efa\u8bae\u8fd8\u662f\u5728\u7535\u8111\u4e0a\u8fdb\u884c\uff0c\u8c03\u8bd5\u8d77\u6765\u66f4\u65b9\u4fbf\uff0c\u5e0c\u671b\u4ee5\u4e0a\u5206\u4eab\u7684\u5185\u5bb9\u80fd\u5bf9\u4f60\u6709\u6240\u5e2e\u52a9\u5427\uff0c\u4e5f\u6b22\u8fce\u5927\u5bb6\u7559\u8a00\u3001\u8bc4\u8bba\u3002

1 引 言随着通讯技术的发展及手机的普及,人们正在不断地给手机增加新的功能,其中,使手机实现一般只有PC机才具有的功能--下载各种程序并运行,是目前手机发展的一个重要方向。为此,人们提出了各种各样的解决方案,其中基于JAVA的J2ME方案无疑是最引人注目的。JAVA语言由于其平台无关、开放、网络功能强、面向对象、安全等特点,一经SUN公司提出,就随着Internet的发展而风靡全世界,在国外已成为软件开发人员的必修语言。特别是他的"一次编写、到处运行"的跨平台优点,对于手机领域来说更具有重要的意义。因为目前手机的种类繁多,各种厂商都有自己的标准,如何使他们能运行同一种标准的程序成为必须要解决的问题。采用JAVA语言后,各种手机只要实现JAVA虚拟机(JVM)就可以运行JAVA程序,这种方法可以说是目前情况下最为理想的一种解决方案。J2ME(JAVA 2 Micro Edition)是用于嵌入式系统的JAVA,他是SUN公司对标准的JAVA版本J2SE做了最大程度的精简后得到的一种JAVA应用程序运行环境,在最简单的情况下他只有几十kB,特别适合在手机、PDA等设备中使用。手机厂商如果在自己的手机中实现了J2ME规范,就可以从网络下载并运行JAVA程序,从而大大扩展了手机的功能。鉴于JAVA在Internet上取得的巨大成功,我们有理由相信,J2ME能够把这种成功延伸到手持设备领域,为将来的手机和互联网融为一体提供有利的条件。JAVA手机的出现也给软件行业提供了新的机遇,能否给JAVA手机提供足够多的软件资源是关系到其能否推广的重要因素之一。本文对J2ME构架做一个简单的介绍,并通过一个具体的程序例子来说明JAVA手机程序的特点及开发过程。2 J2ME概述J2ME是一种新的、非常小的JAVA应用程序运行环境,他所定义的构架主要用于在手持式设备上推广使用JAVA技术。SUN公司将为各种硬件规模的设备提供合适的配置,这些配置包括虚拟机、核心类库及API。目前,J2ME定制了2种配置:CLDC(Connected Limited Devices Configuration)和CDC(Connected Device Configuration)。其中,CLDC是为手机等CPU和内存资源远低于标准JAVA要求的设备所提供的一种配置,他是对JAVA标准版本做了最大程度的缩减后得到的,其虚拟机和核心类库多于100kB。CDC配置主要用于拥有更多资源的下一代设备。CLDC配置给各种手持设备提供了能运行JAVA程序的一种环境,但开发者还很难在这种环境下开发程序,首先因为CLDC核心库提供的是低级API,不适合直接用于构建应用程序;其次,手持设备的系统结构千差万别,很难保证应用程序的图形界面、网络等功能的移植性。因此,为了进一步增强J2ME的功能,SUN公司允许设备供应商在实现CLDC的基础上再为自己的设备提供专门的高级API及程序管理方法,即PROFILE,以简化应用程序的开发,使程序有更好的移植性。同时,SUN公司还与50多家知名的移动设备制造商及软件开发商一起,制订了专门用于手机等移动信息设备的PROFILE--MIDP (MobileInformation Device PrOfile),由于MIDP提供了编写图形界面、网络程序的统一规范,并实现动态、安全的程序管理方法,因此得到了诺基亚、摩托罗拉、西门子等主要手机厂商的支持,纷纷推出了基于MIDP的JAVA手机。与APPLET相似,MIDP程序也称为MIDlet,他必须要继承一个特定的类--MIDlet,这样MIDlet管理者才能控制他的运行。这个类包含了startApp,pauseApp,destoryApp三个用户可以重载的方法,分别在MIDlet进入运行状态、停止运行、退出时调用。MIDP程序的图形接口相对于标准JAVA的AWT接口要简单得多,他分为低级API和高级API。低级图形API使开发者能更直接地控制屏幕显示和键盘输入,他基于抽象类Canvas,一般用于编写游戏程序,他的可移植性要由开发者自己保证。高级图形API能在不同设备之间有很好的可移植性,但开发者能调整的余地也相应地很小,他基于抽象类Screen,并有
Alert,Form,List,TextBox四个具体的子类,这4个子类分别表示警示框、表单、列表框、文本输入框。另外,高级API还提供了许多图形组件,包括Command,ChoiceGroup, DateFie1d, Gauge, ImageItem,StingItem,TextField等,他们都可以添加到A1ert和
Form中。有些图形组件还提供了与AWT相似的事件及事件响应处理方式。MIDP程序一般要和各种资源文件一起压缩成一个jar文件。发布时,还需要有一个扩展名为jad的描述文件,他包含了MIDP程序的名称、版本、jar文件的位置及大小等信息。JAVA手机首先要访问的是描述文件,再根据描述文件的信息把MIDP程序安装到本手机,然后才能运行。3 开发实例MIDP程序真实的运行环境是JAVA手机,但他的开发却是在PC机上进行的,因此开发环境一般都提供仿真器对程序进行测试。各种手机厂商都有自己的开发、测试环境,下面介绍的例子程序,是在SUN公司的MIDP实现中调试通过的。3.1 程序功能本例子包含2个MIDP程序,第1个程序运行时要求用户输入姓名,并选择性别,然后程序根据性别和当前时间向用户输出一句问候语。第2个程序运行时让用户选择图片名称,然后把这幅图片在屏幕上显示出来。这2个MIDP程序由同一个描述文件描述。3.2 程序源代码及注释3.2.1 第1个MIDP程序(samplel.java)import javax.microedition.midlet.MIDlet;import javax.microedition.1cdui.*;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.1cdui.*;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/prOducts/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 sam
ple.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程序的开发在不久的将来能很快地流行起来。

  • 濡備綍鐢ㄦ墜鏈杩涜缂栫▼?鏈夊摢浜涘煎緱鎺ㄨ崘鐨勮蒋浠?
    绛旓細杩欓噷浠嬬粛鍑犱釜鍙互鍦ㄦ墜鏈轰笂缂栫▼鐨勮蒋浠讹紝鎰熷叴瓒g殑鍙互涓嬭浇涓涓嬶紝璇曠潃鎿嶄綔涓涓嬶細1.Python锛氳繖閲屾帹鑽愪竴涓蒋浠垛擰Python3锛岄泦鎴愪簡Python3瑙i噴鍣ㄣ丆onsole鎺у埗鍙板拰QEdit缂栬緫鍣紝鍙互鐩存帴缂栬緫杩愯python浠g爜锛屼篃鍙互杩涜绠鍗曠殑瀹夊崜寮鍙戯紝涓嬮潰鎴戠畝鍗曚粙缁嶄竴涓嬭繖涓蒋浠剁殑瀹夎鍜屼娇鐢細瀹夎鐨勮瘽锛岀洿鎺ュ湪鎵嬫満搴旂敤涓悳绱㈠氨琛...
  • 鎵嬫満涓鑳戒笉鑳借繘琛宩ava璇█缂栫▼?
    绛旓細褰撶劧鑳斤紝AIDE杩欎釜鎵嬫満杞欢灏卞彲浠ワ紝闆嗘垚浜咼ava寮鍙戠幆澧冿紝鍙互寰堣交鏉剧殑鍦ㄦ墜鏈轰笂杩涜Java缂栫▼锛屼笅闈㈡垜绠鍗曚粙缁嶄竴涓嬭繖涓蒋浠剁殑瀹夎鍜屼娇鐢細1.棣栧厛锛屽畨瑁匒IDE锛岃繖涓洿鎺ュ湪鎵嬫満搴旂敤鍟嗗簵涓悳绱㈠氨琛岋紝濡備笅锛屽ぇ姒備篃灏30澶歁锛岀洿鎺ヤ笅杞藉畨瑁咃細2.瀹夎瀹屾垚鍚庯紝鎵撳紑杩欎釜APP锛屾柊寤轰竴涓狫ava宸ョ▼锛屼箣鍚庡氨鍙互鐩存帴杩涜Java缂栫▼浜...
  • QPython,涓涓鍦ㄦ墜鏈轰笂杩愯Python鐨勭鍣
    绛旓細鍙互鐪嬭鏈夊叚涓浘鏍囨ā鍧椼1銆佺粓绔細杩欐槸缂栫▼IDE鐨勬爣閰嶏紝鍙互鎵ц涓浜涗唬鐮佺墖娈碉紝涓嶈繃鍐鎵嬫満涓杈撳叆浠g爜杩樻槸鎸洪夯鐑︾殑銆2銆佺紪杈戝櫒锛氫笂闈㈠凡缁忔湁鍥剧ず浜嗭紝鍙互鏂板缓鎴栬呬慨鏀筽y鏂囦欢锛岀劧鍚庣偣鍑绘渶涓嬮潰鐨勪笁瑙掑舰鎵ц鏂囦欢锛屾敞鎰忔枃浠惰淇濆瓨涓.py鍚庣紑鎵嶈銆3銆佺▼搴忥細閲岄潰鎻愪緵涓浜涚▼搴忕ず渚嬶紝渚涗綘鍙傝冿紝姣斿濡備綍鎵撳紑钃濈墮锛屽浣...
  • 鎵嬫満鍙互缂栫▼鍚
    绛旓細鎵嬫満鍙互缂栫▼銆鎵嬫満缂栫▼锛圱ouchDevelop锛夋槸涓涓叏鏂扮殑WindowsPhone杞欢寮鍙戠幆澧冿紝鏄涓涓彲浠ヤ娇鐢ㄦ墜鏈虹紪绋嬬殑搴旂敤銆傚甫涓婃偍鐨勬瓕鏇插拰鍥剧墖锛屽苟鍒╃敤鎵嬫満涓鐨勪紶鎰熷櫒锛屾偍鍙互閫氳繃鑴氭湰闆嗗競鍚戝叾瀹冧汉鍒嗕韩浣犳墍鍐欏嚭鐨勪唬鐮併傚彲浠ュ鎵嬫満杩涜缂栫▼骞惰闂墜鏈虹‖浠剁殑寰堥叿鐨勪竴娆捐蒋浠讹紝涓寮濮嬪彂甯冩椂鍙玹ouchstudio锛屽悗鏉ユ敼鍚嶄负touch...
  • 濡備綍鐢瀹夊崜鎵嬫満缂栫▼?
    绛旓細鍙互浣跨敤c4droid杞欢杩涜缂栫▼銆1銆侀鍏鍦ㄦ墜鏈娴忚鍣ㄤ腑鎼滅储c4droid杞欢銆2銆佹壘鍒板畨瑁呯殑鍘嬬缉鍖呰繘琛屼笅杞姐3銆佸皢涓嬭浇濂界殑鍘嬬缉鍖呰В鍘嬨4銆佺偣鍑昏В鍘嬪悗锛岀瓑寰呰蒋浠惰В鍘嬪ソ杩涜瀹夎銆5銆佽В鍘嬪畬鎴愬悗锛屽皢杩欎笁涓簲鐢ㄨ繘琛屽畨瑁呫6銆佹渶鍚庢墦寮搴旂敤锛屼究鍙互闅忔椂闅忓湴杩涜缂栫▼浜嗐7.鎵撳紑鈥淐4droid鈥濊蒋浠讹紝鐐瑰嚮鈥淥PEN鈥濆彲浠ユ墦寮...
  • 鏈夋病鏈夎兘鐩存帴鍦ㄦ墜鏈轰笂闈浣跨敤鐨缂栫▼杞欢
    绛旓細鎵嬫満涓鐨缂栫▼杞欢鏈塩4droid銆乤ide銆丆ppDroid銆丵Python3銆乀ermux銆傜浉鍏充粙缁嶏細1銆乧4droid锛氭槸娆続ndroid璁惧涓婄殑C/C++绋嬪簭IDE銆傞粯璁や互tcc(tiny c compiler)涓虹紪璇戝櫒锛屽彲浠ラ夋嫨瀹夎gcc鎻掍欢锛20mb锛屽彧鏈塺oot鐢ㄦ埛鍙互浣跨敤锛夛紝閫夌敤gcc鍚庯紝鍙互鐢sdl锛堢畝鍗曠洿鎺у獟浣撳眰搴擄紝闇瀹夎sdl plugin for c4droid锛夊拰qt锛坣okia...
  • 濡備綍鍦ㄦ墜鏈轰笂鐜缂栫▼
    绛旓細杩欓噷浠嬬粛3绉嶅彲浠鍦ㄦ墜鏈轰笂缂栫▼鐨刟pp锛屽垎鍒槸c璇█缂栬瘧鍣紙c璇█锛夈丄IDE闆嗘垚寮鍙戠幆澧冿紙java锛夈丵Python3(python锛夛紝閮戒笉闇瑕乺oot锛屽彲浠ョ洿鎺ョ紪鍐欑▼搴忓苟杩愯锛屼笅闈㈡垜绠鍗曚粙缁嶄竴涓嬭繖3涓猘pp鐨勫畨瑁呭拰绠鍗曚娇鐢紝涓昏鍐呭濡備笅锛欳璇█缂栬瘧鍣細杩欐槸涓涓緢灏忓阀鐨刢缂栬瘧鍣紝澶ф13鍏嗗乏鍙筹紝鐣岄潰绠娲併佹湸绱狅紝浣跨敤璧锋潵寰...
  • 鎵嬫満涓婃庝箞缂栫▼搴
    绛旓細鈥﹂櫎浜嗚繖浜涳紝鎵嬫満杩樺彲浠ョ敤鏉ュ啓绋嬪簭锛屾病閿欙紝浣犳病鏈夊惉閿欙紝鐜板湪鐨勬櫤鑳芥墜鏈鸿繕鍙互鏉ュ啓绋嬪簭銆傚尯鍒簬鐢ㄧ數鑴戠紪绋嬶紝鎵嬫満缂栫▼鐨勫姛鑳借緝灏忥紝浣嗗嵈鑳滃湪鏂逛究锛岄殢鏃堕殢鍦帮紝鏈変粈涔堟兂娉曚究鍙互鍦ㄦ墜鏈轰笂杩涜缂栫▼楠岃瘉锛岃繖瀵瑰垵瀛﹁呮潵璇存棤鐤戜竴澶х鍔┿傜幇鍦ㄨ鎴戜滑鏉ヤ簡瑙d竴涓濡備綍鍦ㄦ墜鏈杩涜缂栫▼鍚с傜綉涓婃湁涓嶅皯鍙互鍦ㄦ墜鏈轰笂缂栫▼鐨...
  • 濡備綍鍦ㄦ墜鏈轰笂缂栫▼骞惰繍琛
    绛旓細3.8.0锛岃繖灏辨槸鐩墠鏈鏂扮増鏈傝鐐瑰嚮杈撳叆鍥剧墖鎻忚堪 5 绗簲姝ワ紝楠岃瘉鏄惁瀹夎鎴愬姛銆備负纭繚鎴愬姛瀹夎锛屽彲浠ラ氳繃杈撳叆绠鍗曠殑缂栫▼鏉ラ獙璇丳ython鏄惁瀹夎鎴愬姛銆傛瘮濡傝緭鍏rint('Hello world')锛岀劧鍚庡洖杞︼紝鍦ㄤ笅涓琛屾墦鍗板嚭Hello world锛岃〃鏄庡畨瑁呮垚鍔熴傛鏃讹紝鎴戜滑灏卞彲浠鍦ㄦ墜鏈轰笂杩愯涓浜汸ython浠g爜浜嗐
  • 濡備綍鐢ㄦ墜鏈瀵归鎵囩伅杩涜缂栫▼?
    绛旓細1. 灏嗛鎵囩伅鍜岄仴鎺у櫒鐨勭數姹犲畨瑁呭ソ锛岀‘淇濈數姹犳瀬鎬ф纭2. 鎵撳紑椋庢墖鐏殑鐢垫簮寮鍏筹紝浣垮叾澶勪簬寰呮満鐘舵併3. 鎸変綇閬ユ帶鍣ㄤ笂鐨勨滈閫熲濆拰鈥滅伅鍏夆濇寜閽笉鏀撅紝鐩村埌椋庢墖鐏紑濮嬮棯鐑併4. 鏉惧紑鎸夐挳锛岀瓑寰呮暟绉掗挓锛岄鎵囩伅浼氳嚜鍔ㄥ仠姝㈤棯鐑併5. 鐜板湪閬ユ帶鍣ㄥ凡缁忔垚鍔熷鐮侊紝鍙互浣跨敤閬ユ帶鍣ㄦ帶鍒堕鎵囩伅鐨勯閫熷拰鐏厜浜嗐傛敞鎰忎簨椤癸細...
  • 扩展阅读:少儿编程入门教程 ... 电脑编程 ... 如何自己编程做游戏 ... 自学编程免费网上学习 ... 手机编程 ... 软件编程培训班多少钱 ... 免费自学编程的app ... 手机html查看器 ... 黑客编程必背50个代码 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网