J2ME - colorful technology [Repost] in colorful fields

xiaoxiao2021-03-06  39

J2ME - a colorful technology in a colorful field

Dong Xianghui (Dracodoc@hotmail.com) Ph.D. in the Automation of Automated Institute of Academy of Sciences

Tomorrow's calculations will enter the popularization of the time. Various consumer electronics, including smartphones, PDAs, Web-TV, future information appliances, etc. will achieve calculations anytime, anywhere. This is an exceptionally broad and colorful area, and its equipment is extremely diversified and will be in the network, Java technology's cross-platform and network functions are widely used here. This is J2ME, this colorful technology in this colorful field. However, the diversity of this field and the complexity of J2ME standards are easy to make the initial contact. If he tries to write a program that can run on its own PDA, it is very likely to encounter a lot of difficulties, because the existing old technologies are likely to be abandoned, and the standard for PDA has not been completed, a variety of diverse Standards and technology itself is also rapidly evolving. To this end, the focus of this paper is not in the specific coding details, but is more accurately expressed as the architecture of J2ME, helping the reader to understand and grasp these complex criteria. And from the macro-described development, the status quo and prospects of developing J2ME applications on mobile information devices are analyzed, try to make readers to grasp complex situations in the whole game, and prepare for future development.

Calculation is now everywhere today. More and more people have begun to believe that after a large-scale host era of a computer, one person has a computer's personal PC era, the next era is a popularity of multiple computing devices (Ubiquitous Computing, IBM Pervasive computing). Computing devices will extend from a single PC to a wide variety of sizes and functions, from home consumer electronics, to personal carry, wear, in-vehicle, various mobile information processing equipment, diversification is the biggest feature in this field. The network is the most important value added characteristic of this field. When the phone can wirelessly online, the PDA can be synchronized with the personal PC, and the in-vehicle PC can get the maximum role when accessing the online GPS map data. Platform-independent and network functions are Java design goals and capabilities (in fact, Java initial design goals are used in consumer electronics, but later developed on PC and servers). "One writing, running" platform is independent, and the mechanism for network and multiple devices, and it is clearly a crucial software condition for this area. The Java standard in this area is J2ME. J2ME's maximum goal and characteristics of Java is that "writing, run everywhere" platform independence. However, natural, as Sun recognizes, "One Size Does'nt Fit ALL", a set of standards cannot adapt to a variety of different needs. Therefore, Java technology currently has three sets, respectively, for different platforms and applications, respectively.

Standard Edition (J2SE, Standard Edition): Personal and low-end business applications for desktop PCs and workstations. Enterprise Edition (J2EE, Enterprise Edition): Supports Servlets, JSP, and XML, etc. for server-side enterprise applications. Micro Edition (J2ME, Pocket, also translated as small version or mobile version.) For limited memory, display and processing power, mainly consumer electronics and embedded equipment areas (this is actually the initial goal of Java language design) field). Note: Java SDK 1.2 and later version are uniformly renamed Java 2, so these names are 2. In the field of consumer electronics and embedded equipment, memory from hundreds of k to tens of M, never screen to web-TV, CPU from low-power embedded processors to 206MHz RISC processors, hardware conditions differences are quite big. This makes the J2ME standards require different levels and categories to adapt to this complex area, so it is much more complicated than J2SE and J2EE compared to J2SE and J2EE. About J2ME standards have already had a lot, but there are few articles clearly explain the reasons for the division of J2ME's architecture, but only clearly divided into and why this is to better understand the standard. Especially because hardware development speed is very fast, it is likely to fall after a period of time, if it is also divided into devices in the original standard literal area, it will be trapped. The author is reading and browsing a quite article and introduction, but some problems have recently understood relatively clear, here and readers share my understanding, and hope to get recommendations and correct. Therefore, the following introduction should not repeat some of the specific details that have been described in other articles, do not go to the literal definition of the translation specification, but the reason for the analysis of the specification, the truly standard, from the developer's perspective, let Readers can more accurately grasp the differences and trend pulse of technology in this complex and variable field, and better prepare for future opportunities in the future. J2ME Architecture - Configuration and Profiles are widely computational and variability of consumer electronics and embedded devices and a variability of each other, and J2ME first divides them into two categories according to the most basic features.

