我算对嵌入式C和Android都算比较有发言权的。因为我都在做教学和开发工作。 丢开C语言在教学应用外。在目前C语言的实际应用中。常见的应用的情景有如下: 内核/驱动,bootloader,Android HAL驱动和Linux库。前两者其实跟应层打交道比较多,后两者算Linux C的应用程序,用POSIX接口比较多。所以有在Android 产品这一层,C语言以及Linux相关知识绝对有需求。 所以C语言,特别是嵌入式C语言很难上手的。训练一个人熟练开发C程序,和训练一个编写C++要难得多。工资和竞争人数不在同一个数量级上。所以C语言熟练最好在这几个领域扩展。
另外一种情况C 与面向对象的语言,C++/java/object C 的关健字,语句书法极为类似,但是两者编程思想极为不同,底层C程序大部是直线阻塞式编程。换句话,基本上流程图怎么画,一般C程序就是怎么实现的。而面向对象语言要考虑与UI配合,都可以抽象成事件驱动,可以理解系统通知做什么,你又编程通知别人做什么,不同的模块调来调去。所以C语言编程思想固化的人,初期转型比一开始就习惯事件驱动编程的人要痛苦的多。
所以我建议你想转换应用开发,可以试试开发一下与底层硬件通讯的小应用。找一个现成的demo用eclipse编译运行起来,这个应该有一二天就成了,成功后,再去读其中代码,这里同时包含java,C++,C的代码。再评估一下自己的转型之路。
至于javascript 已经与Android没有太多直接关联吧,是Web编程语言,
在什么平台都通运行,又是另外一个编程思路了。不过最近HTML5开始流行了,象Jquery+phoneCap库可以在iphone 和Android跑,不过后面支持还是C语言和C++。