AOSP和IntelliJ IDEA

Yur*_*ury 11 android android-source

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

Mix*_*xaz 13

这里也很好读:https://shuhaowu.com/blog/setting_up_intellij_with_aosp_development.html

如果你得到

找不到idegen.jar.请先运行make.

你需要先生成它:

source build/envsetup.sh
cd development/tools/idegen
mm
croot
development/tools/idegen/idegen.sh
Run Code Online (Sandbox Code Playgroud)

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

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

我添加了以下行excluded-paths:

^cts
^developers
^development
^external
.*/tests/.*
^sdk
Run Code Online (Sandbox Code Playgroud)

所以我的android.iml尺寸相当适中,大约需要1-2分钟.

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

如上文所述,您可以调整IJ以更快地工作(添加更多RAM等).以下是我的想法64.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
Run Code Online (Sandbox Code Playgroud)

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


vid*_*guy 7

从AOSP根文件夹,

1)首先建立你的目标.这将生成在aosp构建期间需要生成的任何java文件.2)使用lndir创建aosp dir的阴影目录.假设你的aosp dir是~john/work/aosp/ics.然后创建〜/ john/work/aosp/icsshadow

Cd到icsshadow并调用"lndir ../ics".这将为ics下的所有内容创建符号链接.

3)现在你使用icsshadow来处理你的IDE需要/生成的所有东西.如果使用ics文件夹,如果IDE生成任何构建工件,则aosp构建有时会失败.

4)cd到icsshadow目录.调用development/tools/idegen/idegen.sh

等到它完成.

5)如果要使用IntelliJ,请从icsshadow文件夹中打开android.ipr.如果要使用Eclipse,请选中使用Eclipse编辑/浏览AOSP代码.