Personal mobile information devices with interrupt network communication capabilities: such as mobile phones, two-way boat, PDA (Personal Digital Assistant, Personal Digital Assistant, also known as handheld), etc. Shared connection information devices with fixed uninterrupted network connections: Set-Top Boxes, web-TV, support Internet phone, automotive entertainment / navigation system, etc. There is a good general summary in Sun's J2ME FAQ (Common Questions): J2ME technology has two design centers - handheld devices, and equipment that can be plugged into the wall outlet. The first type of equipment is often personal, mobile, limited use of battery, volume, and power consumption, so functional and computational power. The second type of device is generally fixed, so the volume is not limited. Due to fixed, there can be sustained power supply, so power consumption is not too big, and the computational power is relatively abundant. Computing power is the main difference between these two types of equipment. It is clearly impact on possible applications and environments. Different categories of equipment cannot adopt the same Java platform, must be defined separately. The platform specification for these two major classes is Configuration (translated as configured, but I think it is best not to translate). Configuration of the first type of device is called CLDC (Connected, Limited Device Configuration), and the second class is called CDC (Connected Device Configuration). Equipment computing power belonging to the same class is similar, but other functions and conditions are very different. As a Java platform, compatibility must be guaranteed, which must discard all equipment specificity. Therefore, Configuration is a minimum Java platform for a set of universal devices, as the minimum billet of these devices to ensure platform compatibility between different devices. The Java platform here mainly refers to the Java Virtual Machine (JVM) and the core library. The specialty of the equipment is abandoned in Configuration to ensure the compatibility of the Java platform, but only Configuration is obviously not enough, and special specific devices have unique features and hardware conditions. To this end, on the basis of Configuration, a division is performed according to the specific function of the device, such as smartphones, PDA, and more. Functional division is the division of other hardware conditions, such as screen size, memory, computing power, power supply, etc. are both functional, so the hardware conditions of the same function are very similar. Profile (translated as a briefly) is an API associated with the specificity of each class of functional devices, and the building is above Configuration, as an extension and complement of Configuration. For example, MIDP (Mobile Information Device Profile, Move Information Device Profile) defines graphical interfaces, input and time processing, persistence, persistence storage, short messages, etc. The API, and considering the screen and memory limit of the mobile information device. The PDA Profile that is being developed defines the API of the PDA, its screen, and memory conditions are greater than the MIDP, but the requirements of the network are clearly different from the mobile phone.

As shown in the figure below, the device that belongs to a Configuration is supported by different profiles according to the function, and the profile reflects the particularity of the device, but all buildings above a common basis. With regard to the architecture of J2ME, we can summarize this: Configuration classification is divided according to the different computing power, and the computational power of the same equipment is similar. Configuration is a specification that defines the common Java platform of such devices, defines the Java virtual machine and core library-independent of the device, which is the basis of platform compatibility. The classification of Profile is based on the device function, and the other hardware conditions and needs of the same functionality are similar. Profile is a set of APIs, which extends the API for device-specific functions based on a Configuration, enabling standards to completely adapt to special devices, and complete the functionality of the equipment. The general structure of the J2ME system is: The basis of the entire platform is constituted by the Java virtual machine defined by the Configuration. Configuration provides basic language features, Profile provides special features API and extended class libraries for devices. The operating environment of the application requires a Configuration and at least one profile, multiple profiles can coexist, or superimposed. We use the implementation of two specific devices as an example description. On a PDA running the Palm OS, the Configuration uses CLDC. The virtual machine uses KVM (virtual machine and Configuration are closely connected, KVM is just a reference implementation of CLDC definition (Reference Implementation), is not a unique choice), then use PDA Profile's profile. On another smartphone running Symbian, KVM, CLDC, MIDP can be used.

