`
mmdev
  • 浏览: 12916116 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

安卓系统架构多年经验总结:《Android程序的编译,安装和运行》 | Android DevCamp | 7月27日 北京

 
阅读更多

小米科技MIUI首席架构师汪文俊确认演讲主题:《Android程序的编译,安装和运行》。

讲师简介:汪文俊,中国科技大学硕士,原IBM系统工程师,现为小米科技MIUI首席架构师,开源C编译器项目ucc的作者。

话题简介:Android程序的编译,安装和运行。从程序员的观点探索Android系统提供的编程抽象,从程序的整个生命周期讨论一下Android系统结构。




Q:这个技术分享的主题关键字是什么?

#安卓系统架构#


Q:为什么选择这个主题?

汪文俊在小米科技负责MIUI源代码结构,主管MIUI机型适配。在过去的3年里,从Android 2.3到Android 4.0,汪文俊接触过几乎所有的机型(2.3有适配30多个机型,4.0大致适配过20多个机型)。机型适配时,要了解整个Android系统的结构。期间积累了大量Android系统架构的知识是实践。本次演讲则是对这些知识和实践的总结。


Q:主题演讲中将涉及哪些内容?解决哪些问题?

汪文俊从程序开发的角度来理解Android系统结构,如,Android如何基于Linux上运行的,与其他普通的程序编写有何不同,Android程序入口点在哪里?等等。


从程序的编译,安装和运行整个流程介绍Android系统的宏观架构。

- 编译:资源编译器,如何资源和代码打包在一起。

- 安装:安卓系统如何管理这些包。

- 运行:程序的入口点在哪里。


Q:编译、安装和运行,三个之间的关系是什么样?


汪文俊:其实就是想通过这个过程,从程序员角度剖析。例如你开发一个程序,肯定要先写一个程序,然后编译好,再编译安装到Android系统上,最终可以运行。从这一整套流程来谈谈,Android系统是怎么运作的。从这一整套流程来研究Android系统结构。


Android本身编译的时候,跟一般的编译不大一样。虽然大家知道Android是基于Java的,但是它跟普通的桌面上的JAVA程序是不一样。它编译的时候有两种:一种是代码,一种是资源。他有这种代码和资源分离的概念。编译的时候我想主要讲讲资源编译器,资源编译器如何把资源和代码打包在一起。安装就涉及到Android整个系统是怎么管理这些应用程序,如何管理这些包。最后运行就是讲Android隐藏了程序的组织构件,它是如何封装起来,通过封装机制最终让程序运行起来。主要就是想通过这三点来讲Android的整个架构。内容保证非常精彩。


一个系统如果你能够理解它是如何运作的,对你写东西的时候是有帮助的。尤其像现在一个普通Android的程序员可能上来就照一些例子去写。但是他不理解背后这些机制,为什么会这样写。从我们MUMI研发组内部来看这些知识很有帮助。


Q:以您的理解Android是一种怎样的结构?


汪文俊:首先Android是基于Linux的内核,它在Linux上有个Dalvik虚拟机。再往上一层,我们把它叫JNI层,就是说,它是Java虚拟机、C、Linux通讯的一个管道。再往上,这是一般大家说Android系统实际上是指的这一层。它有一些系统服务,实现的一些如程序安装包的管理、安装和整个程序运行。因为Android对用户是封装的,程序封装的不是什么程序的概念,它是在Linux提供的进程基础之上,再封装的一些概念。Android开发不仅仅是Java Code。从这样一看,开发者们以后在写Android程序的时候,什么时候我需要去和JNI,什么时候需要去学一些C Code。能理解Android的结构是什么样的,对于大家更好的Android开发实践是很有帮助的。


Q:程序开发为什么需要了解这一流程?对开发者的价值是什么?

对整个系统有一个宏观的理解,这样对开发者了解结构和性能上的东西会更有帮助,避免在程序开发中思维局限。


Q:小米的研发团队如何在内部做技术分享?

小米内部的分享机制:2周1次,MIUI有很多项目,主要是:系统组,通讯组(电话、联系人、短信),米肤,多媒体组。小米鼓励研发团队的经验分享。每一次主讲人会准备简单的PPT,大家在分享中探讨和解决问题。


分享机制的意义:增进大家对产品的了解;对新员工非常有帮助;有些话题能够激发出很好的产品点子!


Q:对7月28日的Android Dev Camp有何期待?


- 通过参加活动,了解大家关注点在哪里?看到大家在做哪些方向?

- 人脉,交流的平台。很难得有这么多移动开发技术的实践者聚在一起。


访谈链接:http://blog.csdn.net/shiningxyy/article/details/7757162



之前在CMDN Club上,小米科技的工程师董红光曾经分享主题:《Android系统如何实现换肤及MIUI主题风格的实现》获得与会者的一致好评。

MIUI是小米公司基于Android深度定制的系统,其中一个重要的改进和亮点,就是系统全局支持主题换肤的功能,本次演讲将围绕该功能展开,深入分析和探讨MIUI主题功能的设计理念,整体结构与实现技术细节,给开发者一个简单参考,希望可以起到抛砖引玉的作用。

新闻报道:http://mobile.csdn.net/a/20120301/312643_2.html


关于:iOS DevCamp 7月27日 | Android DevCamp 7月28日 | 北京 | 新云南皇冠假日酒店

这是一个真正属于移动开发者的会议,参会者以交流、学习、提高、答疑解惑的移动开发实践者为主,你将极少看到投资人、市场人员、名人大腕、还有不知是何目的来参会的“打酱油”的人。参会者只有像你一样的有经验的开发者和工程师。


【特色】:

- 一个真正意义上的iOS/Android开发技术大会。

- 企业间、团队间交流和学习移动开发技术实践的平台。

- Dev to Dev,来自开发者,服务开发者。所有课程内容均不含任何商业推广目的。

- 课程内容覆盖iOS/Android知识体系的重要方面,并重点分享典型移动产品的开发实践。

- 国内资深移动开发专家评审团队对所有课程进行把关,确保课程内容全部为“无水分” “干货” 。

- 全部课程均有资深开发者讲授,他们或许不是名人大腕,但一定是“技术大牛”

- 与会者全部都是移动开发者和工程师及其开发团队成员



更多讲师和议题,持续更新中!请关注:

官网:http://devcamp.csdn.net/

博客:http://blog.csdn.net/shiningxyy

微博:http://weibo.com/cmdnclub

论坛:http://cmdn.net/





分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics