设为首页收藏本站

移动叔叔

搜索
查看: 3637|回复: 0
打印 上一主题 下一主题

Android的Launcher修改桌面UI(转)

[复制链接]
跳转到指定楼层
楼主
发表于 2011-6-18 14:12:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
教程类
教程类: 知识分享
前言

能取得AndroidOS原始碼,並修改裡頭的內容,有時候也頗有樂趣。最近和幾位朋友聊到「Android框架的改造」,以及如何吸引對Android框架技術有興趣的同好一起交流的議題;我個人認為,一開始如果能丟出一個比較有樂趣的議題,或許可以有拋磚引玉的效果。

上週在北京進行Android培訓課程時,與eoeAndroid社群也進行了想法的交流,由於大家都體認到Android底層技術的重要性及其價值,而且eoeAndroid社群裡也有許多技術好手,所以就和eoeAndroid的創辦人靳岩兄有了一個共同主持研究Android底層技術「同好小組」的想法,希望能透過社群的方式,集合大家的智慧,一起把底層技術研究清楚。

因為要讓大家能有焦點,所以「發題」很重要,這個工作就由落在我身上了。由於第一次希望題目能簡單,並且有趣一點,至少要能達到發球的效果,吸引大家開始關心Android底層技術,所以原則是:希望能用最簡單的方式、讓大家體驗修改底層的樂趣。

題目說明: Launcher

第一次的題目是「Launcher」的修改。

Launcher就是Android的應用程式啟動器,Launcher的功能還包含:桌面的切換、應用程式快捷(shortcut)功能、背景圖(Wallpaper)功能等等。因此,修改Launcher可以改變一些很深層的UI功能。

在Android的桌面最下方,有一個圖示,按下後可以拉出應用程式圖示清單,這是Launcher提供的功能。這一次,因為我們覺得這個Launcher的圖示太製式化了,越看越不好看,所以想要修改一下,換張圖,要怎麼做到呢?

範例展示

例如,圖1是原始的圖示;圖2是修改後的圖示。

                               
登录/注册后可看大图

圖1: 原始圖示


                               
登录/注册后可看大图

圖2: 幫Launcher妝扮一下

實作說明 1/4: 取得Android原始碼與EeePC移植

這個功能並不難做,事實上,完全不用寫程式。只要把圖檔重做就可以了。只不過前提是,要知道:

1. 如何取得Android OS原始程式碼
2. 如何編譯Android OS

最簡單的做法是:

1. 下載Android原始碼後、取得EeePC的移植(product)
2. 編譯「TARGET_PRODUCT」為eee_701
3. 由於Launcher都是用Java語法寫成的,所以不會有架構(ARM/x86/...)的問題,編譯後可以取得Launcher.apk;APK套件是不分處理器平臺的

先學會如何由Android原始碼編譯出eee_701的image,才有辦法繼續進行。

實作說明 2/4: 修改圖檔

在Android原始碼的 packages/apps/ 目錄裡,存放了Android內建的應用程式原始碼,Launcher是Android的一個應用程式,所以從這裡找到它的原始碼,並進行修改工程。
切換到以下目錄:

<android-src>/packages/apps/Launcher/

接著要修改src/目錄下的內容,還是res/目錄下的內容呢?圖檔屬於Android的「resource」,因此當然是到res/目錄下找到我們要的圖檔。

切換到以下目錄:

<android-src>/packages/apps/Launcher/res/

又看到了一大堆目錄,圖檔的部份存放於:

  • drawable-land/ - landscope 模式的圖檔
  • drawable-port/ - portrait 模式的圖檔

我們先改一下portrait模式的圖檔。找到drawable-port/tray_handle_normal.png檔案如下:

                               
登录/注册后可看大图


就是它了,換掉,把圖檔換成這個:


                               
登录/注册后可看大图


換好後重編Android即可。一行程式都不用改。

實作說明 3/4: 安裝Launcher.apk

重編Android原始碼,接著可以在out/target/product//system/app/找到Launcher.apk套件。把Launcher.apk安裝到AVD(Android 模擬器)裡做測試,方法如下:
1. 先啟動一個AVD
2. 執行adb將Launcher.apk手動安裝到AVD裡,指令如下:

$ adb install -r <path-to>/Launcher.apk

成功後可看到以下畫面:
338 KB/s (837376 bytes in 2.417s)
        pkg: /data/local/tmp/Launcher.apk
Success

實作說明 4/4: 重開機


已經完成了,直接重開即可。「重開」是把AVD重新啟動,不是把電腦重新開機 ;-)

應用與討論

歡迎大家上傳你的作品、或是貼圖與大家分享,如果有更詳細的Launcher研究心得,或是針對Launcher進行討論,歡迎發文。
您需要登录后才可以回帖 登录 | 注册

© 2008-2025 移动叔叔. 版权所有,专业的网络售后平台 ( 闽ICP备18006692号-3 )

商务合作点击这里给我发消息|Email:service@mobileuncle.com|手机版|移动叔叔     

GMT+8, 2025-1-16 01:11 , Processed in 0.319366 second(s), 13 queries , Gzip On, Memcache On.

返回顶部