Tag Archive | "java"

Tags: , , , , , , , ,

Weekly Android Applications 24/12/2007

Posted on 24 December 2007 by Hatem Ben Yacoub

Even last week was a little slow and holidays already here, here is again another selection of Android applications. The most original project this week is probably Hecl, which is a scripting language written in Java. Hecl could do for Android, what Python did for Symbians. But until we reach that level, there is a lot of missing things in Android platform itself.

CallFreq, Dialer that knows better

Sadko Mobile is one of the companies created after Android launch to create applications both for mobile devices and for desktops and servers interacting with such devices. Their first application CallFreq is small but useful. It allows using filters to list the contacts that you have most frequently dialed, instead of listing all your contacts. It’s a kind of Journal, but I find it very well shown especially with your contact’s pictures and filter to display by hour, day, week, or month. CallFreq is already available for download, but not sources available.

CallFreq

Connect4 game for Android

AndroidCan just opened its doors on December 13rd and promised to provide more games and fun for Android. Their first game is the classical Connect4 with four level of difficulty is already available for download. Sources not available also.

Connect4 game for Android

Hecl, Mobile Scripting language on Android

HECLThe Hecl Programming Language is a high-level, open source scripting language implemented in Java. David N. Welton, creator of Hecl, have just announced that an alpha version of Hecl is already available for Android and could be downloaded from Hecl website. Hecl will participate in the Google Android Challenge, so if you are interested you can start by joining their mainling list.

Comments (0)

Tags: , , , , ,

Running C++ Native Applications on Android, The Final Point

Posted on 22 November 2007 by Hatem Ben Yacoub

C++ programmingWith the launch of Android mobile platform, Google announced that developers can use Java as programming language to create applications for the platform and using Dalvik as the Java virtual machine. The choice of Java was itself a limitation for many developers, especially low level progammers used to deal directly with different mobile hardware issues…

It’s true that, for example, Symbian support programming in C++, but here is the full and real situation. There is a lot of application developed for Symbian, but you have to always compile your application for the different platforms separately. Applications for Symbian 3rd edition don’t run on 2nd, or 1st edition devices. Sometimes applications for S60 3rd edition are compatible with N73, but not with N80, while it should be the same operating system and there is no reason for an application to be hardware dependant.

Now back to Android, the fact is only Java language is supported doesn’t mean that you cannot develop applications in other languages. This have been proved by many developers, hackers and experts in application development for mobile. The guys at Elements Interactive B.V., the company behind Edgelib library, succeeded to run native C++ applications on the Android platform, even that at this time there is still many issues on display and sound … etc. This include the S-Tris2 game and a 3D animation demo of Edgelib.

Wouter ten Brink, Elements Interactive CTO, told us by email “As our company focuses on native (C++) development only, we will keep looking for solutions to bring native applications to Android.”. He added “Personally, I believe Google will eventually offer a way to run native code, but we’ll have to see what will happen on this area the coming months.”

Performance Vs Portability

It’s clear that Google, by making Dalvik the Java Virtual Machine for Android, is looking for maximum portability against performance. The MSM chipsets, currently supported by Android, include a Java hardware acceleration, which is supposed to provide high performance for Java applications running on Android Handsets. But it’s not everything.

The Google answer on running C/C++ applications on Android from the FAQs is : “No. Android applications are written using the Java programming language”. Very simple answer, but the problem here is for developers and companies having ready to use code and applications for other mobile platform and looking to get their code ported to Android at low cost.

Java-Not-In-Time and JIT

The performance issue in reality isn’t due to Java itself, but to the virtual machine running Java code on mobile devices. You can run Java very fastly on PCs today with JIT VMs, thing not available for mobile devices, which make Java applications and games very slow on mobile. So what about Dalvik ? Dan Morrill posted on the Android developers group that “a just-in-time compiler is definitely on the Dalvik roadmap”.

This should answer the performance question about Java, Android and Dalvik, even that we don’t know much at this time on the Dalvik VM.

Conclusion

Finally the choice of Java on Android is to make mobile application developement faster and easier for developers, and to make Android platform more stable. Probably many don’t agree on coding in Java for Android and looking for native support. This could solve some problems for native developers, but will open the door for a huge new problems and incompatibilities. If Google decided to make Android the best open mobile platform, it’s also their choice to keep this platform safe for a better future.

