android - 为 Android 构建启动器

标签 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 使用的是自 Api 级别 11 ( renderscript reference ) 起才可用的“android.renderscript” - 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;

我猜我的 checkout 一定有问题。来自 Api-Levels ,我猜我checkeout的版本一定是Android 3.0吧!

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

最佳答案

实际上,RenderScript 存在于 2.2 中(Google 动态壁纸使用它,显然家庭应用程序也使用它),它只是不是公共(public)(所以它不是 SDK 的一部分——它可以仅供内部应用使用)。

他们用很多应用程序来做到这一点。例如,我曾尝试从 AOSP 构建音乐应用程序,但因类似问题而失败(我丢失了一些不在 SDK 中但在源代码中的包)。我没有时间弄清楚,所以我停在那里。

不过,我有几个建议给你:

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

关于android - 为 Android 构建启动器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7037808/

相关文章:

android - 以字节为单位转换ImageView android?

android - 如何通过 ShowViewModel 通过 ViewModelRequest 启动 ViewModel

git - 安全强制推送程序?

android - 使用 Android 将启动器和 Activity 图标分开

android - 如何隐藏启动器中的状态栏?

android - vuforia 插件和 prime31 facebook 插件之间的冲突

javascript - Cordova 相机插件适用于模拟器,不适用于 Android 设备

java - 从另一个 Activity 引用一个 Activity 的属性

git - 弄乱 GIT 历史破坏了最近的提交……如何恢复?

node.js - 在 heroku 上部署 node.js 应用程序成功但不起作用