肝了半个月,我整理出了这篇嵌入式开发学习学习路线+知识点梳理)


不好意思久等了

这篇文章让小伙伴们久等了。

一年多以来,关于嵌入式开发学习路线规划看什么书等问题,被问得没有一百,也有大几十次了。但是无奈自己对这方面了解有限,所以每次都没法交代,搞得实在不好意思。

但是办法总归是有的,正如前篇文章《最近厚着脸皮联系了不少老同学》所聊,虽然我自己不从事这些方向,但寻思了一下,我的同学和朋友中,多少还是有一些从事相关方向并且在一线(或曾在一线)工作过的,所以我就请他们帮忙一起梳理这几个我不熟悉领域的学习路线,这次嵌入式开发就是其中之一。

这篇文章之所以拖这么久,因为沟通实在太费时间了,毕竟大佬们都挺忙,况且梳理总结这件事情本身就比较繁琐,所以等到现在才发出来。

本文在开源项目:https://github.com/hansonwang99/JavaCollection 中已收录,里面包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中...


嵌入式开发难吗?

经过这次和同学的交流,我自己也学到了很多。因为嵌入式方面的很多东西我也不懂,我也算学习了。

站在我个人角度来看,结合以前的学习体验。我觉得嵌入式开发比互联网软开(比如Java后端)还是要难一些的,比如我们搞Java开发的,再怎么说,基本也都是用户态的东西,但嵌入式很多东西都深入到了内核态,所以难度肯定是有的,表现在几个方面吧:

  • 首先,嵌入式它偏底层,软、硬件都要懂,对能力要求本来就要高不少;
  • 其次,嵌入式开发的学习门槛也要高一些,而且像 Linux平台下的开发流程,很多人都不习惯,摸不清;
  • 再者,嵌入式学习的正向反馈可能比较慢,尤其是前期学习阶段,导致没有什么成就感,也就坚持不下去了,所以往往就弃坑了。

但是话说回来,做IT的就是这样,越往底层对人能力的锻炼就越高,所以对于能力来说是在升维,所以反过来,如果嵌入式做得好的,我觉得来做互联网问题也不大,到时候就属于降维打击了。


总体学习思路

总体来说,还是可以把嵌入式学习分为三个大的阶段:

首先基础学习阶段,这就包括通用编程基础(C语言、数据结构/算法、操作系统、计网、计组、Linux系统基础)和基本的硬件基础,扎实地掌握这两大基础,是后续持续发展和不断进步的动力源泉。

其次就是嵌入式应用编程阶段,或者说系统平台编程阶段。因为一般会以特定的嵌入式平台和特定的嵌入式操作系统为依托,熟悉这个系统平台上的编程方法和流程。以常见的ARM+Linux平台为例,需要掌握从内存管理到多任务编程、文件I/O、网络编程,甚至图形化界面编程等几个大的方面。

最后就是深入嵌入式底层开发阶段,最常见的就是内核开发和驱动开发,这些统属于内核态开发范畴,所以需要对操作系统内部机制有所涉猎和理解,在此基础上需要掌握从系统移植到内核开发、驱动开发的各个细节,这是成神之路。

大体思路是这样,接下来看一下详细的学习路线和知识点梳理。


学习路线+知识梳理

花了很长时间,就为了整理这张详细的知识路线脑图。当然由于时间有限、能力也都有限,毕竟嵌入式全体系实在太庞大了,包括我那做嵌入式的同学,也不可能什么都懂,有些东西可能没覆盖到,不足之处,还希望小伙伴们一起交流补充,一起完善进步。


书籍推荐

最后,按照整体的学习路线,再推荐一些对应的经典书籍:


后记:本文在开源项目:https://github.com/hansonwang99/JavaCollection 中已收录,里面包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中...

这次就分享到这里吧,下篇见

每天进步一点点

慢一点才能更快