Comments (10)

Tags: , , , , ,

What’s on Android

Posted on 15 November 2007 by Hatem Ben Yacoub

Android System ArchitectureSince monday we started discovering what’s on Android, the system, the applications, the architecture … etc. It was important to know what’s already on Android to develop better applications for the system. In short, Android is running on a linux kernel and using Dalvik as Java Virtual Machine. Android features include :

Application Framework

The application Framework enable Android application to reuse and replace existent components. The Framework include Activity Manager, Window manager, Content providers, View system, notification manager, package manager, telephony manager, resource manager, location manager and XMPP service.

Android Libraries

Android system is based on set of C/C++ libraries used by various components of the Android system. Core libraries include :

  • System C library- a BSD-derived implementation of the standard C system library (libc), tuned for embedded Linux-based devices
  • Media Libraries- based on PacketVideo’s OpenCORE; the libraries support playback and recording of many popular audio and video formats, as well as static image files, including MPEG4, H.264, MP3, AAC, AMR, JPG, and PNG
  • Surface Manager- manages access to the display subsystem and seamlessly composites 2D and 3D graphic layers from multiple applications
  • LibWebCore- a modern web browser engine which powers both the Android browser and an embeddable web view
  • SGL- the underlying 2D graphics engine
  • 3D libraries- an implementation based on OpenGL ES 1.0 APIs; the libraries use either hardware 3D acceleration (where available) or the included, highly optimized 3D software rasterizer
  • FreeType- bitmap and vector font rendering
  • SQLite- a powerful and lightweight relational database engine available to all applications

Dalvik Virtual Machine

Dalvik is the Java Virtual Machine that power Android systems, optimized for mobile phones, owned by google, and best of all going to be open sourced ! Dalvik executes files in the .dex format optimized for minimal footprint. The system itself is optimized to run multiple Dalvik VMs efficiently.

Android applications

The current SDK released came with a set of applications including Home, browser (based on webkit), contacts manager, Phone application, Maps, XMPP client, and according to documentation there will be also sms application, calendar and many others. I bet there will be other basic applications by Google such notes application, some games … etc, but the big job is left here for developers who will participate in the challenge.

Development tools

Android SDK, released this monday is defintely the best development environnement for Android applications. A plugin for eclipse is available to help coding, debugging, memory and performance profiling, in addition to the device emulator to see your application running live in Android before to see it on real handsets.

Some others Android’s Technical features

  • Optimized graphics powered by a custom 2D graphics library; 3D graphics based on the OpenGL ES 1.0 specification
  • Media support for common audio, video, and still image formats (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)
  • GSM Telephony
  • Bluetooth, EDGE, 3G, and WiFi
  • Camera, GPS, compass, and accelerometer

Be sure to check Android documentation to learn more about this new technology.

Comments (0)

Tags: , , , , , ,

Android is even better with Esmertec

Posted on 14 November 2007 by Hatem Ben Yacoub

EsmertecWe used to talk about Android, Google and the OHA without talking in details about the other partners member of the alliance and their participation. Many people who started flirting with Android technology started asking why Google is creating another Java standard (Dalvik) ? why they didn’t use the JavaME Standard? and what about old mobile applications written in the JavaMe standard, will they be supported on Android ?

Esmertec, member of the OHA, got the answer to this question. Beside contributing in the OHA initiative with their OMA applications (MMS, WAP, DRM, SyncML, and IM), Esmertec is also providing a commercial Jbed Virtual Machine (JVM) to member of the Alliance on demand. In other words, you won’t probably have access to JVM, but if you have an mobile application in JavaME standard it will easily run on Android platform thanks to Esmertec.

Esmertec’s JVM will bring easily thousands of existing Java ME applications to the Android mobile platform. So the solution already exist, even commercial, but the question still for Android’s applications and how to port them to JavaMe standard. Write once, use everywhere, isn’t always true, but isn’t impossible too. Anyway there is still someone who will have to make an extra effort to fit with the new situation.

Comments (1)

Advertise Here
Advertise Here