普瑞巴林胶囊治什么病| tomboy是什么意思| 什么情况下吃丹参滴丸| 清洁度lv是什么意思| 鸭吃什么食物| 普拉提和瑜伽有什么区别| 75年的兔是什么命| 包皮炎看什么科| 软肋是什么意思| 可乐不能和什么一起吃| 胃上面是什么器官| ca199偏高是什么原因| 张仲景的著作是什么| 胃窦在胃的什么位置| 倒三角是什么意思| 九天揽月是什么意思| 无名指戴戒指是什么意思| 10000mah是什么意思| 高血压会引起什么并发症| 肛门痛什么原因| 颈椎不好挂什么科| EV71疫苗是什么| 胃酸反流是什么原因造成| 粘鞋子用什么胶水最好| 角头是什么意思| 海黄瓜是什么| 梦到自己怀孕了是什么预兆| 分子是什么| 维生素b2起什么作用| 梦见买衣服是什么预兆| 铁是什么颜色| 蚊子喜欢什么气味| 婊子代表什么生肖| 现在什么手机好用| 鱼油什么时候吃最好| 大便发黑是什么情况| 急性阑尾炎吃什么药| 老登是什么意思| 家和万事兴是什么意思| 口红是用什么做的| zeesea是什么牌子| 老鼠爱吃什么食物| 拉直和软化有什么区别| panerai是什么牌子| anca是什么检查| 脖子红是什么原因| 内眼角越揉越痒用什么眼药水| 私密瘙痒是什么原因| 陕西有什么特产| 三十八岁属什么生肖| 助听器什么品牌最好| 总胆固醇是什么意思| 心脏支架是什么材料做的| 7月初7是什么日子| 子宫肌瘤吃什么药| kda是什么单位| 强光斑是什么意思| 什么血型的人最聪明| 小巫见大巫是什么意思| 月经每个月都推迟是什么原因| 吃瓜什么意思| 乙肝两对半15阳性是什么意思| 偏光镜是什么意思| 血小板压积偏低是什么意思| 海参多少头是什么意思| 什么叫绿茶| 1901年属什么生肖| 巨蟹后面的星座是什么| 鱼香肉丝为什么叫鱼香肉丝| 增强抵抗力免疫力吃什么| 合胞病毒吃什么药| 密度增高影是什么意思| 老人爱睡觉是什么原因| 木耳不能和什么食物一起吃| 凭什么姐| 4.25什么日子| 血沉低是什么意思| 缺铁性贫血吃什么水果| 1014是什么星座| 生姜吃多了有什么害处| 0.618是什么意思| 什么是回南天| 预防脑梗吃什么药| 马齿苋对什么病最有效| 女人的逼长什么样| 送女生什么礼物比较好| 皇太后是皇上的什么人| 来月经喝什么汤好| 头晕头重昏昏沉沉是什么原因| 12年属什么生肖| hpd是什么意思| 狗狗呕吐是什么原因| 二尖瓣微量反流什么意思| 90年出生属什么生肖| 夏天晚饭吃什么比较好| 三月是什么季节| 人又不人鬼不鬼是什么生肖| 扬字五行属什么| 头晕拉肚子是什么情况| 四叶草寓意是什么| 做恐怖的梦预示着什么| 柠字五行属什么| 巧囊是什么原因形成的| 落井下石是什么意思| 胃粘膜脱落什么症状严重吗| 综合基础知识考什么| 女性为什么会得疱疹| 四肢冰凉是什么原因| 男人练臀桥有什么用| 死马当活马医是什么意思| 周瑜是什么生肖| 疝气手术是什么| 苦海无涯回头是岸是什么意思| 桃花什么时候开放| 人体的三道防线是什么| oct是什么| 平菇不能和什么一起吃| 鱼鳞病是什么| 人乳头瘤病毒hpv是什么意思| 西安有什么| 大豆指的是什么豆| 什么是无精症| 万言万当不如一默是什么意思| 哪吒妈妈叫什么名字| 思念到极致是什么感觉| 三月份有什么节日| 小便分叉是什么原因男| 小便无力是什么原因| NT是什么钱| 傲娇什么意思| 陪跑什么意思| 为什么小鸟站在电线上不会触电| 地漏什么牌子的好| 心火旺吃什么药| 头加一笔是什么字| 什么的积雪| 细菌性阴道炎吃什么药好| 猫拉稀吃什么药| hj是什么意思| 连铁是什么器官| 越睡越困是什么原因| 丹参是什么样子的图片| 胸闷气短呼吸困难心慌是什么原因| 胎儿生物物理评分8分什么意思| 百丽鞋属于什么档次| 爱马仕配货是什么意思| 34是什么意思| 儿童便秘吃什么最管用| 尿毒清颗粒主治什么病| 狗什么东西不能吃| 苯甲酸钠是什么东西| 庆字五行属什么| 七月一日是什么节日| 泥鳅不能和什么一起吃| 寅木是什么木| 晚上十点是什么时辰| 化疗和放疗什么区别| 求购是什么意思| 维生素b12又叫什么| 口疮吃什么药| 耳机降噪是什么意思| 中药和中成药有什么区别| 做体检挂什么科| 澄粉是什么粉| 锹形虫吃什么| 端午节在什么时候| 吃什么不会胖又减肥| 鼻子里流出黄水是什么原因| nt是什么货币| 蝉鸣声耳鸣是什么原因引起的| 为什么会长生长纹| 胆汁反流是什么意思| 脑疝是什么意思| 喝苦荞茶对身体有什么好处| 什么是黄体| 外阴瘙痒用什么药膏擦| 盛是什么意思| 乐果农药适合杀什么虫| 表面积是什么| 长孙皇后为什么叫观音婢| 汗味酸臭是什么原因| 隼读什么| 吃什么吐什么是怎么回事| 哈怂是什么意思| 飞花令是什么| 属兔生什么属相宝宝好| 12年义务教育什么时候开始| 扁桃体经常发炎是什么原因| 食糜是什么意思| 一马平川什么意思| 眼睛干涩是什么原因| 肺结核挂什么科| 贵族是什么意思啊| ku是什么单位| 肝火旺盛吃什么食物好| 什么人容易得尿毒症| 花生不能和什么一起吃| 橙子什么季节成熟| 明天什么考试| 失恋什么意思| 白醋和陈醋有什么区别| 为什么同房后小腹隐隐作痛| 最好的假牙是什么材质| 肌钙蛋白高说明什么| 银杏树叶子像什么| 公分的单位是什么| 六个月宝宝可以吃什么水果| 扫兴什么意思| 生育能力检查挂什么科| m2是什么单位| c4是什么驾驶证| 不景气是什么意思| 甲状腺低是什么意思| 北京的区长是什么级别| 知否知否应是绿肥红瘦什么意思| 眼睛有点模糊是什么原因| 市政协主席是什么级别| 囊腺瘤是什么| 便秘喝什么药| 彘是什么意思| 什么叫脑梗| 什么原因得疱疹| 流鼻涕咳嗽吃什么药| 雪球是什么| 鼻炎挂什么科| 戴银镯子变黑是什么原因| 藤茶有什么功效| 蔬菜都有什么| 脾气虚吃什么药| 什么情况下吃救心丸| 吃什么补气| 迁徙是什么意思| 度化是什么意思| 老年痴呆症又叫什么名字| 肉麻是什么意思| 曲苑杂坛为什么停播| 睡觉睁眼睛是什么原因| 二甲苯是什么东西| 月经推迟是什么原因| 牙膏洗脸有什么好处和坏处| 黑色搭配什么颜色好看| 雪五行属什么| 高烧拉肚子是什么原因| 冠心病有什么症状| 玉树临风什么意思| 冬菇有什么功效与作用| 血液由什么组成| 烫发对身体有什么危害| 老是拉肚子是什么原因| cashmere是什么意思| 如果怀孕了会有什么预兆| 鼻涕是绿色的是什么原因| 男人高冷是什么意思啊| 哀莫大于心死什么意思| 肺阴虚吃什么食物最好| 更年期皮肤瘙痒是什么原因| 阅后即焚什么意思| 月经推迟什么原因引起的| sanyo是什么牌子| 狗吃什么会死| 早上起床咳嗽是什么原因| 雯五行属什么| 西安古时候叫什么| 前列腺是什么| 百度Jump to content

