当前位置:首页 » 操作系统 » art源码

art源码

发布时间: 2022-07-25 02:29:14

A. android的哪个版本开始岀现虚拟机art

Android 4.4.2与4.4.4同属于4.4系列的操作系统,没有什么区别。
4.4以上系统中采用默认采用ART模式,因此4.4.2 和 4.4.4 中都支持ART模式。

ART模式英文全称为:Android runtime,谷歌Android 4.4系统新增的一种应用运行模式,与传统的Dalvik模式不同,ART模式可以实现更为流畅的安卓系统体验,对于大家来说,只要明白ART模式可让系统体验更加流畅,不过只有在安卓4.4以上系统中采用此功能。

1. Android系统是以linux系统为底层构建的,Android系统是开源(源代码公开)的,Android系统势必会适配到不同硬件配置的设备上,因此谷歌为了降低应用的开发难度在Linux底层之上构筑了一个名为“Dalvik”的虚拟机。
2. 因为Dalvik虚拟机的存在,Android系统的开发者只需使用谷歌提供的SDK(软件开发工具包)即可较为轻松的按照一套“规则”创建APP,不用顾忌硬件、驱动等问题,在每次执行应用的时候Dalvik虚拟机都会将程序的语言由高级语言编译为机器语言,这样当前设备才能够运行这一应用。
3. 了解了Dalvik模式之后,便要了解一下Android4.4中新加入的ART模式,该模式的完整名称是Androidruntime,事实上谷歌的这次优化源于前不久其收购的一家名为Flexycore的公司,该公司一直致力于Android系统的优化,而ART模式也是在该公司的优化方案上演进而来。
4. ART模式与Dalvik模式最大的不同在于,在启用ART模式后,系统在安装应用的时候会进行一次预编译,在安装应用程序时会先将代码转换为机器语言存储在本地,这样在运行程序时就不会每次都进行一次编译了,执行效率也大大提升。

开启方法:
1. 手机设置中,找到关于手机--版本,不停点击根据提示就可以开启【开发者选项】
2. 在开发者选项中找到【运行环境】,这里面就有两种运行模式一种是默认的Dalvink,另一种就是ART模式。这是只有选择ART就行。
3. 选中ART模式后,手机会给出类似于安全声明之类的提示,然后就会提示重启,按提示操作后。重启的时候就会出现手机在自动升级的通知,这个根据手机中有的软件需要的时间3-5分钟不等。
4. ART模式虽然使得程序运行流畅多了,但是,也占用了更多的系统内存,同时在安装程序的时候时间也相对增多了(ART好像就是在这时候进行预编译的),这样开机也会慢了一些。

B. 买BB霜的网站http://www.art0591.com这个谁能模仿个,我想这个网站的源码

tao宝里搜索 店铺“v5创意小店”,里面有源码出售,都是店主以前买过的,现在低价出售。

C. 求小米1s安卓4.4.2能开art的刷机包链接,稳定流畅!

小米M1/M1S FIUI beta 2.7.0 mioneplus
http://www.shuajiluntan.com/thread-1122-1-1.html
ROM名称 FIUI for小米1/1sbeta 2.7.0
Android版本 4.4.4
FIUI 版本 beta_2.7.0
基于版本 CM11源码二次开发编译
适配机型 小米1/1s

这时第三方的

另外安卓4.42貌似不可以开art

这个是第三方4.4.4 可以开不 我也不清楚 你可以刷入试试

D. AndroidStudio 里怎么查看源码

本文是以源码中development/tools/idegen/README作为指导文档.

环境: Ubuntu 14.10,openJdk 1.7,Android Studio 1.0.2,android-5.0.1_r1源码

由于AS是基于IntelliJ IDEA开发的,所以本文也适用于IntelliJ IDEA

一、修改Android Studio(以下简称AS)的内存配置

因为在导入源码时需要消耗大量内存,所以先修改IDEA_HOME/bin/studio64.vmoptions(x86的机器修改studio.vmoptions)中-Xms和-Xmx的值。文档中使用的是748m, 可自行修改。

二、配置AS的JDK、SDK

在IDE中添加一个没有classpath的JDK, 这样可以确保使用源码里的库文件

并将其作为要使用的SDK的java SDK。如下图

三、生成导入AS所需配置文件(*.ipr)

①编译源码(为了确保生成了.java文件,如R.java;如果编译过,则无需再次编译)

②检查out/host/linux-x86/framework/目录下是否有idegen.jar

如果idegen.jar不存在,执行:

mmm development/tools/idegen/
在5.0.1的源码中会生成res.java的文件夹,导致idegen.jar运行时抛FileNotFoundException,这是idegen的代码不够严谨造成的。

