Tìm hiểu thêm về Android Runtime (ART) trong Android 4.4 và lợi ích của nó khi thay thế Dalvik

Duy Luân
16/11/2013 1:43Phản hồi: 294
Tìm hiểu thêm về Android Runtime (ART) trong Android 4.4 và lợi ích của nó khi thay thế Dalvik
Android_RunTime_Dalvik_VM.jpg

Trong suốt 5 năm ra đời và phát triển, hầu hết mọi thành phần của Android đều đã ít nhiều được thay thế, cập nhật mới hay thậm chí là thay đổi hoàn toàn. Tuy nhiên, có một thứ cực kì quan trọng, đó là bộ máy ảo Dalvik dùng để chạy ứng dụng Android thì vẫn được giữ nguyên gần như so với ban đầu. Giờ đây, trong Android 4.4 KitKat, Google đã ra mắt một giải pháp thay thế cho anh chàng Dalvik già cỗi, đó chính là Android Runtime (ART). Trong bài này, mình sẽ giới thiệu thêm cho các bạn những thông tin về ART và lợi ích của nó với Android là gì.

Dalvik và ART là gì?

Hiện nay, các ứng dụng Java sau khi viết xong chỉ được biên dịch (compile) một phần bởi lập trình viên. Phần mã biên dịch này sau đó sẽ phải đi qua một trình phiên dịch khác để trở thành mã máy (native code) phù hợp với CPU và thiết bị của người dùng. Quá trình này tốn thời gian hơn và không thực sự hiệu quả, nhưng bù lại lập trình viên có thể viết app chỉ một lần và đem nó lên nhiều máy để chạy.

Java_VM.png

Trên Windows, Mac hay Linux, chúng ta có một thứ gọi là Java Virtual Machine để thực hiện công việc trên. Còn với Android, Dalvik chính là trình biên dịch và nó đã có mặt từ những buổi đầu mà hệ điều hành này ra đời. Dalvik do kĩ sư Dan Bornstein làm ra và nó được đặt tên theo một làng chài ở Iceland. Đây thực chất là một phần mềm mã nguồn mở và nó nằm ở trong khu vực bao gồm các thư viện cốt lõi cần để Android chạy. Ngoài ứng dụng thì vài thành phần khác của Android cũng phải dùng đến Dalvik.

Chính nhờ Dalvik mà chúng ta chỉ có một app duy nhất nhưng vẫn có thể chạy trên smartphone, tablet, Smart TV, thiết bị nhúng... với nhiều loại CPU khác nhau và từ các hãng khác nhau (tất nhiên việc tối ưu hóa giao diện, tính năng là câu chuyện khác, nhưng cơ bản là chạy được).

Vấn đề với việc dịch bằng Dalvik đó là nó chậm! Chính sự xuất hiện của nó thường làm cho hiệu năng ứng dụng thấp hơn so với các phần mềm dùng trực tiếp mã đã được biên dịch sẵn. Trong nhiều trường hợp, nhất là với những CPU hiện đại có sức mạnh xử lí tốt thì sự khác biệt này không đáng kể. Tuy nhiên, với những phần mềm nặng thì chúng ta sẽ thấy nó một cách rõ rệt. Android hiện nay chậm chạp cũng một phần là do Dalvik. Và việc bắt vi xử lí chạy lâu hơn cũng là nguyên nhân khiến hệ thống tiêu thụ nhiều điện hơn.

Android Runtime – ART

Google biết về Dalvik, tất nhiên, đó là lý do mà hãng đã phát triển nên một giải pháp thay thế mang tên Android Runtime (ART) trong suốt hai năm vừa qua. Một phiên bản thử nghiệm của ART đã được nhúng trong Android 4.4 và bạn có thể tìm thấy nó ở trong phần Settings > Developer Options > Select Runtime (một số máy dùng ROM cook có thể không có, và việc kích hoạt nó lên có thể khiến hệ thống và ứng dụng gặp lỗi đấy nhé).

Chuyen_sang_ART.jpg

ART sử dụng một cách xử lí rất khác so với Dalvik. Hiện nay, các ứng dụng Android được phiên dịch ra mã máy ở thời điểm mà chúng ta chạy chúng lên. Dalvik thực hiện điều này bằng một bộ máy gọi là "Just-In-Time" (JIT) conpiler. Chữ Just-In-Time dịch sang tiếng Việt thì có nghĩa là "vừa kịp lúc", tức là chỉ đoạn mã nào cần thiết mới được dịch và chỉ dịch khi cần.

