• 从Android架构图看开发所需的知识点

    高薪是有原因的
    服务器君一共花费 20.210 ms 进行了 4 次数据库查询,努力地为您提供了这个页面。
    广告很萌的

    根据近期面试Android高工的经历与自己越来越广的经历再次对答案进行补充(由于答案范围其实可以扯的很远,以下答案就只涉及到技术知识点层面)。

    首先上一张 Android 架构图(面试有很大几率被问,不熟悉的趁这机会赶紧补补~):

    从Android架构得出我们必须要掌握的知识点

    1. Linux知识。Android是基于Linux内核的,编译Android源码也必须在Linux上,所以必须掌握Linux的基础知识(操作区别、简单指令、进程等),没事可以装个VM虚拟机玩玩。
    2. C/C++知识。Android大部分核心库是C/C++的动态链接库,系统大部分隐藏API都是在这里面的,而且你看哪条面试中没写要求熟悉NDK(Java+C/C++形式)开发,所以必须熟悉C/C++知识,C语言看谭浩强的《C语言程序设计》就可以,NDK推荐看《Android C++高级编程》一书,刚出的。
    3. Java知识。Android是80%的Java package,IDE和语言都是Java,没理由不具备精通级的Java知识。尤其是多线程、I/O流、面向对象思想、http和socket网络等,面试必问题,Java的进阶书书大家都知道就不再提了。
    4. T-SQL知识(可以只是基础的增删改查和子查询)。

    其它作为高工要掌握的知识:

    1. 数据结构(基础)
    2. 设计模式(推荐看《大话设计模式》,然后再带入Android API看设计模式在Android中的应用)
    3. Web开发语言+Html+JS(推荐php和jsp,做到最后怎么着都得熟悉一门Web开发语言)

    以上皆是知识点,以下是我认为可以有的一些点:

    1. GitHub(这简直就是摆在那里的财富,各种你需要的Android的例子上面都有,只是你必须要学会去搜索)
    2. Android ROM(想想自己做一个专属的ROM屌不屌)
    3. afinl、thinkandroid等各种Android开源快速开发框架(要是能参与开源项目就离大牛不远了)
    4. iOS开发(我是很羡慕人家用苹果机我用win7系统的)
    5. 各种Android开发论坛(学习最快的形式是交流和传授)

    如觉得还有技术方面提升的地方再补充。

    Android开发的三个层次

    我觉得Android开发上有三个层次技术:

    1. 第一个层次和传统的嵌入式Linux最接近,主要涉及的是CPU、GPU以及外设的驱动以及使能方面。多需要熟悉Linux内核,Android框架定义中驱动的接口规范等等,这部分开源社区的力量最大。这个层次技术主要需求方是是各种CPU和Android设备解决方案供应商。 

    2. 第二个层次主要是涉及Android框架中间件部分,如多媒体/3D框架,Java虚拟机等等,这部分Google控制的是最严格的,因为他要控制 Android各种feature以及捆绑自己的移动互联网应用,必须规范中间件。这部分所涉及的软件技术也最多,从各种C/C++库,Java虚拟机性能,用户体验抽象到数据库设计等等很大的内涵。开发的一般也是选择一个方向发力。另外深度定制Android ROM重点也是这个层次。

    3. 第三个层次就是App开发层次,这个层次主要就是利用Android SDK开发了。很多C/C++出身的觉得是用Java开发,其实Java就是啥都是指针的C++,外带try/catch以及垃圾收集,上手其实是很快的。Android程序最重要一点是理解生命周期概念,将一个Activity和Linux进程关系搞清楚,啥时候这个进程启动,啥时候睡眠,啥时候退出,后台的事件循环如何运行的,最后时刻要提醒自己虚拟机在运行,垃圾收集在运行。Google Code上有还多参考代码,在看中学,体会很快的。

    另外,本人采用了一种特别的模式来进行Android程序开发:Java只负责界面,用NDK来做各种复杂的业务和数据处理,Java与NDK之间设计好API以及事件传递方式(Android SDK 中Localsocket就可以很好用做事件发送)。这种方式适合C/C++背景的开发人员上手Android,Java无需达到熟练即可。

更多 推荐条目

Welcome to NowaMagic Academy!

现代魔法 推荐于 2013-02-27 10:23   

本章最新发布
随机专题
  1. [Python程序设计] Django数据库模型 6 个条目
  2. [PHP程序设计] htaccess 设置技巧 6 个条目
  3. [移动开发] Android Studio里的Gradle 3 个条目
  4. [软件工程与项目管理] 呈现器的布局与绘制 11 个条目
  5. [移动开发] Android根基概念Context 8 个条目
  6. [智力开发与知识管理] 信息的类型与结构 9 个条目
  7. [Python程序设计] Python Web部署的背景知识 9 个条目
  8. [PHP程序设计] PHP数组探索 4 个条目
  9. [软件工程与项目管理] 开始使用Git 3 个条目
  10. [Python程序设计] Django架构流程分析 7 个条目
  11. [软件工程与项目管理] 浏览器与CSS渲染技巧 2 个条目
  12. [移动开发] Android属性系统Property 9 个条目
窗口 -- [博客]