自学成为android framework工程师需要准备哪些装备-千里马车载车机系统开发学习

背景

hi,粉丝朋友们:
大家好!经常有很多学员买课同学都会问到需要准备哪些装备,我也回答了很多学员了,今天就搞一篇文章来统一说明一下,告诉一下大家如果你想从一个framework新手变成一个framework开发的高手需要准备好哪些装备。

基础设备

在开始学习framework阶段,这个时候的你还处于对framework的全新探索期,你对framework也还不是很熟悉,这个时期必备装备有如下:

1、必备硬件电脑(不要用苹果相关电脑)

在这里插入图片描述

这个电脑是最重要的,因为你如果没有一个不错的电脑那么其实,做framework来还是很麻烦,因为framework开发需要你频繁编译系统,频繁修改,但是编译系统可不是编译应用那么简单,相对来说非常耗费资源。具体需要什么配置呢?这里给出一个最基本的配置:

cpu:最少4核以上
建议intel cpu(amd cpu也可以),一般都可以满足,越多核越好,这个是影响你编译速度关键,差异也巨大,比如学员里面编译8.1的老代码为例,有的编译源码10小时,有的16分钟

内存:最少16G以上
目前高版本的aosp版本编译都是耗费内存巨大的,所以这里的建议内存最少要有16G,内存不足,那么导致的结果那就是,经常编译源码时候无故退出,停止,oom等,这个时候最简单方式加内存条,不加那就只能减少make的线程,比如make -j 1,单线程编译让编译过那块的耗内存任务

SSD/硬盘500G以上
这个部分容量最少500G,不过这个只能保证你开发一套代码够了,你要是想搞多套aosp版本的开发,那么肯定是不够的,所以硬盘容量给的越多越好。不然你就只能保留一套代码。
这里的建议大家用ssd,不要用机械硬盘,因为机械硬盘比较慢,硬盘速度也是影响编译时间的关键因素

如果不满足以上配置建议可以考虑换电脑了,省钱的话可以考虑买个二手服务器cpu至强系列的,性价比最佳满足aosp系统开发

2、必备的ubuntu操作系统

要求:
Ubuntu 操作系统 64位桌面版本,如下面带了desktop和amd64标识的镜像
在这里插入图片描述
版本要求:
最少要求16.04版本及以上版本,我这边自己使用的20.04版本

安装方式选择

1 直接电脑只有Ubuntu系统 最佳选择
2 电脑采用双系统方式,windows系统和Ubuntu系统分别安装不同硬盘分区方式 (和直接安装没啥区别,不过就是启动时候选择不一样)
3 windows电脑 + VMware安Ubuntu方式 (速度会慢一些,适合想和windows同时用的情况)

这个framework学习初中期,可以不需要开发板或者其他手机设备,这个期间自己编译系统可以直接模拟器emulator运行,看到自己运行的模拟器,这个就是为啥要Ubuntu的桌面版本

进价设备

经过上面的framework学习阶段后,到了中后期你就可以准备相关的硬件终端设备来运行你编译的系统了,这个具体终端选择的话我这边也给出一些建议:

在这里插入图片描述

为啥要有实体设备呢?

1、为了让自己修改系统自己使用,增加成就感,提高兴趣,比如你可以为你的妹纸做个系统表白啥的,比如一开机就是她的的开机动画。。。。

2、最重要是因为一些模块不方便用模拟器了,比如触摸,SurfaceFlinger,啥的和硬件有些耦合的东西

真实的硬件设备有以下几个特点对比

1、开发板,比如市场经典的RK系列,全志啥的(预算价钱1000左右)
优点:就是不担心变砖,还可以学嵌入式
缺点:就是aosp版本更新是个麻烦事,不一定是最新aosp