Còn với ART, nó xài bộ máy "Ahead-Of-Time" (AOT) để phiên dịch mã bytecode của ứng dụng thành mã máy ở thời điểm bạn cài nó vào thiết bị. Điều này đồng nghĩa với việc khi bạn chạy app lên, nó đã tồn tại sẵn ở dạng mã máy và thiết bị của chúng ta cứ thế mà thực thi app.

Lợi ích của ART

Quảng cáo



Lợi ích lớn nhất của ART đó là nó cho phép lập trình viên Android tiếp tục viết phần mềm theo như cách mà họ đã làm từ trước đến nay, phần mềm của họ cũng vẫn có thể chạy trên nhiều loại CPU và thiết bị khác nhau, nhưng với tốc độ nhanh hơn đáng kể. Cảm giác máy sẽ mượt mà hơn. Với các phần mềm cần nhiều sức mạnh tính toán, ví dụ app chỉnh sửa ảnh hay video thì lợi ích sẽ càng rõ ràng hơn nữa. Chưa hết, hiện nay hầu hết thiết bị Android đều sử dụng vi xử lí đa nhân (hai, bốn, tám...). Sự có mặt của ART có thể giúp ứng dụng cần phải kích hoạt ít nhân hơn Dalvik lúc phiên dịch, từ đó dẫn đến việc tiết kiệm pin hơn.

Chúng ta cũng có thể thấy được ART là một trong những lý do mà Google tuyên bố là Android 4.4 có thể dùng tốt cho những thiết bị với RAM chỉ 512MB. Vì đã được phiên dịch trước nên không còn hiện tượng Dalvik chiếm lấy RAM và bộ nhớ này sẽ được sử dụng hoàn toàn cho các ứng dụng.

Hạn chế của ART

Tất nhiên, ART sẽ cần thời gian lâu hơn để dịch lúc mà chúng ta mới vừa cài ứng dụng xong, tuy nhiên lợi ích lâu dài đó là ứng dụng sẽ tải và chạy nhanh hơn. Bạn hãy thử nghĩ xem, chúng ta chỉ cần app có một lần nên chờ lâu hơn hồi trước một chút thì cũng không vấn đề gì, trong khi tốc độ dùng app về sau nhanh hơn thì cũng đáng để bù đắp. Thực chất, với những ứng dụng nhỏ thì khoảng thời gian để ART dịch cũng rất ngắn, chỉ với những app lớn thì chúng ta mới thấy rõ sự khác biệt. Hiện nay, với những chiếc Nexus, lúc bạn chuyển từ Dalvik sang ART thì toàn hệ thống cũng chỉ mấy có vài phút để dịch sẵn hết toàn bộ app đã cài trong máy.

Ngoài ra, một hạn chế khác đó là mã máy sau khi được dịch sẵn sàng thì sẽ chiếm dung lượng lưu trữ lớn hơn là mã bytecode. Lý do đó là vì một kí tự trong bytecode thực chất được biểu diễn bằng nhiều lệnh của mã máy nên to hơn là chuyện dễ hiểu. Mức độ lớn hơn thì cao nhất là khoảng 10-20% tùy app. Con số này nghe có vẻ lớn nhưng tập tin thực thi lại không chiếm dung lượng lớn trong app nên việc tăng lên như thế sẽ không gây nhiều ảnh hưởng. Ví dụ, cả file APK của ứng dụng Google+ mới có dung lượng đến 28,3MB, nhưng phần mã chạy chỉ là 6,9MB mà thôi.

art-dalvik-apps1.jpg
Sự chênh lệch về dung lượng ứng dụng giữa Dalvik và ART

Quảng cáo


ART hiện chỉ mới là bản thử nghiệm sơ khai

Xin nói lại rằng bản ART đang có mặt trong Android 4.4 KitKat chỉ mới là bản thử nghiệm, do đó tốc độ chưa thật sự ngon như bản chất của nó. Theo bài kiểm tra của anh vuhai6 thì ART thậm chí còn chậm hơn Dalvik khi mở một số ứng dụng, nhưng đây chỉ mới là những buổi đầu mà thôi.

Chưa rõ bao giờ thì Google sẽ ra mắt chính thức ART, nhưng trong bối cảnh hãng đã phát triển nó hàng năm trời và đã thử nghiệm trên Android 4.4, có thể chúng ta sẽ sớm thấy nó được áp dụng rộng rãi. Nhiều khả năng là trong Android 4.5 hay 5.0 thì Google sẽ tích hợp ART.