<think>好的,用户遇到了Android Studio中R标识变红的问题,需要解决方案。让我先看看用户提供的引用内容,结合之前的问题和回答来给出正确的解决步骤。 首先,用户提供的引用1提到AppCompatActivity和其他包报错,需要设置JDK。引用2建议删除.androidstudio目录下的文件(除了config),然后重新同步。引用3提到Kotlin运行main函数的报错,但可能和当前问题关联不大。不过用户现在的问题是R变红,这可能和资源文件错误、缓存问题或Gradle配置有关。 根据之前的回答历史,用户之前询问过R语言的问题,但现在转向Android开发的问题。需要确保回答结构清晰,步骤正确,符合用户的需求。 接下来,分析R变红的常见原因。通常,R文件是由Android Studio自动生成的,如果出现错误,比如XML文件有语法错误,Gradle同步失败,或者缓存问题,都会导致R标红。引用2中提到删除缓存目录可能有效,所以需要将这一点纳入解决方案。 可能的解决步骤应包括检查XML文件是否有错误,清理项目,重新构建,检查Gradle配置,以及处理JDK设置。同时,引用1提到的设置JDK可能相关,需要检查项目的JDK配置是否正确。 另外,用户可能已经尝试过一些方法,比如百度上的解决方案,但需要更系统性的步骤。需要确保每一步都清晰,并解释原因,帮助用户理解问题所在。 还要注意,用户可能遇到的是缓存问题,所以建议清理缓存并重启Android Studio。同时,确保项目中的资源文件没有错误,比如图片名称含有大写字母或特殊字符,这会导致R生成失败。 最后,需要提醒用户如果所有步骤都无效,可能需要检查项目依赖或第三方库的兼容性,以及更新Android Studio到最新版本。</think>### Android Studio中'R'标识变红问题的系统化解决方案 #### 问题定位 `R`文件变红通常由资源文件错误、缓存异常或Gradle配置问题引发。以下按优先级排序的解决方案已整合站内引用内容[^1][^2]和行业通用方法: --- #### 一、基础修复流程(解决90%问题) 1. **检查XML资源文件** - 逐个检查`res/`目录下的`layout`/`drawable`/`values`等资源文件 - 重点关注: ```xml <!-- 错误示例:未闭合标签 --> <TextView android:id="@+id/tv_title" <!-- 正确闭合 --> <TextView android:id="@+id/tv_title" /> ``` - 注意图片文件名必须全小写且无特殊符号 2. **强制重建项目** ```bash Build -> Clean Project # 清理旧编译文件 Build -> Rebuild Project # 完整重建 ``` 3. **Gradle同步** - 点击Android Studio右上角大象图标🔄 - 或命令行执行: ```bash ./gradlew clean assembleDebug ``` --- #### 二、进阶操作(解决顽固问题) 4. **缓存清理术(引用[2]优化版)** ```bash # 关闭Android Studio后执行 rm -rf ~/.gradle/caches/ # Gradle缓存 rm -rf .idea/ # 项目元数据 rm -rf build/ # 编译产物 # Windows路径参考: del /s /q C:\Users\YourName\.android\cache ``` 5. **JDK配置检查(引用[1]扩展)** - 打开`File -> Project Structure -> SDK Location` - 确认JDK路径指向Android Studio自带版本(通常为`jbr`目录) - 建议使用JDK11+版本 --- #### 三、特殊场景解决方案 6. **多模块项目处理** - 检查子模块的`build.gradle`中是否缺少资源类型声明: ```groovy android { resourcePrefix "module1_" // 防止资源命名冲突 } ``` 7. **第三方库冲突(引用[2]补充)** - 在`build.gradle`中添加: ```groovy configurations.all { resolutionStrategy { force 'com.android.support:appcompat-v7:28.0.0' // 强制指定版本 } } ``` --- #### 四、预防措施 - 开启自动构建:`Settings -> Build -> Compiler -> auto-build` - 安装`Android Resource Inspector`插件 - 定期执行:`File -> Invalidate Caches` --- ### 相关问题 1. 为什么Android Studio的`findViewById`会出现空指针异常? 2. 如何解决Gradle同步时的`Manifest merger failed`错误? 3. Android项目中的`BuildConfig`文件有何特殊作用? [^1]: 来自站内引用中关于JDK配置的核心思想 [^2]: 整合缓存清理的优化实践方案 [^3]: 参考Kotlin环境配置的兼容性思路
评论 89
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值