注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

东东的博客

江南烟雨,同大家一起分享

 
 
 

日志

 
 

Android的Launcher研究:自定义桌面UI  

2009-09-27 13:19:21|  分类: android相关 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

前言

能取得Android OS源代码,并修改里面的内容,有时候也颇有乐趣。最近和几位朋友听到「Android框架的改造」,以及如何吸引对Android框架技术有兴趣的朋友 一起交流的议题;我个人认为,一开始如果能丟出一个比较有乐趣的议题,或许可以有抛砖引玉的效果。

上周在北京进行Android培训课程时,与eoeAndroid社群也进行了想法的交流,由于大家都体会到Androi底层技术的重要性及其价值,而且eoeAndroid社群里也有许多技术好手,所以就和eoeAndroid的创办人靳岩兄有了一个共同主持研究Android底层技术「同好小 組」的想法,希望能通过社群的方式,集合大家的智慧,一起把底层技术研究清楚。

因为要让大家能有焦点,所以「发题」很重要,这个工作就由落在我身上了。由于第一次希望題目能简单,并且有趣一点,至少要能达到发球的效果,吸引大家开始关心Android底层技术,所以原则是:希望能用最简单的方式、让大家体验修改底层的乐趣。

題目說明: Launcher

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

Launcher就是Android的应用程序起动器,Launcher的功能还包含:桌面的切换、应用程序快捷(shortcut)功能、背景图(Wallpaper)功能等等。因此,修改Launcher可以改变一些很深层的UI功能。

在Android的桌面最下方,有一个视图,按下后可以拉出应用程序图标清单,这是Launcher提供的功能。这一次,因为我们觉得这个Launcher的图示太制式化了,越看越不好看,所以想要修改一下,换张图,要怎么做到呢?

范例展示

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

Android的Launcher研究:自定义桌面UI - 东东 - 东东的博客


图1: 原始图示

Android的Launcher研究:自定义桌面UI - 东东 - 东东的博客
图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 source>/packages/apps/Launcher/

接著要修改src/目录下的內容,还是res/目录下的內容呢?图档属于Android的「resource」,因此当然是到res/目录下找到我們要的图档。

切换到以下目录:

<android source>/packages/apps/Launcher/res/

又看到了一大堆目录,图档的部份存放于:

  • drawable-land/ - landscope 模式的图档
  • drawable-port/ - portrait 模式的图档

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

Android的Launcher研究:自定义桌面UI - 东东 - 东东的博客

就是它了,换掉,把图档换成这个:

Android的Launcher研究:自定义桌面UI - 东东 - 东东的博客

换好后重編Android即可。一行程式都不用改。

制作说明3/4: 安裝Launcher.apk

重編Android源代码(注意要先把原来的out里相对应的Launcher.apk文件删掉),接着可以在out/target/product/<product name>/system/app/找到Launcher.apk套件。把Launcher.apk安裝到AVD(Android 模拟器)里做测试,方法如下:

1. 先启动一个AVD
2. 执行adb將Launcher.apk手动安裝到AVD里,指令如下:

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

成功后可看到以下画面:

338 KB/s (837376 bytes in 2.417s)
pkg: /data/local/tmp/Launcher.apk
Success



制作说明 4/4:重开机

已经完成了,直接重启即可。「重启」是把AVD重新启动,不是把电脑重新开机喔 ;-)

应用与讨论

欢迎大家上传你的作品、或是贴图与大家分享,方式是透过eoeAndroid社群的讨论区:

http://www.eoeandroid.com/forumdisplay.php?fid=54

如果有更詳細的Launcher研究心得,或是希望能針對Launcher進行討論,歡迎至eoeAndroid的討論區發文。


转自  http://blog.chinaunix.net/u/14644/showart_2005565.html

  评论这张
 
阅读(5116)| 评论(2)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018