Vậy tôi có nên chuyển sang dùng ART ở thời điểm hiện tại hay không?

Theo khuyến cáo của Google thì không. Như đã nói ở trên, do ART mới là bản thử nghiệm dành cho lập trình viên trên Android 4.4 nên có một số ứng dụng có thể không tương thích với trình phiên dịch này. Ví dụ: Titanium Backup, WhatsApp, Call of Duty: Strike Force. Bạn có thể chuyển lại Dalvik khi cần xài các app này, nhưng điều đó lại quá bất tiện cho bạn so với những gì mà ART mang lại. Nếu muốn trải nghiệm thì bạn có thể thử đổi sang ART, nhưng nếu cần sự ổn định thì hãy cứ dùng Dalvik nhé.

Nói tóm lại, ART tuy là giải pháp mới nhưng về cơ bản thì Android vẫn cần phải thông qua bộ máy phiên dịch trước khi chạy ứng dụng nên khó có thể là giải pháp lâu dài nếu muốn hệ thống thật sự ngon lành như các nền tảng đối thủ. Trong tương lai, Google vẫn cần một thứ gì đó đủ khả năng tăng tốc độ hệ thống lên cao hơn nữa, ví dụ như thay toàn bộ phần nhân hệ thống chẳng hạn. Chúng ta hãy chờ xem sao.

Nguồn: Google, ExtremeTech, Android Police (1), (2)
294 bình luận
Chia sẻ

Xu hướng

Mới thử song.. Vs app nhẹ thì ko nói lên điều gì. Nhưng game hay ứng dụng nặng sẽ khác

_khi VẬT CHẤT lên tiếng thì TÌNH YÊU cũng phải CÂM MỒM 😃
lvq17cm
TÍCH CỰC
10 năm
wipe data, wipe cache, wipe dalvik cache...

Bây giờ thay là Art thì có wipe nữa k nhỉ ^^ ai cài rom, dùng cwm cũng biết thao tác 3wipe này
@lvq17cm Còn wipe battery status nữa chứ bác!!! 😁
Mấy cái em hiểu,còn wipe dalvik em ko hiểu nó là cái gì :p
vuut
TÍCH CỰC
10 năm
@lvq17cm wipe ẢRT
bit giờ con 1.2.80 mình lên 4.4 nhỉ ......😁:D
@deocantinh9999 1280 của lokia thì chắc là chạy windownphone bạn à, kô liên quan gì đến Android bọn tớ. Có lẽ con 1280 chày cối của bạn sắp được lên wp 8.1 rồi đấy.

Sent from my ipad mini rexona using Tinhte.vn mobile app
@deocantinh9999
medium-71989dd53de24a03800096805e4da2bd-650-1376961499969-crop1376961760674p.jpg Không đỡ được!?!?!? :D
Rõ ràng về lâu dài cần có sự thay thế đáng giá này...😃
Chưa hoàn hảo mà..chỉ là bản thử nghiệm thui.. Mai tính
mvh02121993
ĐẠI BÀNG
10 năm
vote google viết lại nhân, để mọi hoạt cảnh đồ họa mượt mà, chứ cấu hình phần cứng mạnh cỡ nào mà vẫn còn độ trễ thì k đáng.
@vuminhquan301 đây là lần cuối mình nói với bạn : đã mù công nghệ thì nên tìm hiểu trc đi r hẵng nói. càng nói càng thể hiện sự thiếu hiểu biết

tìm hiểu thêm :http://www.tinhte.vn/threads/microsoft-phat-trien-cong-nghe-man-hinh-cam-ung-co-do-tre-chi-1ms.1132289/

