Build Launcher para Android

Actualmente estoy intentando modificar Android 2.2 froyo Home app. Para comenzar, debo get el original, comstackrlo e implementarlo.

Creo que esta aplicación se llama Launcher2.

Empecé obteniéndolo:

git clone git://android.git.kernel.org/platform/packages/apps/Launcher2.git 

Las tags disponibles:

 $ git tag android-2.0.1_r1 android-2.0_r1 android-2.1_r1 android-2.1_r2 android-2.1_r2.1p android-2.1_r2.1p2 android-2.1_r2.1s android-2.2.1_r1 android-2.2.1_r2 android-2.2.2_r1 android-2.2_r1 android-2.2_r1.1 android-2.2_r1.2 android-2.2_r1.3 android-2.3.1_r1 android-2.3.2_r1 android-2.3.3_r1 android-2.3.3_r1.1 android-2.3.3_r1a android-2.3.4_r0.9 android-2.3.4_r1 android-2.3.5_r1 android-2.3_r1 android-adt-0.9.8 android-adt-0.9.9 android-cts-2.1_r2 android-cts-2.1_r3 android-cts-2.1_r4 android-cts-2.1_r5 android-cts-2.2_r1 android-cts-2.2_r2 android-cts-2.2_r3 android-cts-2.2_r4 android-cts-2.2_r5 android-cts-2.2_r6 android-cts-2.2_r7 android-cts-2.3_r1 android-cts-2.3_r2 android-cts-2.3_r3 android-cts-2.3_r4 android-cts-2.3_r5 android-sdk-2.0.1-docs_r1 android-sdk-2.0.1_r1 android-sdk-2.0_r1 android-sdk-2.1_r1 android-sdk-2.2_r1 android-sdk-2.2_r2 android-sdk-2.3.4_r1 android-sdk-adt_r12 android-sdk-tools_r12 android-sdk-tools_r3 android-sdk-tools_r4 android-sdk-tools_r5 android-sdk-tools_r6 android-sdk-tools_r7 

Cambié a android-2.2_r1:

 $ git checkout android-2.2_r1 Note: checking out 'android-2.2_r1'. You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by performing another checkout. If you want to create a new branch to retain commits you create, you may do so (now or later) by using -b with the checkout command again. Example: git checkout -b new_branch_name HEAD is now at 279302e... Merge branch 'froyo' into froyo-release 

Ahora, si bash build el código usando Eclipse, recibo muchos errores. Uno que me llamó la atención fue que este Launcher2 está usando el "android.renderscript" que solo está disponible desde el nivel 11 de Api ( reference de Renderscript ) – Froyo es el nivel 8 de Api.

 $ grep -R renderscript * src/com/android/launcher2/AllApps3D.java:import android.renderscript.Allocation; src/com/android/launcher2/AllApps3D.java:import android.renderscript.Element; src/com/android/launcher2/AllApps3D.java:import android.renderscript.ProgramFragment; src/com/android/launcher2/AllApps3D.java:import android.renderscript.ProgramStore; src/com/android/launcher2/AllApps3D.java:import android.renderscript.ProgramVertex; src/com/android/launcher2/AllApps3D.java:import android.renderscript.RSSurfaceView; src/com/android/launcher2/AllApps3D.java:import android.renderscript.RenderScriptGL; src/com/android/launcher2/AllApps3D.java:import android.renderscript.RenderScript; src/com/android/launcher2/AllApps3D.java:import android.renderscript.Sampler; src/com/android/launcher2/AllApps3D.java:import android.renderscript.Script; src/com/android/launcher2/AllApps3D.java:import android.renderscript.ScriptC; src/com/android/launcher2/AllApps3D.java:import android.renderscript.SimpleMesh; src/com/android/launcher2/AllApps3D.java:import android.renderscript.Type; 

Supongo que mi salida debe tener algo mal. Desde Api-Levels , supongo que la versión que comproboe debe ser para Android 3.0.

¡Cualquier ayuda para resolver esto sería genial!

En realidad, RenderScript está presente en 2.2 (los backgrounds de pantalla de Google lo usan, y aparentemente la aplicación de inicio también), simplemente no es público (por lo tanto, no es parte del SDK, solo puede ser utilizado por aplicaciones internas).

Lo hacen con muchas aplicaciones. Por ejemplo, una vez intenté build la aplicación de música desde AOSP y fallé con un problema similar (me faltaba algún package que no estaba en el SDK pero que estaba en la fuente). No tuve time para descubrirlo, así que me detuve allí.

Sin embargo, tengo un par de sugerencias para ti:

  1. Obtenga todo el código fuente de la plataforma e incluya todas las dependencies (RenderScript y cualquier otra cosa que encuentre faltante después de eso);
  2. Eche un vistazo a la muestra de inicio ; no es tan completa como el iniciador 2.2 real, pero debería darle un punto de partida.