我的分享里有修改这个bug的patch,或者直接使用我分享的idegen.jar。

③执行

development/tools/idegen/idegen.sh
等待出现类似下面的结果:

Read excludes: 5ms
Traversed tree: 44078ms
这时会在源码的根目录下生成android.ipr和android.iml两个IntelliJ IDEA(AS是基于IntelliJ IDEA社区版开发的)的配置文件

Tips:

AS在导入代码时比较慢,建议先修改android.iml,将自己用不到的代码exclude出去.可以仿照过滤.repo文件夹的语法,如:

<excludeFolder url="file://$MODULE_DIR$/.repo" />
<excludeFolder url="file://$MODULE_DIR$/abi" />
<excludeFolder url="file://$MODULE_DIR$/art" />

这样在导入时就会跳过abi和art文件夹.过滤的越多,AS的处理速度就会越快.

④在AS中打开源码根目录下新生成的android.ipr

如果在导入时AS出现

则建议按照其给定的解决方法来解决(网址:http://confluence.jetbrains.com/display/IDEADEV/Inotify+Watches+Limit),具体内容如下图:

四、解决源码中跳转错误问题

①为当前工程设置正确的SDK和JDK

②设置'Moles'的依赖

先将所有依赖删掉,只留下上图'1'所指向的两个(注意:这里删除全部只是为了方便。如果确实用到了.jar,在将它们的路径添加进来就可以了.

如:5.0.1的ContactsCommon用到了geocoder-2.9.jar和libphonenumber-6.2.jar)

点击上图中'2'指向的'+'并选择上图'3'指向的'Jars or directories'选项,依次将frameworks和external文件夹添加进来.如:

其它版本的代码在添加frameworks时可能会显示成:

没有关系,只是显示问题,点击OK还是会把frameworks路径添加进去的.

如果还有代码跳转错误,请仿照上面的步骤将相应代码的路径或jar文件添加到其Dependencies标签页中即可.

五、DEBUG源码

我们可以通过给刚导入的工程在'Moles'中添加'Android Framework'来让AS将它作为一个Android工程,从而方便我们调试代码.

可以按照上图中'1'和'2'来添加Android Framework支持.

在代码中加断点,然后选择'Run'->'Attach debugger to Android process'或者直接点击下图所示的图标

在弹出的选择进程(Choose Process)对话框中,勾选显示所有进程,选择要DEBUG的代码所在的进程,点击OK即可.

六、其它

代码中很多地方提示Call requires API Level x.... 出现这个问题是因为AS将我们的工程当做安卓应用程序工程了,且源码中没有指定minSdkVersion.

我们只需在源码根目录加一个声明minSdkVersion的AndroidManifest.xml文件即可(分享了一个AndroidManifest.xml)。

也可以考虑使用build.gradle来解决该问题。

E. Android运行环境Dalvik模式和ART模式的区别

Dalvik虚拟机在安卓4.4之前用的比较多,从安卓5.0开始,开始使用ART虚拟机,Dalvik虚拟机在用户点击某个应用时对这个应用中classes.dex的源码文件编译为机器码,然后才开始执行机器码中的指令,简单来说就是你在看一份英文写的报纸,你要想看懂这份报纸必须时刻的翻译报纸中的每个英语单词,然后读懂它,可是这样的阅读速度还是比不上看中文写的书,因为你的第一语言是中文,就像手机的第一语言是二进制写成的机器码,第二语言就是C语言或者是Java语言,这也就是为什么安卓的运行速度很缓慢的原因,可是在ART虚拟机中,在你安装应用的过程中已经将应用中的程序包也就是classes.dex翻译成了机器可以看懂的机器码,然后写入到系统存储里了,简单的来说就是你想如果想看一份外国的报纸,但是看英文很累,于是你委托别人帮你翻译报纸内容,人家帮你翻译出来并将中文意思写在纸上,你就很容易阅读了,这也就是为什么ART虚拟机比Dalvik虚拟机效率要高的原因了

F. 网站源代码如何在线进行调试

开发调试环境: Ubuntu 14.10,openJdk 1.7,Android Studio 1.0.2,android-5.0.1_r1源码
由于AS是基于IntelliJ IDEA开发的,所以本文也适用于IntelliJ IDEA
一、修改Android Studio(以下简称AS)的内存配置

因为在导入源码时需要消耗大量内存,所以先修改IDEA_HOME/bin/studio64.vmoptions(x86的机器修改studio.vmoptions)中-Xms和-Xmx的值。文档中使用的是748m, 可自行修改。
二、配置AS的JDK、SDK
在IDE中添加一个没有classpath的JDK, 这样可以确保使用源码里的库文件

并将其作为要使用的SDK的Java SDK。如下图

三、生成导入AS所需配置文件(*.ipr)
①编译源码(为了确保生成了.java文件,如R.java;如果编译过,则无需再次编译)
②检查out/host/linux-x86/framework/目录下是否有idegen.jar
如果idegen.jar不存在,执行:
mmm development/tools/idegen/

在5.0.1的源码中会生成res.java的文件夹,导致idegen.jar运行时抛FileNotFoundException,这是idegen的代码不够严谨造成的。
我的分享里有修改这个bug的patch,或者直接使用我分享的idegen.jar。
③执行
development/tools/idegen/idegen.sh

等待出现类似下面的结果:
Read excludes: 5ms
Traversed tree: 44078ms

这时会在源码的根目录下生成android.ipr和android.iml两个IntelliJ IDEA(AS是基于IntelliJ IDEA社区版开发的)的配置文件
Tips:
AS在导入代码时比较慢,建议先修改android.iml,将自己用不到的代码exclude出去.可以仿照过滤.repo文件夹的语法,如:
<excludeFolder url="file://$MODULE_DIR$/.repo" />
<excludeFolder url="file://$MODULE_DIR$/abi" />
<excludeFolder url="file://$MODULE_DIR$/art" />
这样在导入时就会跳过abi和art文件夹.过滤的越多,AS的处理速度就会越快.
④在AS中打开源码根目录下新生成的android.ipr

如果在导入时AS出现

则建议按照其给定的解决方法来解决(网址:http://confluence.jetbrains.com/display/IDEADEV/Inotify+Watches+Limit),具体内容如下图:

四、解决源码中跳转错误问题
①为当前工程设置正确的SDK和JDK

②设置'Moles'的依赖

先将所有依赖删掉,只留下上图'1'所指向的两个(注意:这里删除全部只是为了方便。如果确实用到了.jar,在将它们的路径添加进来就可以了.
如:5.0.1的ContactsCommon用到了geocoder-2.9.jar和libphonenumber-6.2.jar)
点击上图中'2'指向的'+'并选择上图'3'指向的'Jars or directories'选项,依次将frameworks和external文件夹添加进来.如:

其它版本的代码在添加frameworks时可能会显示成:

没有关系,只是显示问题,点击OK还是会把frameworks路径添加进去的.
如果还有代码跳转错误,请仿照上面的步骤将相应代码的路径或jar文件添加到其Dependencies标签页中即可.
五、DEBUG源码
我们可以通过给刚导入的工程在'Moles'中添加'Android Framework'来让AS将它作为一个Android工程,从而方便我们调试代码.

可以按照上图中'1'和'2'来添加Android Framework支持.

在代码中加断点,然后选择'Run'->'Attach debugger to Android process'或者直接点击下图所示的图标
在弹出的选择进程(Choose Process)对话框中,勾选显示所有进程,选择要DEBUG的代码所在的进程,点击OK即可.
六、其它
代码中很多地方提示Call requires API Level x.... 出现这个问题是因为AS将我们的工程当做安卓应用程序工程了,且源码中没有指定minSdkVersion.
我们只需在源码根目录加一个声明minSdkVersion的AndroidManifest.xml文件即可(分享了一个AndroidManifest.xml)。
也可以考虑使用build.gradle来解决该问题。

G. android源码 art目录 没有

没有就自己建一个srt

H. 网上给的android源代码怎么用

git的工程里面不是都有英文的readme么,File -> import先浏览到目录到library,导入library,然后,浏览到samples目录导入samples,结束。


我总共就花了两分钟下载导入,build,截图,发帖回答。

热点内容
英雄联盟皮肤源码 发布:2025-01-19 22:56:14 浏览:94
三星手机忘记解锁密码怎么办 发布:2025-01-19 22:45:43 浏览:291
Java为什么没有预编译命令 发布:2025-01-19 22:44:14 浏览:303
路由器上写的初始无密码什么意思 发布:2025-01-19 22:42:38 浏览:847
mysql配置主从数据库 发布:2025-01-19 22:35:33 浏览:730
4大数据库 发布:2025-01-19 22:34:35 浏览:975
win10用什么解压 发布:2025-01-19 22:27:15 浏览:799
反编译连接数据库 发布:2025-01-19 22:07:55 浏览:787
贵州省发票软件服务器地址 发布:2025-01-19 22:00:12 浏览:695
linux的单用户模式 发布:2025-01-19 21:55:29 浏览:426