Choosing a Device Type

This page will describe the consideration and process for selecting to use the Android or J2ME platform for your CommCare project. This page also offers information to help users consider whether to go select an Android phone or tablet for your CommCare project.  

Android or Feature Phone

As of 2016, Dimagi only recommends beginning new projects on Android phones. It has become increasingly difficult to find large quantities of feature phones that support CommCare, Androids are becoming much more common and affordable, and most CommCare active development is focused on the Android platform. In the past we would recommend feature phones when they were the dominant type available locally, the battery life was extremely important, and there was sufficiently robust supply of devices. As of late 2016, most features phones have become increasingly incompatible with modern technology standards, causing new limitations in their use. While we still support our Java platform, we do not recommend that any new projects begin on a feature phone platform.



Beyond the goals of your user experience, here is a table of the important factors to consider



Feature Phone (J2ME)



Feature Phone (J2ME)


Android phones support a robust and modern set of security features.

By the end of 2016, most feature phones will not be able to communicate securely with web services, due to an accelerated shift to new encryption standards. This will mean that data can only be submitted in plaintext, and is vulnerable to being read by intermediate servers. Limitations in the existing set of security certificates on J2ME devices also result in quite awkward configuraiton steps needed to bypass those settings.

Battery Life

Android's battery life will be drained faster than Nokia's depending on its usage. Although there are a couple tweaks that can be done in order to save battery life depending on the field's characteristics and needs. For example:

  • Choosing to only connect to 2G networks instead of always searching for 3G.

  • Lowering screen brightness.

  • Lowering the screen timeout.

  • Turning off Wi-Fi and GPS when not needed.

  • Apps that can be used to control more advanced functions, like automatically placing the phone on 'Flight Mode' when cell phone signal is lost and then switching back on when-in range of a tower signal.

A good rule of thumb for Android use is that you need to be able to charge every day, or else pursue options for alternative methods to recharge the phone battery, including small solar panels.

The Battery life on J2ME phones is typically significantly better than Android. Android phones with a lot of use typically need to be charged every night. Further, their charging requirements will require a voltage charger so some solar charges that work on Nokia phones cannot charge a Smart phone like an Android.

In situations where keeping phones charged is a problem, J2ME is recommended. J2ME phones can often be used regularly for days before needing their battery recharged.

Key Phone Features

Android phones have more functionality than J2ME phones. Almost all are equipped with:

  • Camera: enabling image capture or barcode use cases

  • GPS: enables GIS use cases. Note that constantly using GPS drains the battery life on phones.

Android phones can also be configured to capture data using custom code written by third parties, which allows integration with novel data capture techniques like receiving data from bluetooth medical devices.

J2ME can do significant multimedia playback using images, audio, and video. However, for Image capture or bar code use cases, Androids are recommended.

J2ME can do GPS collection, however, this tends to make the phone as expensive as an Android. Additionally, GPS on J2ME requires running the S60 operating system, which is complex and generally less liked than the streamlined S40 operating system used in most CommCare projects.

User interface

The Android user interface is very flexible due to touchscreens and overall screen size. Android phones allow for much more complex workflows like scanning barcodes to search for items, navigating over filled out form content to check and correct answers quickly, saving and resuming incomplete forms, etc.

The Android phone interface (outside of CommCare) is much more intuitive in most ways than J2ME, although it is also very easy to accidentally exit the application or provide accidental input.

Not many users are already familiar with the user interface of Android phones, which means that they must be trained for the common features (touch screen buttons, navigation, etc), but also means that they don't often have competing expectations for what the application's interface should do. After the initial learning curve of becoming familiar with a touch interface, Android phones are typically easier to use and have a better user experience, even for community health workers.

J2ME's interface is limited, but also very streamlined. It is much easier to configure a CommCare app in J2ME which guides users through the process, since the app can take over the full function of the device.

Many users also find that interacting with physical buttons is much more straightforward than touchscreen interfaces, although it is very dependent on their background and technical experience.

The S40 interface on Nokia phones (outside of the CommCare application) is fairly difficult to use, and requires a substantial amount of training for CHW's unfamiliar with it unless CommCare is set as a shortcut on the home screen. Re-setting dates or other phone-specific settings is difficult for most CHW's, however.

Many users are already familiar with the form factor and interface of Nokia S40 phones due to their prevalence.


While the displays on Android are much bigger and therefore may be better for users with poor eyesight, they can also be harder to see in the sunlight.

J2ME displays are often optimized for visibility in very bright conditions, but are physically much smaller.

It is more difficult to share video or image content between people using the j2me screen, since it is smaller. The viewing angles are sometimes better than on resistive Android screens, however.

Recommended level of tech capacity of CHWs

Users with low-technical-capacities have used ODK in the past with success, but many of the workflows (the login screen, the difference between "saving" and "sending" forms) can be challenging for initial adoption. We are continually improving and simplifying the Android user interface.

Many of the widgets (date selection, multiselect) are much easier to use with a touchscreen.

ODK is usable by a broad set of CHW's, but those with high technical skills will gain a lot of benefit from the more advanced features, which are easier to learn on Android.

Android is recommended for advanced users who will be managing complex workflows, and for users who are not particularly technically savvy, but are highly literate and have a lot of potential to adapt to the new interfaces.

