2011-08-12 57 views
1

我正在嘗試修改Android 2.2 froyo Home應用程序。首先,我必須得到原件,編譯並部署它。Build Launcher for Android

我認爲這個應用程序叫做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

實際上的renderScript存在於2.2(在谷歌動態壁紙使用它,顯然,家庭應用以及),它只是不公共(所以它不是SDK的一部分 - 它只能通過使用內部應用程序)。

他們用很多應用程序來做到這一點。例如,我曾經嘗試從AOSP構建音樂應用程序,並且因類似問題而失敗(我錯過了一些不在SDK中但在源代碼中的軟件包)。我沒有時間弄清楚所以我停在那裏。

但是,我有幾個建議供您參考:

  1. 讓整個平臺的源代碼,幷包括所有的依賴關係(的renderScript,和其他任何你發現後失蹤);
  2. 看看Home sample - 它不像實際的2.2啓動程序那樣完整,但它應該給你一個出發點。
+0

謝謝,這解釋了很多! – inversus