I am looking for larger display that is very power efficient and cheap (unlike e-paper).
Ideal would be like Nokia 5110 liquid crystal monochrome display but larger resolution - 320x240 or higher
Or some other displays I may not know about )
Maybe someone can recommend something.
I also wondered why industry won't make some very low powered monochrome amoleds which are better for graphics than lcds. I was actually thinking to program some cheaper amoled. Amoleds don't display black areas and save ton of power also white pixel brightness can be adjusted to super minimum and the quality would be superior to any displays we have... just a wish...
It is the first Nokia UMTS / HSDPA dual band phone which also features quad band GSM, supporting both 2G and 3G/UMTS networks. Despite its small and sleek size in a classic candybar form, it still retained standard S60 features and also has HSDPA (3.5G), the fourth from Nokia to do so after the N95, E90 and 6110 Navigator. It weighs only 89 grams.[3][4]
The 6120 classic user interface lacks the typical 3D animated menu items as well as some (thought to be Nokia standard) software, such as the Stopwatch. However, since it utilises the Symbian OS, third party programs can be installed to regain those applications.
Nokia 6121 classic is the first UMTS900 device on the market. It is available in five colours: Black, Blue, White, Gold and Pink. The 6120 classic and 6121 classic are identical, the only difference is that they have a different set of 3G frequencies.
The FOMA NM705i is the NTT DoCoMo version of the 6120 classic released March 2008. The phone lacks the ability to install native applications, and also lacks HSDPA and an email client. NM705i has i-mode software (i-mode browser, i-mode mail, i-appli) instead of MIDP applications, MMS, and the Nokia web browser. Available colors are Black, White, and Orange (NM705i original).
Later, August of same year, introduced FOMA NM706i carries a same exterior design as the 6124 classic and NM705i specifications. Available Black color is same as NM705i, but Red and Silver color is newly available instead of Orange and White.
All models feature a secondary front mounted camera for video phone calls. The resolution of the camera is only 320x240, since the video calls are only shown on other handsets screens. The front camera can also be used to take self-portraits. The regular camera is a 2-megapixel camera with 4x digital zoom, but no autofocus.
Nokia has begun to move away from the traditional proprietary Pop-Port. The phone features a standard Mini USB connector which does not charge the battery. When a USB cable is connected, the phone asks what type of connection it should make, with the choice of media player, PC-suite or Data transfer. The data transfer mode allows the phone to function as a mass storage device making a card reader (to access the phone's microSD card) unnecessary.
The base of the phone also features a 4-part 2.5 mm socket for the supplied headset. When the supplied 4-part 2.5 mm headset is plugged in, it can function as an antenna for the stereo FM radio that also has support for Visual Radio.
It is possible to connect a 3-part 2.5 mm to 3.5 mm adapter to use with standard headphones, however as normal headphones do not have a microphone, this feature may be best suited for media viewing/listening only. The audio player supports MP3, M4A, eAAC+ and WMA formats. iTunes protected audio is not compatible, however iTunes Plus music can be played on the phone.
While portability is one of LWUIT's best attributes, it is also one of the hardest features to grasp. LWUIT is portable as a library and it also enables application porting in such a way that binary code or source can be compatible across different Java ME profiles.
Much has been said in the past about Java device fragmentation (write once debug everywhere). To understand LWUIT's portability you must first understand the original problems and the solutions LWUIT provides for each problem:
This problem was far more severe with older (prior to CLDC 1.1) devices that LWUIT does not support. Thanks to modern TCKs, the virtual machine (VM) in modern devices is compatible, and furthermore the UI layer on which LWUIT is based is very narrow and relatively robust across devices.
Again with newer CLDC 1.1 devices this is not as much of a problem as it used to be, but there are still concerns. See Chapter 2 for a discussion on increasing performance and reducing memory overhead (sometimes trading off one for the other).
LWUIT ships with a very fast low memory overhead scaling algorithm that doesn't lose transparency information. For extreme cases where the algorithm is not enough, LWUIT supports pluggable themes, allowing the UI to be customized with images more fitting to the resolution of the phone.
LWUIT detects soft buttons automatically, and navigation is already portable. LWUIT supports touch screens seamlessly out of the box. Text input works with the device native text box, ensuring proper input.
This problem is solving itself, given relaxed carrier restrictions and increasing JAR file size allocations. LWUIT fully supports obfuscation and works properly with obfuscators that remove redundant code.
Performance is a huge problem in portability. Problems in performance often creep on an application only to appear later in its life cycle. Performance is often a trade-off, mostly of memory for CPU or visa versa. The easiest way to improve performance is to reduce functionality.
The following subsections discuss the specifics of memory and responsiveness. One thing to keep in mind is that performance and memory use on an emulator is no indication of device performance and memory overhead.
Assume you have two devices, a 16-bit color (65536 colors) device with 128x128 resolution that has 2 megabytes of memory, and a 24-bit color device (1.6 million colors) with a 320x240 resolution and 3 megabytes of memory. Which device provides more memory for a LWUIT application? The answer is not so simple.
Because screen buffers are needed both for the current form, the current transition (twice), and the MIDP implementation, the amount of memory the larger device consumes is staggering! How did we reach these numbers?
Encoded images work by using a weak/soft reference to a keep the encoded version of an image. For example, a PNG or JPEG is usually compressed at a very high ratio producing a much smaller byte size than the ones mentioned above (typically a 240x320 image can be 4-5kb or even less!). The EncodedImage keeps in memory the actual JPEG or PNG data, when image information such as pixels, dimensions etc. is needed the native Image object is dynamically created and maintained in a weak/soft reference for caching.
This allows the garbage collection to remove the image from memory when additional memory is needed, however its potentially expensive since an image might be created multiple times. It is also expensive to scale an encoded image since scaling is far more expensive for these cases.
Indexed images carry a performance overhead. It shouldn't be excessive, but when using many animations or indexed images you can expect a slower repaint cycle, especially on devices without a JIT or fast CPU.
This section describes the device bugs and limitations the LWUIT development team found while in the process of creating demos and applications. While this is not an exhaustive list, you can apply these principles if you encounter device issues of your own.
Often developers blame the VM for bugs. Despite many rumors, the development team hasn't found a CLDC 1.1 VM with a significant bug (they reproduced crashes, but they were all due to bad API implementations).
The preprocessor approach was essential in the past when targeting all phones (even seriously broken VMs) with code size requirements that were very low. Today's market has changed considerably, both in the quality of the common devices and in the space or OTA code size available for a typical application.
The advantages of avoiding preprocessor are mostly in code maintenance (refactoring, compiler checks, etcetera), simplicity in reusing object oriented paradigms, and easier deployment (one JAR file for all or most devices).
A device throws an exception in a certain condition when using an API. This happens with several devices that fail in drawRGB. The solution is to catch the exception and activate a flag to invoke a different code path designed for that device class only.
Some devices have a bug with API X or with a specific usage of API X. Avoid that API or usage if possible. For example, many devices have a problem with flushGraphics(int, int, int, int), but all devices tested worked perfectly with flushGraphics().
The rules for dealing with device limitations are very similar to the rules for dealing with device bugs. If a missing API is invoked in code, it throws an exception because it doesn't exist. You can catch that exception and activate a flag disabling the functionality related to the feature. For example, your application might offer a location based feature based on JSR 179. You can wrap the calls related to JSR 179 code in try/catch and disable the functionality if a Throwable is thrown by the code (for example, NoSuchMethodError or ClassNotFoundException).
An example of this approach exists in the M3G class from LWUIT which is designed to run on devices that do not support JSR 184. The Log class is also designed in a similar way. It can utilize the FileConnector when the API is available in order to log to the device file system rather than RMS.
Limitations are often related to appearance, number of colors, device speed, device resolution, and so forth. These can be worked around using a multitude of themes and picking the right default theme upon startup. Use the methods in Display to check general device capabilities, then enable or disable some features.
For example, some devices support only three alpha levels (0%, 50%, 100%). This causes anti-aliased fonts to look horrible on those devices especially when using white over black color schemes. Devices like these can be easily detected using Display.numAlphaLevels() and such themes can be disabled on these devices (or simply excluded from the default state). Similar properties such as numColors are available on display.
64591212e2