studio programacion para móviles libro edición desarrollo desarrollar curso aprende aplicaciones android android-source

para - manual de programacion android pdf



Construyendo un módulo particular en el código fuente de Android (2)

Estoy trabajando en un código fuente de Android que he descargado de source.android.com.

Después de una compilación completa pasé por este sitio http://elinux.org/Android_Build_System que explica el sistema de compilación de Android.

Cuando hago cambios en el código externo / webkit y lo construyo con

make -j4 libwebcore compila el archivo correspondiente y actualiza libwebcore.so, y me ahorra mucho tiempo. Lo mismo se aplica a las aplicaciones y también para construir apks.

El problema surge cuando realizo cambios en el marco y doy al comando como make -j4 framework no compila los archivos correspondientes. ¡Alguien puede ayudarme!


Aquí hay descripciones más completas de mm , mmm , y otras funciones convenientes proporcionadas por la fuente del archivo build/envsetup.sh :

Invocar . build/envsetup.sh desde su shell para agregar las siguientes funciones a su entorno:

lunch: lunch <product_name>-<build_variant> tapas: tapas [<App1> <App2> ...] [arm|x86|mips|armv5] [eng|userdebug|user] croot: Changes directory to the top of the tree. m: Makes from the top of the tree. mm: Builds all of the modules in the current directory, but not their dependencies. mmm: Builds all of the modules in the supplied directories, but not their dependencies. To limit the modules being built use the syntax: mmm dir/:target1,target2. mma: Builds all of the modules in the current directory, and their dependencies. mmma: Builds all of the modules in the supplied directories, and their dependencies. cgrep: Greps on all local C/C++ files. jgrep: Greps on all local Java files. resgrep: Greps on all local res/*.xml files. godir: Go to the directory containing a file.


Los frameworks carpetas contienen muchas cosas, tiene que ser más específico acerca de decir qué construir.

Por ejemplo, hice un cambio en: frameworks/base/cmds/input/src/com/android/commands/input/Input.java . Ahora el archivo Android.mk correspondiente se encuentra en: frameworks/base/cmds/input/Android.mk , que contiene una línea que dice: LOCAL_MODULE := input .

Por lo tanto, el módulo que se está construyendo desde la fuente se llama input , así que llamo:

$ make input

Que reconstruye ese módulo específico.

Como información adicional, puede usar el ayudante de mmm y puede especificar la ruta del módulo para construir así:

$ mmm frameworks/base/cmds/input

o usando mm que simplemente construye el módulo en su directorio de trabajo actual:

$ cd frameworks/base/cmds/input $ mm

Normalmente uso mmm como mi herramienta preferida.

Actualizar

Oh, veo que podría estar hablando específicamente sobre el módulo llamado framework

Acabo de intentar modificar: frameworks/base/core/java/android/app/Dialog.java , y hacer un: make framework .

Esto parece volver a compilar el marco bien. ¿En qué archivo exactamente estás haciendo cambios antes de ejecutar make framework ?

En respuesta a tu comentario.

Acabo de intentar modificar los frameworks/base/core/java/android/webkit/WebView.java . mmm frameworks/base , así como el make framework funcionan perfectamente bien para mí.

Si no funciona para usted, ¿puede actualizar su pregunta con información adicional sobre qué versión de Android está construyendo, qué comandos está escribiendo exactamente y cuál es el resultado que está viendo?