Communication - 01.Foreword
冷落博客已有一年,理由种种,想来是腾出了些时间,但未见得其他方面有了什么可观的进步。打理博客犹如健身,每天不抬几次杠铃活动活动筋骨则憋的荒。消耗了大量的体力,一天下来却倍感清爽,人清爽了做什么都很来劲儿,久而久之反而能积累不少成果。写博客,百利而无一害也。
最近一年与往年相比相差甚远,不管是Positivity、Endurance还是各种Ablilities,好比黄金圣斗士堕落到了青铜级别,更可怕的是对技术越感麻木,难道这就是所谓的技术阶段性更年期?思前想后确实有一点变了:”过去把技术视作目标,现在更愿意把技术作为达成其他目标的手段。“这种思想观念的变化有利有弊,也可能预示着什么。写点儿东西,一部分我了解的技术,不一定说得详细,但求从整体上把握能拥有全局的观念。人就是如此,知道今天的小树苗在未来会成为参天大树,则会在十年间乐此不疲的付出,并收获过程中的快乐。倘若在沙漠中茫然向前,即使水源充足也会放弃在绿洲前的沙丘身后。
从手机入手,当下正时髦的各种智能机谈起。
作为一个曾经搞手机的ITer无比遗憾一件事,人生其实有很多乐趣,记得大学时看着各种新颖的数码产品充满了好奇也获得了很多快乐,若干年后作为一名开发者,快乐就这么没了!各种数码产品丝毫没了吸引力,放眼望去只是一堆的处理器和存储器而已。类似的事情还有旅游,无比后悔当初到处穷游,直接导致现在对祖国的大好河山没了兴趣。所以,个人总结了一个生活教训:”吃,不要吃太饱;玩,要给未来留点余地。”
“搞手机开发”,一句经常听到的回答,但也过于笼统。搞IPHONE,也得有个UI和Coder之分。搞Android,这个Coder可能包括:
Java,XML为主的上层APP开发。重点是对语言的熟练程度和调试技巧。如果要深入研究,尝试了解JaveFramework层的代码,更甚者,可以研究下Dalvik。
高级点儿的就得往下走,一方面是各种Lib的应用,比如Media。Android的video, audio development往往重难点不在于编程,而在于原理。复杂的东西往往封装到最后给开发者保留的仅仅是几个简单的api,谁能剥开这层分装参透其原理就会更具有竞争力。另一方面便是对于Linux的了解,熟悉Linux系统的各种系统调用、进程关系、文件的属性。这一层也可以看作是NDK开发,通常意义上讲它便是Android开发的核心,撇开Android的东西在Linux的基础上利用C/C++独立处理任务,快速、干净、利索,最后得到return value,让表现力更好的Android体现到用户面前。真正意义上的安卓或许就是一个跑在Linux上的一个多进程的软件,我如此理解,误导勿怪。
说起Linux这一层,这本是Android前世投胎前既有的存在,所以,它早已成为一块独立的领域:Linux System Programming。《Unix高级环境编程》便是你的学生证。这一层之下便是Kernel,内核的一部分为Linux开发者提供了大量的系统API,而Kernel Development便是山寨最热门的一块领域。任何一件数码产品都关心成本,降低成本往往意味着更换为价格更低廉的芯片。但这不等于产品质量的下降,原本廉价的芯片随着产量规模的增大会趋于性能稳定,而原装芯片的昂贵或许只是源于市场规则。芯片的更换便意味着芯片驱动的更换,也就是Kernel Development中山寨的灵魂:Driver Development。
驱动开发是个比较奇怪的领域,电子工程的同学不懂Kernel Architecture,软件工程的同学搞不定杂乱的PIN脚高低电平变来变去。然后,这东西就火了。不会背语录的不是好同志,不使用Oscilloscope不看Datesheet都是伪驱动开发。软件开发需要一个人思维活跃、大胆创新,驱动开发需要一个人性格沉稳、谨慎小心,而驱动开发正是“数码产品麻木症”的罪魁祸首。总结:玩驱动者,看破红尘,心如止水。
不能打电话的phone是mini pad,能打电话的pad是增大版phone。作为一部智能手机,“智能”是因为安卓,通话则是因为有Modem。好比人,有大脑更要有心脏,大脑不够用最多是植物人,心脏不好使那就玩儿完了。Modem固然重要,也必然有自己的处理器,而且不止一颗。作为一部真正的手机,它要接收射频信号,而后变频、放大、滤波、转换,而后成为可读的0101,再经过协议解析终获得暗藏于载波中的声音信号,最后通过音频接口传给安卓一边的处理器,经过Kernel Developer开发的audio驱动解读后传给Earphone。接收无线电需要专门的处理器,或者叫DSP,也就是当下比较火的的RF部分。信号处理、解析协议也都需要处理器,也就是Baseband部分。再匹配一套实时操作系统,瞧,Modem完全是一个独立的体系。
非智能机也叫Feature Phone,当然没有安卓,但一定得有Modem。在没有安卓、塞班的年代Feather Phone独霸天下,一个Modem包揽了全部的任务,数年后一颗专门跑智能系统的CPU分担了Modem一部分任务,Modem在人们的视野中便退居了二线。“没有我,你不能成为一部智能手机,而我只是默默地负责供血这种单调重复的任务。我是Modem,我为自己代言。”
就先这吧,算是练手。又是一年端午节,却没有南下。
Communication - 01.Foreword的更多相关文章
- [Code::Blocks] Install wxWidgets & openCV
The open source, cross platform, free C++ IDE. Code::Blocks is a free C++ IDE built to meet the most ...
- Call U
Communication - 02.Call U App层 从大拇哥Click CallButton开始手机便已明白,主人这是要打电话.当然,你可以选择直接拨号,也可以通过ContactList,或 ...
- 本人SW知识体系导航 - Programming menu
将感悟心得记于此,重启程序员模式. js, py, c++, java, php 融汇之全栈系列 [Full-stack] 快速上手开发 - React [Full-stack] 状态管理技巧 - R ...
- uml和模式01
// */ // ]]> uml和模式01 1. UML 2. 用例图 3. 用例和类的关系 4. 类图 1 UML 模型语言(Modeling Language 检查ML)是一种设计语言,人们 ...
- 【WCF--初入江湖】01 WCF编程概述
01 WCF编程概述 SOA的优点 1.服务独立于平台和工作环境.服务并不关心自己所处的环境,也不关心与之进行通信的服务所处的 环境. 2.服务相互隔离. 3.服务对协议.格式和传输中立. 4. ...
- [转]A Faster UIWebView Communication Mechanism
ref:http://blog.persistent.info/2013/10/a-faster-uiwebview-communication.html Use location.hash or t ...
- 01: docker 基本使用
1.1 docker基础 1.docker与虚拟机比较 2.docker版本 1. 社区版(Community Edition, CE) 2. 企业版(Enterprise Edition, EE) ...
- 一步步Cobol 400 上手自学入门教程01 - 基础概念
先学习基础概念 1.COBOL字符:包含: User-defined words 用户定义字符 System-names Reserved words 关键字 2.用户定义字符User-defin ...
- Windows Communication Foundation (WCF)和Windows CardSpace的示例程序
微软公司昨天发布了一个Windows Communication Foundation (WCF)和Windows CardSpace的示例程序包,内容极为丰富,从最简单的Hello World到复杂 ...
随机推荐
- JAVA B/S系统实现客户端屏幕截图,Java版的QQ截图
简介:本方法首先需要抓到屏幕的整个图象,将图象显示在一个JFrame中,再将JFrame全屏显示,这样就模拟出了一个桌面,Java也就可以获得鼠标的作用区域从而实现桌面中的小范围截屏.Java实现QQ ...
- [Aaronyang] 写给自己的WPF4.5 笔记24 [与winform交互-flash-DEMO-收尾篇1/6]
=====潇洒的版权线======www.ayjs.net===== Aaronyang ===== AY ====== 安徽 六安 杨洋 ====== 未经允许不许转载 ====== 1.新 ...
- 【BootStrap】初步教程
<span style="font-family: Arial, Helvetica, sans-serif;">最近刚刚接触到BootStrap,在这里总结一下Boo ...
- 准备开源一套异形UI控件
今天整理磁盘,发现在一个以前加密过的一个磁盘文件中发现了一些以前做的UI代码.平时都没怎么去用,放着放着只会慢慢的去遗忘,所以打算慢慢的将一些UI代码整理整理,然后开源出来,集合广大Delphier的 ...
- How to import library ?
Android Studio: Download or git the library. (for example: the library folder named ActionBarSherloc ...
- android 检测网络是否可用
/** * 检测网络是否可用 * * @return */ public boolean isNetworkConnected() { Conne ...
- spring mvc jsp运行不起来的问题
spring mvc已经处理成让jsp运行,即: <bean class="org.springframework.web.servlet.view.InternalResourceV ...
- Request is not available in this context
部署到新服务器的IIS的时候发现这个错误: Request is not available in this context 解决方案: <system.web> <customEr ...
- Hybris电商方案介绍(企业全渠道) B2B B2C O2O建设
1). 什么是Hybris: hybris software成立于1997年,2013年与SAP整合,成为SAP旗下的一份子,提供全渠道客户互动与商务解决方案,该解决方案能够为各机构提供客户的实时背景 ...
- css3整理--::selection
::selection作用: 当使用鼠标选择文本时,改版被选中文本的背景色和前景色.(默认情况下,window中背景色是深蓝色,前景色是白色.) ::selection语法: /*Mozilla Fi ...