CommCare J2ME supports "sense" mode, which is designed to be used by users with very low technical capacity and has been successful with illiterate first-time-phone users in the past with minimal training.

The app is also very familiar to users who are used to using S40 phones for advanced tasks like web browsing, although in mixed populations (of low and high technical capacity users) who are forced to share the same app, advanced users are often frustrated at the inefficiency of the sense interface.

J2ME is recommended for very, very low-technical capacity users, or for users who are fairly comfortable with using Nokia style phones, but may be limiting for very advanced users.


Android phones generally require very little configuration, and it is easy to push automatic updates. When phone hardware is damaged, there is less local support, however.

Android devices have an extremely high turnover rates on the market, and very few receive good support over time. Phones which have hardware problems or are lost are likely to be replaced by a new device, which may cause difficulties aligning specifications.

Typically, touch screen phones are less robust, and can be broken easily if dropped. The screens are also prone to cracking.

J2ME phones require a great degree of (fairly finicky) manual configuration which can be wiped when it runs out of battery or a SIM card is moved, increasing the need for on-hands maintenance.

There is better support for J2ME phones in most local shops, although there have been problems in the past with local establishments swapping batteries (authentic for knock-off), re-flashing phones with invalid operating systems, filling the memory card with multimedia, or deleting the multimedia files used by the CommCare application.

J2ME phones are in general, very robust, and designed for repetitive use in challenging environments.


Android prices vary widely country to country and in some locations can be found as cheap as the Nokia phones that run CommCare. However, they are still typically 30-50 USD more than J2ME phones in local markets (although this is rapidly changing)

Additionally, the lowest-end android phones are generally substantially slower and less functional than a the lowest-end CommCare compatible J2ME phone.

J2ME phones still tend to be cheaper than Android, although that cost gap is rapidly narrowing.

Cheap J2ME phones tend to be fairly robust, and may not need to be replaced as often as cheap Android phones.



Androids are becoming cheaper and more common, although availability of phones made for specific markets is still tenuous. It is fairly common for Android phones to not support local languages and dialects.

In 2010, Nokia made a strategic decision to move away from lower end phones and adopted the Windows Mobile operating system. This leaves a significant amount of uncertainty about how much longer low end Nokia phones running the Symbian Operating System will be available in the marketplace.


Providing CommCare phones to advanced users will also enable them to take advantage of the multitude of free software available on the platform which could increase their performance or make their jobs easier. Integrated Maps and Email are sometimes used in advanced deployments to help workers plan visits and communicate from the field.

J2ME phones are fairly inconspicuous. Even though CommCare compatible J2ME phones are often more expensive than the average phone on the market, they look similar, and thus don't raise suspicion that workers are performing visits.

They are also less likely to be the target of theft directly (although as mentioned in Maintenance, their SD cards and batteries are)

Lock Down

Androids have the capability to lock down different phone functions in order to restrict certain usage. For example restrict access to Browsers, Social Media Networks, etc. Google Play offers multiple apps for doing so and a couple of them successfully tested on the field.

J2ME phones are much, much more difficult to lock down. There are a few things a user can do to the phone that will cause CommCare to stop working until someone with more technical experience can restore the correct settings (swapping batteries, changing sim cards, filling the SDCard with multimedia, removing the multimedia CommCare uses, incorrect time/date settings). Most of these issues are not present on Android operating systems.

Automatic Update

Android CommCare applications are easily able to automatically update to the latest build or version of software, including the binary CommCare application, and also the form content and questions. As of now, multimedia still cannot be automatically updated.

Automatic application update is possible on J2ME phones, but isn't as reliable as on Android devices. Furthermore, only application content (form questions, new forms) can be updated, and new versions of CommCare need to be installed manually. Updates to multimedia require manual intervention as well.


When trying to select a phone platform, these are some key questions to consider:

  • What phone functionality do I need?

  • Is large screen size important?

  • What is the current technical capacity of the expected CommCare users?

  • Is charging the phone going to be a challenge?

  • Do I need image capture, want to use barcodes, or use GPS

Android Phone or Tablet 

When debating on whether to use an Android phone or tablet for your CommCare project, it is important to consider the following:

  1. How much multimedia will your CommCare application use?

    If your application plans to use a lot of images and videos, it may be better suited for deployment on a tablet; it is easier to view media on a larger screen.

    2. What is your budget for purchasing mobile devices?

Mobile phones are less costly than tablets and are an effective way of deploying an application to a large number of FLWs. 

    3. Does your project feature lots of data collection?

If your project will be heavily focused on data collection (like a large questionnaire or survey), it may be better to consider a tablet. With a larger screen size, a survey can include multiple questions on single screen without requiring FLWs to swipe after each individual question. 

     4. Will the mobile device be needed for communication (i.e. make calls or send SMS)?

        While tablets present a lot of benefits to a project, they also limit the ability for traditional mobile communication. It is important to consider if communication would be an aspect of your project. 

     5. Is device theft anticipated to be a problem?

         Tablets are less discrete than mobile devices and may be more of a target for possible theft. 

We would encourage you to visit our list of recommended phones and tablets to help figure out which device could be best for your project needs.