一、区分存储器
首先我们要区分内存、RAM、ROM、硬盘这四者的区别,由于安卓系统没有严格选取名词,导致这些名词被赋予了新的含义。在这里,我们使用PC下的语境重新理解这四个词。
内存:英文是Memory,即记忆的意思,汉语翻译成内存是有道理的,这个词分开就是两个字,内和存,内就是内部的意思,这个内部是相对于CPU而言的,存就是存储。内存有什么特点呢?CPU可以直接访问,就像人类的记忆,直接就育想到。
RAM:随机访问内存,可以自由读写的内存,靠电压保存写入的数据,一断电所有信息都消失了。这个概念和PC上的内存基本上是—样的
ROM:只读内存,顾名思义,是只能够读取的内存,无法往里面写入数据。不写入,怎么读取呢?ROM是需要通过特殊的途径写入数据的,由于是写死在硬件上面的,所以又称之为烧录。安卓手机的ROM表示的PC中的硬盘。
二、编程平台
面向软件编程:代码基于操作系统或中间件编写,无需考虑底层硬件的具体细节。例如,编写一个基于Windows系统的程序,我们无需考虑电脑用的是什么硬件,无论intel还是amd,只要运行的是Windows系统,编写的程序就能正常运行。这种编程模式下,无需关注用的哪个内存位置,跑的是哪条CPU指令,操作系统或中间件会自动为你处理好这些与应用业务无关的细节。
面向硬件编程:代码基于硬件平台编写,需要考虑硬件的细节。例如,基于开发板编写洗衣机控制程序,要考虑马达插在哪个针上,使用哪条指令控制这个针的通电情况,这些每个芯片配合不同的开发板都是不一样的,需要对着开发板厂商的编程手册编写代码。写完的代码要用专用的设备写入ROM中(俗称“烧录”)。这种编程模式下,需要选择适当的指令,合理使用存储器。
综合比较:
1、面向软件编程通常会有较为复杂的业务逻辑,如各类的信息管理系统、电子商务系统,有一大堆的规则等着你;
2、面向硬件编程业务逻辑比较简单,如各种智能家居、安防设备,主要是开关、定时、预警这类功.