Dalvik là gì? Chúng ta nghe rằng từ đó bị ném rất nhiều trên Internet khi nói về Android và hoạt động bên trong của nó. Mặc dù không có lời giải thích dễ dàng nào chúng tôi có thể đưa ra chỉ trong một vài đoạn, chúng tôi có thể trình bày những điều cơ bản và chỉ cho bạn đi đúng hướng nếu bạn cần phải nuôi dưỡng khía cạnh mọt sách của mình. Nói một cách đơn giản nhất, Dalvik là một máy ảo chạy các ứng dụng và mã được viết bằng Java. Trình biên dịch Java tiêu chuẩn biến mã nguồn (được viết dưới dạng tệp văn bản) thành Bytecode, sau đó được biên dịch thành tệp.dex mà máy ảo Dalvik có thể đọc và sử dụng. Về bản chất, các tệp lớp được chuyển đổi thành các tệp.dex (giống như tệp jar nếu một tệp đang sử dụng máy ảo Java tiêu chuẩn) và sau đó được đọc và thực thi bởi Máy ảo Dalvik. Dữ liệu trùng lặp được sử dụng trong các tệp lớp chỉ được đưa vào một lần trong đầu ra.dex, giúp tiết kiệm không gian và sử dụng ít chi phí hơn. Các tập tin thực thi có thể được sửa đổi một lần nữa khi bạn cài đặt một ứng dụng để làm cho mọi thứ trở nên tối ưu hơn cho thiết bị di động. Những thứ như hoán đổi thứ tự byte và liên kết cấu trúc dữ liệu và thư viện hàm làm cho các tệp nhỏ hơn và chạy tốt hơn trên các thiết bị của chúng tôi. Máy ảo Dalvik được viết từ hình vuông với Android.
Bối rối chưa? Đừng cảm thấy tồi tệ, nói chuyện lập trình táo bạo thường có tác dụng đó. Hãy nghĩ về nó theo cách này - khi bạn xây dựng một ứng dụng Java cho máy tính của mình, Máy ảo Java sẽ chạy đầu ra được biên dịch của mã nguồn. Đây là lý do tại sao Java chạy trên bất kỳ hệ điều hành nào. Dalvik là phiên bản được tối ưu hóa cho thiết bị di động của Máy ảo Java, được xây dựng bằng mã từ dự án Apache Harmony, là nguồn mở và chạy tốt hơn so với máy ảo Java tiêu chuẩn trên phần cứng giới hạn của chúng tôi, được thiết kế để bạn có thể chạy nhiều hơn một phiên bản VM tại một thời điểm - tức là đa nhiệm. Vì Dalvik là nguồn mở, nên nó cũng được chuyển sang các hệ điều hành khác, như hệ điều hành trên BlackBerry PlayBook. Nó khá phức tạp, khá thú vị và Oracle (công ty đã mua Java từ Sun) ghét nó.
Android sử dụng Dalvik vì trong khi giấy phép cho Máy ảo Java tiêu chuẩn là GPL2 (miễn phí và nguồn mở), khi được đặt trong thiết bị di động và sử dụng Phiên bản Java Micro, thì không phải vậy. Tranh chấp lớn giữa Google và Oracle đều dựa trên Dalvik. Google tuyên bố nó được viết trong môi trường "phòng sạch" mà không sử dụng bất kỳ mã nào của Oracle và Oracle không đồng ý. Chúng tôi tuyên bố không có ý tưởng, chúng tôi chỉ vui mừng vì nó hoạt động tốt như nó.