《上古卷轴:传奇》IGN评分8.3 游戏模式出色

From Wikipedia, the free encyclopedia
百度 颈肩部饰褐色乳钉,乳钉下饰柳斗纹。

ART
Developer(s)Google
Repositoryandroid.googlesource.com/platform/art/
Written inC++
Operating systemAndroid
PlatformARM64 RISC-V x86
Included withAndroid
PredecessorDalvik
TypeRuntime environment
LicenseApache License 2.0[1]
Websitesource.android.com/docs/core/runtime Edit this on Wikidata

Android Runtime (ART) is an application runtime environment used by the Android operating system. Replacing Dalvik, the process virtual machine originally used by Android, ART performs the translation of some of the application's bytecode into native instructions that are later executed by the device's runtime environment.[2]

Overview

[edit]
A comparison of Dalvik and ART architectures

Android 2.2 "Froyo" brought trace-based just-in-time (JIT) compilation into Dalvik, optimizing the execution of applications by continually profiling applications each time they run and dynamically compiling frequently executed short segments of their bytecode into native machine code. While Dalvik interprets the rest of an application's bytecode, native execution of those short bytecode segments, called "traces", provides significant performance improvements.[3][4]

Unlike Dalvik, ART introduces the use of ahead-of-time (AOT) compilation by compiling the most performance-critical parts of applications (previously, the entire app) into native machine code upon their installation. This way, ART improves the overall execution efficiency and reduces power consumption, which results in improved battery autonomy on mobile devices. At the same time, ART brings faster execution of applications, improved memory allocation and garbage collection (GC) mechanisms, new applications debugging features, and more accurate high-level profiling of applications.[2][5][6]

