为Android构建启动器

时间:2011-08-12 08:58:36

标签: android git launcher

我目前正在尝试修改Android 2.2 froyo Home应用。首先,我必须得到原文,编译并部署它。

我认为这个应用程序叫做Launcher2。

我开始得到它:

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

可用标签:

$ 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

我切换到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

现在,如果我尝试使用Eclipse构建代码,我会得到很多错误。引起我注意的是这个Launcher2使用的“android.renderscript”仅在Api等级11(renderscript reference)之后可用 - Froyo是Api等级8。

$ 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;

我想我的收银台肯定有问题。从Api-Levels开始,我想我的checkeout版本必须适用于Android 3.0!

解决这个问题的任何帮助都会很棒!

1 个答案:

答案 0 :(得分:1)

实际上,RenderScript出现在2.2中(谷歌动态壁纸使用它,显然也是家庭应用程序),它不是公共(所以它不是SDK的一部分 - 它可以仅供内部应用程序使用。)

他们使用大量应用程序执行此操作。例如,我曾经试图从AOSP构建音乐应用程序并且遇到类似的问题(我错过了一些不在SDK中但在源代码中的软件包)。我没有时间搞清楚,所以我就到了那里。

但是,我有几点建议:

  1. 获取整个平台源代码并包含所有依赖项(RenderScript,以及之后您发现的其他内容);
  2. 看一下Home sample - 它不如实际的2.2启动器那么完整,但它应该给你一个起点。