Это действительно зависит от того, что вы пытаетесь сделать.
Java, хотя вездесущий имеет недостатки в скорости. Кроме того, это не «пиши один раз, беги куда-нибудь», как на рабочем столе, поскольку у разных производителей даже на разных устройствах установлены разные поднаборы java, каждый с разными включениями API.
Использование нативного кода будет более эффективным, но портировать его будет сложнее. Он обеспечивает более прямое представление возможностей устройств без изолированной среды виртуальной машины Apis.
В качестве альтернативы, вы можете использовать язык, такой как C, который, хотя и не является строго переносимым, будет иметь реализации на многих устройствах с небольшими изменениями, сохраняя при этом большую часть изменений скорости такого языка. (OpenC на S60 / Symbian), C на Palm и т. Д.