13

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

4

4 回答 4

17

这里也是一个很好的阅读: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

准备好 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配置)

于 2015-09-14T13:42:25.700 回答
7

从 AOSP 根文件夹,

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

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

3) 现在您将 icsshadow 用于您的 IDE 需要/生成的所有内容。如果您使用 ics 文件夹,如果 IDE 生成任何构建工件,则 aosp 构建有时会失败。

4) cd 到 icsshadow 目录。调用开发/工具/idegen/idegen.sh

等到它完成。

5) 如果您想使用 IntelliJ,请从 icsshadow 文件夹中打开 android.ipr。如果您想使用 Eclipse,请检查Using Eclipse to edit/browse AOSP code

于 2013-09-29T02:37:24.630 回答
1

可以通过转到development/tools/idegen路径并检查README文件来找到官方说明。自己阅读是个好主意。这是 IntelliJ 的内容:

如果你使用 IntelliJ...

如果这是您第一次使用 IDEGen...

  IDEA needs a lot of memory. Add "-Xms748m -Xmx748m" to your VM options
  in "IDEA_HOME/bin/idea.vmoptions" on Linux or
  "IntelliJ IDEA.app/Contents/Info.plist" on OS X.

  Create a JDK configuration named "1.6 (No Libraries)" by adding a new
  JDK like you normally would and then removing all of the jar entries
  under the "Classpath" tab. This will ensure that you only get access to
  Android's core libraries and not those from your desktop VM.

从项目的根目录...

   Repeat these steps after each sync...

  1) make (to produce generated .java source)
  2) development/tools/idegen/idegen.sh
  3) Open android.ipr in IntelliJ. If you already have the project open,
     hit the sync button in IntelliJ, and it will automatically detect the
     updated configuration.

  If you get unexpected compilation errors from IntelliJ, try running
  "Build -> Rebuild Project". Sometimes IntelliJ gets confused after the
  project changes significantly.

按照说明进行操作时,可能会弹出以下错误消息。

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

您可以通过阅读此处修复错误消息:https ://www.protechtraining.com/blog/post/860?ncr=1

于 2017-06-19T08:36:20.937 回答
1

从 Android 源代码根目录运行以下命令。

make idegen -j4 && development/tools/idegen/idegen.sh

然后启动 IntelliJ IDEA,并选择生成的 .ipr 文件。然后在下一个屏幕上选择基于 .ipr 的项目属性。

对我有用,比使用 android studio 更好,因为 android studio 总是有烦人的背景扫描。

于 2019-01-12T13:21:34.703 回答