冷落博客已有一年,理由种种,想来是腾出了些时间,但未见得其他方面有了什么可观的进步。打理博客犹如健身,每天不抬几次杠铃活动活动筋骨则憋的荒。消耗了大量的体力,一天下来却倍感清爽,人清爽了做什么都很来劲儿,久而久之反而能积累不少成果。写博客,百利而无一害也。

  最近一年与往年相比相差甚远,不管是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的更多相关文章

  1. [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 ...

  2. Call U

    Communication - 02.Call U App层 从大拇哥Click CallButton开始手机便已明白,主人这是要打电话.当然,你可以选择直接拨号,也可以通过ContactList,或 ...

  3. 本人SW知识体系导航 - Programming menu

    将感悟心得记于此,重启程序员模式. js, py, c++, java, php 融汇之全栈系列 [Full-stack] 快速上手开发 - React [Full-stack] 状态管理技巧 - R ...

  4. uml和模式01

    // */ // ]]> uml和模式01 1. UML 2. 用例图 3. 用例和类的关系 4. 类图 1 UML 模型语言(Modeling Language 检查ML)是一种设计语言,人们 ...

  5. 【WCF--初入江湖】01 WCF编程概述

    01 WCF编程概述 SOA的优点 1.服务独立于平台和工作环境.服务并不关心自己所处的环境,也不关心与之进行通信的服务所处的    环境. 2.服务相互隔离. 3.服务对协议.格式和传输中立. 4. ...

  6. [转]A Faster UIWebView Communication Mechanism

    ref:http://blog.persistent.info/2013/10/a-faster-uiwebview-communication.html Use location.hash or t ...

  7. 01: docker 基本使用

    1.1 docker基础 1.docker与虚拟机比较 2.docker版本 1. 社区版(Community Edition, CE) 2. 企业版(Enterprise Edition, EE) ...

  8. 一步步Cobol 400 上手自学入门教程01 - 基础概念

    先学习基础概念 1.COBOL字符:包含: User-defined words 用户定义字符 ŸSystem-names ŸReserved words 关键字 2.用户定义字符User-defin ...

  9. Windows Communication Foundation (WCF)和Windows CardSpace的示例程序

    微软公司昨天发布了一个Windows Communication Foundation (WCF)和Windows CardSpace的示例程序包,内容极为丰富,从最简单的Hello World到复杂 ...

随机推荐

  1. 重装windows7企业版时提示“安装程序无法创建新的系统分区,也无法定位现有系统

    第一步:把win7镜像发在你电脑的非系统盘的其他硬盘上. 第二步:重启机器,通过U 盘启动.进入win pe系统,关于这点我说一下,有些朋友也许不知道什么叫win pe系统,这个win pe 究竟有什 ...

  2. Convert IPv6 Address to IP numbers (C#)

    URL: http://lite.ip2location.com/ Use the code below to convert the IP address of your web visitors ...

  3. 三层架构与MVC & 设计模式的较量

    刚刚学习了三层架构,并且正在实际应用中,但随着学习的深入,又了解到了一个叫MVC的东西,(早在设计模式中就听到过MVC,仅仅是简单查了一下什么意思.)如今正好把这三个东西放在一起聊聊. 三层 是一个分 ...

  4. [原]quick2.25精灵变灰

    由于quick2.25没有导出shader相应的接口,所以2.25无法直接使用shader. 本文简单介绍如何导出相应接口,同时教大家使用shader 实现精灵变灰 一.编写静态函数,以供导出使用(直 ...

  5. 关于imp无法导出空表

    前天在业务库中导出完整库时,再导入到新库时发现部分表丢失. 看日志后分析是部分空表没有导出.查google知,11G中新特性,当表无数据时,不分配segment,以节省空间.而使用exp命令时,无Se ...

  6. CISA 信息系统审计知识点 [第一章. 信息系统审计过程 ]

    对有志成为审计师或者IT管理者de朋友, 第一章. 信息系统审计过程 1. IS 审计和保障标准.指南.工具.职业道德规范 信息技术保证框架(ITAF,Information Technology A ...

  7. 循环a数组(值代表b的下标)删除b数组中存在的记录,从后往前删

    for (var j = adelete.Count-1; j >= 0; --j)                     {                         aAttachm ...

  8. GitHub 操作流程示例

    最新文章:Virson's Blog 参考文章: 博客园-Web前端开发,博客园-喻头快跑,GotGitHub 首先.通过github网站新建一个仓库,得到仓库地址 https://github.co ...

  9. android自定义viewgroup实现等分格子布局

    先上效果图: 实现这样的效果: 一般的思路就是,直接写布局文件,用LinearLayout 嵌套多层子LinearLayout,然后根据权重layout_weight可以达到上面的效果 还有就是利用g ...

  10. Day One studying english

    I start study english lately,but the is no basis for english.Only i use baidu translation,google tra ...