如何学习和理解Android系统
1个回答
展开全部
我以前是做嵌入式系统开发的,对于平台比较熟,所以我的学习方向是从下往上进行学习,有相同工作经历者可以效仿一下吧:)个人认为其实就是三大块,分为移植-框架-应用1、android系统移植 其实这一块工作主要集成在android linux kernel 的驱动代码编写及android系统启动调试过程 。 对于android-HAL移植代码编写,其实android系统需要移植的模块较少(最精简的系统启动),只需要实现libgralloc模块,这块就是显示及显存分配的代码以及HDMI的启动高清输出。 需要熟练掌握的知识是linux驱动及android系统的启动过程会干哪些事情。以前写过相关的linux kernel及android 完整的启动流程。 只要熟悉清楚这些原理,就是解决启动过程中的问题,基本上移植android系统不会有太大的问题,只要启动了原始的android系统后面就是完善及优化系统了。 深入研究过三个平台代码(海思,ST及博通)的android代码与原始android系统代码,基本上都是这么做的。 这里推荐 <<android 系统级深入开发>> --- 移植与调试 ,可以对android的外围设备及相关移植内部有一定的了解,碰到问题多问问google,可能其它朋友也碰到过,当然也可以找你一起讨论解决。2、框架层代码学习 这块代码需要熟悉几个android的几个重要概念: Binder (IPC通讯), Service 服务 ,Zygote 等等 紧接着就是研究大的模块代码,如SurfaceFlinger , AudioFilnger , Media(这块还一直没有时间看,很遗憾) 等,下一个计划就是研究media媒体播放这块,以前做过本地播放应该会减小很多的学习时间,知识的本质是相通的。 浏览器及虚拟机这块也是个大头,目前开发没怎么用到,所以也没有去怎么接触和了解,说不上好的建议 这里推荐<<深入理解android 卷1>> 系统篇,写的特好,更多的内容见博客,网上很多牛人呀。3、JAVA应用程序 这一块代码的编写,最好的教材就是 android SDK ,这些api有详细的介绍及用法,与msdn媲美。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询