Hầu hết các loại điện thoại di động (ĐTDD) ngày nay đều hỗ trợ lập trình với ngôn ngữ Java. Mặc dù nổi tiếng là ngôn ngữ “viết một lần, chạy mọi nơi”, một ứng dụng Java chạy tốt trên một loại ĐTDD, chưa hẳn đã chạy tốt trên các loại ĐTDD khác. Mỗi kiểu ĐTDD khác nhau (kể cả cùng một hãng sản xuất) được trang bị khác nhau về cấu hình phần cứng và thư viện lập trình (API) đính kèm. Điều nầy đã tạo nên sự không tương thích. Do vậy, muốn phát triển ứng dụng cho một kiểu ĐTDD cụ thể, bạn.