2、国内二手手机,比如小米等,具体是否支持得自己去官网看(预算:100-300)
(搭建编译刷机参考网页:https://blog.csdn.net/learnframework/article/details/128438325)

优点:特别适合framework开发,价格便宜,而且经常体验最新的aosp系统,因为lineageos会经常更新最新aosp
缺点:可能涉及解锁等步骤每个手机厂商不一样,要多试试

3、二手pixel 咸鱼一般可以买到,越新的价格越贵(预算:200-1000)

搭建编译刷机参考网页:https://blog.csdn.net/learnframework/article/details/125269456
优点:可以直接aosp代码就支持的,官方原生的aosp系统
缺点:google不会更新老版本的pixel的aosp版本,即买的pixel如果太老会没有新版本aosp,得买新的pixel才可以
新的pixel价格过贵

马哥装备如下:
在这里插入图片描述

更多framework干货获取相关可以 点击这里 https://mp.weixin.qq.com/s/Qv8zjgQ0CkalKmvi8tMGaw
视频:https://www.bilibili.com/video/BV1ah411d7Y3
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/179206.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

sprintboot快速初始化【Springboot】

1.首先选择创建项目 2.填写对应的项目信息 一定要勾选maven,否则没有pom文件,选择next 3.选择应用场景 点击 create,DIEA就会根据你的选择自动创建项目骨架; 4.创建一个控制层 随便创建一个控制层,测试一下项目是否…

链接1:编译器驱动程序

文章目录 GNU编译器示例编译 GNU编译器 GNU编译器(GNU Compiler)是由自由软件基金会(Free Software Foundation,FSF)开发和维护的一套编译器集合。这些编译器主要用于编译各种编程语言的源代码,将其转换为…

深度盘点:100 个 Python 数据分析函数总结

经过一段时间的整理,本期将分享我认为比较常用的100个实用函数,这些函数大致可以分为六类,分别是统计汇总函数、数据清洗函数、数据筛选、绘图与元素级运算函数、时间序列函数和其他函数。 技术交流 技术要学会交流、分享,不建议…

【Redis实现全局唯一ID】

一、全局唯一ID的需求产生。 在订单业务中,我们需要保证id是绝对唯一的。 使用数据库自增长的id在分布式的情况下把表做了拆分处理后有可能会出现id重复的情况,这就违背了唯一性。而且数据自增长的id有很强的规律性,可以根据id推断出订单的数…

C语言中的static的用法(超级详细)

🌹作者:云小逸 📝个人主页:[云小逸的主页] 📝码云:云小逸 (YunXiaoYi003) 🤟motto:要敢于一个人默默的面对自己,强大自己才是核心。不要等到什么都没有了,才下定决心去做。种一颗树,…

大型网站系统架构演化(Web)

大型网站系统架构演化 大型网站系统架构演化需要关注的维度涉及的技术演进过程单体架构垂直架构使用缓存改善网站性能缓存与数据库的数据一致性问题缓存技术对比Redis分布式存储方案Redis集群切片的常见方式Redis数据类型Redis 淘汰算法 大型网站系统架构演化 需要关注的维度 …

【深入解析git和gdb:版本控制与调试利器的终极指南】

【本节目标】 1. 掌握简单gdb使用于调试 2. 学习 git 命令行的简单操作, 能够将代码上传到 Github 上 1.Linux调试器-gdb使用 1.1.背景 程序的发布方式有两种,debug模式和release模式release模式不可被调试,debug模式可被调试Linux gcc/g出来的二进制…

【Cmake】Cmake基础学习

CMake学习 一、基础学习 1. 利用Cmake进行单个源代码构建可执行文件 (1)基础命令 最基本的 CMake项目是由单个源代码文件构建的可执行文件。对于这样的简单项目,只需要一个包含三个命令的 CMakeLists.txt 文件。 注意: 虽然 CMake 支持大写、小写和混合大小写命令,但是…

Unity 关于生命周期函数的一些认识

Unity 生命周期函数主要有以下一些: Awake(): 在脚本被加载时调用。用于初始化对象的状态和引用。 OnEnable(): 在脚本组件被启用时调用。在脚本组件被激活时执行一次,以及在脚本组件被重新激活时执行。 Reset(): 在脚本组件被重置时调用。用于重置脚本…

微信小程序Vue+nodejs教室自习室座位预约系统68u2m

本文从管理员、用户的功能要求出发,教室预约系统小程序中的功能模块主要是实现管理端;首页、个人中心、教室信息管理、教室设备管理、用户管理、教室预约管理、管理员管理、系统管理,微信端;首页、教室信息、教室设备、教室预约、…

若依vue-修改标题和图标

因为我们拉下来的代码,图标和logo是若依的,这和我们需要做出来的效果有差别 这个时候就需要去对应的文件内去修改标题和图标 (主要就是这两个地方的图标和标题) 修改菜单里面的logo以及文字 修改文字 位置: src/layout/component/Sidebar/Logo.vue 此处的title文字是定义在…

ESXi vSAN 整合多主机磁盘

VSAN 与 RAID区别: vSAN 可以管理 ESXi 主机,且只能与 ESXi 主机配合使用。一个 vSAN 实例仅支持一个群集。vSAN 不需要外部网络存储来远程存储虚拟机文件,例如光纤通道 (FC) 或存储区域网络 (SAN) 使用传统存储,存储管理员可以…

如何给echarts的legend设置不同的样式和位置 legend分组显示

legend分组显示 给每一个图例设置不一样的位置和样式 样式如下 demo代码 option {title: {text: Stacked Line},tooltip: {trigger: axis},// legend写为数组可以给一些给某些组分配一些不一样的样式legend: [{data: [// 使用svg画任意的图形{name:Email,icon: path://"…

科学与工程计算基础(数值计算)知识点总结

数值计算 第1章 概论1.2 数值计算中的误差1.2.1 误差的来源和分类1.2.2 误差与有效数字1.2.3 数值运算的误差估计 1.3 误差定性分析和避免误差危害1.3.1 算法的数值稳定性1.3.3 避免误差危害 1.4 数值计算中算法设计的技术1.5 习题1.5.1 判断题1.5.2 计算题 第2章 插值法2.2 拉…

Helm3部署kubeview资源可视化工具

一、KubeView 介绍 KubeView 是一个 Kubernetes 集群可视化工具和可视化资源管理器。它提供了跨命名空间的 Kubernetes 对象的完整概述,以及它们如何通过直观的 UI 和资源对象相互连接。它允许用户在集群内部运行命令,并查看集群内部的资源使用情况、容器…

详解原生Spring中的控制反转和依赖注入-构造注入和Set注入

😉😉 学习交流群: ✅✅1:这是孙哥suns给大家的福利! ✨✨2:我们免费分享Netty、Dubbo、k8s、Mybatis、Spring...应用和源码级别的视频资料 🥭🥭3:QQ群:583783…

pandas教程:US Baby Names 1880–2010 1880年至2010年美国婴儿姓名

文章目录 14.3 US Baby Names 1880–2010(1880年至2010年美国婴儿姓名)1 Analyzing Naming Trends(分析命名趋势)评价命名多样性的增长“最后一个字母”的变革变成女孩名字的男孩名字(以及相反的情况) 14.3…

Drool 7 SpreadSheet Decision Template 笔记

1 Excel Decision table 1.1 很棒的示意图,来自https://blog.csdn.net/justlpf/article/details/128109731 1.2 参考URL 1.2.1 https://blog.csdn.net/justlpf/article/details/128109731 1.3 多sheet 模式 默认是用第一个sheet如果要支持多sheet,需…

docker限制容器内存的方法

在服务器中使用 docker 时,如果不对 docker 的可调用内存进行限制,当 docker 内的程序出现不可预测的问题时,就很有可能因为内存爆炸导致服务器主机的瘫痪。而对 docker 进行限制后,可以将瘫痪范围控制在 docker 内。 因此&#…

如何运行C/C++程序

一、在线运行C/C 码曰 - 让代码在云端多飞一会:这是一个支持C/C,Java,Python等多种语言的在线编程,编译运行,粘贴分享的平台。你可以在这里输入你的代码,点击运行按钮,就可以看到输出结果。你也…