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?
- Estoy recibiendo error 'ko: inválido caché tipo de imagen de partición: yaffs2 (esperado ext4)' cuando se intentó lanzar android en el emulador de dispositivo mako?
- Cargando el módulo del kernel en el núcleo de Android
- ¿Qué es el archivo boot.img en android?
- Cómo reconstruir el código fuente de Android después de realizar cambios en los archivos de origen de Android
- ¿Dónde puedo descargar el código fuente de la biblioteca de soporte v7 de android?
- Cómo encontrar fácilmente el origen de una clase android
- ¿Cómo puedo encontrar la fuente para Android 2.3.3 Platform?
- ¿Cómo generar automáticamente diff entre versiones de API?
- Cómo construir la aplicación de la cámara por separado de AOSP?
- Fuente del teclado Android
- Compilación de un AOSP deodexed?
- Cómo sincronizar sólo Android 2.2 código froyo?
- ¿Cómo puedo desproteger el código fuente de Android en el sistema operativo Windows?
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
- Cómo agregar una vista flotante a Android Window manager y escuchar los eventos del botón System / Hardware
- PagerAdapter.notifyDataSetChanged no actualiza fragmentos