AOSP y IntelliJ IDEA

¿Alguien ha intentado trabajar con AOSP usando IntelliJ IDEA? Veo en las fuentes de Android una carpeta específica (development / ide / intellij) pero no puedo encontrar ninguna información sobre cómo usarla en caso de desarrollo de Android (para Eclipse la información se puede encontrar aquí: http://source.android.com/ Source / using-eclipse.html ) ¿Alguien puede proporcionar instrucciones similares para comenzar a desarrollar Android en IDEA?

También una buena lectura aquí: https://shuhaowu.com/blog/setting_up_intellij_with_aosp_development.html

Si lo consigues

No se encontró idegen.jar. Por favor, ejecute hacer primero.

Tendrá que generar primero:

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

Esté preparado para que la indexación de archivos AOSP en IJ tarde mucho tiempo (más de una hora en mi portátil con un SSD a bordo), una razón para usar Eclipse, ya que creo que no necesita construir índices para cargar el código AOSP mucho más rápido.

Vale la pena reducir el archivo android.iml con la eliminación de las partes de AOSP que no le interesan. Puede agregarlas a development/tools/excluded-paths través de un patrón de expresión regular, vea el archivo README allí.

He añadido las siguientes líneas a excluded-paths :

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

Así que mi android.iml tiene bastante tamaño moderado y cargas en alrededor de 1-2 minutos en su lugar.

Idegen también tiene intellij-gen.sh que puede generar el proyecto de IJ para el módulo dado.

Como se mencionó en el artículo anterior, puede ajustar IJ para trabajar más rápido (agregar más RAM, etc). Aquí va mi idea64.vmoptions por si acaso:

 -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 

Usted puede google idea.vmoptions optimización, hay algunos posts sobre él (y donde tomé mi configuración IJ de)

Desde la carpeta raíz de AOSP,

1) Primero construye tu objetivo. Eso generará cualquier archivo java que se necesite generar durante la generación de. 2) Cree un directorio de sombra de AOp dir usando lndir. Asumiendo que su directorio de AOs es ~ john / work / aosp / ics. A continuación, cree ~ / john / work / aosp / icsshadow

Cd a icsshadow e invocar "lndir ../ics". Eso creará enlaces simbólicos a todo lo que está bajo ics.

3) Ahora usas icsshadow para todas las cosas que tu IDE necesita / genera. Si utiliza la carpeta ics, la generación de algunsp veces falla si el IDE genera cualquier artefacto de compilación.

4) cd al directorio de icsshadow. Invoca el desarrollo / tools / idegen / idegen.sh

Espere hasta que termine.

5) Si desea utilizar IntelliJ, abra android.ipr desde la carpeta icsshadow. Si desea utilizar Eclipse, compruebe Utilizando Eclipse para editar o explorar el código de AOSP .

Se pueden encontrar instrucciones oficiales al ir a la ruta de development/tools/idegen y comprobar el archivo README . Es una buena idea leerlo usted mismo. Este es el contenido de IntelliJ:

Si está utilizando IntelliJ …

Si esta es la primera vez que usa 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. 

Desde el directorio raíz del proyecto …

  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. 

Es posible que aparezca el siguiente mensaje de error al seguir las instrucciones.

No se encontró idegen.jar. Por favor, ejecute hacer primero.

Puede corregir el mensaje de error leyendo aquí: https://www.protechtraining.com/blog/post/860?ncr=1

  • Buscando la implementación de DiskLruCache en la fuente ICS
  • Creación de AOSP en un dispositivo personalizado
  • AOSP Privileged vs System app
  • Cómo identificar la fuente Conscrypt utilizada en el código de configuración de seguridad de red de Android N?
  • ¿Puedo programar radio en android?
  • Fuente de la pantalla de bloqueo de Android
  • La lógica subyacente del código nativo de la cámara
  • Proceso de construcción de Android secreto
  • ¿Cómo puedo conservar los permisos de archivo en un proyecto externo personalizado añadido a Android AOSP?
  • Cómo construir la fuente de Android SDK para obtener Android.jar
  • Agregue APKs preinstalados a Android AOSP system.img
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.