使用 android studio 查看android 源码:
1. 确保已经编译了整个android源码;
2. 编译 idegen.jar 文件,下一步会用到:mmm development/tools/idegen
3. 需要在源码目录下执行 . development/tools/idegen/idegen.sh
如果遇到错误:
Read excludes: 1ms
Traversed tree: 3494ms
Exception in thread "main" java.io.FileNotFoundException: .classpath (Permission denied)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(FileOutputStream.java:221)
at java.io.FileOutputStream.<init>(FileOutputStream.java:171)
at java.io.FileWriter.<init>(FileWriter.java:90)
at Files.toFile(Files.java:44)
at Eclipse.generateFrom(Eclipse.java:109)
at Main.main(Main.java:39)
那是因为根目录的 .classpath 文件没有可写权限,添加上写权限,然后重新执行命令就OK:
chmod a+w .classpath
4. 修改Android Studio 默认虚拟机内存大小,修改C:\Program Files\Android\Android Studio\bin\studio64.exe.vmoptions 文件,
下面是默认设置:
#
# *DO NOT* modify this file directly. If there is a value that you would like to override,
# please add it to your user specific configuration file.
#
# See http://tools.android.com/tech-docs/configuration
#
-Xms256m
-Xmx1280m
-XX:MaxPermSize=350m
-XX:ReservedCodeCacheSize=225m
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=50
-da
-Djna.nosys=true
-Djna.boot.library.path=
-Djna.debug_load=true
-Djna.debug_load.jna=true
-Dsun.io.useCanonCaches=false
-Djava.net.preferIPv4Stack=true
-Didea.paths.selector=AndroidStudio1.4
-Didea.platform.prefix=AndroidStudio
修改 xms 784m, Xmx 为 2560m
修改这个文件要有管理员权限。
5. 编辑根目录的 android.iml 文件,屏蔽不需要的模块,
vim android.iml
搜索content,在content之前看到如下内容,在 content之前添加额外要屏蔽的模块
<sourceFolder url="file://$MODULE_DIR$/./tools/external/fat32lib/src/main/java" isTestSource="false"/>
<excludeFolder url="file://$MODULE_DIR$/out/eclipse"/>
<excludeFolder url="file://$MODULE_DIR$/.repo"/>
<excludeFolder url="file://$MODULE_DIR$/external/bluetooth"/>
<excludeFolder url="file://$MODULE_DIR$/external/chromium"/>
<excludeFolder url="file://$MODULE_DIR$/external/icu4c"/>
<excludeFolder url="file://$MODULE_DIR$/external/webkit"/>
<excludeFolder url="file://$MODULE_DIR$/frameworks/base/docs"/>
<excludeFolder url="file://$MODULE_DIR$/out/host"/>
<excludeFolder url="file://$MODULE_DIR$/out/target/common/docs"/>
<excludeFolder url="file://$MODULE_DIR$/out/target/common/obj/JAVA_LIBRARIES/android_stubs_current_intermediates"/>
<excludeFolder url="file://$MODULE_DIR$/out/target/product"/>
<excludeFolder url="file://$MODULE_DIR$/prebuilt"/>
</content>
1. 确保已经编译了整个android源码;
2. 编译 idegen.jar 文件,下一步会用到:mmm development/tools/idegen
3. 需要在源码目录下执行 . development/tools/idegen/idegen.sh
如果遇到错误:
Read excludes: 1ms
Traversed tree: 3494ms
Exception in thread "main" java.io.FileNotFoundException: .classpath (Permission denied)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(FileOutputStream.java:221)
at java.io.FileOutputStream.<init>(FileOutputStream.java:171)
at java.io.FileWriter.<init>(FileWriter.java:90)
at Files.toFile(Files.java:44)
at Eclipse.generateFrom(Eclipse.java:109)
at Main.main(Main.java:39)
那是因为根目录的 .classpath 文件没有可写权限,添加上写权限,然后重新执行命令就OK:
chmod a+w .classpath
4. 修改Android Studio 默认虚拟机内存大小,修改C:\Program Files\Android\Android Studio\bin\studio64.exe.vmoptions 文件,
下面是默认设置:
#
# *DO NOT* modify this file directly. If there is a value that you would like to override,
# please add it to your user specific configuration file.
#
# See http://tools.android.com/tech-docs/configuration
#
-Xms256m
-Xmx1280m
-XX:MaxPermSize=350m
-XX:ReservedCodeCacheSize=225m
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=50
-da
-Djna.nosys=true
-Djna.boot.library.path=
-Djna.debug_load=true
-Djna.debug_load.jna=true
-Dsun.io.useCanonCaches=false
-Djava.net.preferIPv4Stack=true
-Didea.paths.selector=AndroidStudio1.4
-Didea.platform.prefix=AndroidStudio
修改 xms 784m, Xmx 为 2560m
修改这个文件要有管理员权限。
5. 编辑根目录的 android.iml 文件,屏蔽不需要的模块,
vim android.iml
搜索content,在content之前看到如下内容,在 content之前添加额外要屏蔽的模块
<sourceFolder url="file://$MODULE_DIR$/./tools/external/fat32lib/src/main/java" isTestSource="false"/>
<excludeFolder url="file://$MODULE_DIR$/out/eclipse"/>
<excludeFolder url="file://$MODULE_DIR$/.repo"/>
<excludeFolder url="file://$MODULE_DIR$/external/bluetooth"/>
<excludeFolder url="file://$MODULE_DIR$/external/chromium"/>
<excludeFolder url="file://$MODULE_DIR$/external/icu4c"/>
<excludeFolder url="file://$MODULE_DIR$/external/webkit"/>
<excludeFolder url="file://$MODULE_DIR$/frameworks/base/docs"/>
<excludeFolder url="file://$MODULE_DIR$/out/host"/>
<excludeFolder url="file://$MODULE_DIR$/out/target/common/docs"/>
<excludeFolder url="file://$MODULE_DIR$/out/target/common/obj/JAVA_LIBRARIES/android_stubs_current_intermediates"/>
<excludeFolder url="file://$MODULE_DIR$/out/target/product"/>
<excludeFolder url="file://$MODULE_DIR$/prebuilt"/>
</content>