Note: JSR 68 (Java Specification Request, Standard Proposal) has been proposed on the website of JCP (Java Community Process, J2ME), which will replace Configuration in the next-generation J2ME standard to replace the CONFIGURATION. The reason is that Profile often needs to provide a function in J2SE, in order to be able to use the existing J2SE API instead of re-establish the new API, introduce the building block concept. A Building Block defines an API from J2SE or J2EE for J2ME. In this way, Profile can use the existing API through the Building Block. J2ME Main Standard Introduction The standard of J2ME is a lot, and many of these details will introduce about J2ME. We only briefly introduce several basic and important standards. The reader can also directly check the standard official documentation, and you can find all J2ME standards and specifications in the JCP website, including the proposals that are still proposed and reviewed, and have not officially become a standard proposal. Although the J2ME standard is wide, it is easy to grasp the reason for grasp the standard division. In the field of rapid development of this technology, we cannot limit our attention to the standard literal meaning, but to master, grasp the spirit. For example, the specific minimum memory requirements in the definition of CLDC and CDC is only "smallest", and with the rapid development of hardware capabilities, it is likely that some boundaries will become blurred. PDA should be a range of CLDC, but CDC is implemented on the iPAQ of Compaq. The next generation of PDAs in the future is not surprising, and it is entirely possible to implement CDC. However, from the perspective of the function, it should be a CLDC and the PDA Profile for the conditions of the PDA. By then, the specific implementation is to see the choice of manufacturers and developers. It should also be noted that because profile is built above Configuration, the Profile must configure support. Some articles are saying that MIDP needs at least 256K when speaking the MIDP's memory demand. This means the MIDP itself. Some articles say that MIDP requires a minimum of 768K, then because the 512K required to be the foundation CLDC is going in. CLDC CLDC (Connected, Limited Device Configuration) For personalized mobile limited connection information devices such as smartphones, two-way booths, PDAs, and more. Its requirements are: 512 kB below the limited energy supply (usually using battery) limited or non-sustained network connection simple user interface (even without) under such strict limitations, CLDC only includes four packages, three from standard Java specification and reduced (Java.lang, Java.util and Java.io), another specializes in CLDC (Javax.MicRoEdition).

Package Description Class and Interface Number Java.io System Input Output 18java.langjava Programming Language Basic Class 38Java.util Collection, Date and Time Support, Each Practical Tool Class 10Javax.microedition Universal Connection Framework (Generic Connection Framework) 10

Table 1. Package in CLDC

CLDC must take care of the most demanding hardware conditions, so there are many important classes and features, only some of the core basic classes. For example, RMI and mapping are discarded because there is too much memory, and the cost of error handling requirements is too high, and it is also deleted. Many devices cannot support floating point numbers, not to say double precision classes. There are also many devices that do not or not to access a file system function or permission. However, please feel free to support more features that can support more features, these features that are required or exceeded by the standard J2SE, can be supplemented by Profile for such devices. The only new Javax.microEdition package in CLDC defines a universal connection framework (GCF). The Universal Connection Framework puts the files, sockets, HTTP requests, and other input / output mechanisms in J2SE, is a simpler set. It can be said that it provides the same functions of java.io and java.net, but does not require special capabilities of the device. The underlying operating system is independent of the basic requirements of Configuration. The universal connection framework can be seen as a framework for constructing communication-driven, which is similar to JDBC in J2SE, and the latter is a framework for constructing a database driver. The universal connection framework does not define support for any particular protocol, but in a CLDC reference implementation in Sun, it is indeed support for some communications protocols, which makes many people feel confusing. Those agreements are just some examples, and the support of the protocol should be defined in the Profile layer or specifically for an extension of a device. Since the virtual machine defines the core of the platform in Configuration, Configuration and the virtual machine are closely related. Since CLDC's hardware requirements are so demanding, it has a very high demand for its virtual machine. The reference implementation provided by Sun is KVM (K Virtual Machine). KVM is completely written from scratch, and its design goals include:

