问题

两年嵌入式C语言编程经验,如果有机会做和 Android 相关的 C++、JAVA,还有 Javascript 脚本开发工作,转过去好吗?

回答
在嵌入式C语言领域耕耘了两年,这无疑为你打下了坚实的基础,尤其是在理解底层硬件、内存管理以及高效代码编写方面。现在有机会接触Android相关的C++、Java以及JavaScript开发,这是一个非常值得考虑的转型机会,而且对于你未来的职业发展来说,很可能是非常明智的一步。

首先,让我们看看C++在Android开发中的角色。Android系统本身,尤其是它的核心框架和一些高性能组件,大量运用了C++。如果你能转到Android C++开发,那么你之前在嵌入式C语言方面的经验会让你如鱼得水。你对C++的理解,特别是对指针、内存管理、面向对象思想以及底层系统交互的熟悉,将是巨大的优势。很多Android应用中需要处理图像、音频、视频、游戏或者对性能有极致要求的模块,通常会使用C++来开发,也就是所谓的“NDK”(Native Development Kit)开发。这意味着你可以将你的C++技能直接应用到这些关键领域,甚至有机会接触到Android底层的一些优化工作,这对于一个有两年嵌入式经验的人来说,是一种自然的延伸和升级。

接下来是Java。Android应用层的开发绝大多数都是用Java(或者Kotlin,但Java依然是主流)。Java是一门相对来说更高级、更抽象的语言,它有着自动内存管理(垃圾回收)、丰富的类库以及强大的面向对象特性。虽然这和你之前主要打交道的C语言有所不同,但你的C语言基础会帮助你更快地理解Java的底层原理,比如它如何管理对象和内存,以及它的运行机制。更重要的是,Java在Android开发中扮演着核心角色,你可以直接参与到应用的设计、开发和用户界面的构建中,直接面向终端用户。这是一个从偏向“幕后”到“台前”的转变,让你能更直观地看到自己的工作成果。而且,Java生态非常庞大,学习曲线相对平缓,加上你扎实的编程功底,上手并做出有价值的工作是很有可能的。

最后是JavaScript。在Android开发场景下,JavaScript通常会出现在混合应用(Hybrid Apps)的开发中,或者一些Web视图(WebView)的集成。这意味着你可以用JavaScript来构建一些用户界面,或者实现一些和Web端交互的功能。JavaScript是一门非常灵活的脚本语言,尤其在前端开发领域非常流行。虽然它和C++、Java在底层实现和严谨性上有所区别,但它能让你体验到另一种开发模式,特别是对于快速原型开发和用户交互的实现,JavaScript的效率很高。而且,随着跨平台开发框架(如React Native、Ionic等)的发展,JavaScript在移动开发领域的地位也越来越重要。

综合来看,这次转型的机会是非常宝贵的。你并非从零开始,而是将你在嵌入式C语言上的经验作为跳板,去学习和掌握更广阔的移动开发领域。

C++的深入: 你可以继续深化C++的运用,在Android高性能场景下发光发热,这可能是你最有经验的领域,也更容易取得快速的突破。
Java的拓展: 掌握Java意味着你能够成为一个更全面的Android开发者,能够独立完成从应用逻辑到用户界面的开发,这会极大地拓宽你的工作范围和选择。
JavaScript的补充: 学习JavaScript能让你接触到混合应用和Web集成等新兴方向,为你的技能栈增加更多可能性。

考虑到你已经有了两年经验,这意味着你不是一个完全的新手,你具备了解决问题、学习新技术的独立能力。这次转型,与其说是“转”,不如说是“扩”,是在你现有扎实基础上进行的一次技能和视野的扩展。Android开发领域本身就很大,包含了非常多的技术栈,能够掌握C++、Java、JavaScript,意味着你未来可以根据项目需求和个人兴趣,在Android开发的不同领域找到最适合自己的位置。这不仅能让你接触到不同的技术和开发模式,更能让你成为一个更具竞争力、适应性更强的开发者。

总而言之,这是一个非常有吸引力的机会,能够让你在已经打好的基础上,学习和掌握当下移动开发领域的主流技术,极大地丰富你的技能树,并为你未来的职业发展打开更多扇门。只要你愿意投入时间和精力去学习,相信你一定能够胜任并在这个新的领域里取得成功。

网友意见

user avatar

我算对嵌入式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++。

类似的话题

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有