1

現在、Android 2.2froyoHomeアプリを変更しようとしています。まず、オリジナルを入手し、コンパイルしてデプロイする必要があります。

このアプリは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リファレンス)以降でのみ使用可能な「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;

私のチェックアウトには何か問題があるに違いないと思います。Api-Levelsから 、私がチェックアウトするバージョンはAndroid3.0用である必要があると思います。

これを解決する助けは素晴らしいでしょう!

4

1 に答える 1

1

実際、RenderScript は 2.2 に存在します (Google のライブ壁紙で使用されており、ホーム アプリでも使用されているようです)。公開されていません(つまり、SDK の一部ではなく、内部アプリでのみ使用できます)。

彼らは多くのアプリでこれを行います。たとえば、AOSP から音楽アプリをビルドしようとしたことがありますが、同様の問題で失敗しました (SDK にはなく、ソースにはあるパッケージが不足していました)。それを理解する時間がなかったので、そこでやめました。

ただし、いくつかの提案があります。

  1. プラットフォームのソース コード全体を取得し、すべての依存関係 (RenderScript、およびその後に見つからないもの) を含めます。
  2. Home サンプルを見てください。実際の 2.2 ランチャーほど完全ではありませんが、出発点となるはずです。
于 2011-08-12T09:23:49.760 に答える