android - AOSP 和 IntelliJ IDEA

标签 android android-source

有没有人尝试过使用 IntelliJ IDEA 来处理 AOSP?我在 Android 源代码中看到一个特定的文件夹(development/ide/intellij),但我找不到任何信息如何在 Android 开发的情况下使用它(对于 Eclipse,信息可以在这里找到:http://source.android.com/source/using-eclipse.html)任何人都可以提供类似的说明如何开始在 IDEA 中开发 Android?

最佳答案

这里也是一个很好的阅读:https://shuhaowu.com/blog/setting_up_intellij_with_aosp_development.html

如果你得到

Couldn't find idegen.jar. Please run make first.

您需要先生成它:

source build/envsetup.sh
cd development/tools/idegen
mm
croot
development/tools/idegen/idegen.sh

请做好准备,IJ 中的 AOSP 文件索引需要很长时间(在我的带有 SSD 的笔记本上超过 1 小时),这是使用 Eclipse 的一个原因,因为我相信它不需要构建索引所以加载 AOSP 代码快得多。

通过删除您不感兴趣的 AOSP 部分来减少 android.iml 文件是值得的。您可以通过正则表达式模式将它们添加到 development/tools/idegen/excluded-paths,参见 README 文件。

我在 excluded-paths 中添加了以下几行:

^cts
^developers
^development
^external
.*/tests/.*
^sdk

所以我的 android.iml 的大小适中,加载时间大约为 1-2 分钟。

idegen 还有 intellij-gen.sh 可以为给定的模块生成 IJ 项目。

如上文所述,您可以调整 IJ 以加快工作速度(添加更多 RAM 等)。这是我的 idea64.vmoptions 以防万一:

-server
-Xms2048m
-Xmx4096m
-XX:MaxPermSize=1024M
-XX:ReservedCodeCacheSize=1024M
-XX:+UseCodeCacheFlushing
-XX:+UseCompressedOops
-XX:+UseConcMarkSweepGC
-XX:+UseParNewGC
-XX:ParallelGCThreads=8
-XX:+AggressiveOpts
-XX:+CMSClassUnloadingEnabled
-XX:+CMSIncrementalMode
-XX:+CMSIncrementalPacing
-XX:CMSIncrementalDutyCycleMin=0
-XX:-TraceClassUnloading
-XX:+TieredCompilation
-Dsun.io.useCanonCaches=false
-Djava.net.preferIPv4Stack=true
-Djsse.enableSNIExtension=false

你可以谷歌 idea.vmoptions 优化,有一些关于它的帖子(以及我从哪里获取我的 IJ 配置)

关于android - AOSP 和 IntelliJ IDEA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16582112/

相关文章:

android - 为非maven Android库项目创建apklib失败

android - 布局在设备上重复,但在相对布局中添加图像时在模拟器上看起来不错

android - 如何构建 Trade Federation 测试用例

android - 在 init.rc 中禁用 android 服务

android-source - 如何在 Android Marshmallow 平台上高效开发系统应用?

android - 打开的文件太多错误 - 调试

android - 嵌入网页字体,是否需要包含所有这些 : "ttf, eot, woff and svg"?

Android 在连接到 Socket 时出错

javascript - 如何在aosp浏览器中禁用缩放?

android - 如何替换/自定义 Android API 类?