订阅移动开发RSS CSDN首页> 移动开发

CMDN Club 14期:解码MIUI换肤与主题实现

发表于2012-03-01 21:59| 次阅读| 来源CSDN| 0 条评论| 作者杨依帆

摘要:2月29日,CMDN Club第十四期活动在北京丽亭华苑酒店举行。本次活动是今年开春以来的首场分享会,友盟Android SDK工程师徐仙明和小米科技MIUI系统工程师董红光为大家带来了精彩的演讲。现场观众热情饱满,会场大厅内座无虚席。在CMDN俱乐部为大家精心准备的Android系统开场问答环节之后,徐仙明首先为大家...

2月29日,CMDN Club第十四期活动在北京丽亭华苑酒店举行。本次活动是开春以来CMDN俱乐部的首场主题交流会,友盟Android SDK工程师徐仙明和小米科技MIUI系统工程师董红光为大家带来了Android资源访问与MIUI底层换肤技术的主题演讲。现场观众热情饱满,会场大厅内座无虚席。在CMDN俱乐部为大家精心准备的开场问答环节后,两位对Android资源访问有着深刻理解的工程师为开发者们带来了一场精彩纷呈的演讲。

图:CMDN Club第十四期活动现场

友盟Android SDK工程师 徐仙明:Android系统资源访问机制的探讨

徐仙明首先对友盟产品进行了一个简短介绍:友盟是一家针对开发者的平台式服务公司,它为开发者提供统计分析工具、开发工具以及类似于“应用联盟”的SDK。

在Android系统中,资源主要指图片和MP3类型的文件,也是用户UI包含的所有元素。谷歌在设计Android系统时,将UI界面和逻辑代码分开组建:界面设计通过XML的形式描述,具体的程序和应用逻辑则通过代码来实现;前端工程师只负责HTML和CSS的设计与架构,后端工程师则专门考虑JSP和Java的代码执行。

图:友盟工程师徐仙明在讲解Android资源访问机制

资源访问在Android性能架构中处于何种地位?在进行Android开发时,开发者经常用到Framework提供的资源包Framework.jar与Framework-res.apk,以及与核心资源相关的组件“Resource Manager”文件系统。

图:观众针对资源加载效率向嘉宾提问

APK本身是一个简单的文件格式,也是一个压缩文件包。通过解压文件包可以释放APK文件:首先需要APK的原数据Meta INF、Manifest以及RES目录。一部分包含图片资源的应用,在资源释放时也会用到Layout。

图:前排观众席地而坐

在安装文件时,系统会将文件取出、解压后放在Dalvik Cache中。该缓存下有许多dex文件,当用户打开应用时系统会自动加载相应的类。在加载过程中,系统如需访问APK,则需对其进行解压,这样通常导致效率较为低下。而如果将dex文件放入Dalvik Cache中,则能够令加载的效率大大提升。

图:观众向工程师请教如何实现Android换肤

每个进程都有一份关于Framework的共享类和共享资源,但物理内存空间中的系统级别资源只有一份。Framework类和资源是只读的,而Android操作系统设计之初并没有硬盘的虚拟内存和换进换出机制,所以节省内存空间是非常重要的工作。

说到应用级别的换肤,徐仙明提到了墨迹换肤的实现办法:墨迹有一个工具页面,开发人员 在SDK中建立了一个文件夹,然后下载文件名为103.zip的皮肤资源包,再将该资源包解压到Skin103目录之下。定义文件名时必须与系统默认的文件名保持一直,一旦找不到这些系统资源,可以选择到系统默认中查找。

图:分享会现场座无虚席

下一页:小米科技系统开发工程师董红光:解码MIUI如何实现Android系统换肤

CMDN Club 14期:解码MIUI换肤与主题实现
  • CSDN官方微信
  • 扫描二维码,向CSDN吐槽
  • 微信号:CSDNnews
程序员移动端订阅下载

微博关注

相关热门文章