To maintain backward compatibility, ART uses the same input bytecode as Dalvik, supplied through standard .dex files as part of APK files, while the .odex files are replaced with Executable and Linkable Format (ELF) executables. Once an application is compiled by using ART's on-device dex2oat utility, it is run from the compiled ELF executable; as a result, ART eliminates various application execution overheads associated with Dalvik's interpretation and trace-based JIT compilation.

A disadvantage of ART is that additional time is required for compilation when an application is installed, and applications take up slightly more secondary storage (usually flash memory) to store the compiled code.[2][5][6] Long AOT compilation became especially problematic when monthly security updates became the norm, locking users out of the OS for a long time after each update.

To improve on these, a hybrid approach was introduced in Android 7.0 (Nougat) which originally relies on JIT compilation, but later, when the device is idle and charging, compiles the most frequently used code as well as that on the UI thread to native code.[7]

History

[edit]

Android 4.4 "KitKat" introduced a technology preview of ART as an alternative runtime environment to Dalvik, which remained the default virtual machine.[8][9] In the subsequent major Android release, Android 5.0 "Lollipop", Dalvik was entirely replaced by ART.

Android 7.0 "Nougat" turned the ART from a pure AOT to a hybrid JIT/AOT solution, while switching its Java Runtime Environment from the discontinued Apache Harmony to OpenJDK, introducing a JIT compiler with code profiling.[10] The JIT compiler complements ART's AOT compiler, helping to improve runtime performance and save storage space by identifying "hot code" (code which is frequently used, runs on the UI thread or affects startup time), which the AOT compiler compiles to machine code while the device is idle and charging. Less-frequently used code relies on JIT compilation.[11][12]

Android 9 "Pie" reduced the amount of storage used by APKs by using compressed bytecode files, and profiler data can be uploaded to Google Play servers to be bundled with apps when downloaded by users with a similar device, which shortens download time from Google Play by up to 40%. Google Play cloud profiles allow apps to be optimized on installation, which helps avoid the initial performance issues present on Android 7.0 to 8.1.[13]

In July 2021,[14] the concept of baseline profiles was introduced. Baseline profiles are ART profiles that define methods and classes which should undergo AOT compilation from an app's first launch, and are compatible with Android 7.0 and later. They provide similar functionality to Android 9's Google Play cloud profiles when they are not available and automatically merge with cloud profiles when they are available. Baseline profiles are included with releases of AndroidX libraries and Jetpack Compose.[15]

ART was updated with a new garbage collector (GC) utilizing the Linux userfaultfd system call in Android 13.[16][17][18] It reduces memory pressure, compiled code size and jank, and prevents the risk of killing apps because of low memory during garbage collection.[18] Other changes also improve app startup, reduce jank and improve performance.[18] Because of the Mainline project, Android 12's ART will also be updated.[16]

See also

[edit]

References

