[原创] android学习和广告平台赚钱
前言:
高手进阶:
?
引用知乎上的 “唐泽宇” 和 “周昌”?两位开发者的话:1. android是基于linux,所以要熟悉linux系统,特别是嵌入式linux系统。
2. android平台的程序都是通过Java语言开发的,所以要熟悉java语言。
3. android系统级的程序或者底层调用NDK开发,需要用到C/C++。
4. 大多数android应用都是客户端应用,所以对UI的设计及界面开发也要有足够的了解。?
5. 高手有很多种,比如做ROM、开发系统应用、一般的WEB手机端应用、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无需达到熟练即可。
?
我本人也正在朝这个方向发展,希望有朝一日我也能被称上高手。
