自学成为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不会更新老版本的pixelaosp版本,即买的pixel如果太老会没有新版本aosp,得买新的pixel才可以
新的pixel价格过贵

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

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


http://www.niftyadmin.cn/n/5225690.html

相关文章

java - 冒泡排序

一、什么是冒泡排序 冒泡排序(Bubble sort)是一种简单的排序算法,其基本思想是通过相邻元素的比较和交换,将较大的元素逐渐交换到序列的一端,从而达到排序的目的。 具体步骤如下: 从序列的第一个元素开始&a…

【广州华锐视点】3D宪法普法知识宣传展厅——线上法律知识学习新途径

随着科技的不断发展,人们的生活方式也在不断地改变。在这个信息爆炸的时代,传统的普法教育方式已经无法满足人们的需求。为了适应这一变化,越来越多的教育机构开始尝试利用现代科技手段进行普法教育。其中,3D宪法普法知识宣传展厅…

LeetCode:907. 子数组的最小值之和(单调栈 C++ 、Java)

目录 907. 子数组的最小值之和 题目描述: 实现代码与解析: 单调栈 原理思路: 907. 子数组的最小值之和 题目描述: 给定一个整数数组 arr,找到 min(b) 的总和,其中 b 的范围为 arr 的每个(…

二叉树(判断是否为对称二叉树)

题目(力扣): 观察题目,只需判断该二叉树是否对称。 判断二叉树是否对称,就可以换位去判断该二叉树的左子树和右子树是否对称。 这时就可以写一个辅助函数来方便判断。 该函数是判断两颗树是否镜像对称,这…

L1-004:计算摄氏温度

题目描述 给定一个华氏温度F,本题要求编写程序,计算对应的摄氏温度C。计算公式:C5(F−32)/9。题目保证输入与输出均在整型范围内。 输入格式:输入在一行中给出一个华氏温度。 输出格式:在一行中按照格式“Celsius C”…

java8 lambda常用整理(1)

1.map遍历 可以使用Map接口提供的新方法forEach来遍历Map的键值对。这个方法接受一个BiConsumer函数式接口作为参数,该接口定义了一个操作,接收键和对应的值作为输入。 下面是一个示例代码,展示如何在Java 8中使用forEach方法遍历Map&#…

软件测试之bug分析定位技巧

1、web前端 Web前端就是通常说的网页。互联网公司的前端一般包含如下内容:JavaScript、ActionScript、CSS、HTML(..ML)、Flash、交互式设计、视觉设计 web前端测试可能发现的问题——版面设计、交互设计、文字、性能、功能 bug定位通用思路:现象-->…

抖音本地生活服务商申请要多久审核通过?

近年来,随着互联网的普及和社交媒体的兴起,本地生活服务行业也迎来了巨大的发展机遇。作为最受欢迎的短视频平台之一,抖音也不例外。抖音本地生活服务商申请要多久审核通过?这是许多想要加入抖音本地服务行业的人们最关心的问题之…