[edit]
  1. ^ "NOTICE - platform/art - Git at Google". Archived from the original on March 4, 2023. Retrieved June 25, 2021.
  2. ^ a b c Andrei Frumusanu (July 1, 2014). "A Closer Look at Android RunTime (ART) in Android L". AnandTech. Archived from the original on July 5, 2014. Retrieved July 5, 2014.
  3. ^ Ben Cheng; Bill Buzbee (May 2010). "A JIT Compiler for Android's Dalvik VM" (PDF). android-app-developer.co.uk. Google. pp. 5–14. Archived from the original (PDF) on November 6, 2015. Retrieved March 18, 2015.
  4. ^ Phil Nickinson (May 26, 2010). "Google Android developer explains more about Dalvik and the JIT in Froyo". androidcentral.com. Archived from the original on April 8, 2017. Retrieved July 8, 2014.
  5. ^ a b "Android Developers: ART and Dalvik". source.android.com. March 9, 2015. Archived from the original on March 15, 2015. Retrieved March 18, 2015.
  6. ^ a b "Android Developers: Configuring ART – How ART works". source.android.com. March 9, 2015. Retrieved March 18, 2015.
  7. ^ Amadeo, Ron (August 22, 2016). "Android 7.0 Nougat review—Do more on your gigantic smartphone". Ars Technica. Retrieved April 5, 2023.
  8. ^ Sean Buckley (November 6, 2013). "'ART' experiment in Android KitKat improves battery life and speeds up apps". Engadget. Archived from the original on January 27, 2017. Retrieved July 5, 2014.
  9. ^ Daniel P. (November 7, 2013). "Experimental Google ART runtime in Android KitKat can bring twice faster app executions". phonearena.com. Archived from the original on July 7, 2014. Retrieved July 5, 2014.
  10. ^ "Android 7.0 for Developers". Android Developers. Retrieved March 22, 2021.
  11. ^ Amadeo, Ron (August 22, 2016). "Android 7.0 Nougat review—Do more on your gigantic smartphone". Ars Technica. Retrieved April 5, 2023.
  12. ^ "Implementing ART Just-In-Time (JIT) Compiler". source.android.com. January 22, 2017. Archived from the original on August 8, 2023. Retrieved January 22, 2017.
  13. ^ Amadeo, Ron (September 13, 2018). "Android 9 Pie, thoroughly reviewed". Ars Technica. Archived from the original on November 30, 2018. Retrieved August 16, 2022.
  14. ^ "ProfileInstaller | Jetpack". Android Developers. Archived from the original on August 8, 2023. Retrieved July 5, 2023.
  15. ^ Semenova, Kateryna; Ravikumar, Rahul; Craik, Chris (January 28, 2022). "Improving App Performance with Baseline Profiles". Android Developers Blog. Archived from the original on August 8, 2023. Retrieved July 5, 2023.
  16. ^ a b Gidra, Lokesh (May 12, 2022), What's new in app performance, archived from the original on August 16, 2022, retrieved August 16, 2022
  17. ^ Gidra, Lokesh; Boehm, Hans-J.; Fernandes, Joel (October 12, 2020). "Utilizing the Linux Userfaultfd System Call in a Compaction Phase of a Garbage Collection Process". Defensive Publications Series. Archived from the original on August 16, 2022. Retrieved August 16, 2022.
  18. ^ a b c "Android 13 is in AOSP!". Android Developers Blog. Archived from the original on August 15, 2022. Retrieved August 16, 2022.
[edit]
象牙塔比喻什么 NT是什么钱 炖牛肉放什么调料最好 血压高会引起什么症状 后背发热是什么原因
嗓子痒痒老想咳嗽是什么原因 射手座和什么座最配对 长期贫血会导致什么严重后果 跑步配速什么意思 一月25号是什么星座
破壁机什么牌子的最好 医院属于什么性质的单位 过度是什么意思 炒菜勾芡用什么淀粉 狗皮膏药什么意思
打飞机什么意思 路上行人匆匆过是什么歌 荨麻疹打什么针好得快 24D是什么激素 身上冷是什么原因
死缓是什么意思hcv8jop0ns3r.cn 血便是什么颜色aiwuzhiyu.com 九五至尊什么意思hcv8jop5ns1r.cn 喉咙有浓痰是什么原因hcv9jop6ns4r.cn 什么东西可以解酒hcv8jop8ns0r.cn
调经吃什么药效果最好hanqikai.com 高血压吃什么菜aiwuzhiyu.com 心脏怕什么hcv7jop5ns2r.cn 皮肤容易过敏是什么原因jiuxinfghf.com 任督二脉是什么意思kuyehao.com
孩子打嗝是什么原因hcv7jop9ns5r.cn 牙发黑是什么原因怎么办hcv9jop7ns0r.cn 记忆是什么hcv9jop7ns2r.cn 女生的下体长什么样hcv9jop8ns2r.cn 磨牙缺什么hcv8jop3ns4r.cn
鎏是什么意思hcv7jop5ns5r.cn 什么叫糙米inbungee.com 牛肉和什么炒hcv8jop1ns8r.cn 胸腔积液吃什么药最有效hcv9jop1ns1r.cn 肌酐高吃什么食物好hcv8jop9ns5r.cn
百度