The size of the virtual machine is 50 to 80KB, and the memory occupies a few tens of k on devices with 16-bit and 32-bit processors. It has considerable performance height portable and scalable, specific to machine and / or platform The total amount of the code is very small and garbage collection is independent of the system's components that can be configured to fit the virtual machine, thereby enhancing the implementation of flexibility KVM is quite successful. At the beginning of the 1999 Javaone meeting, as a SPOTLESS plan, SUN distributed many Palm V, providing the first KVM version on Palm OS and an experimental class lib.sun.kjava. This KVM is very small and compact, just do tens of k memory. The com.sun.kjava class library provides Palm graphical user interface, Palm database access, simple collection class, and more. Bring both, developers can develop Java applications on Palm, so it has been widely welcomed by developers, and there are many tutorials and sample code online. In fact, so far, this is the only reasonable way to develop Java programs on Palm. CLDC does not define an API and other APIs such as a user interface, and MIDP is not suitable for PDA, and the corresponding most suitable J2ME standard is PDA Profile, but has not been completed. Many developers strongly ask Sun to continue to support it in the formal J2ME standard, but Sun has abandoned this technology, and does not guarantee the formal PDA Profile and compatibility, so we do not recommend readers to study too much. Due to this historical reasons, there has been a lot of words on many words. Many early articles referred to this KVM with com.sun.kjava to KVM, indicating that this technology, and the KVM that is now said should be a single-finger Sun's CLDC virtual machine reference implementation. Even people use K Java as the J2ME of J2ME, indicating KVM-based Java, which is easy to confuse the official J2ME standard and early com.sun.kjava packs, readers need to pay attention to the time of the article when reading this article. Background, and use strict formal names. At present, Sun is also developing a high-performance version of the KVM -Project Monty virtual machine for the next generation of mobile information processing devices. It uses Hot Spot technology, which will be nearly one quantity than existing KVM. Although KVM is most mentioned as a reference implementation of SUN, it is not equal to having to use KVM. Other companies' virtual machines can meet the virtual machines of Configuration by compatibility testing as long as they meet the definitions in the corresponding Configuration. At present, IBM WebSphere Micro Environment has passed "Java PoweredTM" authentication, and its J9 virtual machine has passed J2ME compatibility test on a considerable platform:

MIDP MIDP (Mobile Information Device Profile defines some of the graphical interfaces, input, and time processing, persistence storage, wireless telephone network connections to mobile information processing devices (mainly referring to smartphones and part of the PDA with wireless communication functions) Message processing (such as short messages), security, etc. API, and take into account the screen and memory limit of the mobile information device. Similar to the Applet Framework in J2SE, MIDP provides a MIDlet application framework based on a Javax.microedition.midlet package. Since MIDP has earlier, there is a corresponding implementation on the current smartphone and PDA operating system (later, these operating systems will be briefly introduced), there are many tutorials and articles on the Internet, and the general so-called Wireless application articles are about MIDP. , Here no longer repeat, readers can refer to the resources of the party. PDA Profile PDA Profile will provide an extended API for a user interface, data storage, and the like for PDA, data storage, etc. The user interface part applies to the display of limited size and color, in order to support the developer's existing experience, it will be a subset of AWT, and it is also possible to join the MIDP user interface component above the AWT subset. The storage mechanism will be simple, platform-independent, similar to storage in the MIDP, providing simple data storage for applications, data, configuration / environment information. At present, this specification is chairing by Palm Source (specially responsible for Palm OS from Palm), and has entered the second phase of the JCP process in the second stage of the JCP process in April 8 (Community Draft Ballot 08). APR, 2002), estimated that the final official version should be completed around July to September. (Refer to http://jcp.org/introduction/timeline/index.en.jsp) As mentioned above, PDA Profile will replace K Java as a formal J2ME standard for PDA. Therefore, it is recommended that the developers who wish to develop applications on the PDA wait for the introduction and corresponding implementation of this standard. Now if they want to develop MIDP applications, they should clarify their goals to be smartphone classes, not PDA, this a lot of articles I haven't explained it. CDC CDC (Connected Device Configuration) For shared connection information devices with fixed uninterrupted networks, such as set-top boxes, web-TV, support Internet phone, automotive entertainment / navigation system, etc. The CDC requires Java to provide at least 2m memory, which can be ROM plus RAM, that is, Java virtual machines and core libraries are likely to be placed in the ROM or Flash. In fact, the next generation of wireless handheld devices can fully meet the requirements of CDC. The CDC is a complete supercoming of CLDC, which contains all CLDC specifications. In addition, under relatively abundant conditions, it supports J2SE standard Java virtual machines and a part of the core class libraries. For this, almost all articles said so, there are very few articles thoroughly distinguished compatibility relationships between each other, and even there is an incorrectly said that CDC supports the full implementation of Java language, which is easy to cause confusion. First, you can affirm that since the CDC is a super-collection of CLDC, CLDC-based programs are fully compatible within the CDC.

However, the CLDC program here must only use the CLDC part. Once a protrofile is used, it is obvious that it cannot be compatible within the CDC.

Second, the CDC supports standard J2SE virtual machines, which is only the foundation of the Java platform, and does not include all kinds of libraries on the platform. The specific class libraries required for a particular device are defined by the corresponding profile. This will then be mentioned later. Or the key: configuration defines a minimum platform that is unrelated to the device of the device, so classes such as user interfaces are separated, remain defined in Profile. Although CDC supports standard J2SE virtual machines, standard Java virtual machines clearly unable to adapt to limited resource environments. For this purpose, you need to specifically define a virtual machine, called CVM (start, CVM represents Compact Virtual Machine, but later Sun's engineer believes that this may be confused with KVM, so C does not represent a specific meaning). In addition to supporting all of the characteristics of standard J2SE virtual machines, CVM supports the features required by many embedded systems, more suitable for running under resource restrictions, and has strong transplantability. Current SUN provides a CVM reference implementation over Linux and VxWorks (REFERENCE IMPLEMENTATION). Foundation Profile Foundation Profile provides almost all standard J2SE core libraries in addition to the user interface, as the foundation of all other Profiles (we see, multiple profile can coexist, or superimposed). Personal Profile Personal PROFILE is relatively limited, but requires high Internet and web connection support, such as web-TV, car navigation systems, and more. It provides network features on the basis of Foundation Profile and supports Java Applets for GUI. The predecessor of Personal Profile is Personal Java, and Personal Java is an earlier attempt to create a Java platform version for resource restrictions. Personal Profile will be backward compatible with Personal Java 1.1 and 1.2. RMI Profile RMI PROFILE provides RMI support based on Foundation Profile, which will allow network devices to interact with other system applications (not necessarily J2ME). J2ME's platform-independent and standard compatibility platform is independent, mainly refers to the host operating system platform of the device. Since the Java platform building is above the virtual machine, as long as the virtual machines on different operating systems meet the same specification and standards, the levels of the virtual machine are not related to the platform. This allows applications for a Configuration or Profile to run in all operating system platforms that implements this Configuration or PROFILE. For example, there is already a website that is now collecting MIDP-based programs - MIDLET, providing downloads and charges, all kinds of equipment that support MIDP can be used, including huge smartphones and almost all PDAs (Palm OS and Pocket) PC). For Profile, different profile is generally incompatible, such as the Japanese NTT's DOCOMO has sold very much mobile phone that supports CLDC, but uses its own special PROFILE, for this Profile program to other PROFILE is not compatible. In fact, since Profile is aimed at device function, different Profile devices are often functional, and the compatibility of the program is neither a significant meaning. Of course, some devices are of course not limited, such as PDAs and smartphones with wireless communication.

Since there are multiple profiles above a Configuration, you can also nest and superimpose between PROFILE. For example, the Foundation Profile of the CDC is the basis of other various Profiles. Then these devices can use MIDP or PDAP, on the basis of future hardware, there is no problem in simultaneous PROFILE. In some articles, J2ME is to abandon many features of J2SE in order to be able to operate on a limited computing power, so J2ME is a subset of J2SE. Such a statement does not emphasize the content of J2ME due to specialty in the equipment, and thus is not accurate. It is incompatible unless the program only uses the common part of these platforms, otherwise it is incompatible. In general, the common part is quite limited. Other non-J2ME standards related technologies also have some technologies and J2ME, but it is not J2ME, and we are here a brief introduction. Java Card Java Card (Java Card) is designed for smart cards. Smart Cards's memory is very limited, limiting the number of classes (for example, without Windows system classes) and implements the entire Java Card specification in a binary core, and then encapsulated with Java. Since the functions of the smart card are simple and easy to master, the class does not need to change frequently, this method is good (for J2ME obviously can't use this method). In addition, since each Java card, data and code are executed independently in the sand box, there can be multiple applications on a card, independent of each other, and so safe, so that it has used a card. No need to install too much card in the wallet. Although the Java card is designed for smart cards, it can also be used in many other places. For example, the Java ring at the Java One conference in 1998 (Java Ring, also known as Java-Powered Ibutton, in fact, another type of Java Card, Dallas Semiconductor makes it a shape of the button, inlaid in the ring Above it), or millions of GSM SIM cards in the world now. Embedded Java Embedded Java is an attempt to create an embedded system Java platform in history. These devices often have no graphical interfaces for devices with intermittent networks or devices without network connections. Embedded Java is close to J2se, but it is too much too slow, and it is too high for the system. In addition, Embedded Java will control its running platform, which is to take over all system calls, all libraries, all devices. Obviously providing a platform-free company will not like this. Therefore, Embedded Java basically failed. WAP WAP (WiReless Application Protocol, Wireless Applications) is an application of XML, with the purpose of displaying Internet content on wireless devices such as your phone. Since the display area of ​​the wireless device is limited, the standard HTML needs to be re-adjusted to adapt to hardware conditions. Many people who have heard that J2ME will think of WAP, in fact, WAP and J2ME do not conflict, and it is very good. WAP is very suitable for text-based content and requires a continuous network connection. However, the application WAP is not suitable for the application WAP, and only the lightweight script execution capability can be provided. WAP's gateway also has security issues.

