【专访】小米科技MIUI首席架构师 汪文俊:了解安卓系统架构对程序员很重要 | Android DevCamp...

为了帮助与会者更好的了解每一个技术讲座的内容,我们对 #DevCamp# 的很多讲师进行了专访,以帮助与会者了解:

WHY 为什么选择这个主题?

WHAT 这个主题覆盖哪些内容?

HOW 以怎样的方式呈现出亮点?


小米科技总结多年安卓系统架构经验:《Android程序的编译,安装和运行》| Android DevCamp

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

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

详情:http://blog.csdn.net/shiningxyy/article/details/7689710


以下是访谈精华:


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:对于MIUI来说,比如说用户要有一个反馈,咱们这块会有一些什么样的处理流程呢?比如发现一个地方在论坛报告一个Bug,咱们这块我看反应很快?


汪文俊:Bug解决方面,一般没有硬性的实践要求,但是我们原则上不超过一个星期的。


现在我们有一个叫做荣誉开发者,我们论坛会招一些,可以认为他是测试人员,但是他们是一些发烧友当中对Android比较了解熟悉的人。他们会对用户反应的问题进行第一轮过滤,一些很简单的问题,比如说我找不到这个设置项,这个他们可以解答。有一些真正的,他们觉得是我们程序的Bug,再反馈到我们一个叫开发专区的地方。在那我们开发专区对某个模块有专门负责人的,这个很明确。相关负责人每天必须去看。我们要求回复率达到90%以上,这些问题你都得去回复。我们工作有一小部分时间是在论坛上面,我们跟用户要去看用户的反馈。

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

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


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


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


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

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


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/






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值