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

讀萬卷書,行萬里路

开心快乐的方式有很多种,寻找自己的快乐方式

 
 
 

日志

 
 

基于CM源码仓库编译Android系统的学习心得实录  

2011-08-24 11:20:08|  分类: 我的安卓 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
本文内容在安智网同时首发
http://bbs.goapk.com/thread-3834927-1-1.html
【温馨提示】
  本帖内容比较长,完全为本人原创,基本算是本人对Android系统的理解和认识,并非Android系统的编译教程,也是本小白学习编译 Andorid系统中的实录,可做为有兴趣学习Android系统的参考,亦方便本人备查备忘。如对Android系统编译有兴趣可以看一下,没有耐心 的,可以飘过。(如有转载请通知本人)

【整几句废话】
  入手第1部Android手机差不多2个月了。 Android对于我来说是一个熟悉而又陌生的系统。第1次拿到Android手机,看到一个超级终端的图标打开看到熟悉的黑底白字的“$”立刻感到异常 的兴奋,输入“$su”,又是一个熟悉的“#”字符号。连续输入几个常用的 Linux 命令,竟然都可以正常执行。这对于有过 N 多年的 Linux 应用经历的我来说貌似见到了多年的老朋友。而做为移动设备的操作系统,对于我来说则是完全陌生的。以前一直在用wm系统的手机,玩过几个月就没有多大的兴趣了。在一次户外骑行中wm手机杯具了,给我一个选择Android的机会。

【吹吹牛皮】
  因为有过N多年的 Linux 的资历,对Linux有一点熟悉,但对于博大精深的Linux来说,只能算是个小白。之所以喜欢Linux,得益于它的Open & Free(不要单纯的理解成开门与免费哈:)),开放与自由的精神让Linux不断的发展壮大,也是它的魅力与核心精神所在。这也是我痴迷于Linux的 根源。(其他更详细的有关Linux内容,网上资源浩如烟海,百度一下就知道,狗狗一下就会找到n多)

【Linux 内核】
  如果要了解Android,需要先了解一下Linux。我们常说的 Linux 严格意义上讲,不是一个完整的操作系统,它只是一个操作系统的核心。基于Linux内核,目前已派生出数百个“发行版”的操作系统。

【Linux 发行版本】
  目前基于Linux 内核的发行版本(操作系统)知名和不知名的约有数百个,点击这里是一个Linux发行版树型结构的时间线, 可以看到详细的Linux发行版的历程。其中主要要 Slackware、Redhat、Debian等几大分支。这些发行版又分别派生出子系、孙系的发行版。举例来说,目前如日中天的 Ubuntu 源系Debian的派生的版本,后来不断发展壮大,在其旗下又派生出Kubuntu/Lubuntu/Mythbuntu/Edubuntu等等,其支系 目前最为繁盛,并有不断壮大的趋势。但本小白仍然习惯于Redhat系统列的 Fedora 和 CentOS 。对Ubuntu向来不感冒。

【关于Android】
  Android系统也是基于Linux核心的一个分支,属于一个独立的支系,仍然遵守并继续 Linux GPL 源码开放的守则。基于Android系统的应用及底层驱动则同时拥有 Apache License,Version2.0的版权规则,底层的驱动部分可以闭源。 因此,我们在编译和移植Android系统的时候,需要提取原厂ROM中的相关设备驱动的库文件。

【Android ROM】
  Android另外吸引人之处在于它的灵活性、易用性、 可定制性及可玩性。目前国内外的 Androd 论坛大多异常火爆。定制ROM、自制ROM教程、帖子铺天盖地,随处可见。一般没有Linux应用基础的借助定制工具都可以制作出漂亮且个性化的ROM。 在原有ROM基础上反编译、修改定制ROM的方法简单、实用、方便,基本可以满足修改化的需要。本文的内容主要不在定制、修改ROM。如果有需要,可以查 询安智、隔壁的等论坛。

dsixda's Android Kitchen
  是国外的一位超级大神制作的ROM修改及定制工具,非常方便、实用,使定制修改ROM更加轻松容易。安智网为国人做了汉化版,在此也致以崇高的敬意。

【编译Android ROM】
  再一次感谢Open & Free。Android系统的源码是完全开放的,你可以很方便的随时获取Android源码,而且是免费的。基于Android源码,你可以将其移植到 手机、GPS导航定位设备、平板电脑、上网本等移动设备上。通过编译Android源码,可以更深入的了解操作系统的核心及操作系统的原理,对于从事移动 设备开发的工程师更具有挑战性。如果你精通Android系统开发,也可以让你找到收入可观的一份职位。当然,你也可以将自己定制的系统商业化获取高额的 利润,这于GPL守则是合法的。

【编译环境】
  因Android原生于Linux,因此,其编译环境也 是基于Linux环境的。网上基于Android源码的编译教程指引多是基于 Ubuntu 的,本小白没有亲测(前文说了,本小白对Ubuntu不感冒)。本人分别在CentOS 5.5 独立主机、WinXP + VMWare + CentOS 6.0 及Redhat Fedora 14 环境下分建环境且均编译 system + kernel 成功通过。编译过程和修改编译配置并不复杂,对于大多数没有Linux基础的tx来说,可能是一个非常蛋疼的过程,一般都是由于无数搭建编译环境而最终放 弃尝试。网上关于搭建编译环境的教程指引非常多,本文不再赘述(要补充一点的是包括CyanogenMod wiki在内的搭建环境的教程一般都不够完整,若没有Linux基础,很难成功)。

CM 源码仓库
  是国外的一个Android开发小组基于官方Android源码移植的有多机型支持的一个源码仓库,亦可免费获取。

【Android system + kernel】
  基于CM 源码仓库的Android系统的编译分为两个部分,分别是system 和 kernel 。在同步的所有机型的源码仓库中的系统(system)源码部分,已经植入了CM小组各机型维护工程师编译好的 kernet,一般无需再编译 kernel(内核)。但原有的kernel不一定能够满足所有机型用户的需要,在CM没有及时更新kernel的情况,你自己可以根据CM kernel 源码重新编译 kernel 并将其植入到system源码中。内核源码的配置参数、选项十分复杂,有数千个选项之多,要求内系统核心、硬件驱动有较深入的了解了熟悉,若没有深入研究 和了解,请随意变更kernel编译参数。(详细指引略)

【系统美化及修改】
  与一般的定制ROM稍不同,各机型的t系统配置(.mk 文件)、界面参数(.xml文件),c及java程序等都是源码的。需要对系统结构有一定的了解,如果有定制ROM基础,应该会比较方便。 一旦完成界面的个性化定制和修改后,后续的升级更新就会变得轻松和简单(本人没有做过ROM定制,还需要向各位ROM大师学习补课)。(本小白也不会承诺 今后会发布我自己编译的ROM,因为我做的界面美化等方面的工作不会比其他ROM大师更好,本人编译系统暂时只为测试和自己学习)

【Android系统移植】
  待深入研究和了解Android源码系统后,就可以考虑移植和定制专用系统的工作,这对于系统开发工程师来说将会面临更大的挑战,同时也蕴藏着巨大的商机和钱途。

  先整到这里,本帖可能会不断补充、完善。本文不成系统,随想随写。可能比较乱,如本文浪费了您的时间,而没有任何收获的,本小白在此致歉。如果能给您一点启发和指引,本小白会引以为荣。
  评论这张
 
阅读(3257)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

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

页脚

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