Java technology can be used intermittent network connections, which can separate applications and service logics between devices and servers, well suited for graphics applications, with very stable and reliable security models. One way to combine WAP and Java technology is to install a WAP browser on the device and implement CLDC and MIDP and communications between the WAP browser. Some WAP technology is implemented with Java, such as K Browser (http://www.4thpass.com) is a browser implemented with Java, running on J2ME. Wireless Java Technology Wireless This concept often appears in the related articles of J2ME, but

Wireless Java is not equal to J2ME. In J2ME, wireless devices are just a small part. Wireless Java technology may also include this situation: run J2SE app on the notebook, connect the network through the 802.11 LAN. MIDP is not all J2ME. The MIDP was released, so it was also widely supported, and the relevant discussions and articles were therefore therefore, but J2ME is of course not just MIDP. MIDP is not all wireless Java technology. There are many other Java technology that belong to wireless technology, such as Personal Java, PDA Profile, J2SE on wireless devices. The main operating system platform of mobile information equipment and its support for J2ME in the broad field of consumer electronics and embedded devices, the most attention is the mobile information equipment, so it is necessary to introduce the main operating system platform of mobile information equipment, This is quite important to the development of J2ME. Mobile information equipment mainly includes PDAs and smartphones, now there will be some devices in the pda and smartphone. Among them, the mobile phone market is much larger than PDA, so many foreign articles talk about J2ME are dominated by Wireless applications. PDA is also handheld, generally refers to equipment such as Palm, which is similar to Palm, the main operating system has two major camps of Palm OS and Pocket C. Palm OS From Palm, it is an open system that dominates in the PDA market, and has a very much third-party manufacturer developed and a large number of very faithful and fanatical users. At present, Palm OS has the main Palm Series and Sony's CLIE series of Palm (Handspring's Visor), but has announced the exiting traditional PDA market, which mainly develops PDA and wireless communication-combined product Treo). Pocket PC is launched by Microsoft and its partner Casio, Compaq, Hewlett Packard, and Symbol, based on WIN CE 3.0, is also an open standard system, which can be extended (previous Win CE is a closed unlatable system), The manufacturer can develop software on this platform. Specific products such as Compaq IPAQ. In addition, Sharp Zaurus Series PDA uses Linux to a version of the embedded system. As a high-end PDA with up to 64M memory, you can meet the CDC standard, which is pre-installed with the Personal Java virtual machine. In the field of smartphones, the main platform is Symbian's EPOC. EPOC is the first to develop Psion, mainly for smartphones, and PDA features, PSION is one of the first major PDA manufacturers. Psion announced that the first version of EPOC is open OS and authorizes other vendors. Subsequent PSION and Ericsson, Nokia, and later Motorola have established a league named "Symbian", the main shareholders are Motorola, Nokia, Panasonic , PSION and Sonyericsson, and Siemens April also announced. Symbian has a good foundation in Europe, using most major mobile phone manufacturers, typical products such as Norkia's 9210. Figure 5: NORKIA 9210

