AOSP and IntelliJ IDEA

后端 未结 4 1854
旧时难觅i
旧时难觅i 2020-12-28 09:09

Has anyone tried to work with AOSP using IntelliJ IDEA? I see in Android sources a specific folder (development/ide/intellij) but I cannot find any information how to use it

4条回答
  •  失恋的感觉
    2020-12-28 09:55

    Also a good reading here: https://shuhaowu.com/blog/setting_up_intellij_with_aosp_development.html

    If you get

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

    You'll need to generate it first:

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

    Be prepared that AOSP files indexing in IJ takes long time (more than 1 hour on my notebook with an SSD on board), a reason to use Eclipse, as I believe it doesn't need to build indexes so loads AOSP code much faster.

    It's worth reducing android.iml file with removing AOSP parts you are not interested in. You can add them to development/tools/idegen/excluded-paths via a regular expression pattern, see README file there.

    I added following lines to excluded-paths:

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

    so my android.iml got quite moderate size and loads in about 1-2 minutes instead.

    idegen has also intellij-gen.sh which can generate IJ project for given module.

    As mentioned in the article above, you can tweak IJ to work faster (add more RAM, etc). Here goes my idea64.vmoptions just in case:

    -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
    

    You can google idea.vmoptions optimization, there are some posts about it (and where I took my IJ config from)

提交回复
热议问题