2010-11-01 12 views
7

Tengo el código fuente de Android en mi sistema y funciona bien. Pero cuando realizo algunos cambios en los archivos fuente de Android y ejecuto "make" no genera/actualiza ningún archivo Corrígeme si estoy equivocado,Cómo reconstruir el código fuente de Android después de realizar cambios en los archivos fuente de Android

i) el sistema debería generar un nuevo archivo system.img si los cambios se han hecho a su código fuente

ii) archivo-zImage archivo de núcleo androide no cambia con cualquier cambio, incluso si hacemos algún cambio en el código fuente

Otra pregunta si creo una nueva carpeta dentro de la biblioteca/libcore se recoge automáticamente al compilar. Para crear una nueva carpeta de biblioteca externa/libcore, agregué su ruta en /build/core/main.mk y .classpath file. Todavía no es recogido durante la compilación. Por favor alguien puede confirmar que todos tenemos que hacer cambios para añadir un nuevo archivo de biblioteca fuera/libcore

Saludos, Yogesh

+0

Nunca he tenido este problema, tal vez porque uso Motodev Estudio de Android (Eclipse completa instalar con complementos) http://developer.motorola.com/docstools/motodevstudio/download/ ¿Qué estás usando? – Jim

+2

No tengo intención de crear una aplicación para Android, en su lugar, quiero hacer algunos cambios en los archivos integrados de Android y recompilar la fuente para que se pueda enviar al emulador, además de que se pueden ejecutar todas las aplicaciones. – JoshMachine

+0

@JoshMachine También estoy teniendo el mismo problema. Agregué algunos registros en los archivos fuente e hice una marca. ¿Cómo resolvió su problema? –

Respuesta

10

Esto depende de repositorio exacto que usted ha comprobado hacia fuera. Sin embargo, para la mayoría de ellos la siguiente receta funcionará:

http://source.android.com/source/download.html

Nota, si está utilizando la más reciente compilación debe tener sistema de 64 bits

ACTUALIZACIÓN: Por alguna razón la página anterior es perdiendo algunos pasos vitales. Así que aquí están

Después de hacer 'repo sync' paso (tarda un tiempo, pero supongo que lo hizo ya que tienes los archivos de origen), haga lo siguiente:

$ . build/envsetup.sh 
$ lunch 

último comando darle una lista de opciones para la plataforma que desea construir. Si desea construir para el emulador, elija Full-Eng. De lo contrario, elija uno para su proveedor de dispositivo específico.

Después de elegir la plataforma, asegúrese de hacer todo lo posible primero, ya que toda la plataforma de Android es muy interdependiente. Por lo tanto, debe asegurarse de tener todos los componentes.

Al desarrollarlo, puede construir componentes individuales bastante rápido. Al utilizar el siguiente comando:

mmm <component_directory_name> 

Por ejemplo:

mmm external/rsync 

Además, el sistema de construcción no cambia poner la salida y los archivos intermedios con el código fuente. Todo entra en el directorio de salida/destino.

+0

Hola Vlad, así que si realizo algunos cambios en los archivos fuente. digamos que agrego algunos registros y luego hago una marca, ¿las nuevas imágenes de salida/objetivo/producto obtendrán esos cambios? –

+0

Lo siento, no he hecho versiones de Android así en años. Para versiones anteriores, no hay imágenes que no cambien, tiene que construir una reconstrucción completa para obtener nuevas imágenes. No tengo idea de qué hacen las nuevas plataformas Android en este caso. – Vlad

+0

Hice algunos cambios en AndroidManifest.xml, y compilé esa aplicación a través de mm -B, pero después de volver a abrir ese archivo, mis cambios se habían ido. –

4

Depende del cambio que desee realizar.

En un caso fácil, si el cambio es local (por ejemplo, la adición de algunas nuevas líneas en un archivos fuente de Android existentes llamados xxx.c), puede ejecutar fácilmente:

mm -B (under the root directory of xxx.c) 
adb remount 
adb sync 
adb reboot 

En otros casos, por ejemplo, se cree un nuevo servicio del sistema para reemplazar el antiguo que se inicia en el momento del arranque como se muestra en el archivo init.rc.Entonces, es probable que necesite:

  1. actualización init.rc archivo
  2. Construir toda fuente de Android
  3. flash nueva imagen
+1

es probable que sea necesaria una 'raíz de adb', que el reinicio de adb funciona. 'adb root' y' adb remount' solo está disponible en las versiones user-debug y eng de android –

Cuestiones relacionadas