Symbian opens the source code to the leading hardware and software developers - so-called Platinum Programme. Start Java from Symbian OS 5, OS 6 introduced Personal Java and Java Phone (an extension API on the Personal Java, mainly for mobile phones), OS 7 began supporting CLDC and MIDP (partially 6.0 and 6.1 products) stand by). On the other hand, Microsoft has a PocketPC 2002 phone version and Smartphone 2002 (also known as Stinger) and Symbian competition. Obviously, the former is a PDA with wireless communication function (the new TREO mentioned earlier is typical) The latter is a mobile phone with intelligent processing. The status quo and prospects of J2ME development on mobile information devices are in the previous operating system platforms, and there is already a MIDP reference implementation on the PALM OS, but is not the most suitable PDA's Profile. Symbian implements CLDC and MIDP, as a smartphone operating system, is an ideal MIDP application platform. CDC (Pocket PC) has been implemented on the iPAQ of Compaq, and the previous mentioned, IBM WebSphere Micro Environment implements CLDC, CDC, and MIDP on the Pocket PC. Sharp's Zaurus implements Personal Java (Linux). It can be seen that the CDC standard can be implemented on the PDA, which is better in hardware conditions (Pocket PC and Zaurus). Since these major operating system platforms are open, it is basically that the main mobile information equipment operating systems will always provide J2ME support, but which standard support does not necessarily define the initial definition of CLDC and CDC, and The hardware conditions of the device are related to the selection of vendors, or multiple standards may be implemented. Regarding the specific development of J2ME applications on mobile information devices, existing articles and technologies are basically divided into the following categories:

Using early KVM and com.sun.kjava packs, or coupled with a third-party K AWT class library. There are many early articles and code, but this technology will be replaced by PDA profile, and does not guarantee compatibility, which is not recommended to use this method, but waiting for the final completion of PDA Profile and its implementation. Developed with CLDC and MIDP. Since the MIDP standard releases earlier, the smartphone is much more than PDA, this is the main content of a large number of wireless application articles, but its best goal is smartphones, although smartphones may have a certain PDA. Function, but this technology is not the most suitable for PDA, developers need to consider clear. With CDC and Personal Profile, this article is not very common, and the current mobile information equipment is still insufficient. But the next generation of PDAs and smartphones must be supported. For existing PDA hardware conditions, J2ME application is more difficult to compete with existing applications:

Space: The general PALM class device memory is not equal from 2M to 16M (currently higher models already supports the expansion card, can be extended to 128M, but the speed of running the program on the card is much slower, generally mainly used Data, running programs cannot be dependent on card), the standard size of general existing programs on Palm is less than dozens of k to 300k. Only MIDP's Palm Reference Realization The library needs to be nearly 600K on Palm, plus as the basis of the CLDC library, plus the program, will be close to 1M. Compared with existing applications, there is currently no competitiveness. Speed: Because Palm has always believed that "simple is beautiful" principle, the current Palm Series PDA mainly uses 33MHz Motorola 68000 series Dragonball, which brings cost reduction and power saving, but the performance of J2ME application It's hard to satisfy. The author has tested some demo procedures in their own Palm M100 (entry model, but the PALM series of CPU speeds), generally two or three seconds of startup delay. Function: PDA Profile, which is best for Palm, has not been completed, if it is developed with MIDP, it is not suitable, with early KVM and com.sun.kjava, because it is not J2ME standard, program compatibility cannot be guaranteed. Even so, the prospect of developing J2ME app on mobile information devices is still very beautiful: the development of hardware: The current PALM is 8M to 16M memory is already mainstream, and the next generation exceeds 32m is an inevitable trend. Palm OS 5 finally started supporting 32-bit ARM RISC processors, and its speed should be able to increase 10 times. In fact, the Zaurus SL-5500 sold in the first quarter of this year has adopted Intel 206MHz Strongarm processors and 64M memory, and there is no problem in such hardware and memory. The standard improvement: PDA Profile will finally completed this year, which can be expected to be achieved on major operating systems. There are also many other standards currently in JCP, such as Bluetooth, games, positioning, and more. The broadness of the platform: The main operating system platform of mobile information equipment is open, J2ME standard is also open, so basically all major operating system platforms support or will support J2ME, this brisk market (smart phone) The market is especially huge, but it is said that Norkia can ship 50 million Java mobile phones this year, and by 2003 can reach 100 million.) And real "once written, run everywelke" is any other technology unacceptable. For developers, it is not subject to the limitations of the operating system, and it doesn't have to worry about the changes in this changing market. Easy to develop: J2ME although there is a lot of different and J2SE, it is still a Java technology, which has the advantages of Java's convenient development, which also makes Java programmers to learn mobile information equipment. It is not too difficult (in fact, I think development J2ME application The main difficulty is not specifically encoded, but the standard complexity). Note: This article comes from IBM DW, original address: http://www-900.ibm.com/developerWorks/cn/java/l-j2metec/index.shtml

转载请注明原文地址:https://www.9cbs.com/read-64700.html

New Post(0)