bạn nhìn chữ kĩ thì sẽ thấy mình đang dùng android. chả có cái gì lq đến iPhone. tốt thì nói. chứ chả phải tâng bốc làm gì cho mệt
minhw705
ĐẠI BÀNG
10 năm
@Hungdunghcmc Bạn dùng hết tất cả các loại điện thoại Android rồi ah?
culihvc
ĐẠI BÀNG
10 năm
Mình thích android vì có thể cài app thứ 3.. Nhưng giữa phần mềm và phần cứng độc lập nên it được lên phiên bản mới của google
android sắp lột xác 😁
Vote cho google, update version liên tục, và có rất nhiều cải tiến đáng để anh em vọc
Makoto81
TÍCH CỰC
10 năm
@akayct Đừng hỏi câu buồn cười đó? Tôi ko có cái may mắn biết dc cái lag giật của android là tn vì dt android đầu tiên của tôi đã là lõi kép1,5, ram 1g, chạy jelly bean và tôi chẳng thấy chậm hay lag gì cả? Nó cho tất cả các dt khác như ip5, lumia 920, 925 hít khói khi lướt web dù có cùng ram và cấu hình. Lag giật đó là khái niệm của dĩ vãng rồi. Bạn đã sử dụng dt android kể từ 4.0 chưa?
@Makoto81 wow, nói như bác Android > 4.0 lướt web nhanh hơn l920-l925 ghê thiệt :v :v :v
@Makoto81 Oẹ android chỉ thích SONY mà sony thì đến năm 2013 mới ngon. Android có SS là ko ưa rồi. Đt của SS có tốt éo gì đâu mà bán chạy thế nhỉ. Nói chung giờ người ta hướng đến NOKIA hết rồi. Vì đt NOKIA ngon gấp 10 lần SS. Hệ điều hành và hệ sinh thái WP giờ cũng ngon rồi. Trước đây người ta không mua nokia vì không đủ ứng dụng để xài. Giờ nokia cấu hình cũng ngang android, WP đã đủ ứng dụng cần thiết thì ngu gì ko mua NOKIA mà đi mua SS
@akayct
Viết bài về trình biên dịch trên IOS và WP đi ad. Sao nó lại mượt hơn androi
@Tony_HD Hỏi ngớ ngẩn, ios và wp đã đc lập trình viên dịch luôn trong quá trình viết app rồi. Máy chỉ việc lấy ra sài ko phải dịch nữa nên nó nhanh hơn và mượt hơn
@lekhanh_ios không biết k nói k ai cười. k biết mà cứ nói lại thể hiện sự thiếu hiểu biết. mệt lắm 😆)
Henry Doan
ĐẠI BÀNG
10 năm
@lekhanh_ios cóc ngồi đáy ao đây rồi 😁
@lekhanh_ios Sao bác biết vậy?
Cái j mà ngớ ngẩn. Để ý lời nói chút.
hi vọng N4 của mình sẽ chén được 5.0 trở lên j đó 😁
cài app lâu nhất thì chắc là blackberry 5.0 trở xuống quán quân cmnr :D
onlylove511
ĐẠI BÀNG
10 năm
từ interpreter dịch theo chuyên ngành là hay thông dịch hay hơn chứ nhỉ.
""Trong tương lai, Google vẫn cần một thứ gì đó đủ khả năng tăng tốc độ hệ thống lên cao hơn nữa, ví dụ như thay toàn bộ phần nhân hệ thống chẳng hạn. Chúng ta hãy chờ xem sao.""
=)) lúc đấy windows có giả lập android xịn rồi thì android tèo chứ sao :l
@bechancuu1 Máy windows phone có thể cài android, nhưng giải lập android trên wp lại là chuyện khác phức tạp hơn nhiều
@limax2 Đấy là bây giờ sau này sẽ ngon ngay
ART khá thú vị nhưng chắc phải đợi Nexus smartphone kế tiếp cho hoàn thiện
polyester
TÍCH CỰC
10 năm
Chờ vài năm nữa android chắc nhanh khiếp khi art chính thức và nhiều app hổ trợ?
Winphone có thể chen chân được vào thị trường chính là vì nhược điểm về độ mượt của android.
Android luôn mang lại sự mới mẻ không nhàn chán như OS #
tinhteppc
ĐẠI BÀNG
10 năm
Android Runtime đã chạy trên Blackberry 10 rồi phải không bác chủ.
beoandlun
TÍCH CỰC
10 năm
Ngon! Lại đợi android runtime trên BB10 update. 😆

Xu hướng

Bài mới









  • Chịu trách nhiệm nội dung: Trần Mạnh Hiệp
  • © 2024 Công ty Cổ phần MXH Tinh Tế
  • Địa chỉ: Số 70 Bà Huyện Thanh Quan, P. Võ Thị Sáu, Quận 3, TPHCM
  • Số điện thoại: 02822460095
  • MST: 0313255119
  • Giấy phép thiết lập MXH số 11/GP-BTTTT, Ký ngày: 08/01/2019